跳至主要內容
Telemetry
瀏覽說明文件

入門指南更新於 2026年9月30日閱讀約需 2 分鐘

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

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

本頁內容
  1. 檢查最近的紀錄
  2. 計算請求量與錯誤率
  3. 確認單位後,再查詢延遲
  4. 儲存前驗證
  5. 繼續

撰寫第一個 Telemetry SQL 查詢

先選擇一個能用已知模擬資料驗證答案的問題。這個範例查詢前面入門步驟建立的 telemetry_quickstart 資料表。

檢查最近的紀錄

先查看每筆事件,再做彙總:

SELECT
  timestamp_utc,
  request_id,
  route_template,
  status_code,
  latency_ms,
  release,
  environment
FROM telemetry_quickstart
WHERE environment = 'development'
ORDER BY timestamp_utc DESC
LIMIT 100;

找到模擬的 req_demo_001 紀錄。如果找不到,或欄位型別不正確,請回到驗證事件寫入與資料表結構。

計算請求量與錯誤率

確認原始紀錄正確後,依路由彙總:

SELECT
  route_template,
  COUNT(*) AS requests,
  SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END) AS server_errors,
  ROUND(
    100.0 * SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END)
      / NULLIF(COUNT(*), 0),
    2
  ) AS server_error_pct
FROM telemetry_quickstart
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
  AND environment = 'development'
GROUP BY route_template
ORDER BY requests DESC;

分母是每個路由在同一時段內的請求量。如果之後修改查詢,加入資料表連接或補齊沒有事件的時間區間,NULLIF 可以避免除以零。

確認單位後,再查詢延遲

SELECT
  route_template,
  COUNT(*) AS requests,
  approx_percentile_cont(0.5) WITHIN GROUP (ORDER BY latency_ms)
    AS p50_latency_ms,
  approx_percentile_cont(0.95) WITHIN GROUP (ORDER BY latency_ms)
    AS p95_latency_ms
FROM telemetry_quickstart
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
  AND environment = 'development'
GROUP BY route_template
ORDER BY p95_latency_ms DESC;

解讀百分位數前,先確認 latency_ms 是數值,而且一律以毫秒記錄。SQL 百分位數 說明資料稀少的分組、近似函式與樣本數的注意事項。

儲存前驗證

使用一小組已知成功與失敗結果的測試資料。先手動計算預期請求數與錯誤率,再與 SQL 結果比較。

檢查四件事:

  1. 每筆紀錄代表一個已完成的請求。
  2. 決定分母是否包含重試與內部流量。
  3. 比較完整時間區間時,排除最新且尚未結束的區間。
  4. 路由範本、版本與環境使用固定格式的值。

SQL 語法正確,仍可能回答錯誤的業務問題。請將指標定義與排除條件和查詢一起儲存。

繼續

API 錯誤率範例 提供完整的資料結構、測試資料、視覺化與警示建議。想用已連接的模擬資料庫練習,請開啟 SaaS SQL 實驗室。接著閱讀建立第一個儀表板與警示。

相關功能

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

頁面作者與參考資料

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

我們如何審查文件