Конечная точка службы Prometheus очищает все порты службы, а не только аннотированные порты - PullRequest
0 голосов
/ 11 декабря 2018
Kubernetes version - v1.11.2
Prometheus helm chart version - 6.7.0     

У меня служба работает на 2 портах - 80 и 9000 Теперь мне нужно только контролировать порт 80, и я использовал приведенную ниже конфигурацию для достижения этой цели.

- job_name: '<service-name>'
          honor_labels: true
          kubernetes_sd_configs:
            - role: service
          relabel_configs:
            - source_labels: [__meta_kubernetes_service_label_app]
              action: keep
              regex: <service-name>
            - source_labels: [__meta_kubernetes_service_name]
              action: replace
              target_label: kubernetes_name

Приведенное выше решение добавляет обаконечная точка службы в Prometheus

http://<service-name>.default.svc:80/metrics
http://<service-name>.default.svc:9000/metrics

Чтобы очистить только порт 80, я добавил ниже конфигурацию, но сейчас он не может очистить любые конечные точки службы.

- source_labels: [__meta_kubernetes_service_port_number]
              action: keep
              regex: 8\d{1}

Существует ли способ ограничить только определенныеномера портов?

1 Ответ

0 голосов
/ 19 июля 2019

У меня была похожая проблема, указав, что порт в relbel_configs работал для меня.

relabel_configs: 
  - source_labels : [__meta_kubernetes_pod_label_app,__meta_kubernetes_pod_container_port_number]
    action: keep
    regex: myapp;8081

После этого мой сервис очищался только для порта 8081

...