版本:7.0.0
描述
在某些场景下,我们可能对一些调用链路不关心,但是这部分数据还挺大的,大到会影响我们正常的业务。比如一些中间件的心跳。
这个时候可以选择性的忽略一些调用链,SkyWalking将不在收集忽略掉的数据。
在SkyWalking中,有三种手段忽略不需要跟踪的数据。
- 禁用插件。
- 引入忽略插件,配置指定忽略端点(endpoint)集合。
- 配置指定忽略链路的第一个span的操作后缀名称。
配置
1. 禁用插件
我们可以移除掉agent/plugins/
目录下特定的jar包,来忽略对特定组件的链路跟踪。例如:移除rocketmq插件包来忽略rocketmq的链路追踪。
2. 引入忽略插件
- 将
agent/optional-plugins
目录下的apm-trace-ignore-plugin-xxx.jar
复制到agent/plugins/
目录下。 - 两种配置方式,第一种方式是在
config
目录下新增apm-trace-ignore-plugin.config
文件,配置trace.ignore_path=${SW_AGENT_TRACE_IGNORE_PATH:/eureka/**}
,第二种方式是增加环境变量-Dskywalking.trace.ignore_path=/eureka/**
,重启应用,SkyWalking将不在采集指定路径的数据。
路径配置方式:/path/?
: 匹配单个字符/path/*
: 匹配多个字符/path/**
: 匹配多个字符并且支持多级目录
如果有多个需要忽略,使用英文逗号(,)分隔,如:trace.ignore_path=/eureka/**,/consul/**
3. agent.config配置指定忽略后缀
在agent.config中存在如下配置,如果trace的第一个span的操作名称以html
后缀结尾,则忽略这些trace
agent.ignore_suffix=${SW_AGENT_IGNORE_SUFFIX:.html}
提示:配置文件中以这样格式配置的${variables:default}
,variables
可以使用环境变量覆盖。
验证
示例使用第二种方式。
没忽略时收集/user/users
数据:
将apm-trace-ignore-plugin-xxx.jar
复制到agent/plugins/
目录下。
设置环境变量:-Dskywalking.trace.ignore_path=/user/users
。
重启应用,再次发送请求。
再次查看收集到的数据:
发现在忽略时间点2020-06-28 22:26:30
之后,系统不在采集/user/users
下的数据了。
来源:oschina
链接:https://my.oschina.net/u/2344188/blog/4328138