Введение в Grafana Alerting

Grafana Alerting позволяет определять правила оповещений для множества источников данных и управлять уведомлениями с гибкой маршрутизацией.

Оно построено на модели оповещений Prometheus и интегрируется со стеком Grafana, обеспечивая масштабируемую и эффективную систему оповещений для самых разных сред.

Tip

Для практического знакомства обратитесь к учебникам по началу работы с Grafana Alerting.

Как это работает вкратце

How Grafana Alerting works
  1. Grafana Alerting периодически вычисляет правила оповещений, выполняя запросы к источникам данных и проверяя их условия.
  2. Каждое правило оповещения может порождать несколько экземпляров оповещений — по одному на каждую временную серию или измерение.
  3. Если условие нарушено, экземпляр оповещения срабатывает.
  4. Сработавшие (и разрешившиеся) экземпляры оповещений отправляются на уведомление — либо напрямую в точку контакта, либо через политики уведомлений для большей гибкости.

Основы

Следующие понятия важны для понимания того, как работает Grafana Alerting.

Правила оповещений

Правило оповещения состоит из одного или нескольких запросов и выражений, которые выбирают измеряемые данные. Оно также содержит условие — порог, который правило оповещения должно достичь или превысить, чтобы сработать.

В правиле оповещения выберите точку контакта или политики уведомлений, чтобы определить, как получать уведомления об оповещениях.

Вычисление правил оповещений

Правила оповещений часто вычисляются, и состояние их экземпляров оповещений соответствующим образом обновляется. В уведомления отправляются только экземпляры оповещений, находящиеся в состоянии firing или resolved.

Экземпляры оповещений

Каждое правило оповещения может порождать несколько экземпляров оповещений (также известных как оповещения) — по одному экземпляру для каждой временной серии или измерения. Это позволяет наблюдать за множеством ресурсов в одном выражении.

promql
sum by(cpu) (
  rate(node_cpu_seconds_total{mode!="idle"}[1m])
)

Правило, использующее приведённое выше выражение PromQL, создаёт столько экземпляров оповещений, сколько ядер CPU, уже после первого вычисления, что позволяет одному правилу сообщать о состоянии каждого ядра CPU.

Multiple alert instances from a single alert rule

Демонстрацию см. в примере многомерных оповещений.

Точки контакта

Точки контакта определяют текст уведомления и то, куда уведомления отправляются. Например, у вас может быть точка контакта, которая отправляет уведомления на адрес электронной почты, в Slack, в систему управления инцидентами (IRM), такую как Grafana IRM или PagerDuty, либо в webhook.

Уведомительные сообщения

По умолчанию уведомительные сообщения включают сведения об оповещении: количество оповещений, их статус и аннотации, помогающие дежурным разобраться с проблемами. Уведомительные сообщения также можно настраивать.

В правиле оповещения вы можете выбрать точку контакта для получения уведомлений об оповещениях или вместо этого использовать политики уведомлений.

Политики уведомлений

Политики уведомлений — это расширенный вариант обработки уведомлений об оповещениях по отдельным областям, например по команде или сервису; он идеально подходит для управления крупными системами оповещений.

Политики уведомлений маршрутизируют оповещения в точки контакта по совпадению меток. Они задаются в виде древовидной структуры, корнем которой является Default notification policy, гарантирующая, что все экземпляры оповещений будут обработаны.

A diagram displaying how the notification policy tree routes alerts
Routing firing alert instances through notification policies

Каждая политика уведомлений решает, куда отправлять оповещение (точка контакта) и когда отправлять уведомление (параметры времени).

Группировка уведомлений

Чтобы снизить шум от оповещений, Grafana Alerting по умолчанию группирует связанные сработавшие оповещения в одно уведомление. Это поведение можно настроить в параметрах правила оповещения или политики уведомлений.

Silences и mute timings

Silences и mute timings позволяют приостановить уведомления, не прерывая вычисление правил оповещений. Используйте silence для разовой приостановки уведомлений, например на время окна обслуживания, а mute timings — для приостановки уведомлений через регулярные интервалы, например по вечерам и выходным.