Перейти к содержанию

Уведомления

Алерт в интерфейсе 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 — пауза после отправки.

Цель — не дать каналу захлебнуться. Лавина уведомлений — верный способ заставить разработчика выключить телефон.