首页 > 解决方案 > Prometheus 从部署在 k8s 上的 api 抓取 pod-name

问题描述

我在 k8s 上有一个 api 部署,这个部署包含多个 pod,并且(例如)每个都有一个指标,显示方法“登录”被调用了多少次。

抓取时,我想知道当前正在查看的 pod 中的数据。

我的普罗米修斯配置类似于

 scrape_configs:
         
   - job_name: 'my-api'
    scheme: https
    static_configs:
      - targets: ['not-real-api-link.com:443'] 
        labels:
          group: 'dev'

并使用此配置刮取如下值:

login{group="dev",instance="not-real-api-link.com:443",job="my-api"}    

但我需要类似的东西

login{group="dev",instance="not-real-api-link.com:443",job="my-api", k8s_pod_name="not-real-api-4l8o15s16t-tavd"}   

阅读周围我发现它应该是这样的:

 scrape_configs:
         
   - job_name: 'my-api'
    scheme: https

    kubernetes_sd_configs:
      - role: pod    
    relabel_configs:
      - source_labels: [__meta_kubernetes_pod_name]
        action: replace
        target_label: k8s_pod_name

    static_configs:
      - targets: ['not-real-api-link.com:443'] 
        labels:
          group: 'dev'

但它不起作用。我错过了什么?

标签: kubernetesdevopsmonitoringprometheus

解决方案


推荐阅读