使用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 上的博客解释了这是如何工作的。
我使用 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 上的博客解释了这是如何工作的。