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,因此请设置这些标签。
