このドキュメントでは、Google Cloud Managed Service for Prometheus を使用して、アプリケーションによって提供される HTTP リクエストから指標を収集できるように、Google Kubernetes Engine の Deployment を構成する方法について説明します。このセクションでは、次のことを行う方法について説明します。
- 事前定義された形式で HTTP 指標をエクスポートするようにアプリケーションを設定する。
- エクスポートされた指標を収集するために、Managed Service for Prometheus の PodMonitoring リソースを構成する。
- GKE Deployment の [アプリケーション] ダッシュボードを表示する。
以下の手順は、Managed Service for Prometheus でマネージド コレクションを使用している場合にのみ適用されます。
設定
HTTP サーバーから [アプリケーション] ダッシュボードに表示可能な指標を収集するには、以下で説明するように次の指標をエクスポートする必要があります。
counter
タイプのhttp_requests_total
(ラベルcode
、method
)。histogram
タイプのhttp_request_duration_seconds_bucket
(ラベルmethod
)。
Prometheus Go クライアントを使用してこれらの指標を収集する例については、prometheus-example-app をご覧ください。
想定されるエンドポイントで HTTP サーバーが指標を出力していることを確認するには、次の操作を行います。
- 次のコマンドを使用してポート転送を設定します。
kubectl -n NAMESPACE_NAME port-forward deploy/HTTP_SERVER_DEPLOYMENT_NAME PROMETHEUS_PORT_NUMBER
- 別のターミナル セッションでブラウザまたは
curl
ユーティリティを使用して、localhost:PROMETHEUS_PORT_NUMBER
にアクセスします。
PodMonitoring リソースを定義する
ターゲット ディスカバリの場合、Managed Service for Prometheus Operator には、同じ Namespace 内の HTTP サーバーに対応する PodMonitoring リソースが必要です。
次の PodMonitoring 構成を使用できます。
apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: my-prometheus-http-app labels: app.kubernetes.io/name: my-prometheus-http-app app.kubernetes.io/part-of: google-cloud-managed-prometheus spec: endpoints: - port: web scheme: http interval: 30s path: /metrics selector: matchLabels: app.kubernetes.io/name: prometheus-example-app
port
フィールドと MatchLabels
フィールドの値が、モニタリング対象の HTTP アプリケーションの値と一致していることを確認します。
構成の変更をローカル ファイルから適用するには、次のコマンドを実行します。
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Terraform を使用して構成を管理することもできます。
アプリケーション指標を表示する
HTTP アプリケーションからのリクエスト、エラー率、レイテンシの指標を表示するには、次の操作を行います。
-
Google Cloud コンソールで [ワークロード] ページに移動します。
検索バーを使用してこのページを検索した場合は、小見出しが [Kubernetes Engine] の結果を選択します。
- ワークロードのリストで Deployment をクリックします。リストの [タイプ] 列にワークロードのタイプが表示されます。
- [Deployment の詳細] ページで、[オブザーバビリティ] タブをクリックします。
- ダッシュボード セレクタで [アプリケーション] を選択します。
詳細については、アプリケーションのパフォーマンス指標を使用するをご覧ください。
トラブルシューティング
Managed Service for Prometheus での指標の取り込みに関するトラブルシューティングについては、取り込み側の問題のトラブルシューティングのエクスポータからの収集に関する問題をご覧ください。