Перейти к содержимому

Событие replay — один кусок (сегмент) записи сессии. Полная запись — упорядоченная последовательность сегментов с общим replayId; панель склеивает их обратно и проигрывает рядом с исключением, с которым они связаны. Только для браузера.

Откуда берётся ​

ReplayIntegration записывает страницу через rrweb и отправляет сегмент каждые flushInterval мс (по умолчанию 5 с) или когда накопится maxSegmentEvents (по умолчанию 300) событий — но только пока сессия действительно записывается:

  • доля sessionSampleRate сессий (по умолчанию 10 %) записывается с начала;
  • остальные держат короткий буфер в памяти и начинают отправку, только когда поймано исключение (onErrorSampleRate, по умолчанию 100 %), так что моменты перед ошибкой всё равно попадают в запись.

Payload ​

json
{
    "type": "replay",
    "timestamp": "2026-09-24T10:15:07.000Z",
    "tags": {},
    "contexts": { "replay.id": "0f6a…" },
    "payload": {
        "replayId": "0f6a…",
        "segmentId": 3,
        "events": [ { "type": 3, "data": { … }, "timestamp": 1790244907000 } ]
    }
}
ПолеТипОписание
replayIdstringЗапись, к которой относится сегмент, — одна на загрузку страницы.
segmentIdnumberНомер сегмента в записи, начиная с 0.
eventsarrayИсходные события rrweb (снимки DOM, мутации, ввод, прокрутка, …). Формат у них rrweb, а не Buglapse.

Связь с исключениями ​

Интеграция также задаёт на клиенте контекст replay.id, так что его несёт каждое другое событие этой страницы — в частности каждое exception. Так страница события инцидента находит запись для показа.

Приватность ​

Поля ввода маскируются по умолчанию (maskAllInputs), а элементы с классами buglapse-block / buglapse-mask исключаются или маскируются ещё до того, как что-либо покинет браузер. Опции — на странице интеграции.

Квота ​

Учитывается как одно событие в месячном лимите записей — за сегмент, а не за запись целиком.