Prometheus OOMKilled dans k8s après un ajout de target

delahaye-gerard 14/06/2025
RÉSOLU

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"
14/06/2025 à 15:19

7 commentaires

bpayet
Membre Actif
Avatar de bpayet
bpayet
Membre Actif

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

15/06/2025 à 14:22
wfabre
Membre
Avatar de wfabre
wfabre
Membre

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

16/06/2025 à 10:58
troux
Membre Actif
Avatar de troux
troux
Membre Actif

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

17/06/2025 à 05:19

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

18/06/2025 à 00:36
bpayet
Membre Actif
Avatar de bpayet
bpayet
Membre Actif

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é

18/06/2025 à 20:24
wfabre
Membre
Avatar de wfabre
wfabre
Membre

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

19/06/2025 à 15:32

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

20/06/2025 à 10:03

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