12 commentaires
tu droppes les labels hyper-cardinaux de prometheus mais tu les envoies à un autre système pour le debug. par exemple un log-aggregator comme loki ou splunk. prometheus c'est pour les métriques agrégées pour l'alerting et le monitoring pas pour le tracing fin
en attendant de refaire ta stack de logs/traces tu peux aussi jouer sur le
storage.tsdb.retention.time pour réduire la durée de rétention. si tu réduis la rétention ça réduit la taille du tsdb et ça soulage un peu
tu peux aussi utiliser des
remote_write vers un long-term storage comme thanos ou cortex pour décharger le prometheus local si tu as besoin de rétention longue sur ces métriques
merci à tous pour les idées ! on va commencer par un gros nettoyage des
relabel_configs pour droper les labels inutiles et essayer de basculer la logique de debug sur loki pour les détails. ensuite on attaquera la modification du code des apps. ça va être un chantier mais au moins on a une direction claire
Laisser une réponse
Vous devez être connecté pour poster un message !
salut les sres
on a un cluster prometheus qui commence à pisser du sang, cpu à fond, mémoire qui explose, et les scrapes se mettent à ramer voire timed out. en gros notre infra a grossi mais prometheus a du mal à suivre.
je pense que c'est un problème de cardinalité avec trop de labels dynamiques générés par nos apps. on a des métriques avec des labels qui incluent des uuid, des ips éphémères, des user_ids etc. ce qui fait des millions de séries temporelles
comment vous gérez ce genre de trucs ? on peut pas juste virer ces labels parce qu'on en a besoin pour debugger