Как переименовать метку в метрике в Прометее - PullRequest
0 голосов
/ 17 января 2019

У меня есть запрос:

node_systemd_unit_state{instance="server-01",job="node-exporters",name="kubelet.service",state="active"} 1

Я хочу, чтобы метка name была переименована (или заменена) на unit_name ТОЛЬКО в метрике node_systemd_unit_state. Итак, желаемый результат:

node_systemd_unit_state{instance="server-01",job="node-exporters",unit_name="kubelet.service",state="active"} 1

В задании node-exporters есть много других метрик с именем метки name. Вот почему я не могу использовать релабельную конфигурацию в работе.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

вы можете использовать функцию label_replace в promQL, но она также добавляет метку, не заменяя ее

label_replace(
  <vector_expr>, "<desired_label>", "$1", "<existing_label>", "(.+)"
)

label_replace(
node_systemd_unit_state{instance="server-01",job="node-exporters",name="kubelet.service",state="active"},
"unit_name","$1","name", "(.+)"
)

Итак, чтобы избежать повторения, вы можете добавить:

sum(label_replace(
    node_systemd_unit_state{instance="server-01",job="node-exporters",name="kubelet.service",state="active"},
    "unit_name","$1","name", "(.+)"
    )
)by(unit_name)
0 голосов
/ 17 января 2019

Вы можете иметь более одной метки источника, поэтому:

- source_labels: [__name__, name]
  regex: "node_systemd_unit_state;(.+)"
  target_label: unit_name

Если имя метки не совпадает с другими показателями / экспортерами, вы должны сообщить им об ошибке. Подобная повторная маркировка должна быть временным решением, пока идет исправление.

...