Jaeger
このタスクを完了すると、アプリケーションの構築に使用する言語、フレームワーク、プラットフォームに関係なく、Jaegerを使用してアプリケーションをトレースに参加させる方法を理解できます。
このタスクでは、サンプルアプリケーションとしてBookinfoサンプルを使用します。
Istioがトレーシングをどのように処理するかを学ぶには、このタスクの概要をご覧ください。
開始する前に
クラスタにJaegerをデプロイするには、Jaegerインストールドキュメントに従ってください。
トレーシングを有効にすると、Istioがトレーシングに使用するサンプリングレートを設定できます。インストール時に
meshConfig.defaultConfig.tracing.sampling
オプションを使用して、サンプリングレートを設定します。デフォルトのサンプリングレートは1%です。Bookinfoサンプルアプリケーションをデプロイします。
ダッシュボードへのアクセス
テレメトリアドオンへのリモートアクセスは、ゲートウェイを介してIstioアドオンへのアクセスを構成する方法を詳述しています。
テスト(および一時的なアクセス)には、ポート転送を使用することもできます。Jaegerをistio-system
名前空間にデプロイしたと仮定して、以下を使用してください。
$ istioctl dashboard jaeger
Bookinfoサンプルを使用したトレースの生成
Bookinfoアプリケーションが稼働したら、トレース情報を生成するために、
http://$GATEWAY_URL/productpage
に1回以上アクセスします。トレースデータを表示するには、サービスにリクエストを送信する必要があります。リクエストの数は Istio のサンプリングレートに依存し、Telemetry APIを使用して構成できます。デフォルトの 1% のサンプリングレートでは、最初のトレースが表示されるまでに少なくとも 100 件のリクエストを送信する必要があります。
productpage
サービスに 100 件のリクエストを送信するには、次のコマンドを使用します。$ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done
ダッシュボードの左側のペインから、Service ドロップダウンリストで
productpage.default
を選択し、Find Traces をクリックします。トレースダッシュボード 一番上の最新のトレースをクリックして、
/productpage
への最新のリクエストに対応する詳細を表示します。詳細トレースビュー トレースは一連のスパンで構成されており、各スパンは
/productpage
リクエストの実行中に呼び出された Bookinfo サービス、または内部 Istio コンポーネント(例:istio-ingressgateway
)に対応します。
クリーンアップ
まだ実行中の
istioctl
プロセスがある場合は、Control-C または を使用して削除します。$ killall istioctl
後続のタスクを調査する予定がない場合は、アプリケーションをシャットダウンするために、Bookinfo クリーンアップ の手順を参照してください。