Уведомления¶
Алерт в интерфейсе Grafana без уведомления не сдвинет разработчика с дивана. Нужны Contact Points.
Куда слать¶
Grafana не привязана к одному каналу. Все популярные мессенджеры поддерживаются из коробки или через шаблоны webhook-ов:
- Email: простая отправка через SMTP.
- Webhook: любой HTTP-получатель — настраиваем JSON-загрузку и летим куда угодно.
- Готовые интеграции: Slack, Telegram, PagerDuty, OpsGenie, Discord, MS Teams, VictorOps, Pushover, LINE, WeChat.
Notification Templates¶
Шаблоны используют Go-шаблоны для формирования текста уведомления. Можно вставить стандартное содержимое, а можно кастомизировать:
{{ range .Alerts }}
{{ .Status }}: {{ .Labels.instance }}
CPU: {{ .Values.B }}%
{{ end }}
Routing: кто получает¶
Не все алерты одинаково важны. Правило «Диск заполнен на 95%» — срочно (вызов в 3 утра, PagerDuty). «Количество запросов превысило 1000/сек» — предупреждение, можно в Slack.
Маршрутизация делает именно это: правило ставит лейбл severity=critical, и Grafana направляет алерт в PagerDuty. Лейбл severity=warning → в Slack. Можно комбинировать: один алерт идёт и в Telegram, и на email.
Grouping и Throttling¶
Если упали все хосты, вы получите столько же уведомлений, сколько хостов. Grouping объединяет их по ключу, например, alertname или datacenter, — и присылает одно сообщение со списком пострадавших хостов вместо лавины отдельных.
- Group wait — сколько ждать перед отправкой первого уведомления.
- Group interval — с каким интервалом повторять уведомления.
- Max notifications per hour — потолок.
- Notification cooldown — пауза после отправки.
Цель — не дать каналу захлебнуться. Лавина уведомлений — верный способ заставить разработчика выключить телефон.