何がしたいか
AWS CloudWatch Logs Insight で、一定時間以上の処理に時間かかってるリクエストの割合を抽出したい。
どうやるか
>
は真の時は 1
, 偽の時は 0
になるので、 sum
で数えられる。
例えば @duration
が 2000
ms よりかかったログの全体の割合を抽出したいときはこんな感じ。
fields @duration, @duration > 2000 as slow_res
| stats count(@duration) as cnt, sum(slow_res) as slow_cnt, (slow_res / cnt) as slow_ratio
注意
公式の記述によると 1
とか 0
ではなくブール値を返すって書いてあるので使えなくなる時が来るのかも。
比較オペレーション
比較オペレーションは、filter コマンドで使用できます。また、他の関数の引数としても使用できます。比較オペレーションは、すべてのデータ型を引数として受け入れ、ブール値の結果を返します。
(強調は筆者による)