返回

链路追踪的前世今生(上)

开发工具

链路追踪,顾名思义,就是对请求在服务之间流转的路径进行追踪,从而方便我们定位问题。

我们现在看到的链路追踪系统架构和模型,基本都是大同小异,这不由得让人产生疑问:开发者在设计链路追踪的时候,想法都是这么一致吗?为什么几乎所有的链路追踪系统都在调用链路上传递元数据?这些元数据的这些信息又都是必要的吗?

带着这些疑问,我们先来了解一下链路追踪的发展历史。

从日志到链路追踪

在很久很久以前,人们定位问题的方式,都是通过日志。日志里记录了请求的各种信息,比如请求时间、请求地址、请求参数、请求结果等等。当系统出现问题时,工程师们就通过分析日志来定位问题。

但是,随着系统变得越来越复杂,日志也变得越来越庞大。日志里记录的信息越来越多,工程师们在日志里找问题就像大海捞针一样。

为了解决这个问题,人们发明了链路追踪。链路追踪是一种通过在请求之间传递元数据来追踪请求流转路径的技术。这些元数据包括请求时间、请求地址、请求参数、请求结果等等。有了链路追踪,工程师们就可以很方便地看到请求在系统中的流转路径,并快速定位问题。

链路追踪的演变

链路追踪技术经历了三个主要的发展阶段:

1. 手动链路追踪

最初,链路追踪是通过手工来实现的。工程师们在每个服务中添加代码,手动记录请求的元数据。这种方式非常繁琐,而且容易出错。

2. 分布式链路追踪

随着分布式系统的兴起,链路追踪也变得越来越复杂。传统的集中式链路追踪系统已经无法满足需求。因此,分布式链路追踪系统应运而生。分布式链路追踪系统通过在每个服务中部署一个代理,来收集和存储请求的元数据。

3. 无代码链路追踪

最近几年,无代码链路追踪系统开始流行起来。无代码链路追踪系统无需工程师在每个服务中添加代码,就可以自动收集和存储请求的元数据。这大大降低了链路追踪的门槛,使更多的工程师能够使用链路追踪技术。

链路追踪的元数据

链路追踪系统通过在调用链路上传递元数据来追踪请求的流转路径。这些元数据包括请求时间、请求地址、请求参数、请求结果等等。

这些元数据对于定位问题非常重要。通过分析这些元数据,工程师们可以快速找到问题所在。

链路追踪系统收集的元数据越多,工程师们就能够获得更详细的信息。但是,元数据收集得越多,系统开销也就越大。因此,我们需要在元数据收集和系统开销之间取得一个平衡。

总结

链路追踪是一种非常有用的技术,可以帮助工程师们快速定位问题。链路追踪技术经历了三个主要的发展阶段:手动链路追踪、分布式链路追踪和无代码链路追踪。链路追踪系统通过在调用链路上传递元数据来追踪请求的流转路径。这些元数据对于定位问题非常重要。但是,元数据收集得越多,系统开销也就越大。因此,我们需要在元数据收集和系统开销之间取得一个平衡。