本文へ移動
Telemetry
バックグラウンドジョブ SQL レシピ

欠落した Cron スケジュールの検出

連続する cron-run イベントを各スケジュール間隔と比較して、実行の遅延または欠落を見つけます。

中級者cron_runsレビュー済み 2026-07-28テスト済み アパッチ DataFusion 45.2.0

レビュー者 Telemetry 製品チーム . SQL の互換性、イベント コントラクト、合成出力、および操作上の注意事項. 基準と所有権を確認する

質問に回答しました

スケジュールされたジョブは、文書化された間隔よりも遅く実行されましたか?

決して開始されない cron プロセスは失敗を生成できません。観察された実行間のギャップと予想される間隔を比較すると、通常のエラー率クエリでは見逃される沈黙が検出されます。

イベント契約

クエリが期待するフィールド

フィールド種類なぜ存在するのか
timestamp_utcTimestamp観測された cron 実行開始時刻。
schedule_nameUtf8安定したスケジュールされたワークフロー名。
environmentUtf8導入環境。
expected_interval_minutesFloat64スタート間の分数を記録。
DataFusion SQL

クエリをコピーする

sql
WITH ordered_runs AS (
  SELECT
    schedule_name,
    environment,
    timestamp_utc AS run_at,
    expected_interval_minutes,
    LAG(timestamp_utc) OVER (
      PARTITION BY schedule_name, environment
      ORDER BY timestamp_utc
    ) AS previous_run_at
  FROM cron_runs
  WHERE timestamp_utc >= now() - INTERVAL '7 days'
)
SELECT
  schedule_name,
  environment,
  previous_run_at,
  run_at,
  expected_interval_minutes,
  date_part('second', run_at - previous_run_at) / 60.0 AS observed_gap_minutes
FROM ordered_runs
WHERE previous_run_at IS NOT NULL
  AND date_part('second', run_at - previous_run_at) / 60.0
    > expected_interval_minutes * 1.5
ORDER BY observed_gap_minutes DESC;

この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。

クエリ結果

観察されたスケジュールのギャップ

請求同期は予期された 2 回の開始を逃し、毎日の有効期限ワークフローは 1 日スキップされました。

schedule_nameenvironmentprevious_run_atrun_atexpected_interval_minutesobserved_gap_minutes
hourly_billing_syncproduction2026-07-27 07:002026-07-27 10:0060180
daily_trial_expirationproduction2026-07-25 02:002026-07-27 02:001,4402,880

合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。

Observed schedule gaps: Detect Missed Cron Schedules 結果例からの合成 observed_gap_minutes 値の静的チャート
決定論的な出力例のインデックス可能な SVG。記事、ランブック、または出典を明示した設計レビューのためにダウンロードしてください。

例を再現する

パブリックフィクスチャをダウンロードする

JSON バンドルには、型付きイベント コントラクトが含まれています。 illustrative 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。

SQL の仕組み

  1. 1LAG は、スケジュールおよび環境ごとに、以前に観察された開始を取得します。
  2. 2タイムスタンプの差は、各ジョブ独自の間隔と比較できる観察されたギャップになります。
  3. 31.5 の乗数では、本当に見逃した実行を隠すことなく、通常のスケジュールのジッターが許容されます。

決定すべきエッジケース

  • この履歴クエリは、次の実行が到着した後にのみギャップを検出します。現在のハートビート欠落アラートと組み合わせてください。
  • 計画されたメンテナンスと無効化されたスケジュールは、明示的な状態変更を発行する必要があります。
  • 夏時間への移行には、UTC スケジュールまたはタイムゾーンを考慮した期待が必要です。

推奨されるダッシュボード

  • 表: 前回と次回の実行でスタートを逃した
  • 傾向: ジョブ別のスケジュールギャップ分
  • 統計: 現在、生産スケジュールが遅れています

アラートガイダンス

リアルタイム検出の場合、最新の実行が予想される間隔と文書化されたジッターより古い場合にアラートを送信します。

アラート設定を読む

レシピを活用する

関連する機器とガイド

分析を続ける

実際のイベントで実行する

テーブルを作成し、フィールドを調整して、結果を保存します

無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。

API キーを取得する