SkyWalking 调用链忽略(取消跟踪)

余生颓废 提交于 2020-08-05 15:49:37

版本:7.0.0

描述

在某些场景下,我们可能对一些调用链路不关心,但是这部分数据还挺大的,大到会影响我们正常的业务。比如一些中间件的心跳。
这个时候可以选择性的忽略一些调用链,SkyWalking将不在收集忽略掉的数据。
在SkyWalking中,有三种手段忽略不需要跟踪的数据。

  1. 禁用插件。
  2. 引入忽略插件,配置指定忽略端点(endpoint)集合。
  3. 配置指定忽略链路的第一个span的操作后缀名称。

配置

1. 禁用插件

我们可以移除掉agent/plugins/目录下特定的jar包,来忽略对特定组件的链路跟踪。例如:移除rocketmq插件包来忽略rocketmq的链路追踪。

2. 引入忽略插件

  1. agent/optional-plugins目录下的apm-trace-ignore-plugin-xxx.jar复制到agent/plugins/目录下。
  2. 两种配置方式,第一种方式是在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下的数据了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!