为 UCS Tools 应用程序添加监控

先决条件

  • 为 UCS 应用程序添加监控需要先安装 Prometheus Operator,然后再部署应用程序。

    • 为此,请安装 Kube Prometheus Stack

    • 可以为 helm install 命令提供 --set prometheus.prometheusSpec.podMonitorSelectorNilUsesHelmValues=false 参数,以监控所有 PodMonitor 资源。

  • 应用程序中正在使用的微服务已进行检测并实现了 Prometheus 指标端点。

  • 应用程序中正在使用的微服务已将详细信息添加到 metrics 部分。请参阅 微服务指标

PodMonitor 资源

UCS 应用程序构建工具根据每个微服务的 metrics 部分中的信息自动生成 PodMonitor 自定义资源,并将其添加到输出应用程序 Helm Chart 中。

这些 PodMonitor 自定义资源用于配置 Prometheus 服务器以抓取微服务 Pod。有关更多信息,请参阅 Prometheus Operator API 参考

要查看生成的 PodMonitor 资源,请运行以下命令

$ helm install --dry-run test <application-helm-chart>
...
---
# Source: myservice-test-app/templates/podmonitors.yaml
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: 'myservice-test-app-myservice-metrics-podmonitor'
  labels:
    app.kubernetes.io/instance: 'test'
    app.kubernetes.io/name: 'myservice-test-app'
spec:
  selector:
    matchLabels:
      app: myservice-myservice-deployment
      app.kubernetes.io/name: podmonitor-test-ms1
      app.kubernetes.io/version: 0.0.1
  podMetricsEndpoints:
  - port: metrics
    path: /metrics

部署 Helm Chart 时,这些 PodMonitor 资源会随应用程序一起自动安装。

PodMonitor 资源的自定义标签

如果 Prometheus Operator 需要选择自定义标签,也可以在 PodMonitor 资源上设置自定义标签。

要执行此操作,请在 Helm 安装期间设置 podMonitorLabels

$ helm install <release-name> <application-helm-chart> --set "podMonitorLabels.<label>=<value>"

验证 Pod 是否正在被抓取

如果应用程序和监控运行正常,则应在 Prometheus WebUI 中看到 Pod 目标。为此,请转发 Prometheus 服务端口

$ kubectl get svc -l "app=kube-prometheus-stack-prometheus"
NAME                                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
prometheus-kube-prometheus-prometheus   ClusterIP   10.152.183.234   <none>        9090/TCP   2m

$ kubectl port-forward svc/prometheus-kube-prometheus-prometheus --address 0.0.0.0 9090:9090
Forwarding from 0.0.0.0:9090 -> 9090

在浏览器中打开 http://<NODE-IP>:9090/targets,其中 <NODE-IP> 是运行 kubectl port-forward 命令的机器的 IP 地址。微服务 Pod 应在目标列表中可见。

应用程序信息 - 指标

构建应用程序会在输出目录中生成应用程序信息文件。此文件包含应用程序中微服务导出的指标列表。有关更多信息,请参阅 应用程序信息