排除Spring Cloud Sleuth中的资源

排除Spring Cloud Sleuth中的资源,spring,spring-cloud,Spring,Spring Cloud,我正在研究将SpringCloud-Sleuth集成到我们正在构建的一个新的Spring引导服务中,并希望从生成跨度中排除某些URL,例如定期轮询的健康检查端点 通过检查代码,我可以看到在中创建的TraceFilter具有默认的跳过模式,可以通过设置spring.sleuth.instrument.web.skipPattern来覆盖该模式 然而,即使我在默认的跳过模式下访问资源,我仍然观察到正在创建跟踪和跨度,即 17:28:46.142 [XNIO-2 task-1] INFO o.s.c

我正在研究将SpringCloud-Sleuth集成到我们正在构建的一个新的Spring引导服务中,并希望从生成跨度中排除某些URL,例如定期轮询的健康检查端点

通过检查代码,我可以看到在中创建的TraceFilter具有默认的跳过模式,可以通过设置
spring.sleuth.instrument.web.skipPattern来覆盖该模式

然而,即使我在默认的跳过模式下访问资源,我仍然观察到正在创建跟踪和跨度,即

17:28:46.142 [XNIO-2 task-1] INFO  o.s.c.sleuth.log.Slf4jSpanListener - Starting span: MilliSpan(begin=1454394526140, end=0, name=http/info, traceId=908b24a3-143f-4949-8f86-5df867e3985b, parents=[], spanId=908b24a3-143f-4949-8f86-5df867e3985b, remote=false, exportable=false, annotations={}, processId=null, timelineAnnotations=[])
17:28:46.143 [XNIO-2 task-1] INFO  o.s.c.sleuth.log.Slf4jSpanListener - Continued span: MilliSpan(begin=1454394526140, end=0, name=http/info, traceId=908b24a3-143f-4949-8f86-5df867e3985b, parents=[], spanId=908b24a3-143f-4949-8f86-5df867e3985b, remote=false, exportable=false, annotations={}, processId=null, timelineAnnotations=[])
17:28:46.146 [XNIO-2 task-1] INFO  io.undertow.servlet - Initializing Spring FrameworkServlet 'dispatcherServlet'
17:28:46.146 [XNIO-2 task-1] INFO  o.s.web.servlet.DispatcherServlet - FrameworkServlet 'dispatcherServlet': initialization started
17:28:46.170 [XNIO-2 task-1] INFO  o.s.web.servlet.DispatcherServlet - FrameworkServlet 'dispatcherServlet': initialization completed in 24 ms
17:28:46.216 [XNIO-2 task-1] INFO  o.s.c.sleuth.log.Slf4jSpanListener - Stopped span: MilliSpan(begin=1454394526140, end=1454394526215, name=http/info, traceId=908b24a3-143f-4949-8f86-5df867e3985b, parents=[], spanId=908b24a3-143f-4949-8f86-5df867e3985b, remote=false, exportable=false, annotations={}, processId=null, timelineAnnotations=[])

我错过什么了吗?我当前使用的是1.0.0。M4

跳过的资源不会阻止创建范围,它只会停止收集和导出数据。所以你的日志对我来说很正常。在快照中,您将在跳过的资源中看到“exportable”标志设置为false。

您使用的模式是什么。您知道该模式是一个regexp而不是一个ant样式的表达式。请显示您的配置好吗?这将更容易理解您在做什么。我试图通过设置
spring.sleuth.instrument.web.skipPattern=/health
来明确排除我的
/health
端点。通过调试,我在TraceFilter内部验证了skipped设置为true。看起来这可能与此问题有关?自M4以来也发生了很多变化,所以如果我是你,我会尝试快照。除非您显式发送X-Not-Sampled标头,否则该问题也不相关。谢谢您的解释。我查看了快照,可以看到这个日志记录已经被转移到跟踪范围中,这解决了由于定期调用健康检查端点而导致的日志噪音问题。