Grafana8以降のAlertとNotificationの設定

久々に自宅で動かしているGrafanaのバージョンアップをしました 7 -> 10
Grafana7からGrafana10に変えると、AlertRuleやNotificationの設定画面が結構変わっていたのでメモとしてまとめます
どうもGrafana8から Notification Policies などとして大きく(?)変わったようです

ドキュメント: https://grafana.com/docs/grafana/v10.1/alerting/alerting-rules/create-notification-policy/

Alert Rule

クエリ部分は基本的に変わってないので省略

alert evaluation behavior として、FolderとEvaluation groupを指定します

Folder は Alert Rule をまとめるもので、
Evaluation group は評価間隔をグループとしてまとめるもののようです
(Evaluation groupはどういう名前で管理するのかピンときてないので適当な名前にしてます)

Configure notification という設定項目があります
ここで、通知方法などを制御します。後述します

Contact points

Contact points という画面で通知先を管理します
今回 Grafana7 -> 10 にバージョンアップする段階で slackdiscord という通知先をすでに登録していたため、
自動的に作成されたデフォルトの通知先グループである autogen-contact-point-default には slack discord の2つが登録されていました

Notification policies

Notification policies という画面で通知先のルーティングなどの設定をします ルーティングテーブルのように上からルールが評価されるっぽくて、どのルールにも引っかからなかった場合に Default policy が適用されるようです

New nested policy からルールを追加します

  • Continue matching subsequent nodes のチェックを外すことで、そのルールで評価を止める(以下のルールを評価しない)
  • Override general timings で通知に関する細かい時間設定を上書きできる
    • Group wait アラートが発火してから通知するまでの時間
    • Group interval 最初に通知が実行されたあとに、同じグループの新しい通知を送信するまでの待ち時間
    • Repeat interval アラートを再送信する時間

mute timing を設定することで、例えば曜日や時間帯によって通知を無効化する設定をすることができます

AlertRule と NotificationPolicy を組み合わせる

Alert ruleの設定で、Configure notifications にて、labelをつけます
ここで設定したlabelがNotification policiesで評価されて通知先の制御ができます
Preview routing ボタンで、どのNotification policyが適用されるかのプレビューができます