活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | 事件时间(UTC)。 |
| workflow_id | Utf8 | 跨工作流步骤共享的标识符。 |
| event_name | Utf8 | 有界生命周期事件名称。 |
| status | Utf8 | 正常或失败。 |
| service | Utf8 | 发出事件的服务。 |
| correlation_id | Utf8 | 可选的请求到工作流关联标识符。 |
| environment | Utf8 | 部署环境。 |
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_id | step_number | event_name | service | status | elapsed_seconds |
|---|---|---|---|---|---|
| workflow_1024 | 1 | workflow_started | checkout-api | ok | 0 |
| workflow_1024 | 2 | payment_authorized | checkout-api | ok | 8 |
| workflow_1024 | 3 | inventory_reserved | fulfillment-worker | ok | 21 |
| workflow_1024 | 4 | shipment_created | fulfillment-worker | failed | 47 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1目标 CTE 选择一个失败的工作流程,而不是混合独立的执行。
- 2工作流启动提供跨服务的公共经过时间源。
- 3ROW_NUMBER 生成人类可读的步骤序列,同时状态和服务字段保留调试上下文。
需要决定的边缘情况
- 使用防冲突工作流标识符和传播它的文档。
- 延迟或时钟偏差的事件可能需要摄取时间作为辅助排序字段。
- 大容量工作流程可能需要有界事件名称白名单或跟踪采样。
推荐仪表板
- 时间表:elapsed_seconds by event_name 和服务
- 表:最后一个成功步骤的失败工作流程
- 链接:workflow_id 过滤的事件详细信息
让查询示例发挥作用
相关埋点和指南
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。