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

По умолчанию событие знает о посетителе только 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.