HTTP全リクエストのうち、4XXエラーが一定の割合を超えたらアラートを上げたいことがあると思います。
ただ、深夜帯などでリクエスト数そのものが少ない場合は4XXエラーがそれほど多くなくても全体に対する割合が増えてアラートになってしまうので、このような時はアラートを上げたくない場合、Datadogでは複合条件モニターを設定することで要求が満たせます。
設定方法は以下の通りです。
1. まずHTTP全リクエスト数を監視する監視項目を定義する
・ ここでは5分間のリクエスト数合計が1,200を上回ったらエラーとする
QUERY: sum(last_5m):sum:aws.applicationelb.request_count{aws_account:xxxxxxxxxxxx} by {name,region}.as_count().rollup(avg, 300) >= 1200
・ エラー時に通知は行わない(後述で定義する複合条件モニター監視項目にて設定)
2. 次に全リクエストに対する4XXエラーの割合を監視する監視項目を定義する
・ ここでは4XXエラーの割合がリクエスト全体の30%を上回ったらエラーとする
QUERY: sum(last_5m):sum:aws.applicationelb.httpcode_target_4xx{aws_account:xxxxxxxxxxxx} by {name,region}.as_count() / sum:aws.applicationelb.request_count{aws_account:xxxxxxxxxxxx} by {name,region}.as_count() * 100 >= 30
・ エラー時に通知は行わない(後述で定義する複合条件モニター監視項目にて設定)
3. 最後に上記2つの監視項目をAND条件で結び、両方ともエラーの時(つまり、5分間のリクエスト数合計が1,200を超え、かつ4XXエラーの割合が全体の30%を上回った場合)にアラートを上げる監視項目を定義する
QUERY: AAAAAAAA && BBBBBBBB (*) AAAAAAAAは1.で作成した監視項目のID、BBBBBBBBは2.で作成した監視項目のID