Ошибки (error_batch)
warning #EF4444
Тип error_batch — для отслеживания JS-ошибок на сайте. Не создаёт уведомлений в ленте входящих. Ошибки агрегируются сервером и доступны на дашборде ошибок.
Как работает
- SDK перехватывает все JS-ошибки (
window.onerror,unhandledrejection) - Ошибки сохраняются в localStorage браузера (с метаданными: страница, стек-трейс, время)
- При закрытии вкладки — все накопленные ошибки одной пачкой уходят на сервер
- Сервер сохраняет сырые ошибки в базу, классифицирует по severity
- После 10 минут без новых ошибок — агрегированный push: «47 ошибок на сайте»
- Push ведёт на дашборд ошибок (не на уведомление)
Почему не в ленте
Ошибки могут генерироваться десятками в минуту. Если бы каждая создавала уведомление в ленте — вы бы утонули в спаме. Вместо этого:
- Сырые данные хранятся в отдельной таблице
- Сервер ждёт 10 минут тишины — и отправляет один сводный push
- При клике на push — открывается дашборд с группировкой по ошибкам, severity, трендам
JS SDK — автоматический сбор
<script src="https://notix-hub.ru/js/notify.js"
data-token="ntx_..."
data-errors="true"></script>SDK автоматически: перехватывает window.onerror и unhandledrejection, сохраняет в localStorage, отправляет при закрытии вкладки. Никакого кода писать не нужно.
JS SDK — ручное включение
const notix = new Notix({
token: 'ntx_...',
errorTrackingEnabled: true
});Что собирается
| Поле | Описание |
|---|---|
message | Текст ошибки («Failed to fetch», «TypeError: …») |
file | Файл, в котором произошла ошибка |
line / col | Строка и колонка |
stack | Полный стек-трейс |
source | Тип: onerror (синхронные) или unhandledrejection (промисы) |
ts | ISO-время ошибки |
page | URL страницы, где произошла ошибка |
Дашборд ошибок
GET
/api/v1/analytics/errors
| Раздел | Что показывает |
|---|---|
| Summary | Всего ошибок, уникальных, health_score (0—100), critical/warning |
| Timeline | Почасовой график ошибок за период |
| Top Errors | Топ-10 ошибок по частоте, с трендом (↑/↓/→) и sample_stack |
| Severity | Разбивка: critical, warning, info |
| Benchmark | Ваш error rate vs средний по индустрии |
Классификация severity
| Ключевые слова | Severity |
|---|---|
Failed to fetch, NetworkError, SyntaxError, TypeError | critical |
Timeout, Unhandled rejection, Not Found, Unauthorized | warning |
| Всё остальное | info |
Health Score
Формула: 100 - (error_rate × 200) - (critical_count × 5)
| Диапазон | Лейбл |
|---|---|
| 90—100 | Отлично |
| 70—89 | Хорошо |
| 50—69 | Требует внимания |
| <50 | Критично |
Рекомендация
Включайте data-errors="true" на всех страницах сайта. Ошибки собираются незаметно, не влияют на производительность, и вы узнаете о проблемах до того, как их заметят пользователи.