分布式追踪技术的挑战与替代方案
1. 分布式追踪的因果洞察
在分布式追踪中,一个关键问题是“为什么这个请求很慢?”答案可能隐藏在追踪数据中,或者体现在与相似追踪的差异里。然而,仅通过查看追踪数据有时无法找到答案。
- 追踪工具不足 :如果追踪工具无法记录关键信息,如超时时间,就难以判断超时是否导致错误响应。
- 外部因素影响 :服务器的CPU过载或请求等待锁等外部因素,可能不会在追踪数据中体现。
- 依赖组件问题 :分布式系统中依赖不支持追踪的组件,可能导致无法察觉依赖关系,进而难以诊断问题。
为了弥补追踪数据的局限性,可以将追踪的响应缓慢情况与日志和指标进行关联。此外,研究界也提出了从分布式系统的黑盒行为推断因果关系的方法,如通过消息传递时间或对系统日志进行假设检验来推导因果模型。
还有一个常见的挑战是,问题的根源可能来自请求可见范围之外的间接依赖。例如,在共享队列中,前面的昂贵请求可能会导致后面的请求排队延迟,而这种细粒度的操作通常不会被追踪。
2. 分布式追踪的局限性
尽管分布式追踪在现代分布式应用中已成为事实上的组件,但它并非没有局限性。在部署和使用分布式追踪时,需要做出一系列实际选择,且这些选择并不总是显而易见的。
- 生成追踪数据 :需要选择程序中有用数据的位置,并对应用进行插桩以记录这些数据。
- 收集和存储追踪数据
超级会员免费看
订阅专栏 解锁全文
6万+

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



