Sujet :

Prometheus qui rame grave avec trop de labels

RÉSOLU

Liste des sujets Répondre Créer un sujet

aime33

Membre depuis le 26/10/2024

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

mace-nath

Membre depuis le 11/01/2025

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

oceane-lebon

Membre depuis le 21/07/2024

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

gros-michele

Membre depuis le 30/03/2024

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

unicolas

Membre depuis le 16/04/2024

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

aime33

Membre depuis le 26/10/2024

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

Répondre

vous devez être connecté pour poster un message !

Rejoindre la communauté

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

S'inscrire