Создал ServiceMonitor (или PodMonitor) для своего приложения, но метрики не появляются в Prometheus, а цели (targets) не видны. Что нужно настроить?
Создал ServiceMonitor (или PodMonitor) для своего приложения, но метрики не появляются в Prometheus, а цели (targets) не видны. Что нужно настроить?
Prometheus Deckhouse выбирает ServiceMonitor и PodMonitor не из всех пространств имён, а только по определённым лейблам.
Пометьте пространство имён приложения лейблом:
d8 k label ns <ns> prometheus.deckhouse.io/monitor-watcher-enabled=true
Добавьте лейбл на сам ресурс:
metadata:
labels:
prometheus: main
Проверьте, что selector ServiceMonitor совпадает с лейблами Service, а port в endpoints указывает на имя порта Service (не на его номер). Для PodMonitor то же самое, только для подов и портов контейнера.
Проверьте результат: в интерфейсе Prometheus откройте раздел Status → Targets (цель должна появиться в списке), а при её отсутствии посмотрите лог оператора:
d8 k -n d8-operator-prometheus logs deploy/prometheus-operator --tail=200
Подробнее в документации: как настроить ServiceMonitor или PodMonitor для работы с Prometheus.