分布式追踪:原理、挑战与实践
1. 分布式追踪的问题
追踪计算机程序的执行并非新概念,理解程序的调用栈对各种性能分析、调试和监控任务至关重要。栈跟踪可能是世界上第二常用的调试工具,仅次于在代码库中广泛散布的打印语句。然而,过去二十年来,我们的工具、流程和技术不断发展,现代架构(如微服务)从根本上打破了传统的性能分析、调试和监控方法。分布式追踪应运而生,旨在解决这些问题,但它也面临一些挑战。
1.1 开始分布式追踪的三大问题
- 生成跟踪数据 :运行时对分布式追踪的支持可能参差不齐或根本不存在。软件结构可能难以轻松接受用于生成跟踪数据的检测代码,使用的模式可能与大多数分布式追踪平台的基于请求的风格相悖。对现有代码库进行检测的挑战常常导致分布式追踪计划夭折。
- 收集和存储跟踪数据 :想象数百或数千个服务,每个服务为每个请求生成小块跟踪数据,每秒可能产生数百万次。如何捕获这些数据并存储以便分析和检索?如何决定保留哪些数据以及保留多长时间?如何根据对服务的请求扩展数据收集?
- 从数据中获取价值 :如何将接收到的原始跟踪数据转化为可操作的见解和行动?如何利用跟踪数据为其他服务遥测提供上下文,减少诊断问题所需的时间?能否将跟踪数据转化为对业务其他部分(不仅仅是工程师)有价值的信息?这些问题困扰着许多刚开始使用分布式追踪的人。
1.2 分布式追踪部署的成果
分布式追踪部署的结果是一个工具,它让你深入了解系统内部,轻松理解请求中各个服务如何影响每个请求的整体性能。生成的跟踪数据不仅可以
超级会员免费看
订阅专栏 解锁全文
1126

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



