Issues
issues отвечает только за события, которые Hawk JavaScript catcher собирает сам: глобальные ошибки в браузере и, при необходимости, performance-события — Web Vitals, Long Tasks и Long Animation Frames.
Ручная отправка событий не зависит от issues. То есть hawk.send(), , обработчики фреймворков и любой код, который вы вызываете сами, продолжат работать даже при:
hawk.captureError()
или
Эти настройки отключают только встроенный сбор событий, описанный ниже.
Через issues можно включать и выключать встроенный сбор событий:
-
глобальные ошибки браузера:
window.errorи;window.unhandledrejection - performance-события: плохие Web Vitals, длинные задачи и тяжёлые кадры;
-
общую фильтрацию через
, как и для обычных событий.beforeSend
Чтобы отключить весь встроенный сбор из issues, передайте:
В этом случае Hawk не будет сам подписываться на глобальные ошибки браузера и не запустит performance-детекторы.
Но ручная отправка по-прежнему будет работать:
Если issues не передан или передан пустой объект:
то глобальные ошибки браузера включены по умолчанию.
А вот performance-детекторы по умолчанию выключены:
Их нужно включать явно:
| Ключ | Что делает |
errors
|
Включает или выключает обработчики и
|
webVitals
|
Включает сбор Core Web Vitals через
|
longTasks
|
Включает сбор Long Tasks через Performance API |
longAnimationFrames
|
Включает сбор Long Animation Frames |
Детектор считается включённым, если значение не undefined и не .
false
Например, оба варианта включают детектор:
полностью отключает встроенный сбор из блока :
issues
- глобальные ошибки браузера не перехватываются;
- Web Vitals не собираются;
- Long Tasks не собираются;
- Long Animation Frames не собираются.
При этом ручные вызовы остаются доступными:
Глобальный перехват ошибок теперь настраивается через:
Раньше для этого использовался параметр:
Сейчас он считается deprecated.
Пока старый параметр ещё поддерживается. Если указать:
то глобальные обработчики не будут подключены даже при:
Для новых интеграций лучше использовать только issues.errors.
| Было | Стало |
disableGlobalErrorsHandling: true
|
issues: { errors: false }
|
| не задавать настройку |
не задавать или указать
|
Важно:
означает только «не подписываться на глобальные ошибки браузера».
Это не запрещает отправку ошибок вручную. Ошибки из ,try/catch hawk.send(error), и других ручных вызовов будут отправляться как раньше.
hawk.captureError(error)
Включить сбор Web Vitals можно так:
или с собственными порогами:
Поддерживаются метрики:
| Метрика | Что означает | Порог по умолчанию | Зачем нужна |
| CLS | Cumulative Layout Shift | 0.35 | Показывает визуальную стабильность страницы. |
| INP | Interaction to Next Paint | 700 мс | Показывает скорость реакции страницы на действия пользователя. |
| LCP | Largest Contentful Paint | 5000 мс | Показывает скорость загрузки основного контента. |
| FCP | First Contentful Paint | 4000 мс | Показывает, когда пользователь впервые видит контент. |
| TTFB | Time to First Byte | 2500 мс | Показывает скорость ответа сервера. |
Событие отправляется только если значение метрики строго больше заданного порога.
Для каждой метрики событие отправляется не чаще одного раза за время жизни страницы.
В Hawk событие будет выглядеть примерно так:
longTasks включает отслеживание длинных задач через Performance API.
Можно задать свой порог:
По умолчанию порог — 100 ms.
Минимальный кастомный порог — 50 ms.
Событие отправляется только если:
- длительность задачи больше или равна порогу;
-
у первой
естьattribution,containerSrcилиcontainerId.containerName
Заголовок события:
Если браузер не поддерживает longtask, наблюдатель не создаётся. Ошибки из-за этого не будет.
longAnimationFrames включает отслеживание тяжёлых кадров.
Можно задать свой порог:
По умолчанию порог — 300 ms.
Минимальный кастомный порог — 50 ms.
Событие отправляется только если:
- длительность кадра больше или равна порогу;
-
в
есть скрипт сscripts,sourceURLилиsourceFunctionName.invoker
Заголовок события:
Иногда к нему добавляется суффикс с информацией о скрипте.
Данные попадают в в блок payload.addons"Long Frame".
Если браузер не поддерживает long-animation-frame, детектор не запускается.
Все настройки задаются при создании catcher:
События, собранные через , проходят через issues, как и обычные события.
beforeSend
В их можно отфильтровать или изменить:
beforeSend
Для таких событий удобно настроить группировку по заголовкам: