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