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

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

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

使用 SQL 對事件資料進行時間分桶

時間桶將個別事件變成趨勢。重要的選擇不僅僅是小時與天:您還需要一致的時間戳、時區、間隔邊界、完整性規則以及對丟失桶的處理。將一整小時與當前小時的前三分鐘進行比較時,圖表看起來可能具有權威性。

建置穩定的UTC系列

SELECT
  date_trunc('hour', timestamp_utc) AS hour,
  COUNT(*) AS requests,
  100.0 * SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS error_rate_pct
FROM api_request_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
GROUP BY date_trunc('hour', timestamp_utc)
ORDER BY hour;

使用伺服器管理的 timestamp_utc 欄位作為查詢邊界。當源時間戳描述另一個業務時刻時(例如移動客戶端開始離線操作時),請將源時間戳保留為單獨的欄位。如果儀表板正常執行,UTC 可以避免夏令時間隙和重複的當地時間。

date_trunc 是日曆對齊小時和日期的最簡單選擇。 date_bin 對於固定間隔(例如五分鐘)很有用:

date_bin(INTERVAL '5 minutes', timestamp_utc, TIMESTAMP '1970-01-01')

在每個應排隊的查詢中使用相同的原點。

處理不完整和空的桶

最新的儲存桶通常是不完整的。將其從比較中排除或清楚地標記。對於警示,在判斷最後完成的間隔之前考慮攝取延遲。

聚合僅返回包含行的儲存桶。缺失點可能意味著零活動、延遲攝取或查詢間隙;這些解釋不可互換。如果視覺化用零填充空白,請明確該轉換並確認零在語義上是正確的。

選擇足夠大的儲存桶以產生穩定的容量,但又足夠小以支援回應。五分鐘的時間段可以揭露一個事件;每日儲存桶通常更有助於保留。有關完整範例,請參閱 使用時間戳事件回應指南滾動錯誤率配方

相關產品功能

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

內容責任與技術參考

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

檢視編輯規範