Files
onGuard24/docs/IRM_GRAFANA_PARITY.md
Alexandr 18ba48e8d0
Some checks failed
CI / test (push) Successful in 43s
Deploy / deploy (push) Failing after 17s
release: v1.10.0 — модуль команд (teams), team_id на алертах
- Alembic 006: teams, team_label_rules, irm_alerts.team_id
- Вебхук: сопоставление команды по правилам лейблов (priority)
- API/UI Команды; алерты: JOIN team, фильтр team_id
- Тесты test_team_match, test_teams_api; обновлён test_root_ui

Made-with: Cursor
2026-04-03 15:34:46 +03:00

4.0 KiB
Raw Permalink Blame History

Сравнение onGuard24 с Grafana IRM (Alerting / Incident)

Grafana Cloud / IRM даёт группы алертов, Acknowledge / Resolve, инциденты, команды (teams), эскалационные цепочки, расписания дежурств. Ниже — что уже есть в onGuard24 и что планировать отдельно.

Уже есть (после разделения алерт / инцидент)

Grafana IRM (идея) onGuard24
Входящие уведомления от интеграции Webhook POST /api/v1/ingress/grafanaingress_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-задел
Teams (команда по лейблам) Таблицы teams, team_label_rules, поле irm_alerts.team_id; вебхук подбирает команду по первому совпадению правила (priority); UI/API Команды, фильтр по команде в Алертах

Пока нет (зрелые следующие этапы)

Функция Grafana IRM Заметка
Teams как маршрутизация уведомлений (кому слать из коробки) Команда назначена на алерт; цепочки уведомлений по team — впереди (связка с escalations / contact points)
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, где алерт и инцидент разведены.