如何防止 sleuth / zipkin 跟踪 catalog-services-watch?

How to prevent sleuth / zipkin to trace catalog-services-watch?

我已经在我的应用程序上启用了 zipkin,它工作正常,我看到了痕迹。我的应用程序正在使用 Consul 服务发现,我看到在 Zipkin 中跟踪了大量流量。

跟踪的名称类似于 "catalog-services_watch",包含的内容如下:

{
  "key": "class",
  "value": "ConsulCatalogWatch",
  "endpoint": {
    "serviceName": "myService",
    "ipv4": "10.0.36.114",
    "port": 8443
  }
},
{
  "key": "lc",
  "value": "scheduled",
  "endpoint": {
    "serviceName": "myService",
    "ipv4": "10.0.36.114",
    "port": 8443
  }
},
{
  "key": "method",
  "value": "catalogServicesWatch",
  "endpoint": {
    "serviceName": "myService",
    "ipv4": "10.0.36.114",
    "port": 8443
  }
}

如何禁用这些痕迹?我试过 spring.sleuth.instrument.web.skipPattern 参数,但它不起作用。

我发现这些痕迹其实是由https://github.com/spring-cloud/spring-cloud-consul/blob/master/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ConsulCatalogWatch.java

产生的

并且由于这是一个用 @scheduled 注释的 class,所以这个 Sleuth 方面适用:

https://github.com/spring-cloud/spring-cloud-sleuth/blob/master/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAspect.java

因此,控制跳过的正则表达式的 属性 不是 spring.sleuth.instrument.web.skipPattern ,而是 spring.sleuth.instrument.scheduled.skip-pattern