Grafanaによるメトリクスの可視化

このタスクでは、Istioダッシュボードを設定してメッシュトラフィックを監視する方法を示します。このタスクでは、Grafana IstioアドオンとWebベースのインターフェースを使用して、サービスメッシュトラフィックデータを表示します。

このタスク全体を通して、Bookinfoサンプルアプリケーションが例として使用されます。

始める前に

Istioダッシュボードの表示

  1. 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
    
  2. 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
    
  3. Grafana UIを介してIstioダッシュボードを開きます。

    Kubernetes環境では、次のコマンドを実行します。

    $ istioctl dashboard grafana
    

    Webブラウザでhttps://#:3000/d/G8wLrJIZk/istio-mesh-dashboardにアクセスします。

    Istioダッシュボードは次のようになります。

    Istio Dashboard
    Istioダッシュボード
  4. メッシュにトラフィックを送信します。

    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 Dashboard With Traffic
    Istioダッシュボードとトラフィック

    これは、メッシュ全体、メッシュ内のサービスとワークロードのグローバルビューを提供します。下記の説明に従って、それぞれのダッシュボードに移動することで、サービスとワークロードに関する詳細情報を取得できます。

  5. サービスダッシュボードの可視化

    Grafanaダッシュボードの左上隅にあるナビゲーションメニューから、Istioサービスダッシュボードに移動するか、ウェブブラウザでhttps://#:3000/d/LJ_uJAvmk/istio-service-dashboardにアクセスしてください。

    Istioサービスダッシュボードは、次のようになります。

    Istio Service Dashboard
    Istioサービスダッシュボード

    これにより、サービスのメトリクス、そしてそのサービスを呼び出しているクライアントワークロード(このサービスを呼び出しているワークロード)と、そのサービスを提供しているサービスワークロード(このサービスを提供しているワークロード)に関する詳細情報が表示されます。

  6. ワークロードダッシュボードの可視化

    Grafanaダッシュボードの左上隅にあるナビゲーションメニューから、Istioワークロードダッシュボードに移動するか、ウェブブラウザでhttps://#:3000/d/UbsSZTDik/istio-workload-dashboardにアクセスしてください。

    Istioワークロードダッシュボードは、次のようになります。

    Istio Workload Dashboard
    Istioワークロードダッシュボード

    これにより、各ワークロードのメトリクス、そしてそのワークロードにリクエストを送信しているインバウンドワークロード(このワークロードにリクエストを送信しているワークロード)と、そのワークロードがリクエストを送信しているアウトバウンドサービス(このワークロードがリクエストを送信しているサービス)に関する詳細情報が表示されます。

Grafanaダッシュボードについて

Istioダッシュボードは3つの主要なセクションで構成されています。

  1. メッシュサマリービュー:このセクションは、メッシュのグローバルサマリービューを提供し、メッシュ内のHTTP/gRPCおよびTCPワークロードを表示します。

  2. 個々のサービスビュー:このセクションは、メッシュ内の各個々のサービス(HTTP/gRPCおよびTCP)のリクエストとレスポンスに関するメトリクスを提供します。これには、このサービスのクライアントワークロードとサービスワークロードに関するメトリクスも含まれます。

  3. 個々のワークロードビュー:このセクションは、メッシュ内の各個々のワークロード(HTTP/gRPCおよびTCP)のリクエストとレスポンスに関するメトリクスを提供します。これには、このワークロードのインバウンドワークロードとアウトバウンドサービスに関するメトリクスも含まれます。

ダッシュボードの作成、構成、編集の詳細については、Grafanaドキュメントを参照してください。

クリーンアップ

  • 実行中のkubectl port-forwardプロセスをすべて削除してください。

    $ killall kubectl
    
  • 以降のタスクを検討する予定がない場合は、アプリケーションをシャットダウンするためのBookinfoクリーンアップ手順を参照してください。

この情報は役に立ちましたか?
改善のための提案はありますか?

ご意見ありがとうございます!