Prometheus qui rame grave avec trop de labels

aime33 18/11/2025
RÉSOLU
aime33
Auteur
Avatar de aime33
aime33
Auteur

salut la team on a un gros pb de perfs avec prometheus. les requêtes grafana prennent des plombes et souvent time-out. j'ai l'impression qu'on a un max de metrics avec des labels à gogo genre un id unique par requête http ou des choses comme ça. ça sent la high cardinality à plein nez non ?

http_requests_total{job="api-gateway", instance="app-01", path="/api/v1/users", status="200", user_id="123456789"} 1

c'est ingérable on a des millions de séries j'imagine

18/11/2025 à 19:10

5 commentaires

mace-nath
Membre
Avatar de mace-nath
mace-nath
Membre

ouais ça pue la high cardinality à mort. le user_id c'est la mort pour prometheus. la première chose à faire c'est utiliser promtool tsdb analyze cardinality sur tes données pour voir quels labels sont les pires. ça va te donner une idée de la source du problème

19/11/2025 à 13:45
oceane-lebon
Membre Actif Secouriste
Avatar de oceane-lebon
oceane-lebon
Membre Actif Secouriste

exactement. après ça tu dois mettre en place du relabeling sur tes scrape configs. tu peux dropper les labels hyper-cardinaux comme user_id ou remplacer des valeurs uniques par des regex matchés pour grouper. par exemple si tu as des chemins /api/v1/users/123 et /api/v1/users/456 tu peux les transformer en /api/v1/users/#id

20/11/2025 à 11:46
gros-michele
Membre Actif Secouriste
Avatar de gros-michele
gros-michele
Membre Actif Secouriste

et n'oublie pas les recording rules aussi ! si tu as des agrégations que tu fais souvent dans Grafana genre la somme des requêtes par endpoint sans user_id tu peux créer une recording rule pour pré-calculer cette métrique. ça soulage grave Prometheus et Grafana sera beaucoup plus rapide dessus

21/11/2025 à 07:32
unicolas
Membre Actif
Avatar de unicolas
unicolas
Membre Actif

faut aussi penser à la durée de rétention de tes metrics. si tu gardes des données à haute granularité pendant trop longtemps ça prend de la place et ça ralentit les requêtes. tu peux downsampler les vieilles données ou les envoyer vers un long-term storage genre Thanos ou Mimir pour les requêtes historiques

22/11/2025 à 05:46
aime33
Auteur
Avatar de aime33
aime33
Auteur

ok un grand merci à tous ! j'ai commencé par le promtool analyze et effectivement le user_id était le gros coupable. je vais implémenter le relabeling pour le virer et voir pour les recording rules. ça devrait déjà bien dégrossir le problème. je vous tiens au courant

23/11/2025 à 05:35

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire