AWSではCloudWatch Logsにたまったログを集計する場合、ElasticSearchなどに連携する以外にCloudWatch Logs Insightsを使って検索することもできます。Insightsのクエリではstats句で簡単な集計を行えるのですが、ここで日付のまるめを行うbin関数の単位(period)についてドキュメントに言及がなかったので試してみました。
CluudWatch Logs Insights bin関数の定義
例えば、.NET の1日当たりの例外件数を集計したいならこうなりますね。
filter Level = 'Error'
| stats count(*) by bin(1d)
m(分)やh(時)で丸めることはありますが、月で丸めたくなり、おや??どうするんだろう?あっmonthでいいのか、他に何使えるんだろう?が事の発端でした。
結果このあたりが利用できることが分かりました。一通り試した後にGoogleで検索したら、あっ、Splankと同じ語句が利用できる。とわかって力が抜けました。
period | 指定する単位 |
---|---|
秒 | s, sec, secs, second, seconds |
分 | m, min, minute, minutes |
時 | h, hr, hrs, hour, hours |
日 | d, day, days |
週 | w, week, weeks |
月 | m, mon, month, months |
期 | q, qtr, qtrs, quater, quaters |
年 | y, yr, yrs, year, years |
ms(ミリ秒)も構文エラーにはならず、検索できることもありますが、ブラウザーが応答しなくなったりエラーになったりします。
まぁ、秒以下の集計ってログだと必要なさそうですしね。