Обзор
Неудачный HTTP-запрос не обязательно бросает исключение — 500 от внешнего API для fetch() обычный ответ, а пойманная сетевая ошибка никогда не доходит до глобальных обработчиков. httpErrorsIntegration следит за каждым исходящим запросом (глобальный fetch() и node:http / node:https) и отправляет лог уровня error для каждого, который:
- отвечает статусом не ниже
statusThreshold(по умолчанию500), или - падает на сетевом уровне (соединение отклонено, ошибка DNS, таймаут).
Каждый лог несёт атрибуты method, url и status, так что их можно искать и группировать в разделе Логи. Собственные запросы SDK на /api/envelope игнорируются.
Использование
ts
import { use } from '@buglapse/node'
import { httpErrorsIntegration } from '@buglapse/node/integrations'
use(httpErrorsIntegration())
// сообщать и об ответах 4xx:
use(httpErrorsIntegration({ statusThreshold: 400 }))Опции
| Опция | Тип | По умолчанию | Описание |
|---|---|---|---|
statusThreshold | number | 500 | Наименьший статус ответа, о котором сообщается |
Ваш код по-прежнему получает ответ (или брошенную сетевую ошибку) без изменений.