Правила алертов
Тема дорожной карты · Grafana
Правила алертинга в Grafana определяют условия, при которых алерт переходит из состояния Normal в Firing, и создаются в Alerting > Alert rules интерфейса Grafana или через HTTP API Grafana и YAML-файлы провизионирования. Каждое правило алертинга содержит запрос (написанный на PromQL, LogQL, SQL или другом поддерживаемом языке), выражение свёртки, сводящее временной ряд к одному значению для каждого набора меток, пороговое выражение, сравнивающее свёрнутое значение с условием (например, IS ABOVE 90), и параметры вычисления — интервал оценки и длительность For (как долго условие должно выполняться, прежде чем алерт сработает). Правила алертинга организованы в группы внутри папок, а разрешения RBAC папки контролируют, кто может просматривать и редактировать правила. Каждое правило алертинга может содержать пользовательские метки (например, severity=critical или team=infra), которые Grafana Alerting использует для маршрутизации алерта к правильной точке доставки через политики уведомлений. Тестирование правила алертинга до сохранения возможно с помощью кнопки Preview, которая выполняет запрос и показывает текущее состояние всех наборов меток без реальной отправки уведомлений.
Как это работает
Правила алертов (unified alerting с Grafana 9) позволяет определять alert rules с PromQL/LogQL/SQL-запросами + периодически оценивать + роутить к contact points. Rules в папках; папки наследуют notification policies. Notification channels: Slack, PagerDuty, OpsGenie, Telegram, email, webhook, MS Teams. Состояния алертов: Normal, Pending (условие выполнено, но ещё не дошло до "for"-длительности), Firing.
Когда применять
Grafana alerting — если хотите алерты, охватывающие несколько datasources (одно правило, комбинирующее Prometheus + Loki — полезно для SLO с errors + latency). Prometheus + Alertmanager напрямую — если хотите single PromQL/Alertmanager-стек. Выберите один и держитесь его; гонять оба создаёт путаницу дублирования правил.
Типичные ошибки
Ловушки Правила алертов: алерты без "for:"-длительности (flapping); имена алертов без контекста (HighCPU — на чём? когда?); нет runbook-ссылки в annotations; все алерты в один Slack-канал (alert fatigue — роутьте по severity).