Система плагинов доступна начиная с версии 2.5.1
Система плагинов в SDK предоставляет гибкость и контроль над обработкой ошибок. С помощью плагинов вы можете добавлять дополнительные функциональные возможности и адаптировать SDK под ваши конкретные нужды.
Механизм плагинов поддерживает следующие хуки:
Хук | Предназначение |
---|---|
errorOnThrottle | Позволяет отследить троттлинг ошибок при работе с модулем Error. Подробнее здесь |
errorBeforeAdd | Позволяет модифицировать данные ошибки до её отправки в сервис. Подробнее здесь |
Для начала установите SDK – введите в терминале команду:
npm install @apptracer/sdk --save
Следите за актуальностью используемой версии, самая свежая – 2.5.1.
Внедрить плагины в проект можно двумя способами:
initTracerPlugins
позволяет создат ь плагины при инициализации – при таком способе плагины будут активны в течение всей работы приложения.
Параметр | Тип | Описание |
---|---|---|
name | string | Название инстанса SDK. Только в Lite-версии. |
config | ITracerPluginsConfig | Настройки подключаемых плагинов. |
Пример подключения:
import { initTracerPlugins } from '@apptracer/sdk'; const config = { plugins: [{ name: 'plugin name', errorBeforeAdd: ..., // настройки хука errorOnThrottle: .... // настройки хука }, ... ] }; initTracerPlugins(config);
Параметр | Тип | Описание |
---|---|---|
plugins | ITracerPlugin [] | Список настроек подключаемых плагинов. |
Параметр | Тип | Описание |
---|---|---|
name | String | Название плагина. |
errorOnThrottle | (errorInfo: ITracerErrorInfo) => void | Хук для работы с троттлингом ошибок. |
errorBeforeAdd | (errorInfo: ITracerErrorInfo) => ITracerErrorData | boolean | void | Хук для модификации ошибок перед отправкой. |
addTracerPlugin
позволяет создавать плагины во время работы приложения – при использовании возвращается функция-деструктор, которую можно вызвать, если плагин больше не нужен.
Параметр | Тип | Описание |
---|---|---|
name | String | Название инстанса SDK |
plugins | ITracerPlugin | Настройки подключаемого плагина. |
Пример подключения:
import { addTracerPlugin } from '@apptracer/sdk'; // SDK проинициализирован, выполняется код const plugin = addTracerPlugin({ name: 'warnings', errorBeforeAdd: ... // настройки хука });
JS SDK использует троттлинг, чтобы избежать в сервисе появления большого количества одинаковых ошибок. Функция, которую вы определите в errorOnThrottle
, будет вызвана для каждой ошибки, попавшей под троттлинг – таким образом вы можете его отследить.
ВАЖНО! До активации троттлинга можно отправить до 10 «одинаковых» ошибок подряд. Далее, при продолжении «спама», допускается не более одной ошибки раз в 10 секунд.
errorBeforeAdd
позволяет определить функцию, которая будет модифицировать данные ошибки перед отправкой (например, добавлять ключи, severity и т.д.) – достаточно вернуть объект с новыми данным. В случае, если функция возвращает false
, ошибка будет отфильтрована (аналогично логике filterError
). Если плагин модифицировал данные ошибки, информация об этом будет доступна в поле modifiedByPlugins
в данных ошибки (подробнее об этом здесь).
ВАЖНО! Функция будет вызвана после errorOnThrottle
.
Пример использования:
import { addTracerPlugin } from '@apptracer/sdk'; addTracerPlugin({ name: 'warnings', errorBeforeAdd: (errorInfo) => { if (errorInfo.errorStack.includes('some_text')) { return { severity: 'warning', keys: { withSomeText: true }, }; } } });