Sleuth不会在使用AMQP的日志记录中写入标头

问题描述

我有两个使用相同版本的微服务

spring-boot-starter-web (2.3.4)
spring-boot-starter-amqp (2.3.4)
spring-cloud-starter-sleuth (2.2.5)

该服务可以使用logback在日志上完美地记录traceId,spanId和parentId。

{“ @ timestamp”:“ 2020-10-22T14:05:53.387 + 02:00”,“ level”:“ DEBUG”,“ thread”:“ SimpleAsyncTaskExecutor-3”,“ logger”:“ com”。 santander.acms.commons.tracker.publisher.TrackerPublisher“,” traceId“:” b16a8a0cd546b721“,” spanId“:” 48d0d6dfc8834f8c“,” parentSpanId“:” 568a39d74ddeb7d9“,”消息“:”,消息已发送?“: “ json_message”:null,“ exception”:“”}

服务一在服务B上发布到服务2的队列中,并在覆盖B3PropagationFactory之后将X-B3标头注入到消息中,如本文(how to force sleuth not send in single b3 header)所述。

@Bean
BaggagePropagation.FactoryBuilder baggagePropagationFactoryBuilder() {
return BaggagePropagation.newFactoryBuilder(B3Propagation.newFactoryBuilder()
    .injectFormat(Span.Kind.PRODUCER,Format.MULTI)
    .injectFormat(Span.Kind.CONSUMER,Format.MULTI)
    .build());

}

enter image description here

我的问题是,服务2在使用队列中的消息时不会在日志记录中显示任何traceId,spanId和parentId。

我的登录文件配置如下:

                    "traceId": "%X{X-B3-TraceId:-}","spanId": "%X{X-B3-SpanId:-}","parentSpanId": "%X{X-B3-ParentSpanId:-}",

我是否必须覆盖任何其他bean或配置更多的东西?。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)