Spring Cloud Sleuth 在 spring-boot/spring cloud 升级后停止将 X-B3-TraceId 推送到 MDC

Posted

技术标签:

【中文标题】Spring Cloud Sleuth 在 spring-boot/spring cloud 升级后停止将 X-B3-TraceId 推送到 MDC【英文标题】:Spring Cloud Sleuth stopped pushing X-B3-TraceId into MDC after spring-boot/spring cloud upgrade 【发布时间】:2021-07-28 02:29:44 【问题描述】:

我已将 Spring boot 依赖项从 2.1 升级到 2.4.5 并将 spring cloud 升级到 2020.0.2。 此次升级后,我的 MDC 上下文未填充。

关于这里应该做什么的任何想法?

【问题讨论】:

【参考方案1】:

在 spring cloud 2020.0.2 你有侦探 3.x 并且有一个迁移指南告诉你 some changes to MDC

【讨论】:

【参考方案2】:

我认为答案取决于您的用例,但据我记得,发生了变化,并且 MDC 上下文在跨度完成后被清理。

这意味着如果你在Span范围内(例如:控制器方法),你可以看到MDC的Sleuth相关部分但是如果你在Span范围之外(例如:Tomcat访问日志),你没有。

要对此进行测试,请尝试注销控制器方法内的 MDC 上下文映射,MDC 上下文应包含与跟踪相关的字段。

【讨论】:

就是这样,我在控制器方法内部,我正在输出 MDC 映射,它为空。

以上是关于Spring Cloud Sleuth 在 spring-boot/spring cloud 升级后停止将 X-B3-TraceId 推送到 MDC的主要内容,如果未能解决你的问题,请参考以下文章

spring-cloud-sleuth与spring-amqp集成

如何配置 spring-cloud-gateway 以使用 sleuth 记录请求/响应正文

Spring CloudSpring Cloud之Spring Cloud Sleuth,分布式服务跟踪

带有 OpenTracing 的 Spring Cloud Sleuth

Spring Cloud Sleuth“操作方法”指南

Spring Cloud Sleuth 介绍