アカウント ログイン
Jump to section

Jaeger とは

URL をコピー

Jaeger は、分散サービス間のトランザクションをトレースするためのオープンソース・ソフトウェアです。複雑なマイクロサービス環境の監視とトラブルシューティングに使用されます。

分散トレースは、マイクロサービス間の複雑な相互作用におけるイベントのチェーン全体を表示および理解するための方法です。

先進的なクラウドネイティブ・ソフトウェア開発は、マイクロサービス、すなわち、それぞれが異なるコア機能を提供する独立したサービスに依存しています。ユーザーがアプリケーションでリクエストを作成すると、独立した多くのサービスが応答して結果を生成します。

アプリケーション内の 1 回の呼び出しで、互いに対話するさまざまなサービスをいくつも呼び出すことができます。開発者やエンジニアは、問題の発生時やリクエストの実行が遅い場合に、どのように問題を切り分けることができるでしょうか。すべての接続の状況を常に把握する方法が必要になります。

このような場合に役立つのが分散トレースです。多くの場合、分散トレースはサービスメッシュ (マイクロサービスを管理および監視する方法) の一部として実行されます。

Jaeger は、分散トレースを使用して、さまざまなマイクロサービスを介したリクエストのパスを追跡します。推測するのではなく、呼び出しのフローを視覚的に確認することができます。

トランザクションに関する情報が整理されると、デバッグと最適化に役立ちます。Jaeger のツールは、分散トランザクションを監視し、パフォーマンスとレイテンシーを最適化するとともに、問題解決の方法である根本原因分析 (RCA) を実行します。

オープンソース・プロジェクトである Jaeger には、何百人ものコントリビュータで構成されるコミュニティが存在します。Jaeger は、ベンダーに依存しない OpenTracing API と計装をベースに構築されています。

Jaeger は、ライドシェアリング企業の Uber によって 2015 年にオープンソース・プロジェクトとして立ち上げられました。2017 年に CNCF (Cloud Native Computing Foundation) インキュベーション・プロジェクトとして承認され、2019 年にインキュベーション段階を終えました。

トレース:Jaeger における、実行リクエストの表示単位。トレースは、システムを介したデータや実行パスを示します。 

スパン:トレースの構成要素。スパンは Jaeger における論理上の作業単位です。各スパンには、オペレーション名、開始時刻、および期間が含まれます。スパンはネストされ、順序が付けられます。

Jaeger には、スパンとトレースを収集、保存、視覚化するために連携するいくつかのコンポーネントがあります。

Jaeger Client:分散トレース用の OpenTracing API の言語固有の実装が含まれています。これらは、手動での使用も、さまざまなオープンソース・フレームワークでの使用も可能です。

Jaeger Agent:UDP を介して送信されたスパンをリッスンするネットワークデーモンで、対象アプリケーションと同じホスト上に配置します。通常、Kubernetes のようなコンテナ環境のサイドカーを介して実装されます。

Jaeger Collector:スパンを受信し、処理キューに格納します。

永続的なストレージバックエンドを必要とするため、Jaeger はスパンストレージ用のプラグ可能なメカニズムも持っています。 

Query:ストレージからトレースを取得するサービスです。

Jaeger Console:分散トレースデータを視覚化するユーザー・インタフェースです。

Jaeger は、デフォルトで Red Hat® OpenShift® Service Mesh (オープンソースのサービスメッシュである Istio の実装を含む) の一部としてインストールされます。

この分散トレース実装には、多くのメリットがあります。Jaeger は Istio の可観測性コンソールである Kiali と統合できます。Jaeger のバックエンドは、単一障害点のない高いスケーラビリティを実現するように設計されています。Jaeger は、さまざまなコンポーネントからのデータを接続して、完全なエンドツーエンドのトレースを作成することができます。Jaeger には、Zipkin との後方互換性もあります。

関連資料

記事

マイクロサービスで医療における IT 統合をサポート

マイクロサービスを使用すると、医療やその他の業界の開発者は、疎結合のサービスから作られるアプリケーションを構築でき、開発、テスト、デプロイ、アップグレードを容易に行えます。

記事

マイクロサービスとは

マイクロサービスとは、独立して機能する個々のサービスを組み合わせてアプリケーションを構築するアーキテクチャ・スタイルです。

記事

サービスメッシュとは

サービスメッシュはアプリケーションに組み込まれたインフラストラクチャ・レイヤーであり、サービスの相互作用を文書化して、通信の最適化とダウンタイムの回避を容易にします。

マイクロサービスの詳細はこちら

製品

Red Hat OpenShift

エンタープライズ対応の Kubernetes コンテナ・プラットフォームで、ハイブリッドクラウド、マルチクラウド、エッジのデプロイメントを管理するフルスタックの自動運用機能を備えています。

リソース

アナリスト資料

アジャイル・インテグレーション:エンタープライズ・アーキテクチャのブループリント

トレーニング

無料のトレーニングコース

Developing Cloud-Native Applications with Microservices Architectures

Illustration - mail

その他の関連コンテンツ

無料のニュースレター「Red Hat Shares」(英語) では、注目の IT トピックスに関するコンテンツをお届けしています。