项目反应堆卡夫卡的齐普金追踪



我需要在一个基于 Java 的服务中实现 Zipkin 跟踪,该服务使用 Project Reactor Kafka 进行反应式流和非阻塞 IO 操作。我找不到任何支持反应式卡夫卡的勇敢的仪器库。

标准的Kafka客户端勇敢的仪器:

https://github.com/openzipkin/brave/tree/master/instrumentation/kafka-clients

不支持 Reactive-Kafka。

是否有一个库或存储库可以帮助我在 java 中对反应式 Kafka 进行 Zipkin 跟踪?

在我的项目中,我们在发送事件之前手动生成了跨度。

var span = tracing.tracer((.nextSpanWithParent(req -> true,Void.class, ctx.get(Span.class(.context(((;

span.name("yourSpanName"(.start((;

return sendEventPublisher.doOnError(span::error(.doOnTerminate(span::finish(;

这样,我们还将跨度链接到发布者生命周期,因为我们在线程之间共享跨度时遇到了问题。

基本上,我们创建一个跨度并将其链接到 Spring 为请求创建的父上下文(来自传入的 B3 HTTP 标头,或者如果不存在则生成(。 "ctx"是这里的订阅者上下文。

这也意味着告诉侦探不要在application.properties中为异步操作生成跨度:

spring.sleuth.async.enabled=false

相关内容

  • 没有找到相关文章

最新更新