我只是迈出了第一步,spring-cloud-sleuth
它适用于各种 http 调用。
现在,我也正在尝试涵盖消息传递部分。我看到它spring-cloud-sleuth
与spring-integration
开箱即用的集成。我目前只使用spring-amqp
. 有没有办法让这个工作。有没有人有一些见解甚至代码示例?
我只是迈出了第一步,spring-cloud-sleuth
它适用于各种 http 调用。
现在,我也正在尝试涵盖消息传递部分。我看到它spring-cloud-sleuth
与spring-integration
开箱即用的集成。我目前只使用spring-amqp
. 有没有办法让这个工作。有没有人有一些见解甚至代码示例?
目前我们仅通过 spring-integration 直接支持 AMQP。为了支持 AMQP,您必须确保发送的所有消息都设置了正确的标头,并且当您取回它们时,您必须获取这些标头并将它们放入本地上下文中。例如,将跨度(跟踪)信息注入到消息中 - https://github.com/spring-cloud/spring-cloud-sleuth/blob/v1.3.5.RELEASE/spring-cloud-sleuth-core/src /main/java/org/springframework/cloud/sleuth/instrument/messaging/MessagingSpanTextMapInjector.java并从消息中提取跟踪数据在这里https://github.com/spring-cloud/spring-cloud-sleuth/blob/v1 .3.5.RELEASE/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/MessagingSpanTextMapExtractor.java. 在这种方法中,您可以将提取的 Span 设置到上下文中https://github.com/spring-cloud/spring-cloud-sleuth/blob/v1.3.5.RELEASE/spring-cloud-sleuth-core/src/主/java/org/springframework/cloud/sleuth/instrument/messaging/TraceChannelInterceptor.java#L71
更新:
使用 Sleuth 2.0.x(Finchley release train),如果您有一个兔子模板类型的 bean,它应该可以开箱即用(请参阅此处)。不需要额外的代码。