Плагины

Система плагинов доступна начиная с версии 2.5.1

Система плагинов в SDK предоставляет гибкость и контроль над обработкой ошибок. С помощью плагинов вы можете добавлять дополнительные функциональные возможности и адаптировать SDK под ваши конкретные нужды.

Механизм плагинов поддерживает следующие хуки:

ХукПредназначение
errorOnThrottleПозволяет отследить троттлинг ошибок при работе с модулем Error. Подробнее здесь
errorBeforeAddПозволяет модифицировать данные ошибки до её отправки в сервис. Подробнее здесь

Инициализация плагинов

Для начала установите SDK – введите в терминале команду:

npm install @apptracer/sdk --save

Следите за актуальностью используемой версии, самая свежая – 2.5.1.

Внедрить плагины в проект можно двумя способами:

  • вариант 1: создать их при инициализации SDK;
  • вариант 2: добавить в рантайме при помощи специальной функции;

Создание плагинов с помощью initTracerPlugins

initTracerPlugins позволяет создать плагины при инициализации – при таком способе плагины будут активны в течение всей работы приложения.

ПараметрТипОписание
namestringНазвание инстанса SDK. Только в Lite-версии.
configITracerPluginsConfigНастройки подключаемых плагинов.

Пример подключения:

import { initTracerPlugins } from '@apptracer/sdk'; const config = { plugins: [{ name: 'plugin name', errorBeforeAdd: ..., // настройки хука errorOnThrottle: .... // настройки хука }, ... ] }; initTracerPlugins(config);

ITracerPluginsConfig

ПараметрТипОписание
pluginsITracerPlugin[]Список настроек подключаемых плагинов.

ITracerPlugin

ПараметрТипОписание
nameStringНазвание плагина.
errorOnThrottle(errorInfo: ITracerErrorInfo) => voidХук для работы с троттлингом ошибок.
errorBeforeAdd(errorInfo: ITracerErrorInfo) => ITracerErrorData | boolean | voidХук для модификации ошибок перед отправкой.

Создание плагинов с помощью addTracerPlugin

addTracerPlugin позволяет создавать плагины во время работы приложения – при использовании возвращается функция-деструктор, которую можно вызвать, если плагин больше не нужен.

ПараметрТипОписание
nameStringНазвание инстанса SDK
pluginsITracerPluginНастройки подключаемого плагина.

Пример подключения:

import { addTracerPlugin } from '@apptracer/sdk'; // SDK проинициализирован, выполняется код const plugin = addTracerPlugin({ name: 'warnings', errorBeforeAdd: ... // настройки хука });

Хук errorOnThrottle

JS SDK использует троттлинг, чтобы избежать в сервисе появления большого количества одинаковых ошибок. Функция, которую вы определите в errorOnThrottle, будет вызвана для каждой ошибки, попавшей под троттлинг – таким образом вы можете его отследить.

ВАЖНО! До активации троттлинга можно отправить до 10 «одинаковых» ошибок подряд. Далее, при продолжении «спама», допускается не более одной ошибки раз в 10 секунд.

Хук errorBeforeAdd

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 }, }; } } });