Обзор
Одно число ошибок не говорит, насколько всё плохо: 100 ошибок на 200 визитов и на 200 000 — очень разные релизы. Сессии дают ошибкам знаменатель. Браузерный SDK ведёт одну сессию на визит и сообщает, прошла ли она нормально, с ошибкой (поймана ошибка) или упала (необработанная ошибка). Из этого панель вычисляет:
- Сессии без падений — долю сессий, которые не упали.
- Пользователи без падений — долю пользователей, ни одна сессия которых не упала. Пользователь — тот, кого вы определили через
setUser()(см. Пользователи), иначе — сессия.
Сессии бесплатны — они не входят ни в одну квоту и не сэмплируются.
Включение
Ничего делать не нужно: SessionIntegration включена по умолчанию — и для script-тега, и для npm-пакета. Задайте release (и environment) в init(), чтобы числа можно было сравнивать по версиям:
ts
import { init } from '@buglapse/browser'
init({
dsn: '{dsn}',
release: 'web@1.4.2',
environment: 'production',
})Со script-тегом используйте data-release / data-environment у элемента <script>.
Как устроена сессия
- Она начинается при инициализации SDK и хранится в
localStorage, так что перезагрузки и новые вкладки того же сайта её разделяют. - Она заканчивается после 30 минут бездействия — следующее событие или переход в SPA после этого начинает новую. Если
localStorageнедоступен (приватный режим, заблокированное хранилище), сессия длится, пока открыта страница. - Ошибка, о которой вы сообщаете через
captureException(), делает её errored; необработанная ошибка или отклонённый промис (GlobalErrorIntegration) — crashed. Страница, ушедшая без чистого завершения, — упавшая вкладка, принудительно закрытый браузер — делает её abnormal (см. Аварийные завершения). Лучше сессия уже не становится. - Каждое другое событие несёт id сессии в
contexts['session.id'].
getSessionId() возвращает текущий id — например, чтобы передать визит на ваш бэкенд.
Где смотреть
- Сессии в боковом меню проекта: доля сессий и пользователей без падений, число сессий и пользователей, график здоровых / с ошибкой / упавших сессий и релизы с наибольшим числом сессий с их распространённостью (долей всех сессий) и долей без падений. Период (от 24 часов до 30 дней) и окружение выбираются вверху.
- Релизы: список показывает долю сессий без падений каждого релиза; страница релиза — его здоровье за всю жизнь.
- Инциденты: страница инцидента показывает долю сессий проекта, в которых он встречался с момента появления.
- Обзор: панель Сессии показывает последние 24 часа; карточки проектов на главной — долю сессий без падений каждого проекта.
Алерты
Когда доля сессий без падений за последний час опускается ниже 98 % (при минимум 50 сессиях за этот час), проект создаёт алерт Падение crash-free — не чаще раза в сутки. Он включается и выключается вместе с другими типами алертов в настройках Алерты проекта. См. Алерты и уведомления.
Метрики спанов
Ищете числовые значения, привязанные к спанам (span.metric())? См. Метрики спана.