1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cronjobモニタリングの「No Evaluation History Found」問題とrequire_full_windowの設定およびベストプラクティス

Last updated at Posted at 2025-09-03

はじめに

cronjobのWarnログ検知モニターが正常に検知できていない現象が発生していました。調査を進めた結果、Datadogの「require full window」設定に起因する問題であることが判明しました。本記事では、この問題の詳細と解決方法、そしてcronjobモニタリングのベストプラクティスについて共有します。

問題の概要

発生していた症状

  • Datadogのメトリクスエクスプローラーではデータが正常に表示される
  • モニターのステータス画面では「No Evaluation History Found」と表示される
  • モニターの編集画面ではグラフにデータが表示される
  • 評価履歴が一切記録されない

No Evaluation History Foundな様子
image1.png

編集画面ではグラフにデータが表示される様子
screencapture-app-datadoghq-monitors-140566024-edit-2025-08-22-18_37_17 (1).png

対象のモニター

  • バッチ処理系のWarnログ検知モニター
  • 定期的に実行されるcronjobのメトリクスを監視

問題の原因

Datadogサポートからの回答により、問題の根本原因が明らかになりました

「Require a full window of data for evaluation」が有効になっており、評価ウィンドウがデータで完全に満たされるまで評価がスキップされていました。

require_full_windowとは

  • モニターの評価において、指定された時間ウィンドウが完全にデータで埋まっている場合のみ評価を実行する設定
  • バッチジョブのように間欠的にしか動作しないアプリケーションの場合、データの空白期間があるため評価がスキップされる

Datadog Monitor Documentation - データウィンドウ

解決方法

設定変更

「Require a full window of data for evaluation」から「Do not require a full window of data for evaluation」に変更しました。

スクリーンショット 2025-09-03 9.54.17.png

この変更により:

  • モニターのNo Data状態が解消
  • 正常に評価履歴が記録されるように
  • 適切にアラートが発火するように

設定変更後の効果確認

  • 検証環境でWarnログが正常に検知されることを確認
  • モニターの評価履歴が適切に記録されることを確認

Terraformでの設定

Infrastructure as Code(IaC)でDatadogモニターを管理している場合、Terraform の Datadog Provider での設定も重要です。

require_full_windowパラメータ

resource "datadog_monitor" "cronjob_monitor" {
  name    = "Cronjob Monitor"
  type    = "query alert"
  message = "Cronjob has failed"

  query = "max:your.metric.name{env:production}"

  # バッチジョブなどsparse metricsの場合はfalseに設定することが推奨
  require_full_window = false

  monitor_thresholds {
    critical = 1
  }
}

Terraformドキュメントからの重要な注意点

Terraform Datadog Provider では、require_full_window について以下のように記載されています:

require_full_window (Boolean) A boolean indicating whether this monitor needs a full window of data before it's evaluated. Datadog strongly recommends you set this to false for sparse metrics, otherwise some evaluations may be skipped. If there's a custom_schedule set, require_full_window must be false and will be ignored. Defaults to true.

重要なポイント:

  • デフォルトは true のため、意図的に false に設定する必要がある
  • sparse metrics(まばらなメトリクス)には false を強く推奨
  • バッチジョブやcronjobは典型的なsparse metricsに該当

ベストプラクティス

Datadogサポートからの公式見解として、バッチジョブなど一時的にしか動作しないアプリケーションを監視する場合は「Do not require a full window of data for evaluation」の設定が推奨されています。

理由

  1. データの間欠性: バッチジョブは定期実行のため、連続的なデータストリームではない
  2. 評価の確実性: データが部分的でも評価を実行し、問題を見逃さない
  3. アラートの即座性: 問題発生時に速やかにアラートを発火できる

関連リソース

参考情報

まとめ

今回の事象は、Datadogの評価設定とバッチジョブの特性の不一致が原因でした。cronjobやバッチジョブのモニタリングにおいては「require_full_window: false」の設定が重要であることが確認できました。

同様の問題を回避するため、間欠的に動作するアプリケーションのモニター設定時は、この点を考慮することを推奨します。

学んだこと

  • Datadogのモニター設定は、監視対象の性質に合わせて適切に選択する必要がある
  • メトリクスエクスプローラーでデータが見えても、モニターが正しく動作しない場合がある
  • バッチジョブ系のモニタリングでは「require_full_window」の設定が重要な要素となる
  • TerraformでDatadogモニターを管理する場合、require_full_windowのデフォルトがtrueであることに注意が必要
  • Infrastructure as Codeでも、監視対象の特性を考慮した適切なパラメータ設定が重要
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?