10.3. 使用 tracers 强制 Kafka 客户端
检测 Kafka 制作者和消费者客户端,以及 Kafka Streams API 应用程序以实现分布式追踪。
10.3.1. 强制生产者和消费者进行追踪 复制链接链接已复制到粘贴板!
使用 Decorator 模式或 Interceptors 来检测 Java 制作者和使用者应用代码进行追踪。
流程
在每个生产者和消费者应用程序的应用程序代码中:
将 OpenTracing 的 Maven 依赖项添加到制作者或消费者的
pom.xml
文件中。<dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-kafka-client</artifactId> <version>0.1.15.redhat-00001</version> </dependency>
<dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-kafka-client</artifactId> <version>0.1.15.redhat-00001</version> </dependency>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Decorator 模式或 Interceptors 检测您的客户端应用程序代码。
使用 Decorator 模式:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Interceptors:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.3.1.1. Decorator 模式中的自定义范围名称 复制链接链接已复制到粘贴板!
span 是 Jaeger 中的逻辑工作单元,具有操作名称、开始时间和持续时间。
要使用 Decorator 模式来检测您的制作者和消费者应用程序,请在创建 TracingKafkaProducer 和
对象时传递 TracingKafka
ConsumerBiFunction
对象作为额外参数来定义自定义 span 名称。OpenTracing Apache Kafka Client Instrumentation 库包含多个内置范围名称。
示例:使用自定义 span 名称在 Decorator 模式中检测客户端应用程序代码
10.3.1.2. 内置范围名称 复制链接链接已复制到粘贴板!
在定义自定义 span 名称时,您可以在 ClientSpanNameProvider
类中使用以下 BiFunctions
。如果没有指定 spanNameProvider
,则使用 CONSUMER_OPERATION_NAME
和 PRODUCER_OPERATION_NAME
。
BiFunction | 描述 |
---|---|
|
将 |
|
返回 |
|
返回消息发送到或检索到的主题的名称,格式为 |
|
返回 |
|
返回操作名称和主题名称 |
|
返回 |