LoginSignup
0
0

Prometheus OperatorのServiceMonitor / PodMonitor検出ルール

Last updated at Posted at 2023-08-09

Prometheus Operatorを利用してPrometheusをインストールした場合、メトリクスのエンドポイントを簡単に追加する方法として、kind: PodMonitorkind: ServiceMonitorを使う方法がある。
ただ、このリソースを適当に作ってもPrometheus側で認識してくれない。
これをPrometheusで認識させる方法の備忘録。

Prometheusへの認識方法

PodMonitorServiceMonitorを作る際、ラベルを設定する必要がある。

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.matchLabelsspec.serviceMonitorSelector.matchLabelsに定義があり、PrometheusはこれとマッチしたPodMonitorServiceMonitorのみ認識するので、このラベルを設定する。

上手く適用出来た場合は、PrometheusのUIでService Discoveryを確認すると、反映されていることが分かる。
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0