Обзор
inboundFiltersIntegration отбрасывает ненужные вам исключения ещё до того, как они покинут процесс, так что они не доходят до Buglapse и не расходуют квоту, — ожидаемые сбои вроде клиента, рано закрывшего соединение, или известной шумной ошибки из зависимости.
В Node полезна опция ignoreErrors: исключения, сообщение которых совпадает с любым шаблоном, отбрасываются. Строка совпадает, если сообщение её содержит; RegExp проверяется на сообщении.
Использование
ts
import { use } from '@buglapse/node'
import { inboundFiltersIntegration } from '@buglapse/node/integrations'
use(inboundFiltersIntegration({
ignoreErrors: ['ECONNRESET', /^Request aborted/, 'socket hang up'],
}))Опции
| Опция | Тип | По умолчанию | Описание |
|---|---|---|---|
ignoreErrors | (string | RegExp)[] | ['Script error.'] | Отбрасывать исключения, сообщение которых совпадает с любым шаблоном |
allowUrls | (string | RegExp)[] | [] | Если задано, оставлять только исключения, адрес верхнего кадра которых совпадает |
denyUrls | (string | RegExp)[] | [] | Отбрасывать исключения, адрес верхнего кадра которых совпадает |
'Script error.' по умолчанию — браузерное сообщение и на сервере не совпадает никогда; переданный ignoreErrors его заменяет.
allowUrls / denyUrls рассчитаны на браузер и здесь редко полезны. Они видят в стеке только адреса file://, http:// и https://: у ES-модулей кадры file:///app/..., а кадры CommonJS — голые пути (/app/dist/server.js:10:5) и не совпадают никогда. С заданным allowUrls исключение без такого адреса отбрасывается — в приложении на CommonJS это каждое исключение.
Для фильтрации по классу ошибки или чему-то кроме сообщения используйте препроцессор — см. Ошибки → Меньше шума. Выражение фильтра в Настройки → Фильтры проекта тоже может отбрасывать исключения по имени или сообщению на сервере — см. Фильтрация шума.