Este team especializado despúes de muchos días de investigación y de recopilar de datos, encontramos los datos necesarios, nuestro deseo es que te sea útil para tu plan.
Solución:
puede usar la función label_replace en promQL, pero también agrega la etiqueta, no la reemplaza
label_replace(
, "", "$1", "", "(.+)"
)
label_replace(
node_systemd_unit_stateinstance="server-01",job="node-exporters",name="kubelet.service",state="active",
"unit_name","$1","name", "(.+)"
)
Entonces, para evitar la repetición, puede agregar:
sum(label_replace(
node_systemd_unit_stateinstance="server-01",job="node-exporters",name="kubelet.service",state="active",
"unit_name","$1","name", "(.+)"
)
)by(unit_name)
Puede tener más de una etiqueta de origen, por lo que:
- source_labels: [__name__, name]
regex: "node_systemd_unit_state;(.+)"
target_label: unit_name
Si el nombre de la etiqueta no coincide con otras métricas/exportadores, debe notificarles un error. Reetiquetar de esta manera solo debería ser una solución temporal mientras se busca una solución adecuada.
Me cansé de toda la documentación fragmentada y siento que brindé una mejor respuesta en esta publicación aquí: https://medium.com/@texasdave2/replace-and-remove-a-label-in-a-prometheus-query- 9500faa302f0
Reemplazar no es un true REEMPLAZAR
Su objetivo es simplemente reemplazar el nombre de etiqueta anterior “old_job_id” con un nuevo nombre de etiqueta “new_task_id”. Prometheus label_replace realmente “agregará” el nuevo nombre de la etiqueta. También conservará el antiguo nombre de la etiqueta… Entonces, eso podría ser un problema, no es un true “reemplazar en su lugar”.
Entonces, si desea “agregar” el nombre de su nueva etiqueta y “eliminar” el nombre de la etiqueta anterior, debe hacer esto:
sum without (old_job_id) (label_replace(metric, "new_task_id", "$1", "old_job_id", "(.*)"))
Así es como se lee:
-
sum sin (old_job_id) eliminará el nombre de la etiqueta anterior de la salida de la consulta
-
métrica es su métrica, como “node_filesystem_avail_bytes”
-
“new_task_id” es donde pondría su nuevo nombre de etiqueta
-
“$1” es una expresión regular para usar el string en el nuevo nombre de la etiqueta, no cambies esto
-
“old_job_id” es donde colocará su etiqueta anterior, la que desea eliminar (.*……. ese lío es una expresión regular que reemplazará el nombre completo de la etiqueta
Agradecemos que quieras añadir valor a nuestro contenido informacional contribuyendo tu experiencia en las críticas.