イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | イベントが発生したとき。 |
| job_id | Utf8 | 1 つのジョブのすべてのイベントで共有される識別子。 |
| job_name | Utf8 | 安定した論理ジョブ名。 |
| event_name | Utf8 | job_started、job_completed、または job_failed。 |
| queue_name | Utf8 | ジョブを所有するキュー。 |
DataFusion SQL
クエリをコピーする
sql
WITH started AS (
SELECT
job_id,
job_name,
queue_name,
MIN(timestamp_utc) AS started_at
FROM job_events
WHERE event_name = 'job_started'
AND timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY job_id, job_name, queue_name
),
finished AS (
SELECT
job_id,
MAX(timestamp_utc) AS finished_at
FROM job_events
WHERE event_name IN ('job_completed', 'job_failed')
AND timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY job_id
)
SELECT
s.job_id,
s.job_name,
s.queue_name,
s.started_at
FROM started s
LEFT JOIN finished f ON s.job_id = f.job_id
WHERE f.job_id IS NULL
AND s.started_at < now() - INTERVAL '15 minutes'
ORDER BY s.started_at ASC;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
終了イベントのない最も古いジョブ
テーブルには、オペレータが作業を検査または再生するために必要な識別子が保存されます。
| job_id | job_name | queue_name | started_at |
|---|---|---|---|
| job_7f31 | import_catalog | imports | 2026-07-27 15:02:11Z |
| job_801c | sync_subscription | billing | 2026-07-27 15:19:43Z |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 illustrative 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1最初の CTE は、各論理ジョブの最も早い開始を維持します。 2 番目は最新の端末イベントを保持します。
- 2LEFT JOIN は、一致する完了または失敗が存在しない場合でも、開始されたジョブを保持します。
- 315 分のしきい値は、動作上の停止の定義です。やみくもにコピーするのではなく、予想されるジョブ期間に基づいて設定します。
決定すべきエッジケース
- 長時間実行されるジョブには、ジョブ固有のしきい値またはハートビート イベントが必要です。
- イベントが遅れると、一時的に誤検知が発生する可能性があります。取り込みが遅れる可能性がある場合は、最新のバケットを遅らせます。
- 再利用された job_id は無関係な実行に結合するため、ID は論理実行ごとに一意である必要があります。
推奨されるダッシュボード
- Stat: 現在の停止ジョブ数
- 表: job_id および queue_name の最も古い停止ジョブ
- 折れ線グラフ: 日別の停止ジョブの検出数
レシピを活用する
関連する機器とガイド
分析を続ける
実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。