使用Prometheus "target relabeling"提取cAdvisor的Docker不带标签的镜像名称

Use Prometheus "target relabeling" to extract cAdvisor's Docker image name without tag

我使用 Prometheus, together with cAdvisor 来监控我的环境。

现在,我尝试使用 Prometheus 的 "target relabeling",并创建一个标签,其值为 Docker 容器的图像名称,没有标签。它基于最初抓取的 image 标签。

它不起作用,出于某种原因,在调试日志级别 运行 时没有显示任何错误。我可以看到从 cAdvisor 抓取的指标(例如 container_last_seen),但我新创建的标签不存在。

我的工作配置:

  - job_name: "cadvisor"
    scrape_interval: "5s"
    dns_sd_configs:
      - names: ['cadvisor.marathon.mesos']
    relabel_configs:
      - source_labels: ['image']
        # [REGISTRYHOST/][USERNAME/]NAME[:TAG]
        regex: '([^/]+/)?([^/]+/)?([^:]+)(:.+)?'
        target_label: 'image_tagless'
        replacement: ''

我的标签 - image_tagless - 在抓取的指标中丢失了。

如有任何帮助,我们将不胜感激。

图像标签不是目标标签,它在指标本身上。因此你应该使用 metric_relabel_configs 而不是 relabel_configs

我在 Life of a Label 上的博客解释了这是如何工作的。