ServiceMonitor & PodMonitor

ServiceMonitor

serviceMonitor1

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: app-monitor
  labels:
    release: prometheus
spec:
  selector:
    matchExpressions:
    - key: monitor
      operator: In
      values:
      - enabled
  endpoints:
  - port: metrics
    path: /metrics
    interval: 30s
  namespaceSelector:
    any: true

然后在每个需要被监控的 Service 上加上:

serviceMonitor2

会增加无意义的指标噪音,影响 Prometheus 存储和性能;

可能误抓取非标准 Prometheus 格式接口,导致 scrape error。

备注:

  • Prometheus 实例必须允许跨命名空间发现

    确保你的 Prometheus 实例配置中包含:

    否则它无法发现其它命名空间中的 ServiceMonitor

  • 端口名必须严格一致

    你配置了:

    这意味着服务的 spec.ports[].name 必须是 metrics,否则无法匹配到。

Prometheus 如何发现多个 exporter?

配合统一的 ServiceMonitor / PodMonitor 和 label 策略,比如: yaml 复制 编辑

PodMonitor

Last updated