Prometheus OOMKilled dans k8s après un ajout de target

Posté par delahaye-gerard le 14/06/2025
RÉSOLU

delahaye-gerard

Membre depuis le 08/02/2025

yo la team sres. j'ai un souci avec mon prometheus en k8s. on a ajouté une dizaine de nouveaux microservices à scraper et depuis prometheus se fait oomkilled régulièrement genre toutes les 2-3h. avant ça tournait nickel avec 200 targets. on a augmenté la memory limit à 4Go mais ça change rien

# Ex. de resource limits
resources:
  limits:
    memory: "4Gi"
  requests:
    memory: "2Gi"

Commentaires

bpayet

Membre depuis le 25/03/2024

salut. l'oomkilled sur prometheus c'est souvent un signe que le nombre de series augmente trop vite. chaque nouvelle target même petite peut ajouter des milliers de series. t'as check le nombre de series actives dans prometheus lui-même ? métrique prometheus_tsdb_head_series

wfabre

Membre depuis le 24/04/2024

yep et aussi le cardinality. c'est pas tant le nombre de targets mais le nombre de labels uniques par métrique. si tes nouveaux services ont des labels très dynamiques genre id de transaction ou user_id ça explose la mémoire

troux

Membre depuis le 09/05/2024

tu peux essayer d'ajuster le scraping interval. si t'es à 15s passe à 30s ça réduit la charge mais c'est un compromis sur la granularité des données. et regarde ta retention policy aussi

delahaye-gerard

Membre depuis le 08/02/2025

ah merde j'avais pas pensé aux labels dynamiques. on a des métriques qui ont des labels avec des uuid de requêtes. c'est ptete ça. pour les series actives on est à 2.5 millions maintenant. avant on était vers 1.8M

bpayet

Membre depuis le 25/03/2024

ouais 2.5M pour 4Go c tendu. prometheus c environ 1-2KB par series en head block. pour des labels avec uuid tu peux vite monter en flèche. il faut relabeliser à l'ingestion pour virer ces labels haute cardinalité

wfabre

Membre depuis le 24/04/2024

exactement. ajoute des relabel_configs dans ton prometheus config pour drop ou remplacer ces labels inutiles pour le monitoring. utilise action: drop ou action: replace avec des regex

delahaye-gerard

Membre depuis le 08/02/2025

vous êtes des génies ! j'ai ajouté un relabel_config pour virer le label uuid_requete sur toutes les métriques et prometheus tourne comme un charme maintenant. la mémoire est stable. énorme thx

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