跳至主要內容
Telemetry
API 可靠性 SQL查詢範例

按路由計算API錯誤率

使用 SQL 按 5xx 錯誤率對 API 路由進行排名,同時保護結果免受低音量噪音的影響。

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

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

問題已回答

哪些 API 路由具有最高的有意義 5xx 錯誤率?

錯誤計數有利於繁忙的路線。錯誤率按請求量對故障進行標準化,而最小量閾值可防止很少使用的端點上的一個故障在列表中佔據主導地位。

活動合約

查詢期望的欄位

欄位型別為什麼存在
timestamp_utcTimestamp請求完成後,標準化為 UTC。
route_templateUtf8穩定的路由形狀,例如 /api/projects/:id。
status_codeInt64HTTP 回應狀態程式碼。
latency_msFloat64請求持續時間(以毫秒為單位)。
DataFusion SQL

複製查詢

sql
SELECT
  route_template,
  COUNT(*) AS requests,
  SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END) AS errors,
  100.0 * SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS error_rate_pct
FROM api_requests
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY route_template
HAVING COUNT(*) >= 20
ORDER BY error_rate_pct DESC
LIMIT 10;

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

查詢結果

5xx 路由錯誤率

儘管搜尋的總流量更多,但結帳路線是最明顯的可靠性風險。

route_templaterequestserrorserror_rate_pct
/api/checkout25520
/api/search2514
/api/profile2000

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

5xx error rate by route:來自 Calculate API Error Rate by Route 範例結果的合成 error_rate_pct 值的靜態圖表
確定性範例輸出的可索引 SVG。下載它以獲取帶有歸屬的文章、操作手冊或設計評論。

重現範例

下載公共裝置

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

SQL 是如何工作的

  1. 1CASE 表示式僅對狀態為 5xx 的回應進行計數,同時保留同一組中的總請求計數。
  2. 2NULLIF 防止被零除。 HAVING 子句排除請求數少於 20 個的路由,其中​​一個錯誤就會產生不穩定的百分比。
  3. 3使用路由範本而不是原始 URL,這樣識別符號就不會將一個端點分成數千組。

需要決定的邊緣情況

  • 選擇與您的流量相匹配的最低請求閾值。二十個請求只是說明性的,並不具有普遍性。
  • 如果您的 API 有意將預期 5xx 回應用於工作流程控制,則將預期的 5xx 回應與基礎設施故障分開。
  • 按環境進行細分,因此分段流量不會改變生產率。

推薦儀表板

  • 條形圖:error_rate_pct by route_template
  • 統計:所選時間段內總共 5xx 條回覆
  • 資料表:request_id 和 error_type 的最新失敗請求

警示指導

當評估視窗中至少有 100 個請求的路由的 error_rate_pct 超過 2% 時發出警示。

讀取警示設定

讓查詢範例發揮作用

相關埋點和指南

繼續分析

在真實事件中執行它

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

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

獲取 API 金鑰