Spring Cloud Gateway迁移至Boot3后,如何用Micrometer填充Netty访问日志Trace ID
问题:Spring Boot 3.0.3 + Micrometer 下 Netty 访问日志无法填充 Trace ID 和 Span ID
我正将基于Spring Cloud Gateway的网关应用从Spring Boot 2.7.9迁移到3.0.3,切换为Micrometer替代Sleuth后,遇到Netty访问日志无法填充Trace ID和Span ID的问题。已创建示例应用复现该问题。
此前在Boot 2.7.9中使用spring-cloud-starter-sleuth时,通过如下配置Bean实现访问日志填充Trace ID和Span ID:
import brave.http.HttpTracing; import reactor.netty.http.brave.ReactorNettyHttpTracing; @Configuration(proxyBeanMethods = false) class TraceNettyConfig { @Bean NettyServerCustomizer traceNettyServerCustomizer(ObjectProvider<HttpTracing> tracing) { return server -> ReactorNettyHttpTracing.create(tracing.getObject()).decorateHttpServer(server); } }
目前示例应用中,网关过滤器日志能正常显示Trace ID和Span ID,但Netty访问日志中这两个字段为空,请问在Boot3搭配Micrometer的环境下,缺少哪些配置才能实现需求?
示例日志如下:
2023-03-01T09:01:05.018+01:00 INFO [TRACE_ID: 63ff0640986add6d1916458610155824] [SPAN_ID: 1916458610155824] 360133 --- [or-http-epoll-2] com.example.demo.MyFilter : Filter has been hit 2023-03-01T09:01:05.911+01:00 INFO [TRACE_ID: ] [SPAN_ID: ] 360133 --- [or-http-epoll-2] reactor.netty.http.server.AccessLog : 127.0.0.1 - - [01/Mar/2023:09:01:04 +0100] \"GET /anything HTTP/1.1\" 200 654 957
内容的提问来源于stack exchange,提问作者martino
相关产品推荐
相关产品推荐

