0%

调用链监控

简介

调用链监控是在微服务兴起后才有的一种新流行的监控模式。

在我们传统单体应用的项目中,不存在服务链/调用链的概念因没有调用链监控的需求。

当我们开始微服务架构之后,很多服务变成分布式,在加上对服务进行了拆分,拆分之后,用户的一个请求进来,会依次经过不同的服务节点进行处理,处理完成后再返回结果给用户。那么在整个处理的链条中,如果有任何一个节点出现了延迟或者异常,都有可能导致问题,有的时候不同的服务节点甚至是由不同的团队开发、部署在不同的服务器上,那么在这么错综复杂的环境下,我们想要排查出是链条中的具体哪个服务节点出了问题,其实并不容易。
因此,将这个请求经过的每一个节点都记录下来,形成一个完整的调用链监控系统,一旦发生请求调用异常的情况,只需要去排查这个调用链日志就能很清楚看到出错的环节在哪儿。

网络拓扑图

根据调用链监控中记录的链路信息,生成一张网络调用的拓扑图。通过这张图,可以知道系统中的各个服务之间的调用关系是怎样的,以及系统依赖了哪些服务。并且还可以起到监控全局服务的作用,便于架构师掌握系统的状态。

快速定位问题

微服务架构下,问题定位就变得非常复杂了,一个请求可能会经过多个服务节点,那么有这么一套调用链监控系统就能让开发人员快速的定位到问题和相应模块。

优化系统

我们记录了请求在调用链上每一个环节的信息,可以通过这个来找出系统的瓶颈,做出针对性的优化。可以分析这个调用路径是否合理,是否调用了不必要的服务节点,是否有更近、响应更快的服务节点。通过对调用链路的分析,我们就可以找出最优质的调用路径,从而提高系统的性能。

几个核心概念

Trace

Trace是指一次请求调用的链路过程,trace id 是指这次请求调用的ID。在一次请求中,会在请求最开始生成一个全局唯一的用于标识trace id,这个trace id在这次请求调用过程中无论经过多少个节点都会保持不变,并且在随着每一层的调用不停的传递。最终,可以通过trace id将这一次用户请求在系统中的路径全部串起来。

Span

Span是指一个模块的调用过程,一般用span id来标识。在一次请求的过程中会调用不同的节点/模块/服务,每一次调用都会生成一个新的span id来记录。这样,就可以通过span id来定位当前请求在整个系统调用链中所处的位置,以及它的上下游节点分别是什么。

Annotation

是指附属信息,可以用于附属在每一个Span上自定义的数据。


此文章来自于网络。

layicr 微信

微信

layicr 支付宝

支付宝