2.3. Red Hat OpenShift Distributed Tracing Platform のアーキテクチャー
Red Hat OpenShift Distributed Tracing Platform は、トレースデータを収集、保存、表示するために連携して動作する複数のコンポーネントで構成されています。
Red Hat OpenShift Distributed Tracing Platform: このコンポーネントは、オープンソースの Grafana Tempo プロジェクト に基づいています。
- Gateway: ゲートウェイは、認証、認可、およびディストリビューターまたはクエリーフロントエンドサービスへのリクエストの転送を処理します。
-
Distributor: ディストリビューターは、Jaeger、OpenTelemetry、Zipkin などの複数の形式のスパンを受け入れます。
traceID
をハッシュ化し、分散コンシステントハッシュリングを使用して、スパンを Ingester にルーティングします。 - Ingester: Ingester はトレースをブロックにバッチ化し、ブルームフィルターとインデックスを作成してすべてバックエンドにフラッシュします。
- Query Frontend: Query Frontend は、受信クエリーの検索スペースをシャーディングします。次に、検索クエリーが Querier に送信されます。Query Frontend のデプロイメントでは、Tempo Query サイドカーを介して Jaeger UI が公開されます。
- Querier: Querier は、Ingester またはバックエンドストレージで要求されたトレース ID を検索します。パラメーターに応じて、Ingester にクエリーを実行し、バックエンドから Bloom インデックスを取得して、オブジェクトストレージ内のブロックを検索できます。
- Compactor: Compactor は、ブロックをバックエンドストレージとの間でストリーミングして、ブロックの総数を減らします。
Red Hat build of OpenTelemetry - このコンポーネントは、オープンソースの OpenTelemetry プロジェクト に基づいています。
- OpenTelemetry Collector: OpenTelemetry Collector は、テレメトリーデータを受信、処理、エクスポートするためのベンダーに依存しない方法です。OpenTelemetry Collector は、Jaeger や Prometheus などのオープンソースの可観測性データ形式をサポートし、1 つ以上のオープンソースまたは商用バックエンドに送信します。Collector は、インストルメンテーションライブラリーがテレメトリーデータをエクスポートするデフォルトの場所です。
Red Hat OpenShift Distributed Tracing Platform (Jaeger): このコンポーネントは、オープンソースの Jaeger プロジェクト に基づいています。
重要Red Hat OpenShift Distributed Tracing Platform (Jaeger) は、非推奨の機能です。非推奨の機能は依然として OpenShift Container Platform に含まれており、引き続きサポートされますが、この製品の今後のリリースで削除されるため、新規デプロイメントでの使用は推奨されません。
Red Hat OpenShift Distributed Tracing Platform Operator (Jaeger) は、今後のリリースで
redhat-operators
カタログから削除される予定です。詳細は、Red Hat ナレッジベースソリューション Jaeger Deprecation and Removal in OpenShift を参照してください。分散トレーシングの収集と保存を行うには、Tempo Operator と Red Hat build of OpenTelemetry に移行する必要があります。
OpenShift Container Platform で非推奨となったか、削除された主な機能の最新リストは、OpenShift Container Platform リリースノートの 非推奨および削除された機能 セクションを参照してください。
- クライアント (Jaeger クライアント、Tracer、Reporter、計装されたアプリケーション、クライアントライブラリー) - Distributed Tracing Platform (Jaeger) クライアントは、OpenTracing API の言語固有の実装です。クライアントは、手動で、またはさまざまな既存のオープンソースフレームワーク (Camel (Fuse)、Spring Boot (RHOAR)、MicroProfile (RHOAR/Thorntail)、Wildfly (EAP) など、OpenTracing にすでに統合されているもの) を使用して、分散トレーシング用にアプリケーションを計装するために使用できます。
- エージェント (Jaeger エージェント、Server Queue、Processor Worker) - Distributed Tracing Platform (Jaeger) エージェントは、User Datagram Protocol (UDP) 経由で送信されるスパンをリッスンし、それをバッチ処理してコレクターに送信するネットワークデーモンです。エージェントは、計装されたアプリケーションと同じホストに配置する必要があります。これは通常、Kubernetes などのコンテナー環境にサイドカーを配置することで実現されます。
- Jaeger Collector (Collector、Queue、Worker): Jaeger エージェントと同様に、Jaeger Collector はスパンを受信し、これらを処理するために内部キューに配置します。これにより、Jaeger Collector はスパンがストレージに移動するまで待機せずに、クライアント/エージェントにすぐに戻ることができます。
- Storage (Data Store): コレクターには永続ストレージのバックエンドが必要です。Red Hat OpenShift Distributed Tracing Platform (Jaeger) には、スパンストレージ用のプラグ可能なメカニズムがあります。Red Hat OpenShift Distributed Tracing Platform (Jaeger) は、Elasticsearch ストレージをサポートしています。
- Query (Query Service): Query は、ストレージからトレースを取得するサービスです。
- Ingester (Ingester Service) - Red Hat OpenShift Distributed Tracing Platform は、Collector と実際の Elasticsearch バッキングストレージ間のバッファーとして Apache Kafka を使用できます。Ingester は、Kafka からデータを読み取り、Elasticsearch ストレージバックエンドに書き込むサービスです。
- Jaeger Console - Red Hat OpenShift Distributed Tracing Platform (Jaeger) のユーザーインターフェイスを使用すると、分散トレーシングデータを視覚化できます。検索ページで、トレースを検索し、個別のトレースを設定するスパンの詳細を確認できます。