我需要在一个基于java的服务中实现Zipkin跟踪,该服务使用Project Reactor Kafka进行反应式流和非阻塞IO操作。我找不到任何支持reactive-Kafka的勇敢仪表库。
标准的Kafka客户端勇敢插装:
https://github.com/openzipkin/brave/tree/master/instrumentation/kafka-clients
不支持Reactive-Kafka。
有没有一个库或repo可以帮助我在java中为reactive-Kafka进行Zipkin跟踪?
发布于 2020-04-16 18:11:53
在我的项目中,我们在发送事件之前手动生成了跨度。
请求变量
= tracing.tracer().nextSpanWithParent(req -> true,Void.class,ctx.get(Span.class).context());
span.name("yourSpanName").start();
返回sendEventPublisher.doOnError(span::error).doOnTerminate(span::finish);
通过这种方式,我们还将跨度链接到发布者生命周期,因为我们在线程之间共享跨度时遇到了问题。
基本上,我们创建一个跨度,并将其链接到Spring为请求创建的父上下文(从传入的B3 HTTP header创建,或者在没有的情况下生成)。"ctx“是这里的订阅者上下文。
这也意味着告诉侦探不要为application.properties中的异步操作生成跨度:
spring.sleuth.async.enabled=false
https://stackoverflow.com/questions/57180252
复制相似问题