分布式跟踪:代码执行追踪
1. 上下文传播
在网络边界之间将信息从一个服务传递到另一个服务,需要进行额外的工作,即上下文传播。如果没有上下文传播,每个服务将独立生成新的跟踪信息,这意味着后端在分析时无法将这些服务关联起来。如下图所示,没有跨服务传播的跟踪信息缺少服务之间的关联,使得跟踪信息难以关联:
graph LR
A[服务1] -->|无传播| B[服务2]
style A fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
style B fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
具体来说,在服务之间传播上下文所需的数据是 span_context ,它包含以下四个关键信息:
- span_id :当前跨度(span)的标识符
- trace_id :当前跟踪的标识符
- trace_flags :根据W3C跟踪上下文规范(https://www.w3.org/TR/trace-context/#trace-flags),用于控制跟踪级别和采样的额外配置标志
- trace_state :根据W3C跟踪上下文规范(https://www.w3.org/TR/trace-context/#tracestate-header)的一组特定于供应商的标识数据
超级会员免费看
订阅专栏 解锁全文
6万+

被折叠的 条评论
为什么被折叠?



