Перейти к содержимому

Обзор ​

Одну и ту же ошибку легко поймать дважды подряд. На сервере типичный случай — captureException() в catch, который затем пробрасывает ошибку: она доходит до UncaughtExceptionIntegration или обработчика ошибок фреймворка и ловится снова. Ещё пример — цикл повторов, который падает одинаково на каждой попытке.

dedupeIntegration отбрасывает исключение, если у него те же имя, сообщение и стек, что у непосредственно предыдущего исключения. Более длинной истории она не хранит: A, A, B, A отправится как A, B, A. Логи, трейсы и другие типы событий не затрагиваются.

Сравнение идёт по всему процессу, а не по запросу: два параллельных запроса, упавших с одинаковым стеком один за другим, отправятся один раз.

Использование ​

ts
import { use } from '@buglapse/node'
import { dedupeIntegration } from '@buglapse/node/integrations'

use(dedupeIntegration())

Опций нет. С debug: true каждый отброшенный дубликат пишется в консоль.