跳至主要內容
Telemetry
SQL查詢範例集合

背景工作 SQL 查詢範例

測量工作人員、匯入、cron 任務和非同步作業的重試、失敗、佇列壽命、積壓成長、停滯工作和恢復時間。

共同事件契約

使這些查詢可重用的欄位

  • timestamp_utc、job_id、job_name、queue_name 和狀態
  • scheduled_at、started_at、completed_at、duration_ms 和嘗試
  • error_type、worker_name、item_count 和釋放

SQL 之前的定義

查詢無法為您做出的決定

  1. 1選擇一個識別符號來連線同一邏輯作業的每次嘗試。
  2. 2記錄終端狀態,以便停滯的作業查詢不會標記已完成的工作。
  3. 3在設定閾值之前,將佇列等待與執行時間分開。

推薦順序

先建立檢測,然後診斷

分析模式

讓結果解釋決定

建立工作生命週期模型

保持計劃、開始、重試、完成、失敗和丟棄的結果不同,以便一個查詢可以重建每個邏輯作業。

將庫存與流量分開

獨立於每個時間段內建立和解決的作業來衡量當前的積壓工作。

持續延誤警示

使用佇列年齡、連續錯過的計劃或重複重試,而不是單個暫時的工作錯誤。

完整的查詢範例

複製查詢,然後驗證假設

入門job_runs

測量後台作業重試和失敗率

透過比較成功的執行、重試、失敗和尾部持續時間來查詢不可靠的作業。

哪些後台作業消耗的重試次數最多或仍然失敗?

檢視 SQL 和結果
中級job_events

使用 SQL 查詢停滯的後台作業

連線作業開始和完成事件以識別超出其預期完成視窗的工作。

哪些作業已啟動但從未產生終止事件?

檢視 SQL 和結果
入門job_runs

按作業測量佇列等待時間

將佇列中等待的時間與執行持續時間分開,並按作業名稱比較 p50 和 p95 延遲。

哪些工作在工人開始之前等待的時間最長?

檢視 SQL 和結果
中級job_events

測量死信佇列成長

比較死信的建立和解決以查詢累積不可恢復工作的佇列。

哪些佇列新增死信作業的速度比解決死信作業的速度快?

檢視 SQL 和結果
中級cron_runs

檢測錯過的 Cron 計劃

將連續的 cron 執行事件與每個計劃間隔進行比較,以查詢延遲或丟失的執行。

哪些預定作業的執行時間晚於記錄的時間間隔?

檢視 SQL 和結果
中級job_attempts

檢測後台作業重試風暴

查詢重複作業嘗試造成不成比例的佇列工作和失敗的時間段。

目前哪些工作型別在重試上花費的工作量最多?

檢視 SQL 和結果

在閾值之前調整事件契約

保留分析模式,但根據您自己的事件驗證資料表名稱、欄位型別、業務定義、時間視窗和最小量規則。每個已發布的查詢也會針對具有固定引擎的空型別資料表進行規劃和執行。