Настройка уведомлений Grafana
Основным преимуществом настройки уведомлений из Grafana является агрегация нескольких источников данных. Можно построить запрос и уведомления агрегируя сразу данные из InfluxDB и Prometheus.
Основным минусом является достаточно сложная и путанная настройка уведомлений и не очень понятная документация.
При создании уведомлений можно применять шаблоны составленные по правилам.
Основной порядок настройки уведомлений:
- Создание события уведомления
Alert rule
. Событие может быть создано из панели или напрямую в интерфейсе. - Задать название событию.
- Добавить запрос данных из источника. Если была выбрана конкретная панель для создания используются запрос из панели (надо скорректировать отборы).
Судя по всему нет возможности на прямую соединить два разных запроса из разных источников в пост обработке.
- Настройка пост обработки. Не обязательно можно сразу использовать результат запроса.
- Блок
Reduce
используется для сокращения запроса до одного значения на ряд. - Блок
Threshold
устанавливает правила по которым формируется уведомления например значение больше N.
- Блок
- Установить источник уведомления. У одного из блоков должно быть прожато
Set as alert condition
этот блок будет отвечать за вызов уведомления.
- Настройка проверки условий
- Для настройки надо создать папку
- В папке надо создать или выбрать группу. В группе устанавливается как часто будет выполняться проверка данных на вызов события
Evaluation interval
. - Установить
Pending period
это время которое допускается срабатывания события без отправки уведомления. Грубо говоря задержка для перекрытия всплесков. Может быть установлено только кратноEvaluation interval
. - Для некоторых запросов важно настроить поведение когда нет данных в запросе в пункте
Alert state if no data or all values are null
что бы избежать лишних срабатываний.
- Установка правил уведомления.
- Можно установить конкретную точку уведомления (не рекомендуется)
- Правильно установить метку по которой будет выполняться вызов уведомления.
- Задание описания и данных уведомления
- В основном я использую блок
Description
и там формирую шаблонами уведомления для отправки. - В пункте
Dashboard and panel
можно сменить привязку к конкретной панель. Эту панель можно будет вывести в сообщении и возле нее на дашборде появится значок уведомления и контроля события. - Дополнительные данные можно передать через
Custom annotation
которые можно использовать в шаблоне.
- В основном я использую блок
- Основной этап создания события уведомления закончен.
Настройка отправителей уведомлений:
Настройка отправки сообщений выполняется в разделе Contact points
тут же определяются шаблоны сообщений в разделе Notification Templates
.
Contact Points может быть использован для любого количества правил уведомления.
Задание шаблона сообщения выполняется в конкретной Contact Points
в пункте Message Template:
.
У шаблона обязательно должно быть задан заголовок в формате
{{ define "Уведомление о перегреве" }}
...
{{ end }}
При создании шаблона можно воспользоваться подбором данных уведомлений для проверки работы шаблона.
Список будет доступен только из тех уведомлений которые активны в текущий момент времени.
Настройка правил уведомления:
Настройка правил по которым выполняется отправка уведомлений задается в разделе Notification policies
основное разделение выполняется по меткам установленных при создании уведомления в пункте 7.
Matching labels
- выполняет отбор уведомлений для применения правил;
Repeat interval
- переопределяет правила повторной отправки уведомлений;
Mute timings
- отвечает за правила когда уведомления не отправляются, правила создаются в разделе Notification policies
-> Mute Timings
.
Пример правил настройки событий: Пример настроенных уведомлений для Grafana
![[Настроенные правила уведомления.json]]