如果吊舱没有声明集装箱端口,则无法重新标记普罗米修斯吊舱刮擦标签__地址__ [英] Unable to relabel Prometheus pod scrape label __address__ if pod doesn't declare containerport
本文介绍了如果吊舱没有声明集装箱端口,则无法重新标记普罗米修斯吊舱刮擦标签__地址__的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果容器没有指定的端口,则每个 创建容器是为了通过重新标记手动添加端口。&Quot;
然而,在我的设置中,带有集装箱端口的Pod的地址标签按预期进行了转换,而没有集装箱端口的Pod则保留为无端口标签。这是常见的/可接受的行为吗?或者,为了将__meta_kubernetes_pod_annotation_prometheus_io_port作为地址端口应用,是否需要进行一些更改?谢谢!
additionalScrapeConfigs:
- job_name: 'perpod-metricsscrape'
scrape_interval: 5s
metrics_path: /metrics
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [ __meta_kubernetes_pod_annotation_prometheus_io_scrape ]
action: keep
regex: true
- source_labels: [ __meta_kubernetes_pod_annotation_prometheus_io_path ]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [ __address__, __meta_kubernetes_pod_annotation_prometheus_io_port ]
action: replace
regex: (.+)(?::d+);(d+)
replacement: ${1}:${2}
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
顺便说一句,我在大多数示例中略微更改了正则表达式,认为它们不匹配没有端口的地址(就像前面提到的无容器端口Pod的情况一样)-在重新标记之前:__Address__=&Quot;1.2.3.4&Quot;
推荐答案
在正则表达式中发现问题,并替换... 我现在匹配无端口__地址__,捕获可选端口,并替换为__meta_kubernetes_pod_annotation_prometheus_io_port:
regex: ([^:]+)(:d+)?;(d+)
replacement: ${1}:${3}
这篇关于如果吊舱没有声明集装箱端口,则无法重新标记普罗米修斯吊舱刮擦标签__地址__的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文