跳至主要內容
Telemetry
結構化事件 SQL查詢範例

重建相關的工作流程時間線

根據共享工作流程識別符號重建有序的跨服務工作流程步驟和經過的時間。

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

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

問題已回答

在最近一次失敗的工作流程中,按順序發生了什麼?

失敗的工作流程通常會跨越 API、佇列、工作執行緒和外部依賴項。此查詢選擇最新失敗的工作流程,查詢其開始時間,並在一個經過時間軸上對每個相關事件進行排序。

活動合約

查詢期望的欄位

欄位型別為什麼存在
timestamp_utcTimestamp事件時間(UTC)。
workflow_idUtf8跨工作流程步驟共享的識別符號。
event_nameUtf8有界生命週期事件名稱。
statusUtf8正常或失敗。
serviceUtf8發出事件的服務。
correlation_idUtf8可選的請求到工作流程關聯識別符號。
environmentUtf8部署環境。
DataFusion SQL

複製查詢

sql
WITH target_workflow AS (
  SELECT workflow_id
  FROM workflow_timeline_events
  WHERE timestamp_utc >= now() - INTERVAL '24 hours'
    AND environment = 'production'
    AND status = 'failed'
  ORDER BY timestamp_utc DESC
  LIMIT 1
),
workflow_start AS (
  SELECT
    events.workflow_id,
    MIN(events.timestamp_utc) AS started_at
  FROM workflow_timeline_events AS events
  JOIN target_workflow AS target
    ON target.workflow_id = events.workflow_id
  GROUP BY events.workflow_id
)
SELECT
  events.workflow_id,
  ROW_NUMBER() OVER (
    PARTITION BY events.workflow_id
    ORDER BY events.timestamp_utc, events.event_name
  ) AS step_number,
  events.event_name,
  events.service,
  events.status,
  date_part('epoch', events.timestamp_utc - starts.started_at)
    AS elapsed_seconds
FROM workflow_timeline_events AS events
JOIN workflow_start AS starts
  ON starts.workflow_id = events.workflow_id
ORDER BY events.workflow_id, step_number;

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

查詢結果

失敗的工作流程事件時間線

工作流程開始 47 秒後,付款和庫存均成功後,貨件建立失敗。

workflow_idstep_numberevent_nameservicestatuselapsed_seconds
workflow_10241workflow_startedcheckout-apiok0
workflow_10242payment_authorizedcheckout-apiok8
workflow_10243inventory_reservedfulfillment-workerok21
workflow_10244shipment_createdfulfillment-workerfailed47

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

Failed workflow event timeline:來自 Reconstruct a Correlated Workflow Timeline 範例結果的合成 elapsed_seconds 值的靜態圖表
確定性範例輸出的可索引 SVG。下載它以獲取帶有歸屬的文章、操作手冊或設計評論。

重現範例

下載公共裝置

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

SQL 是如何工作的

  1. 1目標 CTE 選擇一個失敗的工作流程,而不是混合獨立的執行。
  2. 2工作流程啟動提供跨服務的公共經過時間源。
  3. 3ROW_NUMBER 生成人類可讀的步驟序列,同時狀態和服務欄位保留除錯上下文。

需要決定的邊緣情況

  • 使用防衝突工作流程識別符號和傳播它的文件。
  • 延遲或時鐘偏差的事件可能需要攝取時間作為輔助排序欄位。
  • 大容量工作流程可能需要有界事件名稱白名單或追蹤取樣。

推薦儀表板

  • 時間表:elapsed_seconds by event_name 和服務
  • 資料表:最後一個成功步驟的失敗工作流程
  • 連結:workflow_id 過濾的事件詳細資訊

警示指導

對失敗的業務事件或工作流程 SLO 發出警示;使用相關的時間線作為調查背景。

讀取警示設定

讓查詢範例發揮作用

相關埋點和指南

繼續分析

在真實事件中執行它

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

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

獲取 API 金鑰