11.3. トレーサーでの Kafka クライアントのインストルメント化
Kafka プロデューサーとコンシューマークライアント、および Kafka Streams API アプリケーションを分散トレーシング用にインストルメント化します。
11.3.1. トレーシングのための Kafka プロデューサーおよびコンシューマーのインストルメント化 リンクのコピーリンクがクリップボードにコピーされました!
Decorator パターンまたは Interceptor を使用して、Java プロデューサーおよびコンシューマーアプリケーションコードをトレーシング用にインストルメント化します。
手順
各プロデューサーおよびコンシューマーアプリケーションのアプリケーションコードで以下を行います。
OpenTracing の Maven 依存関係を、プロデューサーまたはコンシューマーの
pom.xml
ファイルに追加します。<dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-kafka-client</artifactId> <version>0.1.15.redhat-00002</version> </dependency>
<dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-kafka-client</artifactId> <version>0.1.15.redhat-00002</version> </dependency>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Decorator パターンまたは Interceptor のいずれかを使用して、クライアントアプリケーションコードをインストルメント化します。
Decorator パターンを使用する場合は以下を行います。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Interceptor を使用する場合は以下を使用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.3.1.1. Decorator パターンのカスタムスパン名 リンクのコピーリンクがクリップボードにコピーされました!
スパン は Jaeger の論理作業単位で、操作名、開始時間、および期間が含まれます。
プロデューサーとコンシューマーのアプリケーションをインストルメントするためにDecoratorパターンを使用するには、TracingKafkaProducer
およびTracingKafkaConsumer
オブジェクトを作成する際に、追加の引数としてBiFunction
オブジェクトを渡して、カスタムスパン名を定義します。OpenTracing の Apache Kafka Client Instrumentation ライブラリーには、複数の組み込みスパン名が含まれています。
例: カスタムスパン名を使用した Decorator パターンでのクライアントアプリケーションコードのインストルメント化
11.3.1.2. ビルトインスパン名 リンクのコピーリンクがクリップボードにコピーされました!
カスタムスパン名を定義するとき、ClientSpanNameProvider
クラスで以下の BiFunctions
を使用できます。spanNameProvider
を指定しないと、CONSUMER_OPERATION_NAME
および PRODUCER_OPERATION_NAME
が使用されます。
BiFunction | 説明 |
---|---|
|
|
|
|
|
メッセージの送信先または送信元となったトピックの名前を |
|
|
|
操作名およびトピック名を |
|
|