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