Назад | Перейти на главную страницу

Prometheus - вариант использования обнаружения службы по конечным точкам ролей и ролевым модулям в Kubernetes

При чтении конфигурации Prometheus документация и несколько примеров конфигураций очистки, я нашел несколько kubernetes_sd_configs с ролью service & роль endpoints & роль pod

- job_name: kube-state-metrics
  kubernetes_sd_configs:
  - role: endpoints
  relabel_configs:
  - action: labelmap
    regex: __meta_kubernetes_service_label_(.+)
  - action: keep
    regex: prometheus;kube-state-metrics
    source_labels:
    - __meta_kubernetes_namespace
    - __meta_kubernetes_pod_label_component
- honor_labels: true
  job_name: prometheus-pushgateway
  kubernetes_sd_configs:
  - role: service
  relabel_configs:
  - action: keep
    regex: pushgateway
    source_labels:
    - __meta_kubernetes_service_annotation_prometheus_io_probe
- job_name: node-exporter
  kubernetes_sd_configs:
  - role: pod
  relabel_configs:
  - action: labelmap
    regex: __meta_kubernetes_pod_label_(.+)
  - action: replace
    regex: ([^:]+)(?::\d+)?;(\d+)
    replacement: $1:$2
    source_labels:
    - __address__
    - __meta_kubernetes_pod_container_port_number
    target_label: __address__

Похоже, все эти роли могут очищать метрики от экземпляров,

Когда мы будем использовать конечные точки и когда мы будем использовать pod?

РЕДАКТИРОВАТЬ: мой реальный вопрос: какую роль (конечные точки или модуль) я должен использовать, если они оба обнаружат цель очистки?

что Вы предпочитаете? какие-нибудь примеры?

Kubernetes SD в Prometheus имеет набор так называемых «ролей», которые определяют, как собирать и отображать метрики. У каждой роли есть свой набор ярлыков, которые вы уже знаете из официальная документация. Вас интересуют:

  • service: найдет и вернет каждую службу и ее порт

  • pod: найдет контейнеры и вернет их контейнеры в качестве целей для получения метрик

  • endpoints: создаст цели из каждой конечной точки для каждой службы, найденной в кластере

Некоторые примеры можно найти ниже:

По поводу дополнительных вопросов:

  1. Служба ролей используется как зондирование черного ящика. Он не будет сообщать, сколько бэкендов стоит за этой службой.

  2. конечные точки ролей используются для служб, предоставляющих веб-службы (имеют конечную точку http для подключения)

  3. стручок обычно используется

Практически да. Обратите внимание, что pod role обнаруживает все стручки и выставляет их контейнеры в качестве целей.

Я также настоятельно рекомендую вам проверить следующие источники:

Пожалуйста, дайте мне знать, помогло ли это.