
58
第 6 章
将事件拼接成链路
第
5
章探讨了事件成为可观测系统基本
构建块
的原因,本章将演示如何把事件拼接成
链路(
trace
)。近十年来,分布式链路追踪已经成为软件研发团队必不可少的故障排查
工具。
分布式链路追踪仅是一系列存在关联关系的事件。分布式链路追踪系统提供依赖包,能
自动创建并管理这些事件的关联关系。用于创建和追踪不关联事件的概念有很多,这些
概念能应用到的场景也很多,已经远超传统的链路追踪场景。为了进一步探究可观测系
统的可能性,必须研究链路追踪系统的内部原理。
本章将通过检查分布式链路追踪的核心组件及其对可观测系统的重要性,深入浅出地讲
解分布式链路追踪。我们将解释链路组件,并通过代码示例演示合成链路的步骤和链路
组件的工作原理。通过向链路事件(或
span
)添加相关数据的示例来讲解为什么需要该
数据。最后,在展示完如何手动创建一条链路后,将该方法应用到非传统的链路案例中
(例如拼接日志事件)。
6.1 分布式链路追踪及其重要性
链路追踪是一种重要的软件调试技术,在整个程序执行过程中记录各种各样的信息,以
诊断问题。自两台计算机连接并交换信息的第一天开始,软件工程师就在不断地发现程
序或者协议中的各种“小魔怪”。无论付出多少努力,这些“小魔怪”都总能分散在“细
缝”中,而且在分布式系统成为规范的年代,使用的调试技术必须不断发展才能适应日
益复杂的需求。
分布式链路追踪是追踪单一请求整个过程(链路)的一种方式,且该请求过程可能经过
一个应用中的多个服务。为了满足功能,请求可能要跨进程、机器甚至网络边界,这也 ...