是否可以使用不是以__
开头的标签来创建标签?
背景:
我正在使用prometheus,正在尝试使用node_exporter
监视lvs服务,因此我需要一个名为vrrp_vs
(vrrp virtualserver)的标签,它应包含一个VIP和一个端口,例如172.16.10.10:80
,我尝试使用指标local_address
的两个标签local_port
和node_ipvs_backend_connections_active
赚钱自己,但一无所获。
答案 0 :(得分:0)
您可以使用PromQL label_join从现有标签创建组合标签。
label_join(node_ipvs_backend_connections_active, "vrrp_vs", "local_address", ":", "local_port")
答案 1 :(得分:0)
终于在我的领导者的帮助下找到了解决方案。
relabel_configs
仅对抓取操作之前以__
开头的元标签起作用。但是
metric_relabel_configs
可以解决问题。
metric_relabel_configs 将在刮擦之后和存储在Prometheus中之前修改指标。真是太神奇了!
以下是我的工作。
metric_relabel_configs:
- source_labels: [local_address, local_port]
action: replace
regex: '(.+);(.+)'
target_label: virtualserver
#separator: ':'
replacement: $1:$2
regex: '(.+);(.+)'
表示local_address
和local_port
同时存在,然后用分隔符;
将它们组合成一个字符串。 replacement: $1:$2
表示将其替换为
local_address:local_port
格式。
结果: