Sleuth不能与Spring Boot 3.0.0版本一起工作



我正在使用Sleuth和Zipkin进行分布式跟踪,并面临一个问题。

问题:TraceID和SpanID没有在微服务日志中打印(并传递给Zipkin)与3.0.0版本的Spring Boot。

以下是我正在使用的版本:

  • Spring Boot version: 3.0.0
  • 春季云版本:2021.0.4
  • Zipkin Server版本:Zipkin - Server -2.23.19-exec

application.properties:

spring.application.name=sleuthpoc2
spring.zipkin.base-url=http://localhost:9411/
spring.sleuth.sampler.probability=1.0
spring.zipkin.sender.type=WEB

正如我们在https://github.com/spring-cloud/spring-cloud-sleuth/tree/main

中描述的那样

Spring Cloud Sleuth的最后一个小版本是3.1。你可以查看3.1.

这个项目的核心被转移到微米跟踪项目和仪器将移至微米和所有各自的项目(不再所有的仪器将在一个单一的库。

您可以在这里查看迁移指南https://github.com/micrometer-metrics/tracing/wiki/Spring-Cloud-Sleuth-3.1-Migration-Guide,了解如何从Sleuth迁移到Micrometer Tracing。

在spring boot 3中有相同的问题。删除了侦探依赖并添加了千分尺依赖。能够在日志中获取跟踪和跨度ID。下面是示例代码:

<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-bridge-brave</artifactId>
<version>1.1.1</version>
</dependency>
<appender class="ch.qos.logback.core.ConsoleAppender" name="stdout">
<encoder>
<pattern>
%d{yyyy-MM-dd} | %d{HH:mm:ss.SSS} | %thread | %5p | %logger{25} | %12(ID: %8mdc{id}) | %X{traceId:-} | "%X{spanId:-}" | appName | %m%n 
</pattern>
</encoder>
</appender>
<appender class="ch.qos.logback.core.ConsoleAppender" name="jsonstdout">
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<timeZone>EST</timeZone>
<timestampPattern>yyyy-MM-dd'T'HH:mm:ss.SSS</timestampPattern>
</timestamp>
<pattern>
<pattern>
{
"service" : "appName",
"level": "%p",
"thread": "%thread",
"trace": "%X{traceId:-}",
"span": "%X{spanId:-}",
"class": "%logger{40}",
"message": "%m"
}
</pattern>
</pattern>
<stackTrace>
<throwableConverter 
class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
<maxDepthPerThrowable>30</maxDepthPerThrowable>
<maxLength>2048</maxLength>
<shortenedClassNameLength>20</shortenedClassNameLength>
<rootCauseFirst>true</rootCauseFirst>
</throwableConverter>
</stackTrace>
</providers>
</encoder>
</appender>

最新更新