Разве у prometheus source_labels могут быть только метки, начинающиеся с "__"?
Можно ли создать ярлык, используя ярлыки, которые не начинаются с __
?
Backgroud:
Я работаю с Prometheus, и я пытаюсь контролировать Lvs Serivce с помощью node_exporter
, Так что мне нужен ярлык под названием vrrp_vs
(виртуальный сервер vrrp), он должен содержать vip и порт, такой как 172.16.10.10:80
Я попытался сделать из себя два ярлыка. local_address
а также local_port
метрики node_ipvs_backend_connections_active
, но ничего не получил.
2 ответа
Наконец-то нашел решение с помощью моего лидера.
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
формат.
Результат:
Вы можете использовать PromQL label_join для создания комбинированной метки из существующих меток.
label_join(node_ipvs_backend_connections_active, "vrrp_vs", "local_address", ":", "local_port")