过滤指定的端点 | 学习笔记

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
简介: 快速学习过滤指定的端点

开发者学堂课程【分布式链路追踪 Skywalking过滤指定的端点】学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/743/detail/13163


过滤指定的端点


内容介绍:

一、 Swagger 插件的学习

二、 Swagger 插件的使用

这节课即将学习实用插件,这将有助于过滤指定的端点。在开发的过程中,有一些接口并不需要去进行监控。例如swagger 提供了一篇文档的自动生成功能。

在阅读一篇文档时,会不可避免的去调用一些接口,这些接口本质上是不需要 skywalking 进行监控的。所以它提供了一个过滤指定端点插件来进行一个过滤。


一、Swagger 插件的学习

首先,打开 plugins 这个项目,里面会有一个 FilterControll 节能控制器,其会提供两个接口,一个叫做 include, 代表这个接口可以被追踪,另外一个叫做 exclude, 这个接口不可以被追踪。

而这两个接口在实线上是一样的,我们可以通过对 swagger 插件的学习来对 exclude 这个端点来进行屏蔽,让 skywalking 不会去监控这个接口。


二、 Swagger 插件的使用

1.拷贝

找到 optional-plugins 这个目录项有一个可选插件叫做apm-trace-ignore-plugin, 它会把对应的 trace 给忽略掉。

然后把apm-trace-ignore-plugin-6.4.0.jar 这个插件拷到 plugins 这个目录中,之前讲过在可选目录中这个插件本质上是不会被加载到插件列表的,所以需要手动进行拷贝。

首先打开讯接,找到插件目录进入到 skywalking 目录中,其次进入到 apm-bin 当中,然后进入到可选择插件列表找到

image.png

apm-trace-ignore-plugin-6.4.0.jar,再把它拷贝到 plugins 插件目录中,切换出来进入到plugins目录,看这个插件 apm-trace 是否存在。通过寻找就发现 apm-trace 插件已经拷贝到了 plugins 目录当中。当 skywalking 启动时该插件就会生效。

2.启动

找到 skywalking 的 bin目录,将 skywalking 重启一下,这里没有提供一个重启脚本,需要把这个进程给它杀掉,然后直接搜索 oap就可以发现oap 的进程很长,需要把进程为1478的给杀它掉:  kill-9 1478, 这时oap 就可以成功杀掉。同时再去执行 oapService.sh 这个脚本,把它启动一下,它会提示 oap 启动成功。

在 oap 启动之后,再确认一下当前的 plugins 这个项目是不是已经启动。因为上节课中已经把它启动了。当前是启动的状态,一会儿可以直接访问其接口。

3.接口监控

如何让 exclude 接口被排除到 skywalking 的监控列表之外,该插件的使用方式很简单,就是在我们的配置项中去添加一个配置叫做 trace. ignore_path ,它是一个路径,可以用一些通倍符来支持表达式来进行一个展示,它支持的是 Ant、 path 表达式:

/path/*, /path/**, /path/?

//“*”代表0或任意多的一个字符

//“**”代表0或任意多的目录,也就是所有的这个目录下都会被排除掉。

//“?”代表一个单字符

对 exclude 结构来说不用很麻烦,因为只需要排除这一个接口,可直接通过 /exclude 来指定就可以。

启动方式与之前是一样的,由于现在应用已经启动,所以需要把它重新启动一下:kill-91751,找到刚才启动的命令,然后还需要再添加一个参数-Dskywalking.trace.ignore_path=/exclude 为避免出错需拷贝命令。

“skywalking.” 是一个标准的前缀, “trace.ignore_path”是一个 trace 的忽略目录它指向 exclude 这个接口,然后执行一下。

因为目录不对,所以需要进行切换,再执行,等待应用的启动。启动之后需注意要测试 include 能够被监控到 exclude 不能够被监控到,所以先通过 include 来调用一次,注意一次即可。

image.png

看到 include 调用成功之后,可多次调用 exclude,因为可以认为exclude 已经被排除了,所以多调用几次,也不会被监控掉。

image.png

再进到仪表盘来刷新一下当前页面,可以看到 include 已经被监控到了,而 exclude 却没有出现在追踪中。

image.png

4.排除

打开追踪进行搜索、刷新,发现最近的接口只有 include 被调用,exclude 是不会出现的。

image.png

多刷新几次exclude, 再点击搜索依旧不会出现,所以这就证明对于排除trace已经成功了,比如说 exclude 这个接口尽管调用成功,但是不会 skywalking 监控到的。

以上就是过滤指定端点这个插件的一个用法,这个插件可以用来过滤掉我们在项目中使用到的一些不想被监控到的端点,把它排除掉,所以 skywalking 就不会对这些端点进监控。

相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
存储 数据采集 监控
SkyWalking全景解析:从原理到实现的分布式追踪之旅
SkyWalking全景解析:从原理到实现的分布式追踪之旅
1906 1
|
NoSQL IDE 网络协议
Redis高级客户端Lettuce详解(下)
Lettuce是一个Redis的Java驱动包,初识她的时候是使用RedisTemplate的时候遇到点问题Debug到底层的一些源码,发现spring-data-redis的驱动包在某个版本之后替换为Lettuce。既然能被Spring生态所认可,Lettuce想必有过人之处,于是笔者花时间阅读她的官方文档,整理测试示例,写下这篇文章。
5462 0
|
Java 微服务
skywalking链路追踪时忽略指定异常
skywalking链路追踪时忽略指定异常
|
12月前
|
监控 Java Shell
链路跟踪-SkyWalking系列(一)
链路跟踪-SkyWalking系列(一)
2022 2
|
12月前
|
安全 开发工具 git
git合并错了,我想回退到之前的版本
git合并错了,我想回退到之前的版本
|
12月前
|
消息中间件 Java 中间件
链路跟踪-SkyWalking系列(三)
链路跟踪-SkyWalking系列(三)
|
运维 关系型数据库 MySQL
《mysql慢查询追踪:动态设置与优化,一步到位解决数据库性能瓶颈》
【8月更文挑战第16天】在数据库运维中,监控与优化MySQL慢查询对提升性能至关重要。本文通过电商平台案例演示如何动态调整慢查询配置及分析过程。首先检查`long_query_time`和`slow_query_log`状态,若未开启,则需设置如`long_query_time = 2`并启动日志记录。在高并发时段收集慢查询日志后,分析发现无索引导致效率低下的查询,通过`explain`确认全表扫描,最终创建复合索引解决问题。此方法有助于快速定位并解决性能瓶颈。
715 1
|
存储 Prometheus 监控
【监控】grafana图表使用快速上手
【监控】grafana图表使用快速上手
446 0
|
Java 微服务
skywalking全链路追踪
skywalking全链路追踪
|
存储 监控 Java
微服务轮子项目(22) -APM监控(SkyWalking)
微服务轮子项目(22) -APM监控(SkyWalking)
477 0