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

Событие session сообщает об одном визите и о том, как он прошёл. Сессии — знаменатель здоровья релизов: доля сессий и пользователей без падений по проекту и релизу и доля сессий, которые задел инцидент.

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

  • SessionIntegration (Browser, включена по умолчанию) — одна сессия на визит, обновляется при ошибке или падении.
  • HttpServerIntegration (Node) — каждый запрос — сессия; счётчики по минутам и статусам отправляются агрегированными событиями с quantity.
  • Элементы session официальных Sentry SDK, если включена интеграция Sentry, — и агрегированные элементы sessions серверных SDK (режим запросов: счётчики по минутам и статусам, без id сессий), каждый счётчик хранится одной строкой с quantity сессий.

Payload ​

json
{
    "type": "session",
    "timestamp": "2026-10-09T10:15:02.481Z",
    "tags": {},
    "contexts": { "release": "web@1.4.2", "environment": "production" },
    "payload": { "sid": "e3b1…", "status": "errored", "errors": 2 }
}
ПолеТипОписание
sidstring, ≤ 64 символовId сессии. Каждое обновление сессии несёт один и тот же.
statusok | errored | crashed | abnormalerrored — поймана ошибка; crashed — необработанная; abnormal — сессия неожиданно оборвалась.
errorsinteger ≥ 0Сколько ошибок поймано за сессию на данный момент.
initboolean, необязательноЗадаётся в первом обновлении сессии.
quantityinteger 1 – 1 000 000, необязательноСколько сессий с этим status представляет событие — 1, если не задано. Для сервера, который только считает запросы: отправляйте по событию на статус и минуту, каждый раз с новым sid, а число — здесь.

timestamp — время начала сессии, в каждом обновлении. Обновление никогда не улучшает сессию: сохранённый статус только ухудшается, а errors только растёт, так что обновления могут приходить в любом порядке или дважды. Сессия ok с ошибками сохраняется как errored.

Все остальные события сессии должны нести её id в contexts['session.id'].

Агрегированные сессии (quantity > 1 или sid, начинающийся с agg-) учитываются во всех итогах по сессиям и доле без падений, но в доле пользователей без падений — только если несут пользователя (contexts['user.id']), иначе они никому не принадлежат (IP отправившего их сервера — не посетитель).

Сэмплирование и квота ​

Сессии никогда не сэмплируются и не входят ни в одну квоту — отброшенная сессия исказила бы все доли. Хранятся они столько, сколько задаёт тариф для сессий.