11.4. 分散トレース
分散トレースは、分散システム内のアプリケーション間のトランザクションの進行状況を追跡します。マイクロサービスのアーキテクチャーでは、トレースがサービス間のトランザクションの進捗を追跡します。トレースデータは、アプリケーションのパフォーマンスを監視し、ターゲットシステムおよびエンドユーザーアプリケーションの問題を調べるのに有用です。
Streams for Apache Kafka では、トレースにより、ソースシステムから 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 エクスポーターとエンドポイントを変更します。
Streams for Apache Kafka は OpenTracing をサポートしなくなりました。これまでに type: jaeger
オプションを指定して OpenTracing を使用していた場合は、代わりに OpenTelemetry の使用に移行することを推奨します。
Kafka クライアントのトレース
Kafka プロデューサーやコンシューマーなどのクライアントアプリケーションも、トランザクションをモニタリングするように設定できます。クライアントはトレースプロファイルで設定され、トレーサーはクライアントアプリケーションが使用するように初期化されます。