【问题标题】:Prometheus service endpoint scrapes all the ports of a service instead of just annotated portsPrometheus 服务端点抓取服务的所有端口,而不仅仅是带注释的端口
【发布时间】:2018-12-11 11:27:32
【问题描述】:
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}

有没有办法只限制特定的端口号?

【问题讨论】:

  • 您使用的是哪个版本的 Prometheus Operator 和 Kubernetes 集群?
  • @Nepomucen 在上面的原始帖子中添加了版本。谢谢
  • @DarshanDeshmukh 你能根据不同的端口号抓取端点吗?

标签: kubernetes prometheus prometheus-alertmanager prometheus-operator


【解决方案1】:

我遇到了类似的问题,在 relabel_configs 中指定端口对我有用。

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

在此之后,我的服务仅被用于 8081 端口

【讨论】:

    猜你喜欢
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    • 2011-03-20
    • 2019-01-03
    相关资源
    最近更新 更多