Мониторинг пользовательских метрик Kubernetes Pod с помощью Prometheus - PullRequest
0 голосов
/ 18 ноября 2018

Я использую Prometheus для мониторинга моего кластера Kubernetes.Я создал Prometheus в отдельном пространстве имен.У меня есть несколько пространств имен и несколько модулей работают.Каждый контейнер pod предоставляет собственные метрики в этой конечной точке, :80/data/metrics.Я получаю процессор Pods, показатели памяти и т. Д., Но как настроить Prometheus для извлечения данных из :80/data/metrics в каждом доступном модуле?Я использовал этот учебник для настройки Prometheus, Link

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Ссылка , указанная в вопросе, относится к этой ConfigMap для конфигурации Prometheus. Если используется ConfigMap, то прометей уже настроен на очистка стручков .

Чтобы в этой конфигурации (см. relabel_configs) прометей очистил пользовательские метрики, отображаемые модулями в :80/data/metrics, добавьте эти аннотации в конфигурации развертывания модулей:

metadata:
  annotations:
    prometheus.io/scrape: 'true'
    prometheus.io/path: '/data/metrics'
    prometheus.io/port: '80'

См. Параметры конфигурации для обнаружения Kubernetes в документах Prometheus (прокрутите вниз), чтобы узнать настройки, относящиеся к очистке по https и более.

Edit: Я увидел ответ Эмруза Хоссейна только после того, как опубликовал свой. В его ответе в настоящее время отсутствует аннотация prometheus.io/scrape: 'true', и он указан = вместо : в качестве разделителя имени / значения аннотации, который недопустим в yaml или json.

0 голосов
/ 19 ноября 2018

Вы должны добавить эти три аннотации к своим модулям:

prometheus.io/scrape: 'true'
prometheus.io/path: '/data/metrics'
prometheus.io/port: '80'

Как это будет работать?

Посмотрите на kubernetes-pods задание config-map.yaml, которое вы используете для настройки Прометея,

- job_name: 'kubernetes-pods'

        kubernetes_sd_configs:
        - role: pod

        relabel_configs:
        - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
          action: keep
          regex: true
        - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
          action: replace
          target_label: __metrics_path__
          regex: (.+)
        - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
          action: replace
          regex: ([^:]+)(?::\d+)?;(\d+)
          replacement: $1:$2
          target_label: __address__
        - action: labelmap
          regex: __meta_kubernetes_pod_label_(.+)
        - source_labels: [__meta_kubernetes_namespace]
          action: replace
          target_label: kubernetes_namespace
        - source_labels: [__meta_kubernetes_pod_name]
          action: replace
          target_label: kubernetes_pod_name

Проверьте эту трехсимвольную конфигурацию

- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
    action: keep
    regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
    action: replace
    target_label: __metrics_path__
    regex: (.+)
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
    action: replace
    regex: ([^:]+)(?::\d+)?;(\d+)
    replacement: $1:$2
    target_label: __address__

Здесь __metrics_path__ и port и о том, следует ли удалять метрики из этого модуля, считываются из аннотаций модуля.

Более подробную информацию о том, как настроить Prometheus, см. здесь .

...