web-dev-qa-db-fra.com

Comment renommer une étiquette dans une métrique dans Prométhée

J'ai une question:

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

Je souhaite que l'étiquette name soit renommée (ou remplacée) par unit_name UNIQUEMENT dans le node_systemd_unit_state métrique. Donc, le résultat souhaité est:

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

Il existe de nombreuses autres mesures avec un nom d'étiquette name dans le node-exporters emploi. C'est pourquoi je ne peux pas utiliser la config de relabel à travers le travail.

8
Konstantin Vustin

Je me suis lassé de toute la documentation fragmentée et je pense avoir fourni une meilleure réponse dans cet article ici: https://medium.com/@texasdave2/replace-and-remove-a-label-in-a- prometheus-query-9500faa302f

Remplacer n'est pas un vrai REMPLACER

Votre objectif est de simplement remplacer l'ancien nom d'étiquette "old_job_id" par un nouveau nom d'étiquette "new_task_id". Prometheus label_replace va vraiment "ajouter" le nouveau nom de l'étiquette. Il conservera également l'ancien nom de l'étiquette… Donc, cela pourrait être un problème, ce n'est pas un vrai "remplacement en place".

Donc, si vous voulez "ajouter" votre nouveau nom d'étiquette et "supprimer" l'ancien nom d'étiquette, vous devez faire ceci:

sum without (old_job_id) (label_replace(metric, "new_task_id", "$1", "old_job_id", "(.*)"))

Voici comment cela se lit:

  • sum without (old_job_id) supprimera l'ancien nom d'étiquette de la sortie de la requête

  • métrique est votre métrique, comme "node_filesystem_avail_bytes"

  • "New_task_id" est l'endroit où vous mettriez votre nouveau nom d'étiquette

  • "$ 1" est une expression rationnelle pour l'utilisation de la chaîne dans le nouveau nom d'étiquette, ne changez pas cela

  • "Old_job_id" est l'endroit où vous mettrez votre ancienne étiquette, celle dont vous voulez vous débarrasser (. * ……. Ce gâchis est regex qui remplacera le nom complet de l'étiquette

0
texasdave