如何用它的当前值和标签重新标记地址

How to relabel address with it's current value and a label

在 json 配置文件中(从 file_sd_configs 引用)我有诸如

之类的条目
[
...
    "targets": [ "10.123.456.789"],
    "labels": { "node_exporter_port": "9300" }
  },
...

]

在 Prometheus 配置中,我想 relabel_configs 以便 __address__ 的值是地址的当前值加上端口。以下尝试无效:

relabel_configs:
  - source_labels: [node_exporter_port]
    regex: (.*)
    target_label: __address__
    replacement: [__address__]:

编辑:以下似乎有效:

relabel_configs:
  - source_labels: [__address__, node_exporter_port]
    separator:     ';'
    regex: '(.*);(.*)'
    target_label: __address__
    replacement: :

这是惯用语吗?

如果将分隔符更改为冒号,则可以删除正则表达式和替换项,因为默认值可以满足您的需要。

端口标签应以 __ 为前缀,这样它就不会成为目标标签。

以下重新标记配置将端口从 node_exporter_port 标签附加到 __address__ 标签:

- source_labels: [__address__, node_exporter_port]
  target_label: __address__
  separator: ':'

它将原始 __address__ 标签值和 node_exporter_port 标签值与给定的 separator: ':' 相结合。