Введение в Grafana Alerting
Grafana Alerting позволяет определять правила оповещений для множества источников данных и управлять уведомлениями с гибкой маршрутизацией.
Оно построено на модели оповещений Prometheus и интегрируется со стеком Grafana, обеспечивая масштабируемую и эффективную систему оповещений для самых разных сред.
Tip
Для практического знакомства обратитесь к учебникам по началу работы с Grafana Alerting.
Как это работает вкратце
- Grafana Alerting периодически вычисляет правила оповещений, выполняя запросы к источникам данных и проверяя их условия.
- Каждое правило оповещения может порождать несколько экземпляров оповещений — по одному на каждую временную серию или измерение.
- Если условие нарушено, экземпляр оповещения срабатывает.
- Сработавшие (и разрешившиеся) экземпляры оповещений отправляются на уведомление — либо напрямую в точку контакта, либо через политики уведомлений для большей гибкости.
Основы
Следующие понятия важны для понимания того, как работает Grafana Alerting.
Правила оповещений
Правило оповещения состоит из одного или нескольких запросов и выражений, которые выбирают измеряемые данные. Оно также содержит условие — порог, который правило оповещения должно достичь или превысить, чтобы сработать.
В правиле оповещения выберите точку контакта или политики уведомлений, чтобы определить, как получать уведомления об оповещениях.
Вычисление правил оповещений
Правила оповещений часто вычисляются, и состояние их экземпляров оповещений соответствующим образом обновляется. В уведомления отправляются только экземпляры оповещений, находящиеся в состоянии firing или resolved.
Экземпляры оповещений
Каждое правило оповещения может порождать несколько экземпляров оповещений (также известных как оповещения) — по одному экземпляру для каждой временной серии или измерения. Это позволяет наблюдать за множеством ресурсов в одном выражении.
sum by(cpu) (
rate(node_cpu_seconds_total{mode!="idle"}[1m])
)
Правило, использующее приведённое выше выражение PromQL, создаёт столько экземпляров оповещений, сколько ядер CPU, уже после первого вычисления, что позволяет одному правилу сообщать о состоянии каждого ядра CPU.
Демонстрацию см. в примере многомерных оповещений.
Точки контакта
Точки контакта определяют текст уведомления и то, куда уведомления отправляются. Например, у вас может быть точка контакта, которая отправляет уведомления на адрес электронной почты, в Slack, в систему управления инцидентами (IRM), такую как Grafana IRM или PagerDuty, либо в webhook.
Уведомительные сообщения
По умолчанию уведомительные сообщения включают сведения об оповещении: количество оповещений, их статус и аннотации, помогающие дежурным разобраться с проблемами. Уведомительные сообщения также можно настраивать.
В правиле оповещения вы можете выбрать точку контакта для получения уведомлений об оповещениях или вместо этого использовать политики уведомлений.
Политики уведомлений
Политики уведомлений — это расширенный вариант обработки уведомлений об оповещениях по отдельным областям, например по команде или сервису; он идеально подходит для управления крупными системами оповещений.
Политики уведомлений маршрутизируют оповещения в точки контакта по совпадению меток. Они задаются в виде древовидной структуры, корнем которой является Default notification policy, гарантирующая, что все экземпляры оповещений будут обработаны.
Каждая политика уведомлений решает, куда отправлять оповещение (точка контакта) и когда отправлять уведомление (параметры времени).
Группировка уведомлений
Чтобы снизить шум от оповещений, Grafana Alerting по умолчанию группирует связанные сработавшие оповещения в одно уведомление. Это поведение можно настроить в параметрах правила оповещения или политики уведомлений.
Silences и mute timings
Silences и mute timings позволяют приостановить уведомления, не прерывая вычисление правил оповещений. Используйте silence для разовой приостановки уведомлений, например на время окна обслуживания, а mute timings — для приостановки уведомлений через регулярные интервалы, например по вечерам и выходным.