monitoringprometheus

How to rename label within a metric in Prometheus


I have a query:

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

I want the label name being renamed (or replaced) to unit_name ONLY within the node_systemd_unit_state metric. So, desired result is:

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

There are many other metrics with a label name name in the node-exporters job. That's why I can't use relabel config across the job.


Solution

  • You can have more than one source label, so:

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

    If the label name isn't matching up with other metrics/exporters, you should file a bug with them. Relabelling like this should only be a temporary solution while a proper fix is being pursued.