9.4. 分散トレース
分散トレースは、分散システム内のアプリケーション間のトランザクションの進行状況を追跡します。マイクロサービスのアーキテクチャーでは、トレースがサービス間のトランザクションの進捗を追跡します。トレースデータは、アプリケーションのパフォーマンスを監視し、ターゲットシステムおよびエンドユーザーアプリケーションの問題を調べるのに有用です。
AMQ Streams では、トレースによってメッセージのエンドツーエンドの追跡が容易になります。これは、ソースシステムから Kafka、さらに Kafka からターゲットシステムおよびアプリケーションへのメッセージの追跡です。分散トレースは、Grafana ダッシュボードおよびコンポーネントロガーでのメトリックの監視を補完します。
トレースのサポートは、以下の Kafka コンポーネントに組み込まれています。
- ソースクラスターからターゲットクラスターへのメッセージをトレースする MirrorMaker
- Kafka Connect が使用して生成したメッセージをトレースする Kafka Connect
- Kafka と HTTP クライアントアプリケーション間のメッセージをトレースする Kafka Bridge
トレースは Kafka ブローカーではサポートされません。
カスタムリソースを使用して、これらのコンポーネントのトレースを有効にして設定します。spec.template
プロパティーを使用してトレース設定を追加します。
spec.tracing.type
プロパティーを使用してトレースタイプを指定することにより、トレースを有効にします。
opentelemetry
-
type: opentelemetry
を指定して、OpenTelemetry を使用します。デフォルトでは、OpenTelemetry は OTLP (OpenTelemetry Protocol) エクスポーターとエンドポイントを使用してトレースデータを取得します。Jaeger トレースなど、OpenTelemetry でサポートされている他のトレースシステムを指定できます。これを行うには、トレース設定で OpenTelemetry エクスポーターとエンドポイントを変更します。 jaeger
-
OpenTracing と Jaeger クライアントを使用してトレースデータを取得するには、
type:jaeger
を指定します。
type: jaeger
トレースのサポートは非推奨です。Jaeger クライアントは廃止され、OpenTracing プロジェクトはアーカイブされました。そのため、今後の Kafka バージョンのサポートを保証できません。可能であれば、type: jaeger
トレースのサポートを 2023 年 6 月まで維持し、その後削除します。できるだけ早く OpenTelemetry に移行してください。
Kafka クライアントのトレース
Kafka プロデューサーやコンシューマーなどのクライアントアプリケーションも、トランザクションをモニタリングするように設定できます。クライアントはトレースプロファイルで設定され、トレーサーはクライアントアプリケーションが使用するように初期化されます。