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