spring-cloud-openfeign
spring-cloud-openfeign copied to clipboard
B3 span and parentId headers not propagated with spring-cloud-openfeign and brave
With sprint boot 3.1.5 in two microservices, one using FeignClient to request to the other microservice , I have this properties configuration in both microservices:
management:
tracing:
propagation:
produce: b3
consume: b3
brave:
span-joining-supported: true
logging:
pattern:
level: "%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-},%X{parentId:-}]"
I have next library in both poms:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-bridge-brave</artifactId>
<version>1.1.6</version>
</dependency>
I have this FeignConfiguration lets called in microservice A to get the context propagated to the microservice B:
@Configuration
public class FeignConfiguration {
@Bean
public Capability capability(final MeterRegistry registry) {
return new MicrometerCapability(registry);
}
}
I have this in order to log PARENT_ID in both microservices and is working fine:
@Configuration
public class BraveTracerConfig {
@Bean
CorrelationScopeCustomizer parentIdCorrelationScopeCustomizer() {
return builder -> builder.add(SingleCorrelationField.create(BaggageFields.PARENT_ID));
}
}
The problem is when microservice A calls microservice B, traceId is propagated but I dont see in microservice B in the logs the spanId or parentId from the feign client logs in microservice A.
First of all, I read about Spring Boot 3.x does not allow joining of spans. But with the brave configuration is supposed I can get it according to this https://github.com/spring-projects/spring-boot/pull/35165, right?
Thanks!