跳至主要內容
Telemetry
瀏覽說明文件
概念與 SQL 模式更新於 2026年7月28日由 Telemetry 編輯團隊和產品團隊審查閱讀約需 2 分鐘

讓程式設計代理使用這篇文件

開啟 Claude Code、Codex、Cursor 或其他編碼代理的集中提示包,然後將其適應此處介紹的工作流程。

使用 SQL 計算延遲和分佈百分位數

平均值將分佈壓縮為一個數字。這對於總數和總體趨勢很有用,但它可能隱藏事件期間重要的緩慢體驗。百分位數回答了一個不同的問題:p95 是大約 95% 的觀測值處於或低於該值的值。

查詢分佈中的幾個點

Telemetry 使用 Apache DataFusion SQL。使用 approx_percentile_cont 進行實際百分位估計:

SELECT
  route_template,
  COUNT(*) AS requests,
  approx_percentile_cont(duration_ms, 0.50) AS p50_ms,
  approx_percentile_cont(duration_ms, 0.95) AS p95_ms,
  approx_percentile_cont(duration_ms, 0.99) AS p99_ms,
  MAX(duration_ms) AS maximum_ms
FROM api_request_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY route_template
HAVING COUNT(*) >= 100
ORDER BY p95_ms DESC;

在結果中保留請求計數。一個小群體的百分位數是不穩定的,當一個群體只包含少量觀察值時,p99 沒有意義。近似結果也不應該以人為的小數精度表示。

解釋形狀,而不僅僅是等級

如果 p50、p95 和 p99 一起上升,整個工作流程可能會發生變化。如果 p50 保持穩定而 p99 增加,則一部分請求正在經歷尾部延遲。最大值對於調查很有用,但一個異常值不應定義正常效能。

僅按可以更改操作的維度進行分組:路由範本、依賴項、版本、區域或有界操作名稱。原始 URL 和不受限制的查詢文字會建立難以比較的高基陣列,並且可能會暴露敏感值。

百分位數不是百分比。 p95 延遲 800 毫秒並不意味著 95% 的請求很慢;這意味著大約 95% 的完成率等於或低於該值。將數字與經過審查的目標和明確的單位配對。

使用 API 延遲配方依賴延遲配方佇列等待食譜 作為測試範例。 分佈視覺化指南 解釋了直方圖何時比三個百分位點更能說明問題。

相關產品功能

對結構化事件資料表執行只讀 DataFusion SQL 並重用結果。

內容責任與技術參考

Telemetry 編輯團隊負責維護本文;產品團隊審查功能行為、範例和適用範圍。

檢視編輯規範