При загрузке sprint 3.1.5 в двух микросервисах, один из которых использует FeignClient для запроса к другому микросервису, у меня есть следующая конфигурация свойств в обоих микросервисах:
Код: Выделить всё
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:-}]"
У меня есть следующая библиотека в обоих помах:
Код: Выделить всё
io.micrometer
micrometer-tracing-bridge-brave
1.1.6
У меня есть эта FeignConfiguration, позволяющая вызвать микросервис A, чтобы передать контекст микросервису B:
Код: Выделить всё
@Configuration
public class FeignConfiguration {
@Bean
public Capability capability(final MeterRegistry registry) {
return new MicrometerCapability(registry);
}
}
У меня есть это для регистрации PARENT_ID в обоих микросервисах, и все работает нормально:
Код: Выделить всё
@Configuration
public class BraveTracerConfig {
@Bean
CorrelationScopeCustomizer parentIdCorrelationScopeCustomizer() {
return builder -> builder.add(SingleCorrelationField.create(BaggageFields.PARENT_ID));
}
}
Когда микросервис A вызывает микросервис B, идентификатор трассировки распространяется, но я не вижу в микросервисе B в журналах идентификатор spanId или родительский идентификатор, зарегистрированный в feignClient из микросервиса A, они различаются, за исключением TraceId. . Судя по смелой конфигурации, которую я использовал, предполагается, что я смогу получить ее по этому
https://github.com/spring-projects/spri ... pull/35165, верно?
Спасибо!
Подробнее здесь:
https://stackoverflow.com/questions/782 ... ate-spanid