HTTP 服务器

本文档介绍了如何配置 Google Kubernetes Engine 部署,以便可以使用 Google Cloud Managed Service for Prometheus 从应用传送的 HTTP 请求中收集指标。本文档介绍了如何执行以下操作:

以下说明仅在您将代管式收集功能与 Managed Service for Prometheus 搭配使用时适用。

设置

如需从 HTTP 服务器收集可在应用信息中心上显示的指标,您必须导出以下指标,如下所述:

  • 类型为 counterhttp_requests_total,具有 codemethod 标签。
  • 类型为 histogramhttp_request_duration_seconds_bucket,具有 method 标签。

如需查看使用 Prometheus Go 客户端收集这些指标的示例,请参阅 prometheus-example-app

如需验证 HTTP 服务器是否在预期端点上发出指标,请执行以下操作:

  1. 使用以下命令设置端口转发:
    kubectl -n NAMESPACE_NAME port-forward deploy/HTTP_SERVER_DEPLOYMENT_NAME PROMETHEUS_PORT_NUMBER
      
  2. 在其他终端会话中使用浏览器或 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

确保 portMatchLabels 字段的值与您要监控的 HTTP 应用的值匹配。

如需从本地文件应用配置更改,请运行以下命令:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

您还可以使用 Terraform 管理您的配置。

查看应用指标

如需查看来自 HTTP 应用的请求、错误率和延迟时间指标,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到工作负载页面:

    转到工作负载

    如果您使用搜索栏查找此页面,请选择子标题为 Kubernetes Engine 的结果。

  2. 在工作负载列表中点击一个 Deployment。该列表中的类型列表示工作负载的类型。
  3. Deployment 详情页面上,点击可观测性标签页。
  4. 在信息中心选择器中选择应用

如需了解详情,请参阅使用应用性能指标

问题排查

如需了解如何排查 Managed Service for Prometheus 中的指标注入问题,请参阅排查注入端问题中的从导出器收集的问题