网站建设亇金手指下拉排名亅,怎样自创广告网站,前端开源项目网站,登录文章目录 一、介绍二、全链路追踪1. 测试1 - 正常请求2. 测试2 - 异常请求 三、过滤非业务请求链路1. 链路忽略插件2. 配置3. 测试 一、介绍
在上一篇文章skywalking安装教程中我们介绍了skywalking的作用以及如何将其集成到我们的微服务项目中。本篇文章我们介绍在微服务架构… 文章目录 一、介绍二、全链路追踪1. 测试1 - 正常请求2. 测试2 - 异常请求 三、过滤非业务请求链路1. 链路忽略插件2. 配置3. 测试 一、介绍
在上一篇文章skywalking安装教程中我们介绍了skywalking的作用以及如何将其集成到我们的微服务项目中。本篇文章我们介绍在微服务架构中如何使用skywalking对一次客户端请求进行全链路追踪。
skywalking的介绍分多篇文章 微服务项目集成skywalking skywalking全链路追踪
何为全链路追踪
个人理解在微服务架构中一次客户端请求在对应的接口中可能需要通过多次服务调用完成以skywalking安装教程中的项目演示为例一次成功结束的请求可能需要经过商品服务、订单服务以及支付服务三个服务共同处理其中商品服务调用订单服务订单服务调用支付服务。这就是微服务架构的调用链。skywalking通过一个请求上下文将一次客户端请求中涉及到的服务调用进行追踪这就是全链路追踪的含义。
通过skywalking支持全链路追踪可以将微服务架构中的服务调用转变为实例调用。
二、全链路追踪
在上一篇文章skywalking安装教程中我们已经将skywalking集成到微服务项目中并在服务端页面看到集成的微服务以及各个服务的实例。
下面我们通过接口调用来查看skywalking的链路追踪是如何一回事。
在服务集成到skywalking初期skywalking是无法显示服务中的业务接口的当我们调用服务中的接口时对应的接口才会出现在skywalking中。
如下所示为服务集成到skywalking初期我们还没有调用接口 下面我们调用一次接口 调用后该接口将出现在skywalking 1. 测试1 - 正常请求
当我们调用商品服务的接口并传入商品id为1时 得到的结果为0即成功。
查看日志如下 从日志中可以看出此次请求的调用链如下所示 下面我们进入skywalking页面查看该调用链路
首先我们知道此次请求调用的是商品服务暴露的接口所以我们进入商品服务查看调用链路 在截图左下角的列表中显示的是当前服务所接收到的所有请求其中包含大量/eureka相关的请求这是eureka注册中心与当前服务之间心跳检测所产生的请求后面我们将会通过配置屏蔽此类请求链路当然也可以看到我们自己发起的业务请求及其调用链路(图中箭头所示)。
在调用链路中我们看到此次请求涉及到三个服务的调用商品服务(紫色标记)、订单服务(蓝色标记)、支付服务(绿色标记)且从下面的图形中可以看到商品服务调用订单服务订单服务调用支付服务。
如何确定具体处理调用请求的是哪一个实例呢换句话说这三个服务各有两个实例究竟是哪一个实例处理了请求
我们点击调用链路的其中一环如下所示可以发现商品服务处理请求的实例为端口号为8012的实例 商品服务调用订单服务我们再点击订单服务中接口请求的一行 订单服务调用支付服务我们再点击支付服务中接口请求的一行 2. 测试2 - 异常请求
当我们调用商品服务的接口并传入商品id为5时发现响应状态为500说明接口中出现异常 查看日志如下 从日志中可以看出此次请求的调用链如下所示 下面我们进入skywalking页面查看该调用链路
首先我们知道此次请求调用的是商品服务暴露的接口所以我们进入商品服务查看调用链路 与前面正常请求的界面不同的是当接口中出现异常导致响应500时该链路采用红色重点标记其调用链中也通过使用红色的点进行标记方便我们知道异常发生在哪些服务中。
我们点击调用链路的其中一环如下所示可以发现商品服务处理请求的实例为端口号为8011的实例从中也可以看到异常信息 商品服务调用订单服务我们再点击订单服务中接口请求的一行 订单服务调用支付服务我们再点击支付服务中接口请求的一行 三、过滤非业务请求链路
前面说到在skywalking追踪到的请求调用链路中不仅包含了我们定义的业务接口还包含了其他非业务接口(如eureka心跳检测的接口)下面我们介绍如何过滤掉这些非业务接口使其不出现在skywalking的链路追踪中。 1. 链路忽略插件
进入skywalking客户端目录如下图所示 进入optional-plugins文件夹将jar包apm-trace-ignore-plugin-8.16.0.jar复制到plugins文件夹中 2. 配置
忽略调用链路的配置有两种1. 系统变量2. 配置文件。系统变量优先级大于文件。
其配置的路径应匹配Ant Path规则如/path/*、/path/**、/path/?。 系统变量 在系统变量中添加skywalking.trace.ignore_path来配置要忽略的接口多个接口之间用逗号“,”分隔。 配置文件 在config文件夹中添加配置文件apm-trace-ignore-plugin.config在该配置文件中添加以下配置 trace.ignore_path/your/path/1/**,/your/path/2/**示例
我们要忽略掉eureka心跳检测的接口则在配置文件中添加以下配置
trace.ignore_path/eureka/**3. 测试
在插件和配置都完成后我们重启服务并进入调用链路页面进行查看此时和eureka相关的非业务接口已不再被追踪 纸上得来终觉浅绝知此事要躬行。
————————我是万万岁我们下期再见————————