共同事件契約
使這些查詢可重用的欄位
- timestamp_utc、job_id、job_name、queue_name 和狀態
- scheduled_at、started_at、completed_at、duration_ms 和嘗試
- error_type、worker_name、item_count 和釋放
SQL 之前的定義
查詢無法為您做出的決定
- 1選擇一個識別符號來連線同一邏輯作業的每次嘗試。
- 2記錄終端狀態,以便停滯的作業查詢不會標記已完成的工作。
- 3在設定閾值之前,將佇列等待與執行時間分開。
推薦順序
先建立檢測,然後診斷
分析模式
讓結果解釋決定
建立工作生命週期模型
保持計劃、開始、重試、完成、失敗和丟棄的結果不同,以便一個查詢可以重建每個邏輯作業。
將庫存與流量分開
獨立於每個時間段內建立和解決的作業來衡量當前的積壓工作。
持續延誤警示
使用佇列年齡、連續錯過的計劃或重複重試,而不是單個暫時的工作錯誤。
完整的查詢範例
複製查詢,然後驗證假設
入門job_runs
測量後台作業重試和失敗率
透過比較成功的執行、重試、失敗和尾部持續時間來查詢不可靠的作業。
哪些後台作業消耗的重試次數最多或仍然失敗?
檢視 SQL 和結果中級job_events
使用 SQL 查詢停滯的後台作業
連線作業開始和完成事件以識別超出其預期完成視窗的工作。
哪些作業已啟動但從未產生終止事件?
檢視 SQL 和結果入門job_runs
按作業測量佇列等待時間
將佇列中等待的時間與執行持續時間分開,並按作業名稱比較 p50 和 p95 延遲。
哪些工作在工人開始之前等待的時間最長?
檢視 SQL 和結果中級job_events
測量死信佇列成長
比較死信的建立和解決以查詢累積不可恢復工作的佇列。
哪些佇列新增死信作業的速度比解決死信作業的速度快?
檢視 SQL 和結果中級cron_runs
檢測錯過的 Cron 計劃
將連續的 cron 執行事件與每個計劃間隔進行比較,以查詢延遲或丟失的執行。
哪些預定作業的執行時間晚於記錄的時間間隔?
檢視 SQL 和結果中級job_attempts
檢測後台作業重試風暴
查詢重複作業嘗試造成不成比例的佇列工作和失敗的時間段。
目前哪些工作型別在重試上花費的工作量最多?
檢視 SQL 和結果