结构化事件的关联 ID
关联 ID 连接由同一工作流程创建的记录。它可以将入站请求链接到排队作业、将 Webhook 链接到计费同步或将结构化结果事件链接到现有跟踪。
选择一个具有唯一含义的 ID
为其代表的事物命名标识符:request_id、trace_id、job_id、webhook_delivery_id 或 workflow_run_id。当不同的服务赋予不同的含义时,通用的 correlation_id 会更难使用。
在最早的可信边界生成值,并将其明确地传递到下游工作。当上游跟踪 ID 可用时,保留该 ID。对于异步作业,当每个作业回答不同的问题时,请存储原始请求或工作流 ID 以及作业系统自己的 ID。
请勿使用电子邮件地址、访问令牌或原始提供商有效负载作为相关值。不透明的内部标识符更容易轮换并且更安全地在查询结果中公开。
查询工作流程
一旦相关表共享一个标识符,SQL 就可以重建序列:
SELECT
timestamp_utc,
event_name,
status,
duration_ms,
error_type
FROM workflow_events
WHERE workflow_run_id = 'run_example'
ORDER BY timestamp_utc;
对于聚合仪表板,按稳定类别而不是 ID 本身进行分组。将相关 ID 保留在最近的故障表或深入查询中,以便工程师可以从速率转向具体示例。
避免常见的休息时间
不要在每个服务中生成新的请求 ID。不要使某一字段过载,某些行上使用请求 ID,而其他行上使用帐户 ID。确认重试保留工作流程 ID,同时接收不同的尝试或交付 ID。如果该值跨越信任边界,请在记录之前验证其格式和长度。
相关性创造了可导航性,而不是因果关系本身。记录值如何传播以及哪个事件拥有最终结果。
将本指南与 日志、指标、跟踪和事件 和 高基数字段 配对。