Datadogでアラート通知する際、ステータスによって通知本文を出し分けする方法。
Datadogでは、通知に使えるテンプレート変数というものが用意されていて条件毎のメッセージの出し分けに対応していました。とても便利!!
主なテンプレート変数のまとめ
変数名 | 条件 |
---|---|
#is_alert | アラートトリガ時にマッチ |
#is_recovery | リカバリ時にマッチ |
#is_no_data | datadog-agentからデータが一定時間来ない時にマッチ (if data is missing for more than "" minutesをNotifyにした場合にきく |
#is_match | タグ変数(host.role,url.name,カスタムしてるタグetc) |
サンプル
【設定箇所】
[Monitors]→[4 Say what`s happening]
【サンプルの条件】
- 通知先は共通(@slack-[チャンネル名])
- アラート時(is_alert)に、さらにurl.nameというタグ毎に条件判定(is_match)を行い、条件毎に異なるメッセージを発報
- no_data時は、datadog-agentの状態確認するメッセージを出力
- 復旧時(is_recovery)は共通のメッセージを出す
@slack-[チャンネル名]
{{#is_alert}}
{{#is_match "url.name" "http://10.0.3.188"}}
テストサービスで異常を検知しました。 {{url.name}}
{{/is_match}}
{{#is_match "url.name" "http://10.0.3.189"}}
ダミーサイトエラー {{url.name}}
{{/is_match}}
{{/is_alert}}
{{#is_no_data}}
監視が停止しています。datadog-agentが動いている事を確認してください。
{{/is_no_data}}
{{#is_recovery}}
復旧しました。 {{url.name}}
{{/is_recovery}}
Datadog 最近触り始めたけど中々使いやすい。
参照