普罗米修斯source_labels只能是以“ __”开头的标签吗?

时间:2018-11-22 11:23:08

标签: prometheus prometheus-node-exporter

是否可以使用不是以__开头的标签来创建标签?

背景:
我正在使用prometheus,正在尝试使用node_exporter监视lvs服务,因此我需要一个名为vrrp_vs(vrrp virtualserver)的标签,它应包含一个VIP和一个端口,例如172.16.10.10:80,我尝试使用指标local_address的两个标签local_portnode_ipvs_backend_connections_active赚钱自己,但一无所获。

2 个答案:

答案 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_addresslocal_port同时存在,然后用分隔符;将它们组合成一个字符串。 replacement: $1:$2表示将其替换为 local_address:local_port格式。

结果: