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

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



