Настройка уведомлений Grafana

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

Основным минусом является достаточно сложная и путанная настройка уведомлений и не очень понятная документация.

При создании уведомлений можно применять шаблоны составленные по правилам.

Основной порядок настройки уведомлений:

  1. Создание события уведомления Alert rule. Событие может быть создано из панели или напрямую в интерфейсе.
  2. Задать название событию.
    Программа визуализации статистики Grafana-2.png
  3. Добавить запрос данных из источника. Если была выбрана конкретная панель для создания используются запрос из панели (надо скорректировать отборы).
    Программа визуализации статистики Grafana-3.png
Ограничение

Судя по всему нет возможности на прямую соединить два разных запроса из разных источников в пост обработке.

  1. Настройка пост обработки. Не обязательно можно сразу использовать результат запроса.
    1. Блок Reduce используется для сокращения запроса до одного значения на ряд.
    2. Блок Threshold устанавливает правила по которым формируется уведомления например значение больше N.
  2. Установить источник уведомления. У одного из блоков должно быть прожато Set as alert condition этот блок будет отвечать за вызов уведомления.
    Программа визуализации статистики Grafana-4.png
  3. Настройка проверки условий
    1. Для настройки надо создать папку
    2. В папке надо создать или выбрать группу. В группе устанавливается как часто будет выполняться проверка данных на вызов события Evaluation interval.
    3. Установить Pending period это время которое допускается срабатывания события без отправки уведомления. Грубо говоря задержка для перекрытия всплесков. Может быть установлено только кратно Evaluation interval.
    4. Для некоторых запросов важно настроить поведение когда нет данных в запросе в пункте Alert state if no data or all values are null что бы избежать лишних срабатываний.
      Программа визуализации статистики Grafana-5.png
  4. Установка правил уведомления.
    1. Можно установить конкретную точку уведомления (не рекомендуется)
    2. Правильно установить метку по которой будет выполняться вызов уведомления.
      Программа визуализации статистики Grafana-6.png
  5. Задание описания и данных уведомления
    1. В основном я использую блок Description и там формирую шаблонами уведомления для отправки.
    2. В пункте Dashboard and panel можно сменить привязку к конкретной панель. Эту панель можно будет вывести в сообщении и возле нее на дашборде появится значок уведомления и контроля события.
    3. Дополнительные данные можно передать через Custom annotation которые можно использовать в шаблоне.
      Программа визуализации статистики Grafana-7.png
  6. Основной этап создания события уведомления закончен.

Настройка отправителей уведомлений:

Настройка отправки сообщений выполняется в разделе Contact points тут же определяются шаблоны сообщений в разделе Notification Templates.

Contact Points может быть использован для любого количества правил уведомления.

Задание шаблона сообщения выполняется в конкретной Contact Points в пункте Message Template:.

У шаблона обязательно должно быть задан заголовок в формате

{{ define "Уведомление о перегреве" }}
...
{{ end }}

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

Настройка правил уведомления:

Настройка правил по которым выполняется отправка уведомлений задается в разделе Notification policies основное разделение выполняется по меткам установленных при создании уведомления в пункте 7.

Программа визуализации статистики Grafana.png
Matching labels - выполняет отбор уведомлений для применения правил;
Repeat interval - переопределяет правила повторной отправки уведомлений;
Mute timings - отвечает за правила когда уведомления не отправляются, правила создаются в разделе Notification policies -> Mute Timings.

Пример правил настройки событий: Пример настроенных уведомлений для Grafana
![[Настроенные правила уведомления.json]]