跳至主要內容
Telemetry
基礎設施 SQL查詢範例

計算事件檢測和恢復時間

計算檢測結構化事件生命週期事件的時間和恢復時間。

高階incident_lifecycle_events已審查 2026-07-28測試用 阿帕奇 DataFusion 45.2.0

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

問題已回答

每項服務需要多長時間來檢測事件並從事件中恢復?

事件時間表應將客戶影響、檢測和解決分開。在計算服務級別檢測和恢復平均值之前,此查詢將生命週期事件轉換為每個事件的一條記錄。

活動合約

查詢期望的欄位

欄位型別為什麼存在
timestamp_utcTimestamp生命週期事件時間(UTC)。
incident_idUtf8穩定的事件識別符號。
serviceUtf8主要受影響的服務。
event_nameUtf8impact_started,已檢測到或已解決。
severityUtf8審查了事件的嚴重性。
environmentUtf8部署環境。
DataFusion SQL

複製查詢

sql
WITH incident_times AS (
  SELECT
    incident_id,
    service,
    MIN(CASE WHEN event_name = 'impact_started' THEN timestamp_utc END)
      AS impact_started_at,
    MIN(CASE WHEN event_name = 'detected' THEN timestamp_utc END)
      AS detected_at,
    MAX(CASE WHEN event_name = 'resolved' THEN timestamp_utc END)
      AS resolved_at
  FROM incident_lifecycle_events
  WHERE timestamp_utc >= now() - INTERVAL '90 days'
    AND environment = 'production'
  GROUP BY incident_id, service
)
SELECT
  service,
  COUNT(*) AS incidents,
  AVG(date_part('epoch', detected_at - impact_started_at) / 60.0)
    AS average_detection_minutes,
  AVG(date_part('epoch', resolved_at - detected_at) / 60.0)
    AS average_recovery_minutes
FROM incident_times
WHERE impact_started_at IS NOT NULL
  AND detected_at IS NOT NULL
  AND resolved_at IS NOT NULL
GROUP BY service
ORDER BY average_recovery_minutes DESC, service;

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

查詢結果

事件檢測和恢復時間

Billing-worker 的觀察到的檢測和恢復間隔較長。

serviceincidentsaverage_detection_minutesaverage_recovery_minutes
billing-worker11560
checkout-api27.532.5

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

Incident detection and recovery time:來自 Calculate Incident Detection and Recovery Time 範例結果的合成 average_recovery_minutes 值的靜態圖表
確定性範例輸出的可索引 SVG。下載它以獲取帶有歸屬的文章、操作手冊或設計評論。

重現範例

下載公共裝置

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

SQL 是如何工作的

  1. 1在計算持續時間之前,生命週期事件將轉為每個事件一行。
  2. 2檢測措施影響檢測開始;恢復措施檢測到解決。
  3. 3不完整的事件不包括在完成持續時間平均值中,並且應單獨報告。

需要決定的邊緣情況

  • 定義恢復是在緩解、完全恢復還是事件結束時結束,並一致地使用一項規則。
  • 重新開啟的事件可能需要多個影響間隔,而不是一個最長解決時間。
  • 平均值是說明性的;當事件量足夠時報告中位數和百分位數。

推薦儀表板

  • 條形圖:按服務劃分的平均檢測和恢復分鐘數
  • 趨勢:按月列出的已完成事件持續時間
  • 資料表:缺少已解決事件的開放事件

警示指導

使用操作警示來產生即時影響;使用此結果作為回應品質審查和趨勢指標。

讀取警示設定

讓查詢範例發揮作用

相關埋點和指南

繼續分析

在真實事件中執行它

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

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

獲取 API 金鑰