数億年振りに Datadog の Web UI からポチポチと monitor を新規作成していた所、見慣れない項目を見つけました。
Evaluation window
公式ドキュメント (Configure Monitors) 上は 2022/10/13 に追記されていたようです。([Monitors] Document cumulative evaluation windows by Dalje-et · Pull Request #15383 · DataDog/documentation Configure Monitors)
これまで、ある一定期間でデータをまとめるような機能は、Rollup がありましたが、起点を変えることはできなかったので、 個人的には非常に嬉しい機能です。 何時台の件数とか、SaaSの月額利用料とか、色々と使えそうです。
Rolling time windows
図の右側です。時間の経過とともに開始点が移動します。
直近の N [分|時間|日]
を対象に評価されます。
これまでの Datadog Monitor の動作です。
Cumulative time windows
図の左側です。固定の開始点を持ち、時間とともに拡大されます。
新たに加わった機能です。
現時点で時間枠としてサポートされているのは以下3つです。 (公式ドキュメントより)
- Current hour: 構成可能な分単位で開始する最大1時間のタイムウィンドウです。 例えば、HTTP エンドポイントが 0 分から 1 時間の間に受けたコールの量を監視します。
- Current day: 構成可能な 1 日の時分から始まる、最大 24 時間のタイムウィンドウです。例えば、1 日のログインデックスクォータを監視するには、current day タイムウィンドウを使い、UTC 2:00pm から開始するようにします。
- Current month: 当月 1 日午前 0 時 (UTC) を起点に、当月を振り返ります。このオプションは、1 か月単位のタイムウィンドウを表し、メトリクスモニターでのみ利用可能です。
例
公式記載の例で、 "daily log index quota" についての記載がありますが、このためにこの機能を追加したのではないかと思える例です。
daily log index quota とは
Datadog Logs の機能として、ログインデックスの1日の取り込み量が指定値を超過した場合にインデックス化を停止する設定が行なえます。
この値は設定値脇の記載の通り、日次 02:00 UTC (23:00(JST))
にリセットされます。
超過した場合に daily quota reached
Event が発生するのでそれを通知することで超過に気付くことができます。
実際には超過して停止される前に対処を行いたい所です。
公式ドキュメント内でも、割当の 80 % を超えたら通知することを推奨しています。
If an index has a daily quota, Datadog recommends that you set the monitor that notifies on that index’s volume to alert when 80% of this quota is reached within the past 24 hours.
ドキュメント内での monitor 例は概要の記載 (Alert when an indexed log volume passes a specified threshold) しか無く、具体的な monitor の設定例までは記載されていません。
monitor 例
公式の手順に沿って作成します。
- "Log Explorer" に移動し、インデックス名で検索、"Create monitor" を押下
- ※ Window 設定で
current day
を設定Evaluate the query over the current day starting at 23:00
- thredshold に任意の値( daily quota 設定値の 80% 等) を設定
設定後、 monitor status を見てみると、値が加算されて行き、指定した時間帯になるとリセットされていることが確認できます。データポイントは10分置きに作成されていました。