40 lines
3.6 KiB
Markdown
40 lines
3.6 KiB
Markdown
|
|
# Сравнение onGuard24 с Grafana IRM (Alerting / Incident)
|
|||
|
|
|
|||
|
|
Grafana Cloud / IRM даёт **группы алертов**, **Acknowledge / Resolve**, **инциденты**, **команды (teams)**, **эскалационные цепочки**, **расписания дежурств**. Ниже — что уже есть в onGuard24 и что планировать отдельно.
|
|||
|
|
|
|||
|
|
## Уже есть (после разделения алерт / инцидент)
|
|||
|
|
|
|||
|
|
| Grafana IRM (идея) | onGuard24 |
|
|||
|
|
|--------------------|-----------|
|
|||
|
|
| Входящие уведомления от интеграции | Webhook `POST /api/v1/ingress/grafana` → `ingress_events` + **`irm_alerts`** |
|
|||
|
|
| Статусы firing / acknowledged / resolved | Поле **`irm_alerts.status`**, UI **Алерты**, API `PATCH …/acknowledge`, `…/resolve` |
|
|||
|
|
| Просмотр labels / сырого payload | Карточка алерта в UI, JSON вебхука |
|
|||
|
|
| Инцидент как отдельная сущность | **`incidents`**, создание вручную или кнопка «Создать инцидент» на алерте; связь **`incident_alert_links`** |
|
|||
|
|
| Эскалации (JSON-шаги) | Модуль **Эскалации** (`escalation_policies`) — без автодвижка по таймерам |
|
|||
|
|
| Контакты / каналы | Модуль **Контакты** |
|
|||
|
|
| Расписания (заглушка) | **Календарь дежурств** — UI-задел |
|
|||
|
|
|
|||
|
|
## Пока нет (зрелые следующие этапы)
|
|||
|
|
|
|||
|
|
| Функция Grafana IRM | Заметка |
|
|||
|
|
|---------------------|---------|
|
|||
|
|
| **Teams** с фильтрами и привязкой маршрутов | Нет сущности `team`; алерты не маршрутизируются по команде |
|
|||
|
|
| **Alert groups** (несколько алертов в одной группе с общим ID) | Сейчас **одна строка `irm_alerts` на один webhook**; группировка fingerprint / rule_uid — отдельная задача |
|
|||
|
|
| **Silence / Restart** из UI | Статус `silenced` в БД зарезервирован, логика не подключена |
|
|||
|
|
| **Эскалация по таймеру** (wait 15m → notify next) | Политики есть, **фонового исполнителя** нет |
|
|||
|
|
| **On-call из расписания** в цепочке | Нет связи schedules → escalation executor |
|
|||
|
|
| **Пользователи / «Mine» / назначение** | Нет учётных записей onGuard24 для дежурного; `acknowledged_by` — свободный текст (можно расширить) |
|
|||
|
|
| **Интеграция обратно в Grafana** (resolve в Grafana из IRM) | Не делалось |
|
|||
|
|
|
|||
|
|
## Переменные окружения
|
|||
|
|
|
|||
|
|
- **`AUTO_INCIDENT_FROM_ALERT`** — если `1` / `true`, сохраняется старое поведение: **каждый** вебхук ещё и создаёт строку в **`incidents`**. По умолчанию **выключено**: только **`irm_alerts`**.
|
|||
|
|
|
|||
|
|
## Рекомендуемый поток
|
|||
|
|
|
|||
|
|
1. Grafana → webhook → **алерт** (`firing`).
|
|||
|
|
2. Дежурный в **Алертах**: прочитал → **Ack** → разобрался → **Resolve** (или сразу Resolve).
|
|||
|
|
3. При необходимости **Создать инцидент** (документирование, задачи, эскалация вручную).
|
|||
|
|
|
|||
|
|
Так модель ближе к IRM, где **алерт** и **инцидент** разведены.
|