Si j'ai une métrique avec les étiquettes suivantes:
my_metric{group="group a"} 100
my_metric{group="group b"} 100
my_metric{group="group c"} 100
my_metric{group="misc group a"} 1
my_metric{group="misc group b"} 2
my_metric{group="misc group c"} 1
my_metric{group="misc group d"} 1
Est-il possible de faire une requête ou même un label_replace
qui combine les groupes "divers"?
(Je me rends compte que la cardinalité métrique doit être améliorée, et j'ai mis à jour l'application pour y remédier. Cependant, cela m'a laissé cette question pour savoir si je voulais corriger les métriques via une requête plus tard)
Oui, vous pouvez utiliser le remplacement d'étiquette pour regrouper tous les divers:
sum by (new_group) (
label_replace(
label_replace(my_metric, "new_group", "$1", "group", ".+"),
"new_group", "misc", "group", "misc group.+"
)
)
Le label_replace interne copie toutes les valeurs du groupe dans new_group, le externe écrase celles qui correspondent à "misc group. +" Avec "misc", et nous additionnons ensuite par le label "new_group". La raison d'utiliser un nouveau label est que la série ne serait plus unique si nous remplaçions simplement le label "groupe", et la somme ne fonctionnerait pas.
Vous pouvez utiliser une requête regex:
my_metric{group=~"misc group.+"}
Cela vous donnera tout où group
commence par "misc group".