Prometheusからのメトリクスのクエリ

このタスクでは、Prometheusを使用して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.109.160.254   <none>        9090/TCP   4m
    
  2. メッシュにトラフィックを送信します。

    Bookinfoサンプルの場合、Webブラウザでhttp://$GATEWAY_URL/productpageにアクセスするか、次のコマンドを実行します。

    $ curl "http://$GATEWAY_URL/productpage"
    
  3. Prometheus UIを開きます。

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

    $ istioctl dashboard prometheus
    

    ヘッダーのPrometheusの右にあるグラフをクリックします。

  4. Prometheusクエリを実行します。

    ウェブページ上部の「式」入力ボックスに以下のテキストを入力します。

    istio_requests_total
    

    次に、実行ボタンをクリックします。

結果は次のようになります。

Prometheus Query Result
Prometheusクエリ結果

実行ボタンの下にあるグラフタブを選択すると、クエリ結果をグラフで表示することもできます。

Prometheus Query Result - Graphical
Prometheusクエリ結果 - グラフ表示

その他の試せるクエリ

  • productpageサービスへのすべてのリクエストの合計数

    istio_requests_total{destination_service="productpage.default.svc.cluster.local"}
    
  • reviewsサービスのv3へのすべてのリクエストの合計数

    istio_requests_total{destination_service="reviews.default.svc.cluster.local", destination_version="v3"}
    

    このクエリは、reviewsサービスのv3へのすべてのリクエストの現在の合計数を返します。

  • 過去5分間のproductpageサービスのすべてのインスタンスへのリクエストのレート

    rate(istio_requests_total{destination_service=~"productpage.*", response_code="200"}[5m])
    

Prometheusアドオンについて

Prometheusアドオンは、Istioエンドポイントからメトリクスを収集するように事前に設定されたPrometheusサーバーです。Istioメトリクスの永続的なストレージとクエリのためのメカニズムを提供します。

Prometheusのクエリについて詳しくは、クエリに関するドキュメントをご覧ください。

クリーンアップ

  • control-Cを使用するか、以下を使用して、まだ実行されている可能性のあるistioctlプロセスをすべて削除します。

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

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

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