Managed Service for Prometheus を使用すると、Grafana ダッシュボードでモニタリングデータを可視化できます。カスタムダッシュボードを作成するか、公式 Grafana ウェブサイトからダッシュボードをインポートできます。このトピックでは、Container Service for Kubernetes (ACK) クラスターにデプロイされ、Container Registry を使用するサンプルアプリケーションのためのカスタム Grafana ダッシュボードを作成する手順を説明します。
前提条件
- ACK クラスター が Managed Service for Prometheus と統合されていること。詳細については、「ACK の Prometheus インスタンス」をご参照ください。
- Container Registry にイメージリポジトリが作成されていること。詳細については、「ステップ 2:イメージリポジトリの作成」をご参照ください。
操作手順
次の図は、Managed Service for Prometheus を使用したカスタム Grafana ダッシュボード作成のワークフローを示しています。
ステップ 1:アプリケーションのアップロード
ご利用のアプリケーションのイメージをビルドし、Container Registry のイメージリポジトリにプッシュします。
- 次のコマンドを実行して、モジュールを再コンパイルします。
mvn clean install -DskipTests - 次のコマンドを実行して、イメージをビルドします。
docker build -t <your-image-name>:<your-image-tag> . --no-cache例:docker build -t promethues-demo:v0 . --no-cache - 次のコマンドを実行して、イメージにタグを付けます。
sudo docker tag <your-image-name>:<your-image-tag> <registry-domain>/<namespace>/<image-name>:<image-tag>例:sudo docker tag promethues-demo:v0 registry.cn-hangzhou.aliyuncs.com/testnamespace/promethues-demo:v0 - 次のコマンドを実行して、イメージをイメージリポジトリにプッシュします。
sudo docker push <registry-domain>/<namespace>/<image-name>:<image-tag>例:sudo docker push registry.cn-hangzhou.aliyuncs.com/testnamespace/promethues-demo:v0Container Registry コンソール の イメージバージョン ページに、アップロードされたアプリケーションイメージが表示されます。
ステップ 2:アプリケーションのデプロイ
アプリケーションを ACK クラスターにデプロイします。
ACK コンソール にログインします。
- 左側のナビゲーションウィンドウで、クラスター をクリックします。
- クラスターリスト ページで、ご利用のクラスターを見つけ、アクション 列の アプリケーション をクリックします。
- デプロイメントを作成します。
- 左側のナビゲーションウィンドウで、 を選択します。
- 展開 ページで、YAML のリソースの作成 をクリックします。
- デプロイ ページで、テンプレート エディターに次の YAML を入力し、デプロイ をクリックします。
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: prometheus-demo spec: replicas: 2 template: metadata: annotations: prometheus.io/scrape: 'true' prometheus.io/path: '/prometheus-metrics' prometheus.io/port: '8081' labels: app: tomcat spec: containers: - name: tomcat imagePullPolicy: Always image: <registry-domain>/<namespace>/<image-name>:<image-tag> ports: - containerPort: 8080 name: tomcat-normal - containerPort: 8081 name: tomcat-monitor例:apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: prometheus-demo labels: app: tomcat spec: replicas: 2 selector: matchLabels: app: tomcat template: metadata: annotations: prometheus.io/scrape: 'true' prometheus.io/path: '/prometheus-metrics' prometheus.io/port: '8081' labels: app: tomcat spec: containers: - name: tomcat imagePullPolicy: Always image: registry.cn-hangzhou.aliyuncs.com/peiyu-test/prometheus-demo:v0 ports: - containerPort: 8080 name: tomcat-normal - containerPort: 8081 name: tomcat-monitor
作成されたデプロイメントは、展開 ページに表示されます。
- サービスを作成します。
- 左側のナビゲーションウィンドウで、 を選択します。
- サービス ページで、YAML のリソースの作成 をクリックします。
- デプロイ ページで、テンプレート エディターに次の YAML を入力し、デプロイ をクリックします。
apiVersion: v1 kind: Service metadata: labels: app: tomcat name: tomcat namespace: default spec: ports: - name: tomcat-normal port: 8080 protocol: TCP targetPort: 8080 - name: tomcat-monitor port: 8081 protocol: TCP targetPort: 8081 type: NodePort selector: app: tomcat
作成されたサービスは、サービス ページに表示されます。
ステップ 3:収集ルールの構成
デフォルトでは、Managed Service for Prometheus は CPU、メモリ、ネットワークの基本的なメトリクスをモニタリングします。注文情報などの追加データをモニタリングするには、Managed Service for Prometheus でカスタムのデータ収集ルールを作成する必要があります。
-
Cloud Monitor コンソール にログインします。
-
左側のナビゲーションウィンドウで、 を選択して、Managed Service for Prometheus のインスタンス一覧ページを開きます。
- ご利用の Prometheus インスタンス の名前をクリックします。
- 以下のシナリオに基づいて、ご利用のアプリケーション用のデータ収集ルールを構成します。
- ACK クラスターにデプロイされたアプリケーション(例:注文情報)のビジネスデータをモニタリングする場合、次の操作を行います。
- 左側のナビゲーションウィンドウで、サービスの検出 をクリックし、設定 タブをクリックします。
- 設定 ページで、ServiceMonitor タブをクリックし、ServiceMonitor の追加 をクリックします。
- 表示されるダイアログボックスに次の内容を入力し、OK をクリックします。
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: # 固有の名前を入力します。 name: tomcat-demo # 対象の名前空間を入力します。 namespace: default spec: endpoints: - interval: 30s # Service YAML で定義されている Prometheus エクスポーターのポートの `name` に設定します。 port: tomcat-monitor # Prometheus エクスポーターのパスに設定します。 path: /metrics namespaceSelector: any: true # デモアプリケーションの名前空間。 selector: matchLabels: # Service YAML のラベル値に設定して、正しいサービスを対象にします。 app: tomcatServiceMonitor タブに、構成済みのサービス検出が表示されます。
- ACK クラスター外のソース(例:Redis 接続数)のビジネスデータをモニタリングする場合、次の操作を行います。
- 左側のナビゲーションウィンドウで、設定 をクリックします。設定 ページで、Prometheus.yaml の編集 をクリックします。
- 表示されるダイアログボックスに次の内容を入力し、Save をクリックします。
global: scrape_interval: 15s # スクレイプ間隔を 15 秒ごとに設定します。デフォルトは 1 分ごとです。 evaluation_interval: 15s # ルールを 15 秒ごとに評価します。デフォルトは 1 分ごとです。 scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090']
- ACK クラスターにデプロイされたアプリケーション(例:注文情報)のビジネスデータをモニタリングする場合、次の操作を行います。
ステップ 4:ダッシュボードの構成
Grafana ダッシュボードを構成して、データを表示します。
- Grafana ダッシュボード概要ページ に移動します。
説明 Expert Edition for Grafana が有効になっている必要があります。
- 左側のナビゲーションウィンドウで、 を選択します。
- New dashboard ページで、Add a new panel をクリックします。
- Edit Panel ページの Query タブで、上部のドロップダウンリストからご利用のクラスターを選択します。セクション A で、Metrics ドロップダウンリストから go_gc_duration_seconds などのメトリックを選択します。

