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();
}
}
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