Как переименовать адрес с его текущим значением и меткой

#prometheus

#prometheus

Вопрос:

В файле конфигурации json (ссылка на from 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__]:${1}
 

РЕДАКТИРОВАТЬ: похоже, работает следующее:

 relabel_configs:
  - source_labels: [__address__, node_exporter_port]
    separator:     ';'
    regex: '(.*);(.*)'
    target_label: __address__
    replacement: ${1}:${2}
 

Это идиоматично?

Ответ №1:

Если вы измените разделитель на двоеточие, вы можете удалить регулярное выражение и заменить его, поскольку значения по умолчанию делают то, что вам нужно.

Метка порта должна иметь префикс __, чтобы она не стала целевой меткой.

Комментарии:

1. Очищено relabel_configs : `relabel_configs: — source_labels: [ address , node_exporter_port] разделитель: ‘: ‘ target_label: __address `

Ответ №2:

Следующая конфигурация перемаркировки добавляет порт из node_exporter_port метки в __address__ метку:

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

Он объединяет исходное __address__ значение метки и значение node_exporter_port метки с заданным separator: ':' .