我在Spring Boot应用程序中使用sleuth进行日志跟踪,并且我的应用程序还通过Active MQ发送一些消息,但是当我看到消息属性时,它使用单个b3标头发送跟踪。 如何配置sleuth来分隔标题?
答案 0 :(得分:1)
默认值不仅具有更好的性能,而且不违反JMS标头名称规则。我建议您弄清楚为什么不能使用b3 single。
如果必须使用多个标头,则可以执行以下操作:
@Bean Propagation.Factory customPropagationFactory() {
return B3Propagation.newFactoryBuilder()
.injectFormat(Span.Kind.PRODUCER, Format.MULTI)
.injectFormat(Span.Kind.CONSUMER, Format.MULTI)
.build();
}
答案 1 :(得分:-1)
如果您希望 spring.sleuth.baggage.xxx
应用程序属性起作用,那么您需要将传播工厂包装在行李传播工厂中:
@Bean
public BaggagePropagation.FactoryBuilder baggagePropagationFactoryBuilder() {
Propagation.Factory b3Factory = B3Propagation.newFactoryBuilder()
.injectFormat(Span.Kind.PRODUCER, B3Propagation.Format.MULTI)
.injectFormat(Span.Kind.CONSUMER, B3Propagation.Format.MULTI)
.build();
return BaggagePropagation.newFactoryBuilder(b3Factory);
}
请参阅 TraceBaggageConfiguration.baggagePropagationFactoryBuilder()
上的 javadoc