0

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

背景:
我正在使用prometheus,我正在尝试使用监控lvs服务node_exporter,所以我需要一个名为vrrp_vs(vrrp virtualserver)的标签,它应该包含一个vip和一个端口,例如172.16.10.10:80,我试图自己制作一个leble使用两个标签local_addresslocal_portmetric node_ipvs_backend_connections_active,但它一无所获。

4

2 回答 2

1

在我的领导的帮助下终于找到了解决方案。

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格式替换它们。

结果:

于 2018-11-29T08:45:49.933 回答
0

您可以使用 PromQL label_join从现有标签创建组合标签。

label_join(node_ipvs_backend_connections_active, "vrrp_vs", "local_address", ":", "local_port")
于 2018-11-26T21:00:36.050 回答