Die Trace-ID im Spring Cloud Gateway GlobalFilter (Brave + Zipkin) kann nicht abgerufen werden.Java

Java-Forum
Guest
 Die Trace-ID im Spring Cloud Gateway GlobalFilter (Brave + Zipkin) kann nicht abgerufen werden.

Post by Guest »

Ich habe einen Post-Filter, der versucht, die Trace-ID als Header in die Antwort einzufügen. Ich habe die Vorschläge hier befolgt, aber der TraceContext ist immer noch null.

Code: Select all

@Slf4j
@Configuration
public class PostFilters {

public static final String CORRELATION_ID = "X-CORRELATION-ID";

@Bean
public GlobalFilter correlationIdPostFilter() {
return(exchange, chain) -> chain.filter(exchange)
.then(Mono.just(exchange))
.map(serverWebExchange ->  {
TraceContext traceContext = WebFluxSleuthOperators.currentTraceContext(serverWebExchange);
log.info("Trace Context: {}", traceContext;
if (traceContext != null) {
serverWebExchange.getResponse().getHeaders().set(CORRELATION_ID, traceContext.traceId());
}
return serverWebExchange;
})
.then();
}
}
Abhängigkeiten

Code: Select all

        
org.springframework.boot
spring-boot-starter-actuator


io.micrometer
micrometer-tracing-bridge-brave


io.zipkin.reporter2
zipkin-reporter-brave


io.zipkin.reporter2
zipkin-sender-okhttp3


org.springframework.cloud
spring-cloud-sleuth-instrumentation

Wenn es darauf ankommt, weiß ich, dass der Kontext weitergegeben wird, da ich die Trace-IDs dienstübergreifend in den Protokollen und in Zipkin sehen kann.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post