Prometheus のメトリック内のラベルの名前を変更する方法 質問する

Prometheus のメトリック内のラベルの名前を変更する方法 質問する

質問があります:

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

nameジョブにはラベル名を持つ他の多くのメトリックがありますnode-exporters。そのため、ジョブ全体で relabel 構成を使用できません。

ベストアンサー1

promQLのlabel_replace関数を使うこともできますが、ラベルは置き換えられず、追加されます。

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)

おすすめ記事