- 右側のパネルで、チャートに名前を付け、グラフ、テーブル、ヒートマップなどの可視化タイプを選択し、必要に応じて他のパラメーターを構成します。

- 右上隅の Save をクリックします。表示されるダイアログボックスで、ダッシュボードに名前を付け、クラスターを選択して、Save をクリックします。
必要に応じて、複数のダッシュボードおよびチャートを作成できます。
次の図は、構成済みの Grafana ダッシュボードを示しています。
ステップ 5:複雑なメトリクスのモニタリング
複雑な計算を必要とするメトリクスをモニタリングするには、Managed Service for Prometheus で PromQL クエリをビルドおよびテストします。
- Grafana ダッシュボード概要ページ に移動します。
- 左側のナビゲーションウィンドウで、Explore アイコンをクリックします。
- Explore ページで、上部のドロップダウンリストからご利用のクラスターを選択します。Metrics フィールドに PromQL 文を入力し、右上隅の Run Query をクリックしてテストします。

- クエリの実行が成功したら、新しいパネルまたはダッシュボードを追加できます。詳細については、「ステップ 4:ダッシュボードの構成」をご参照ください。
ステップ 6:アラートの作成
メトリクスをモニタリングするためのアラートルールを作成するには、「Prometheus アラートルールの作成」をご参照ください。