跳至主要內容
Telemetry
背景工作 SQL查詢範例

按作業測量佇列等待時間

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

入門job_runs已審查 2026-07-27測試用 阿帕奇 DataFusion 45.2.0

審閱者 Telemetry產品團隊 . SQL 相容性、事件契約、合成輸出和操作注意事項. 審查標準和所有權

問題已回答

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

當工作排隊時,快速的工作人員仍然可能會產生緩慢的客戶結果。佇列等待和執行持續時間需要單獨的欄位和目標。

活動合約

查詢期望的欄位

欄位型別為什麼存在
timestamp_utcTimestamp執行完成時間。
job_nameUtf8穩定的邏輯作業名稱。
queue_wait_msFloat64從計劃到開始的毫秒數。
duration_msFloat64啟動後的執行持續時間。
DataFusion SQL

複製查詢

sql
SELECT
  job_name,
  COUNT(*) AS runs,
  approx_percentile_cont(queue_wait_ms, 0.50) AS p50_wait_ms,
  approx_percentile_cont(queue_wait_ms, 0.95) AS p95_wait_ms,
  approx_percentile_cont(duration_ms, 0.95) AS p95_run_ms
FROM job_runs
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY job_name
HAVING COUNT(*) >= 20
ORDER BY p95_wait_ms DESC;

此只讀查詢是針對空型別資料表計劃和執行的 阿帕奇 DataFusion 45.2.0。確定性樣本輸出是綜合的並單獨審查;根據您自己的資料驗證欄位型別、閾值和業務定義。 閱讀測試方法。

查詢結果

p95 按作業排隊等待

報告生成的等待時間大約是 p95 執行時間的兩倍。

job_namerunsp50_wait_msp95_wait_msp95_run_ms
generate_report3401,80044,20021,800
sync_subscription9804207,2008,400
send_email12,40080460930

綜合範例輸出。在將其用於操作決策之前,針對您自己的事件架構和閾值執行查詢。

p95 queue wait by job:來自 Measure Queue Wait Time by Job 範例結果的合成 p95_wait_ms 值的靜態圖表
確定性範例輸出的可索引 SVG。下載它以獲取帶有歸屬的文章、操作手冊或設計評論。

重現範例

下載公共裝置

JSON 包包含型別化事件契約, illustrative 輸入行、確切的 SQL、預期輸出、審閱註釋和引擎版本。 CSV 包含顯示的結果。

SQL 是如何工作的

  1. 1佇列等待在工作安排時開始,在執行開始時結束。
  2. 2p50 到 p95 的差距將持續緩慢的佇列與間歇性的積壓區分開來。
  3. 3將 p95 等待時間與 p95 執行時間進行比較可以看出容量或作業程式碼是否是更大的貢獻者。

需要決定的邊緣情況

  • 使用一個時鐘或 UTC 時間戳作為計劃時間和開始時間。
  • 計劃的 cron 延遲和佇列延遲可能需要單獨的欄位。
  • 重試應保留嘗試次數,以便可以隔離重複的工作。

推薦儀表板

  • 酒吧:p50和p95按工作等待
  • 趨勢:p95 排隊等候
  • 資料表:當前排隊的最舊專案

警示指導

當 p95 等待超過多個完整儲存桶的工作流程目標時發出警示。

讀取警示設定

讓查詢範例發揮作用

相關埋點和指南

定義源資料

此分析的事件模式

繼續分析

在真實事件中執行它

建立資料表,調整欄位並儲存結果

免費開始,傳送結構化事件,並將查詢結果用作圖表、共享儀表板小工具或警示輸入。

獲取 API 金鑰