Браузерный JS
Браузерный SDK ClickStack позволяет инструментировать ваше фронтенд‑приложение для отправки событий в ClickStack. Это позволяет просматривать сетевые запросы и исключения вместе с событиями бэкенда в единой временной шкале.
Кроме того, он автоматически будет захватывать и коррелировать данные для воспроизведения сессий, чтобы вы могли визуально, шаг за шагом, просматривать и отлаживать то, что видел пользователь при работе с вашим приложением.
Это руководство охватывает интеграцию следующего:
- Логи консоли
- Воспроизведение сессий
- Запросы XHR/Fetch/WebSocket
- Исключения
Начало работы
- Импорт пакета
- Тег script
Установка через импорт пакета (рекомендуется)
Используйте следующую команду для установки браузерного пакета.
Инициализация ClickStack
Установка через тег script (альтернативный вариант)
Вы также можете подключить и установить скрипт через тег script вместо
установки через NPM. Это создаст глобальную переменную HyperDX, которую можно
использовать так же, как NPM-пакет.
Это рекомендуется, если ваш сайт сейчас не собирается с помощью бандлера (bundler).
Параметры
apiKey- Ваш ключ API ClickStack для приёма данных.service- Имя сервиса, под которым события будут отображаться в интерфейсе HyperDX.tracePropagationTargets- Список шаблонов регулярных выражений для сопоставления с HTTP-запросами с целью связывания трассировок фронтенда и бэкенда; добавляет дополнительный заголовокtraceparentко всем запросам, соответствующим любому из шаблонов. Должен быть установлен в домен вашего backend API (например,api.yoursite.com).consoleCapture- (необязательный) Собирать ли все логи консоли (по умолчаниюfalse).advancedNetworkCapture- (необязательный) Собирать ли полные заголовки и тела запросов/ответов (по умолчаниюfalse).url- (необязательный) URL коллектора OpenTelemetry, требуется только для самостоятельно развернутых инстансов.maskAllInputs- (необязательный) Маскировать ли все поля ввода при воспроизведении сеанса (по умолчаниюfalse).maskAllText- (необязательный) Маскировать ли весь текст при воспроизведении сеанса (по умолчаниюfalse).disableIntercom- (необязательный) Отключать ли интеграцию с Intercom (по умолчаниюfalse)disableReplay- (необязательный) Отключать ли воспроизведение сеанса (по умолчаниюfalse)
Дополнительная настройка
Добавление информации о пользователе или метаданных
Добавление информации о пользователе позволит выполнять поиск и фильтрацию сеансов и событий в интерфейсе HyperDX. Этот метод может быть вызван в любой момент в ходе клиентской сессии. Текущая клиентская сессия и все события, отправленные после вызова, будут связаны с информацией о пользователе.
userEmail, userName и teamName будут отображаться в интерфейсе сеансов с соответствующими
значениями, но их можно не указывать. Можно задать любые дополнительные значения
и использовать их для поиска событий.
Автоматический захват ошибок в React error boundary
Если вы используете React, вы можете автоматически перехватывать ошибки, которые возникают внутри
React error boundary, передав ваш компонент error boundary
в функцию attachToReactErrorBoundary.
Отправка пользовательских действий
Чтобы явно отслеживать конкретное событие приложения (например, регистрацию,
отправку формы и т. п.), вы можете вызвать функцию addAction с именем события
и необязательными метаданными.
Пример:
Динамическое включение захвата сетевого трафика
Чтобы динамически включать или отключать захват сетевого трафика, вызывайте функцию enableAdvancedNetworkCapture или disableAdvancedNetworkCapture по мере необходимости.
Включение измерения времени загрузки ресурсов для CORS-запросов
Если ваше frontend-приложение отправляет API-запросы на другой домен, вы можете
при необходимости включить отправку заголовка Timing-Allow-Origin вместе с запросом. Это позволит ClickStack собирать детализированную
информацию о времени загрузки ресурсов для запроса, такую как DNS lookup, загрузка
ответа и т. д., с помощью PerformanceResourceTiming.
Если вы используете express вместе с пакетом cors, вы можете использовать следующий
фрагмент кода, чтобы включить этот заголовок: