[英]Which to log X-B3-SpanId or SpanId? X-B3-TraceId or TraceId? (Spring sleuth)
[英]Spring Interceptor has different traceId for afterCompletion method with Spring sleuth 3.x.x
我目前正在開發一個 Spring Boot 項目。 最近我將我的 Spring boot 版本從 2.3.3 升級到了 2.6.6。 在 Spring boot 2.3.3 中,我使用的是 Spring cloud sleuth 2.xx,由於 Spring cloud 依賴管理 BOM,它現在已升級到 3.xx。 POM如下
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2021.0.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
</dependencies>
我有一個攔截器如下
@Slf4j
@Component
public class RequestInterceptor implements HandlerInterceptor {
@Autowired
private Tracer tracer;
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
log.info("Execution completed with traceId: {}", tracer.currentSpan().context().traceIdString());
}
早些時候,這段代碼為該特定請求的所有日志提供了相同的 traceId。 但是在 Spring sleuth 3.xx 中,我在 Spring Interceptor 的 afterCompletion() 中得到了不同的 traceId。 有人可以幫忙嗎
注意:我知道這是一個故意的例子,但我的項目中有類似的代碼
這似乎是 Sleuth 中的一個錯誤,或者 Reactor / WebClient 中的某些行為發生了變化 -https://github.com/spring-cloud/spring-cloud-sleuth/issues/2075
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.