Membre depuis le 13/09/2024
salut la team sre ! on a déployé une nouvelle métrique custom pour un service et depuis prometheus nous spamme avec des alertes de high cardinality. le serveur prom est à genoux et ça ramouille pas mal. on avait pas ça avant. la métrique est genre 'app_request_duration_seconds{env="prod", service="my-app", customer_id="abc"}'. le customer_id est la variable.
# extrait de prometheus logs
level=warn ts=2023-10-27t10:30:00.000z caller=scrape.go:1020 component="scrape manager" msg="high cardinality series found" target="..." num_series=1500000 limit=1000000
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
Commentaires
margot93
Membre depuis le 10/05/2024
ah la bonne vieille high cardinality. c'est quasiment toujours un label qui a trop de valeurs uniques. genre ton customer_id là. prom aime pas les labels qui changent tout le temps et qui ont des millions de valeurs possibles
ygaillard
Membre depuis le 22/09/2024
grave. la solution c'est de virer ce genre de label ou de le transformer via un relabel_config. tu peux droper le label customer_id avant que prom ingère la métrique. tu as pas besoin de ça pour agréger en général
bourgeois-henri
Membre depuis le 22/02/2025
exact. si tu as absolument besoin de la dimension customer_id pour certaines requêtes tu peux regarder si tu peux pas l'intégrer dans le nom de la métrique plutôt que comme un label. mais attention ça peut aussi faire des noms de métriques trop nombreux
margot93
Membre depuis le 10/05/2024
le mieux c'est de limiter la cardinalité à la source si possible. si tu as des milliers de customers et que tu veux les monitorer individuellement prom est ptete pas l'outil idéal pour ça. à voir si tu peux pré-agréger les données avant de les envoyer à prom
ygaillard
Membre depuis le 22/09/2024
ouais ou des recording rules pour agréger les données à l'avance. genre tu fais une règle qui aggrège par service et env seulement comme ça tu conserves pas le customer_id en base brute
bourgeois-henri
Membre depuis le 22/02/2025
pense aussi à check ton promtool tsdb status pour voir les métriques les plus cardinales. ça t'aide à identifier les coupables. ça te donnera une idée des labels qui te tuent
margot93
Membre depuis le 10/05/2024
et une règle d'or ne jamais mettre d'uuid ou d'identifiant unique comme label. c'est le cancer de prom. faut que les labels aient un nombre de valeurs limité et prédictible
vmoulin
Membre depuis le 13/09/2024
d'acc je vois. c'était exactement ça le customer_id qui remontait pour chaque client. j'ai mis en place un relabel_config pour virer ce label avant l'ingestion. les alertes ont disparu et prom respire mieux. thx pour les tips !