Mur*_*rov 5 spring-boot micrometer spring-cloud-gateway
我想在 Spring Cloud Gateway 中的每个请求的日志中显示traceId。然而,traceId和spanId只是空的。
日志配置如下:
logging:
pattern:
level: "%5p [TRACE_ID: %X{traceId:-}] [SPAN_ID: %X{spanId:-}]"
Run Code Online (Sandbox Code Playgroud)
pom.xml 的一部分:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-bridge-brave</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>3.0.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
使用 Spring Boot 3.x 和 Micrometer 1.10+,您可以尝试以下依赖项:
(pom.xml 的一部分)
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-core</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-bridge-brave</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-observation</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<version>1.0.2</version>
<artifactId>micrometer-tracing</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<version>1.0.2</version>
<artifactId>context-propagation</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.micrometer</groupId>
<version>1.10.4</version>
<artifactId>micrometer-bom</artifactId>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)
并在应用程序的主类中进行以下调用:
import reactor.core.publisher.Hooks;
public static void main(String[] args) {
Hooks.enableAutomaticContextPropagation();
// ...
}
Run Code Online (Sandbox Code Playgroud)
Spring Boot 应该很快就会集成这些版本的依赖项并为您进行调用,但现在这些手动步骤应该会为您提供带有跟踪信息的日志。
在reactor-core 3.5.3中,我们添加了使用上下文传播(可选)库注册的ThreadLocal值的自动传播,Micrometer也使用该库。如果您对详细信息感兴趣,请查看介绍此功能的PR 。这是3.5.0带来的一般增强,其中 ThreadLocals 填充在特殊运算符 ->句柄和分接头(及其重载)中。
归档时间: |
|
查看次数: |
3994 次 |
最近记录: |