3.3. 分散トレースの設定
分散トレースを有効にして、Kafka Bridge で使用され、生成されたメッセージと、クライアントアプリケーションからの HTTP リクエストをトレースします。
トレースを有効にするプロパティーは application.properties
ファイルにあります。分散トレースを有効にするには、以下を実行します。
-
使用するトレースを有効にするには、
bridge.tracing
プロパティーの値を設定します。唯一使用できる値はopentelemetry
です。 - トレースの環境変数を設定します。
デフォルトの設定では、OpenTelemetry トレースは OTLP をエクスポータープロトコルとして使用します。OTLP エンドポイントを設定することで、引き続き Jaeger バックエンドインスタンスを使用してトレースを取得できます。
Jaeger は、バージョン 1.35 以降、OTLP プロトコルをサポートしています。古いバージョンの Jaeger は、OTLP プロトコルを使用してトレースを取得できません。
OpenTelemetry は、トレースデータをメトリクスデータの スパン として収集するための API 仕様を定義します。スパンは特定の操作を表します。トレースは、1 つ以上のスパンのコレクションです。
トレースは、Kafka Bridge で以下の場合に生成されます。
- Kafka からコンシューマー HTTP クライアントにメッセージを送信します。
- プロデューサー HTTP クライアントからメッセージを受信して Kafka に送信します。
Jaeger は必要な API を実装し、分析用にユーザーインターフェイスでトレースデータを視覚化します。
エンドツーエンドのトレーシングを設定するために、HTTP クライアントでトレーシングを設定する必要があります。
Streams for Apache Kafka は OpenTracing をサポートしなくなりました。これまでに bridge.tracing=jaeger
オプションを指定して OpenTracing を使用していた場合は、代わりに OpenTelemetry の使用に移行することを推奨します。
手順
Kafka Bridge インストールアーカイブで提供される
application.properties
ファイルを編集します。使用するトレースを有効にするには、
bridge.tracing
プロパティーを使用します。OpenTelemetry を有効にする設定例
bridge.tracing=opentelemetry 1
- 1
- OpenTelemetry を有効にするプロパティーは、行の先頭にある
#
を削除することでコメントが解除されます。
トレースを有効にすると、Kafka Bridge スクリプトの実行時にトレースを初期化します。
- 設定ファイルを作成します。
トレーシングの環境変数を設定します。
OpenTelemetry の環境変数
OTEL_SERVICE_NAME=my-tracing-service 1 OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317 2
プロパティーを有効にしてトレース用に Kafka Bridge スクリプトを実行します。
OpenTelemetry を有効にして Kafka Bridge を実行する
./bin/kafka_bridge_run.sh --config-file=<path>/application.properties
Kafka Bridge の内部コンシューマーとプロデューサーが有効になり、トレースできるようになりました。
3.3.1. OpenTelemetry でのトレースシステムの指定
デフォルトの OTLP トレースシステムの代わりに、OpenTelemetry でサポートされている他のトレースシステムを指定できます。
OpenTelemetry で別のトレースシステムを使用する場合は、以下の手順を実施します。
- トレースシステムのライブラリーを Kafka クラスパスに追加します。
トレースシステムの名前を追加のエクスポーター環境変数として追加します。
OTLP を使用しない場合の追加の環境変数
OTEL_SERVICE_NAME=my-tracing-service OTEL_TRACES_EXPORTER=zipkin 1 OTEL_EXPORTER_ZIPKIN_ENDPOINT=http://localhost:9411/api/v2/spans 2
3.3.2. サポートされているスpan 属性
Kafka Bridge は、標準の OpenTelemetry 属性に加えて、HTTP の OpenTelemetry 標準規則からそのスパンに次の 属性を追加します。
属性キー | 属性値 |
|
|
| リクエストの実行に使用される http メソッド |
| URI スキーム コンポーネント |
| URI パス コンポーネント |
| URI クエリー コンポーネント |
| 生成または読み取る Kafka トピックの名前 |
|
|
|
200 から 300 までの http レスポンスの場合は |