Как очистить метрики Jenkins с помощью оператора Prometheus

Я использую Kube-prometheus с Prometheus-Operator для мониторинга моего кластера K8s. Я развернул Jenkins в своем кластере и хочу начать получать здесь метрики с помощью ServiceMonitor.

Я установил плагин Prometheus, который предоставляет метрики с помощью /prometheus или /metrics/API_KEY/metrics, он отлично работает, если я создаю новое статическое задание. Однако, если я хочу использовать ServiceMonitor, это не сработает.

apiVersion: monitoring.coreos.com/v1                                                                                                                                                                        
kind: ServiceMonitor
metadata:
  labels:
    k8s-app: jenkins
  name: jenkins
  namespace: monitoring
spec:
  endpoints:
  - interval: 30s 
    port: http
    path: /metrics/y1H6G16T-DhqpHdW9XwHWnP9FWAXMMfy4XnXVnyoIOEV3-gPJZKN284OFUcVkPxL/metrics
  selector:
    matchLabels:
      jenkins: main

person Tomer Leibovich    schedule 04.05.2019    source источник
comment
в документации указано, что вы должны очистить путь / prometheus. Вы пробовали это? Также вам лучше добавить honorLabels: true в конфигурацию вашей конечной точки.   -  person Vasili Angapov    schedule 05.05.2019
comment
Вы также должны проверить порт, на котором отображается / prometheus, в конфигурации jenkins.   -  person Alexandre Cartapanis    schedule 05.05.2019
comment
Вы пробовали получить доступ к / prometheus или / metrics / API_KEY / metrics с помощью обычного завитка?   -  person Alexandre Cartapanis    schedule 05.05.2019
comment
Да, я пробовал настроить путь с /prometheus, как я уже упоминал. @AlexandreCartapanis, конечно. Я могу увидеть показатели, если перейду на jenkins: 8080 / prometheus, а также на jenkins: 8080 / metrics / API_KEY / metrics. Также стоит упомянуть, что если я использую static_scrape вместо Servicemonitor, он работает   -  person Tomer Leibovich    schedule 05.05.2019
comment
Вы проверили целевую страницу пользовательского интерфейса Prometheus? Иногда он может предоставить полезную информацию для решения проблем.   -  person Alexandre Cartapanis    schedule 05.05.2019


Ответы (2)


Я не знаю о ServiceMonitor, но я без проблем слежу за своим экземпляром Jenkins, используя аннотации к сервису Jenkins:

prometheus.io/scrape: "true"
prometheus.io/port: "8080"
prometheus.io/path: "/prometheus"
person Alexandre Cartapanis    schedule 05.05.2019
comment
Кроме аннотаций, вы настраивали что-нибудь еще? У меня есть эти аннотации, но я все еще вижу Дженкинса с 0 активными целями внутри Prometheus - person Tomer Leibovich; 05.05.2019
comment
Прометей развертывается с рулем, используя карту Прометея. По умолчанию он включает задание, которое будет динамически обнаруживать сервисы Kubernetes и пытаться очистить их при наличии правильных аннотаций. Опять же, я не знаю про prometheus-operator, но проверьте, выглядит ли задание как github.com/helm/charts/blob/ присутствует. - person Alexandre Cartapanis; 05.05.2019
comment
Я закончил тем, что заменил манифесты Кубе-Прометея диаграммой, работающей как надо. - person Tomer Leibovich; 06.05.2019

Я использую kube-prometheus-stack v12.8.0 (ранее известный как диаграмма управления прометеем-оператором).

Чтобы prometheus-operator обнаруживал внешние мониторы serviceMonitors (например, предоставленный Jenkins), вам необходимо настроить две вещи:

  1. настройте его для сканирования других пространств имен:

    serviceMonitorNamespaceSelector matchLabels: prometheus: пожалуйста-просканируйте-это-пространство-имен-тоже

примечание: в качестве альтернативы вы можете оставить это {}, чтобы сканировать все пространства имен

  1. сконфигурируйте его, чтобы также выбрать serviceMonitors, обнаруженные в этих других пространствах имен:

    serviceMonitorSelector: matchLabels: release: оператор-прометей

примечание: хотя в документации указано, что если вы оставите serviceMonitorSelector на {}, он выберет все serviceMonitors, это не работает.

И, наконец, вам все равно нужно добавить эти метки к 1) пространствам имен и 2) serviceMonitors, которые вы хотите использовать в Prometheus.

person CCC    schedule 17.12.2020
comment
У вас есть документация о том, как вам это удалось? Сейчас я борюсь с тем же самым и, похоже, не могу заставить моего Дженкинса появиться в моем списке целей. Он отображается под Service Discovery, что интересно, но не под targets - person Hammed; 22.02.2021