Обзор
Одну и ту же ошибку легко поймать дважды подряд. На сервере типичный случай — 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 каждый отброшенный дубликат пишется в консоль.