Prometheus は、クラウドネイティブアプリケーションの監視に使用されるオープンソースツールです。このトピックでは、セルフマネージド Prometheus インスタンスをデプロイして Service Mesh(ASM)インスタンスを監視する方法について説明します。
前提条件
ACK クラスタが作成されていること。詳細については、「ACK マネージドクラスタを作成する」をご参照ください。
ASM インスタンスが作成されていること。詳細については、「ASM インスタンスを作成する」をご参照ください。
Prometheus インスタンスと Grafana インスタンスが ACK クラスタにデプロイされていること。詳細については、「オープンソース Prometheus による監視」をご参照ください。
手順 1:メトリクスを設定する
ACK コンソール にログインします。左側のナビゲーションペインで、[クラスタ] をクリックします。
[クラスタ] ページで、管理するクラスタを見つけ、その名前をクリックします。左側のナビゲーションペインで、 を選択します。
[helm] ページで、ack-prometheus-operator を見つけ、[更新] を [アクション] 列でクリックします。
[リリースの更新] パネルで、YAML コードエディターの
additionalScrapeConfigsフィールドを変更し、[OK] をクリックします。YAML ファイルはサイズが大きいため、Ctrl + F キーボードショートカットを押して
additionalScrapeConfigsフィールドを検索できます。次のコードは、変更されたadditionalScrapeConfigsフィールドを示しています。additionalScrapeConfigs: # Envoy 統計情報のスクレイプ設定 - job_name: 'envoy-stats' metrics_path: /stats/prometheus kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_container_port_name] action: keep regex: '.*-envoy-prom' - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:15090 target_label: __address__ - action: labeldrop regex: __meta_kubernetes_pod_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: namespace - source_labels: [__meta_kubernetes_pod_name] action: replace target_label: pod_name
手順 2:Prometheus を有効にする
詳細については、「Managed Service for Prometheus にメトリクスを収集する」をご参照ください。
手順 3:監視データを生成する
データプレーン上のサービスにリクエストを送信します。この例では、Bookinfo アプリケーションを使用します。詳細については、「はじめに」をご参照ください。 Bookinfo の Productpage ページに移動します。ページを複数回更新します。
結果を確認する
Envoy プロキシが指定されたメトリクスを収集するかどうかを確認する
次のコマンドを実行し、コマンド出力を確認します。コマンド出力のデータは、Envoy プロキシによって収集されたメトリクスデータを示します。コマンド出力にデータが含まれていない場合、Envoy プロキシはメトリクスデータを収集していません。
details=$(kubectl get pod -l app=details -o jsonpath={.items..metadata.name})
kubectl exec $details -c istio-proxy -- curl -s localhost:15090/stats/prometheus |grep istioPrometheus によって監視されているメトリクスを表示する
ACK コンソール にログインします。左側のナビゲーションペインで、[クラスタ] をクリックします。
[クラスタ] ページで、管理するクラスタを見つけ、その名前をクリックします。左側のペインで、 を選択します。
[サービス] ページで、[外部 IP] 列の Prometheus のパブリックエンドポイントをクリックします。
[prometheus] ページで、検索ボックスに istio_requests_total と入力し、[実行] をクリックします。 Prometheus によって監視されているメトリクスが表示されます。

メトリクスデータの Grafana ダッシュボードを表示する
ACK コンソール にログインします。左側のナビゲーションペインで、[クラスタ] をクリックします。
[クラスタ] ページで、管理するクラスタを見つけ、その名前をクリックします。左側のペインで、 を選択します。
[サービス] ページで、[外部 IP] 列の Grafana のパブリックエンドポイントをクリックします。
Grafana ページで、左上隅の [istio Workload Dashboard] を選択します。次の図は、表示される Grafana ダッシュボードを示しています。
