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

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



