Prometheusからのメトリクスのクエリ
このタスクでは、Prometheusを使用してIstioメトリクスをクエリする方法を示します。このタスクでは、メトリック値をクエリするためのWebベースのインターフェースを使用します。
このタスクでは、Bookinfoサンプルアプリケーションを例として使用します。
始める前に
- クラスタにIstioをインストールします。
- Prometheusアドオンをインストールします。
- Bookinfoアプリケーションをデプロイします。
Istioメトリクスのクエリ
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
メッシュにトラフィックを送信します。
Bookinfoサンプルの場合、Webブラウザで
http://$GATEWAY_URL/productpage
にアクセスするか、次のコマンドを実行します。$ curl "http://$GATEWAY_URL/productpage"
Prometheus UIを開きます。
Kubernetes環境では、次のコマンドを実行します。
$ istioctl dashboard prometheus
ヘッダーのPrometheusの右にあるグラフをクリックします。
Prometheusクエリを実行します。
ウェブページ上部の「式」入力ボックスに以下のテキストを入力します。
istio_requests_total
次に、実行ボタンをクリックします。
結果は次のようになります。
実行ボタンの下にあるグラフタブを選択すると、クエリ結果をグラフで表示することもできます。
その他の試せるクエリ
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クリーンアップ手順を参照してアプリケーションをシャットダウンしてください。