Правила алертинга¶
До Grafana 13 правила алертинга были простыми: порог, триггер. Теперь многомерный движок поддерживает выражения — не просто точки с запятыми.
Устройство правила¶
Правило состоит из запроса (A) и выражений (B, C, D, E). Порядок: A запрашивает временной ряд из источника данных, B → C → D → E его обрабатывают.
Reduce¶
Каждое выражение применяет агрегатную функцию к векторам:
- avg, min, max — среднее, минимум, максимум.
- last — только последнее значение (самое полезное для алертов).
- sum, count — сумма или количество элементов.
Результат — вектор. Дальше одно или несколько значений.
Классическое условие¶
# A: временной ряд
avg by (host) (rate(cpu_seconds_total[5m]))
# B: Reduce Last — последнее значение
# C: Threshold > 0.8
Условие: «Если последнее значение временного ряда А больше 0.8 — алерт».
Multidimensional alerting¶
Когда правило использует avg by (host), Grafana создаёт отдельный алерт для каждого хоста. Если хост server-01 перегреется, алерт сработает только на него. Остальные хосты затронуты не будут.
Это фундаментально отличается от старого подхода, где правило «среднее по всем > 80» не замечало, что у 90% серверов CPU 10%, а у одного — 95%.
Folder и Evaluation Group¶
Правила принадлежат папке. Папка включает Evaluation Group — группа правил, которые оцениваются одновременно с одним интервалом. Правила высокого приоритета (инфраструктура) — интервал 1 минута. Низкого (бизнес-метрики) — 15 минут.
Советы¶
- Не лепите всё в одну группу. Скорость оценки группы пропорциональна количеству запросов в группе. Если в одной группе 20 правил, каждое из которых выполняется 5 секунд, интервал не должен быть меньше 100 секунд.
- Используйте Reduce Last, а не Max или Avg, для алертов с состоянием. Max при спайке CPU даст ложный алерт и тут же сбросит его. Last — стабилен.
- Preview — тестируйте перед запуском.