概要
Datadogにおける監視機能としてmonitorがありますが、monitorはアラートの発生条件(しきい値やイベント)、発生した際のアクション、などについて設定を行うことができます。
EC2のタグの内容によってアクションを変えてみた、というのが本TIPSの内容になります。
is_matchを使う
monitorの設定では通常、アラートのレベルなどで通知内容を変えたりする場合、Say what's happening
の箇所に下記のように記述すると思います。
{{#is_alert}}
Alert
@alert通知先メールアドレス
{{/is_alert}}
{{#is_warning}}
Warning
@warning通知先メールアドレス
{{/is_warning}}
こうすると、alertの場合は本文にalertと入り、通知先はalert用アドレス、warningの場合には本文にwarningと入り、通知先はwarning用アドレス、となりますね。
このis_なんちゃらシリーズには下記のようなものがあります。
is_alert
is_alert_recovery
is_no_data
is_no_data_recovery
is_recovery
is_match
is_exact_match
is_warning
is_warning_recovery
この中で注目は is_match です。
これは、{{変数}}で展開できる変数がマッチした場合にアクションを起こすことができる機能です。
monitorの中で使用する場合は、下記のような書式になります。
{{#is_match "変数名" "値"}}
アラート本文
@通知先アドレス
{{/is_match}}
変数としてEC2のタグを使用する場合、{{host.Key}}となります。
たとえば、環境名としてenvというKeyのタグを使用し、valueに本番環境のインスタンスにはprod,開発環境にはdevという値をつけたとします。
その環境下で、本番環境のみアラート通知がしたいという場合、
{{#is_match "host.env" "prod"}}
アラート本文
@通知先アドレス
{{/is_match}}
というmonitor設定をすることにより、本番環境のみアラート通知を行うことができます。
開発環境も通知がしたいが、内容を変えたい、という場合は下記のようにすることができます。
{{#is_match "host.env" "prod"}}
本番環境アラート本文
@通知先アドレス
{{/is_match}}
{{#is_match "host.env" "dev"}}
開発環境用アラート本文
@通知先アドレス
{{/is_match}}
また、is_なんちゃらはネストすることが可能で、下記のような設定もできます。
{{#is_alert}}
{{#is_match "host.env" "prod"}}
本番環境アラート本文
@通知先アドレス
{{/is_match}}
{{#is_match "host.env" "dev"}}
開発環境用アラート本文
@通知先アドレス
{{/is_match}}
{{/is_alert}}
以上です。