SpringCloudGateway使用Skywalking时日志打印traceId

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloudGateway使用Skywalking时日志打印traceId相关的知识,希望对你有一定的参考价值。

参考技术A

由于SpringCloudGateway是基于WebFlux来实现的,需要进到skywalking的agent目录,将optional-plugins目录底下的以下两个jar包复制到plugins目录

新增启动参数

启动程序后,尝试通过网关进行接口调用,可以在Skywalking-ui上看到链路已经串起来了

但是有个问题,日志里记录的日志始终不显示正确的TID

查看Skywalking-agent的源码,可以看到,在apm-spring-webflux-5.x-plugin-8.10.0.jar插件里,拦截了 org.springframework.web.reactive.DispatcherHandler handle 方法
拦截器里往reactor的调用链路里,放入 < SKYWALKING_CONTEXT_SNAPSHOT - ContextSnapshot >

网上找了下资料,在这里[ https://github.com/reactor/reactor-core/blob/main/docs/asciidoc/faq.adoc#context.api] 发现了相关信息

https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout

以上是关于SpringCloudGateway使用Skywalking时日志打印traceId的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloudGateway 学习笔记 - 使用内置过滤器添加请求头响应头

SpringCloudGateway使用Skywalking时日志打印traceId

微服务-SpringCloud学习系列: 服务网关SpringCloudGateWay

springcloudgateway请求时间普罗米修斯监控

SpringCloudGateway手动编写路由规则对请求进行转发

SpringCloudGateway手动编写路由规则对请求进行转发