Трейсер предоставляет набор инструментов, которые позволяют отслеживать сбои типа CRASH (необработанные ошибки приложения) и вручную регистрировать некритические ошибки – NON_FATAL (даже если ошибка была обратана, имеет смысл зафиксировать её в сервисе). За сбор данных о событиях отвечает модуль initTracerError, а для отправки событий необходимо сконфигурировать initTracerErrorUploader (подробнее в Быстрый старт).
ВАЖНО! Трейсер хранит данные о событиях за последние 90 дней.
Для работы со сбоями приложения вам понадобятся следующие модули Tracer JS SDK:
| Модуль | Описание |
|---|---|
initTracerError | Отвечает за сбор глобальных событий и ручную регистрацию ошибок в проекте. |
initTracerErrorAsyncStack | Отвечает за сбор и регистрацию ошибок в асинхронном коде проекта. |
initTracerErrorUploader | Отвечает за отправку данных о событиях в сервис. |
initTracerSessionUploader | Отвечает за отправку данных о состоянии сессий приложения в сервис. |
Чтобы Tracer генерировал человекочитаемые стектрейсы, необходимо загрузить отладочную информацию (source maps). Подробнее о минификации JS-приложений читайте на странице Минификация (Source Maps)
Для начала установите SDK – введите в терминале команду:
npm install @apptracer/sdk --save
Следите за актуальностью используемой версии, самая свежая – 2.6.3.
Проинициализировать SDK в проекте можно двумя способами:
В вашем app.js:
import { initTracerError, initTracerErrorUploader, initTracerSessionUploader } from '@apptracer/sdk'; initTracerError({ // ваши параметры }); const config = { versionName: BUILD_VERSION_NAME, versionCode: BUILD_VERSION_CODE, appToken: 'appToken из настроек в Трейсере', environment: 'prod', }; initTracerErrorUploader(config); initTracerSessionUploader(config);
При базовой конфигурации Трейсер позволяет регистрировать и отправлять в сервис глобальные события – ошибки типов error и unhandledrejection. Однако можно сконфигурировать модуль более гибко под ваши предпочтения.
ВАЖНО! Конфигурация применится только при первой инициализации модуля. При повторных вызовах инстант не вернется. Для получения инстанса лучше пользоваться getTracerModules (подробнее).
| Параметр | Тип | Описание |
|---|---|---|
disableUnhandledErrorsListeners | boolean | Отключает автоматическую подписку на необработанные ошибки, на случай, если хочется обрабатывать их самостоятельно. |
filterError | (error: unknown, errorInfo: ITracerErrorInfo) => boolean / void | Функция для фильтрации необработанных ошибок, если это необходимо. При результате false ошибка не будет отправлена. |
handleOtherErrorDataType | boolean | Позволяет обрабатывать события error и unhandledrejection, не являющиеся инстансами Error. Все данные будут сохранены в виде строки длиной до 50 символов. |
restrictOtherErrorListeners | boolean | Отменяет событие для других обработчиков, если не хочется делиться ошибками с кем-от еще. Не работает, если disableUnhandledErrorsListeners = true. |
stackTraceLimit | number | Переопределяет значение Error.stackTraceLimit – количество фреймов, которое включается стектрейс при регистрации ошибки |
stringifyErrorDataObject | boolean | Включает/выключает преобразовывание данных объекта в строку до 50 символов. Будьте осторожны с привытными данными. |
Пример функции фильтрации ошибок на основне message зарегистрированной ошибки:
import { initTracerError } from '@apptracer/sdk'; initTracerError({ filterError: (error) => { if (error.message.indexOf('ignore error with this text') !== -1) { return false; } } }); // ошибка не будет отправлена в Трейсер throw new Error('ignore error with this text');