本文档介绍了如何配置 Google Kubernetes Engine 部署,以便可以使用 Google Cloud Managed Service for Prometheus 从应用传送的 gRPC 请求中收集指标。本文档介绍了如何执行以下操作:
- 设置 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 需要与同一命名空间中的 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 中的指标注入问题,请参阅排查注入端问题中的从导出器收集的问题。