8、分布式追踪:代码执行追踪

分布式追踪:代码执行追踪

1. 代码重构与上下文管理

再次运行程序,跨度(spans)将像之前一样被打印出来。这次重构后,输出不会改变,但代码看起来更简洁。与之前的示例一样,上下文管理由程序自动处理,我们无需担心与上下文 API 交互。使用装饰器让代码阅读更简单,新接触代码的人在为应用添加代码时,也能轻松按照相同模式实现新方法。

2. 跨度处理器

到目前为止,代码中使用的跨度处理器是 SimpleSpanProcessor 。它在跨度结束时立即进行处理和导出,这意味着代码中添加的每个跨度都会给应用带来延迟,这通常不是我们想要的。不过,在某些情况下,这可能是正确的选择,例如无法保证主线程之外的其他线程在程序中断前完成。

一般建议跨度处理与主线程异步进行, BatchSpanProcessor 就是 SimpleSpanProcessor 的一个替代方案。以下是两者的对比:
| 处理器类型 | 处理方式 | 对应用的影响 |
| ---- | ---- | ---- |
| SimpleSpanProcessor | 跨度结束时立即处理和导出 | 每个跨度都会增加应用延迟 |
| BatchSpanProcessor | 启动单独线程按计划或队列达到一定数量时导出跨度 | 避免给正常应用代码路径增加不必要的延迟 |

2.1 使用 BatchSpanProcessor

以下是使用 BatchSpanProcessor 重构 shopper.py <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值