第26章 Introducing distributed tracing
分散トレースを使用すると、分散システムのアプリケーション間におけるトランザクションの進捗を追跡できます。マイクロサービスのアーキテクチャーでは、トレースがサービス間のトランザクションの進捗を追跡します。トレースデータは、アプリケーションのパフォーマンスを監視し、ターゲットシステムおよびエンドユーザーアプリケーションの問題を調べるのに有用です。
Streams for Apache Kafka では、分散トレーシングによってメッセージのエンドツーエンドの追跡が容易になります。これは、ソースシステムから Kafka、さらに Kafka からターゲットシステムおよびアプリケーションへのメッセージの追跡です。これは、Grafana ダッシュボードとコンポーネントロガーでのメトリクスの監視を補完します。
Streams for Apache Kafka には、次の Kafka コンポーネントのトレーシングに対するサポートが組み込まれています。
- ソースクラスターからターゲットクラスターへのメッセージをトレースする MirrorMaker
- Kafka Connect が使用して生成したメッセージをトレースする Kafka Connect
- Kafka と HTTP クライアントアプリケーション間のメッセージをトレースする Kafka Bridge
トレースは Kafka ブローカーではサポートされません。
26.1. トレースオプション リンクのコピーリンクがクリップボードにコピーされました!
分散トレースは、特定の期間に実行された個々の作業単位を表すスパンで構成されます。トレーサーを装備すると、アプリケーションはシステム内を移動するときにリクエストを追跡するトレースを生成するため、遅延や問題を特定しやすくなります。
テレメトリーフレームワークである OpenTelemetry は、特定のバックエンドトレースシステムに依存しないトレース用の API を提供します。Streams for Apache Kafka では、Kafka コンポーネントとトレースシステム間でトレースを送信するためのデフォルトのプロトコルは、ベンダー中立のプロトコルである OpenTelemetry の OTLP (OpenTelemetry Protocol) です。
OTLP がデフォルトですが、Streams for Apache Kafka は Jaeger などの他のトレースシステムもサポートしています。Jaeger はマイクロサービスを監視するために設計された分散トレーシングシステムであり、そのユーザーインターフェイスを使用すると、トレースデータを詳細にクエリー、フィルター設定、分析が可能になります。
簡単なクエリーを表示する Jaeger ユーザーインターフェイス