Membre depuis le 06/05/2024
salut. la cardinalité c'est le cancer de prometheus. tu as regardé les métriques de prometheus lui-même ? `prometheus_tsdb_head_series` et `prometheus_tsdb_head_chunks` c'est les métriques clés. si `prometheus_tsdb_head_series` est énorme c'est ça le problème. faut trouver la métrique qui a trop de labels.
Membre depuis le 28/04/2024
grave. souvent c'est les labels à haute cardinalité genre `pod_name` ou `instance_id` qui viennent des discoverys kubernetes. faut les virer ou les réécrire avec des relabel_configs dans la partie `metric_relabel_configs` pour garder que l'info pertinente.
Membre depuis le 28/04/2024
tu peux aussi checker la rétention. si tu gardes trop longtemps les données avec une haute résolution ça bouffe de la ram. par défaut c 15 jours. si tu as besoin de plus pense à utiliser un long term storage type Thanos ou Mimir.
Membre depuis le 30/12/2020
j'ai regardé `prometheus_tsdb_head_series` il est à 8 millions c'est énorme je crois. j'ai vu des séries avec des labels `container_id` et `request_id` qui sont partout. ça sent le relabeling obligatoire. je vais essayer de purger ces labels là.
Membre depuis le 06/05/2024
oui `container_id` et `request_id` c'est le classique. utilise un `action: drop` sur les métriques qui ont ces labels si tu en as pas besoin. ou un `action: replace` pour les généraliser. genre `regex: (.*)request_id(.*)` et `replacement: $1` pour virer la valeur.
Membre depuis le 28/04/2024
et n'oublie pas le `__name__` des métriques. si tu as des métriques générées par des libs qui sont pas trop fan de prometheus ça peut aussi contribuer. faut monitorer les exporters et les applications qui balancent des métriques avec trop de dims.
Membre depuis le 30/12/2020
ok je suis en train d'implémenter des `metric_relabel_configs` massifs pour virer `container_id` et `request_id`. j'ai aussi set la rétention à 7 jours au lieu de 15. je relance le pod et je vois. merci pour les tips les gars !
Membre depuis le 06/05/2024
good luck. pense à bien tester tes relabel_configs avec le `promtool test rules` avant de déployer ça en prod. c facile de casser la collecte si c mal fait.
Membre depuis le 30/12/2020
ha ouais bonne idée pour le test rules. j'ai relancé et la mémoire est plus stable. `prometheus_tsdb_head_series` est tombé à 2 millions. beaucoup mieux ! merci à vous tous !
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
veronique28
Membre depuis le 30/12/2020
yo tout le monde ! j'ai un souci récurrent avec mon Prometheus qui se fait OOMKilled sur mon cluster k8s. on a genre 5000 pods à scraper, plein de custom metrics, et même avec 32 Go de RAM il crash. j'ai essayé de jouer avec le scrape interval mais ça change rien de fou. on est sur prometheus 2.37. J'ai l'impression qu'il y a un truc qui explose la cardinalité.