По умолчанию событие знает о посетителе только IP. Чтобы видеть, у кого произошла ошибка, и искать по своим данным (тариф, шаг оформления заказа, ID заказа), передайте их в SDK.
Пользователь
Вызовите setUser() после входа пользователя:
ts
Buglapse.setUser({ id: user.id, email: user.email, username: user.login })Все поля необязательны. Повторный вызов дополняет уже известные данные: можно передать id при входе, а email — позже. После этого:
- в событии появляется карточка пользователя;
- у инцидента виден список затронутых пользователей и их число;
- из карточки пользователя открываются все его исключения, логи, трейсы и записи сессий (фильтр
user:в поиске).
Пользователи определяются по user.id, затем по user.email, затем по IP. Без setUser() все посетители за одним NAT считаются одним человеком.
В Node.js — только в рамках запроса
На сервере глобальный setUser() применится ко всем последующим событиям процесса, то есть к чужим запросам тоже. Задавайте пользователя в области запроса:
ts
import { withScope } from '@buglapse/node'
app.use((request, response, next) => {
withScope((scope) => {
if (request.user) scope.setUser({ id: request.user.id })
next()
})
})Подробнее — в справочнике Node SDK.
Если email и имена пользователей нельзя отправлять, передавайте только внутренний id. О том, что ещё можно скрыть, — на странице Чувствительные данные.
Теги
Теги — короткие пары «ключ: значение», по которым удобно фильтровать:
ts
Buglapse.setTag('plan', 'pro')
Buglapse.setTag('checkout.step', 'payment')Тег прикрепляется ко всем событиям, отправленным после вызова. Искать по нему можно в любом списке панели: plan:pro checkout.step:payment. Синтаксис — на странице Поиск.
Дополнительные данные
Для подробностей, которые нужно видеть в событии, но не обязательно искать, используйте контекст — вложенный объект под своим именем:
ts
Buglapse.setContext('order', { id: order.id, total: order.total, currency: 'RUB' })На странице события он появится отдельной группой «Order». Ключи разворачиваются в order.id, order.total, и по ним тоже можно искать.
Окружение и релиз
Окружение (production, staging) и версию приложения задают не тегами, а опциями при подключении: data-environment / data-release у script-тега или environment / release в init(). По окружению фильтруются все списки панели, а релиз нужен для релизов и source maps.
Что собирается автоматически
Включите в Настройки → Скрипт загрузчика (или подключите в коде):
- Контекст устройства — браузер, ОС и модель устройства у каждого события;
- HTTP-контекст — текущий адрес страницы и referrer;
- Хлебные крошки — клики, переходы, запросы и сообщения консоли перед ошибкой.
Подробности и временная область withScope() для одной операции — в справочнике: Browser, Node.