分布式追踪:代码执行追踪与数据优化
1. 代码优化与Span处理器
重新运行程序,span会像之前一样被打印出来。虽然重构后输出没有改变,但代码看起来更简洁了。和之前的示例一样,上下文管理由系统处理,我们无需担心与上下文API交互。使用装饰器让代码阅读更简单,新接触代码的人在为应用添加代码时,也能轻松按照相同模式实现新方法。
目前代码中使用的span处理器,最初的追踪管道配置使用的是 SimpleSpanProcessor 。它会在span结束时立即进行处理和导出,这意味着代码中添加的每个span都会增加应用的延迟,通常这不是我们想要的结果。不过在某些情况下,这可能是正确的选择,比如无法保证在程序中断前主线程之外的其他线程能完成任务。但一般建议span处理与主线程异步进行, BatchSpanProcessor 就是 SimpleSpanProcessor 的替代方案。
以下是 SimpleSpanProcessor 和 BatchSpanProcessor 的对比:
| 处理器类型 | 处理方式 | 对应用延迟的影响 |
| — | — | — |
| SimpleSpanProcessor | 同步处理,span结束时立即导出 | 增加应用延迟 |
| BatchSpanProcessor | 异步处理,通过单独线程按计划或队列达到一定数量时导出 | 减少不必要的延迟 |
BatchSpanProcessor 通过启动一个单独的线程,按计划
超级会员免费看
订阅专栏 解锁全文

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



