Prometheus Operator的ServiceMonitor / PodMonitor检测规则

使用 Prometheus Operator 安装 Prometheus 后,可以通过 kind: PodMonitor 或 kind: ServiceMonitor 方式轻松添加指标的端点。
然而,即使随意创建这些资源,Prometheus 也不会识别它们。
这是一份关于如何让 Prometheus 识别这些资源的备忘录。

对于Prometheus的认知方法

在创建PodMonitor或ServiceMonitor时,需要设置标签。

apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: vmware-mysql-instances
  namespace: prometheus
  labels:
    release: prometheus-operator  ★コレ!!

这个标签应该如何设置,这取决于在Prometheus对象中的定义。

$ kubectl get prometheus -n prometheus
NAME                                    VERSION   DESIRED   READY   RECONCILED   AVAILABLE   AGE
prometheus-operator-kube-p-prometheus   v2.45.0   1         1       True         True        38m

查看这个的内容时,可以看到以下项目。

$ kubectl get prometheus -n prometheus -o yaml prometheus-operator-kube-p-prometheus
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
:(省略)
  podMonitorSelector:
    matchLabels:
      release: prometheus-operator
:(省略)
  serviceMonitorSelector:
    matchLabels:
      release: prometheus-operator

在spec.podMonitorSelector.matchLabels和spec.serviceMonitorSelector.matchLabels中定义了标签,Prometheus只会识别与这些标签匹配的PodMonitor和ServiceMonitor,因此请设置这些标签。

image.png
bannerAds