With "span-joining-supported" brave tracer feature, dont get to propagate spanIds to other service using feign

39 Views Asked by At

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

}

When microservice A calls microservice B, traceId is propagated but I dont see in microservice B in the logs the spanId or parentId logged in the feignClient from the microservice A, they are different except for traceId. According to the brave configuration I used, it is supposed I can get it according to this https://github.com/spring-projects/spring-boot/pull/35165, right?

Thanks!

0

There are 0 best solutions below