Grafanaによるメトリクスの可視化
このタスクでは、Istioダッシュボードを設定してメッシュトラフィックを監視する方法を示します。このタスクでは、Grafana IstioアドオンとWebベースのインターフェースを使用して、サービスメッシュトラフィックデータを表示します。
このタスク全体を通して、Bookinfoサンプルアプリケーションが例として使用されます。
始める前に
- クラスタにIstioをインストールします。
- Grafanaアドオンをインストールします。
- Prometheusアドオンをインストールします。
- Bookinfoアプリケーションをデプロイします。
Istioダッシュボードの表示
prometheus
サービスがクラスタで実行されていることを確認します。Kubernetes環境では、次のコマンドを実行します。
$ kubectl -n istio-system get svc prometheus NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE prometheus ClusterIP 10.100.250.202 <none> 9090/TCP 103s
Grafanaサービスがクラスタで実行されていることを確認します。
Kubernetes環境では、次のコマンドを実行します。
$ kubectl -n istio-system get svc grafana NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE grafana ClusterIP 10.103.244.103 <none> 3000/TCP 2m25s
Grafana UIを介してIstioダッシュボードを開きます。
Kubernetes環境では、次のコマンドを実行します。
$ istioctl dashboard grafana
Webブラウザでhttps://#:3000/d/G8wLrJIZk/istio-mesh-dashboardにアクセスします。
Istioダッシュボードは次のようになります。
Istioダッシュボード メッシュにトラフィックを送信します。
Bookinfoサンプルの場合、Webブラウザで
http://$GATEWAY_URL/productpage
にアクセスするか、次のコマンドを実行します。トレースデータを表示するには、サービスにリクエストを送信する必要があります。リクエストの数はIstioのサンプリングレートに依存し、テレメトリAPIを使用して構成できます。デフォルトのサンプリングレートは1%なので、最初のトレースが表示される前に少なくとも100個のリクエストを送信する必要があります。
productpage
サービスに100個のリクエストを送信するには、次のコマンドを使用します。$ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done
ページを数回更新するか(またはコマンドを数回実行するか)して、少量のトラフィックを生成します。
Istioダッシュボードをもう一度見てください。生成されたトラフィックが反映されているはずです。次のようになります。
Istioダッシュボードとトラフィック これは、メッシュ全体、メッシュ内のサービスとワークロードのグローバルビューを提供します。下記の説明に従って、それぞれのダッシュボードに移動することで、サービスとワークロードに関する詳細情報を取得できます。
サービスダッシュボードの可視化
Grafanaダッシュボードの左上隅にあるナビゲーションメニューから、Istioサービスダッシュボードに移動するか、ウェブブラウザでhttps://#:3000/d/LJ_uJAvmk/istio-service-dashboardにアクセスしてください。
Istioサービスダッシュボードは、次のようになります。
Istioサービスダッシュボード これにより、サービスのメトリクス、そしてそのサービスを呼び出しているクライアントワークロード(このサービスを呼び出しているワークロード)と、そのサービスを提供しているサービスワークロード(このサービスを提供しているワークロード)に関する詳細情報が表示されます。
ワークロードダッシュボードの可視化
Grafanaダッシュボードの左上隅にあるナビゲーションメニューから、Istioワークロードダッシュボードに移動するか、ウェブブラウザでhttps://#:3000/d/UbsSZTDik/istio-workload-dashboardにアクセスしてください。
Istioワークロードダッシュボードは、次のようになります。
Istioワークロードダッシュボード これにより、各ワークロードのメトリクス、そしてそのワークロードにリクエストを送信しているインバウンドワークロード(このワークロードにリクエストを送信しているワークロード)と、そのワークロードがリクエストを送信しているアウトバウンドサービス(このワークロードがリクエストを送信しているサービス)に関する詳細情報が表示されます。
Grafanaダッシュボードについて
Istioダッシュボードは3つの主要なセクションで構成されています。
メッシュサマリービュー:このセクションは、メッシュのグローバルサマリービューを提供し、メッシュ内のHTTP/gRPCおよびTCPワークロードを表示します。
個々のサービスビュー:このセクションは、メッシュ内の各個々のサービス(HTTP/gRPCおよびTCP)のリクエストとレスポンスに関するメトリクスを提供します。これには、このサービスのクライアントワークロードとサービスワークロードに関するメトリクスも含まれます。
個々のワークロードビュー:このセクションは、メッシュ内の各個々のワークロード(HTTP/gRPCおよびTCP)のリクエストとレスポンスに関するメトリクスを提供します。これには、このワークロードのインバウンドワークロードとアウトバウンドサービスに関するメトリクスも含まれます。
ダッシュボードの作成、構成、編集の詳細については、Grafanaドキュメントを参照してください。
クリーンアップ
実行中の
kubectl port-forward
プロセスをすべて削除してください。$ killall kubectl
以降のタスクを検討する予定がない場合は、アプリケーションをシャットダウンするためのBookinfoクリーンアップ手順を参照してください。