使用 Prometheus Operator 监控自定义 kubernetes pod 指标

Monitor custom kubernetes pod metrics using Prometheus Operator

我有一个现成的 Kubernetes 集群,配置了 grafana + prometheus(operator) 监控。 我在我的应用程序中向 pods 添加了以下标签:

prometheus.io/scrape: "true"
prometheus.io/path: "/my/app/metrics"
prometheus.io/port: "80"

但指标不会进入 Prometheus。但是,prometheus 具有所有默认的 Kubernetes 指标。

有什么问题?

您应该创建 ServiceMonitor or PodMonitor objects.

ServiceMonitor 描述了普罗米修斯要监控的目标集。 Operator 根据定义自动生成 Prometheus scrape 配置,目标将拥有服务背后所有 pods 的 IP。

示例:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: example-app
  labels:
    team: frontend
spec:
  selector:
    matchLabels:
      app: example-app
  endpoints:
  - port: web

PodMonitor,以声明方式指定应如何监视 pods 组。 Operator根据定义自动生成Prometheus scrape配置。

示例:

apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: example-app
  labels:
    team: frontend
spec:
  selector:
    matchLabels:
      app: example-app
  podMetricsEndpoints:
  - port: web