跳转到内容
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 密钥