12 commentaires
c pas un souci de service discovery dans K8s ? Si tes pods sont recréés ou changent d'IP, prometheus peut mettre un peu de temps à les redécouvrir via le service discovery. Y'a des metrics sur le Kube-state-metrics pour ça.
Oui j'ai des timeout. des target_down aussi. souvent c'est quand un pod redémarre ou que le déploiement est en cours.
Si c'est lié aux redémarrages de pods, c'est ptete juste le temps que l'endpoint soit prêt. Tu peux augmenter le initialDelaySeconds de ton readiness probe pour donner plus de temps au service de démarrer et exposer ses métriques avant d'être considéré comme prêt.
et la charge cpu/mémoire de ton pod prometheus ? si prometheus est sous-provisionné, il peut ne pas arriver à scraper toutes les cibles dans les temps, surtout si t'as beaucoup de targets ou de métriques.
scrape_interval est à 15s et timeout à 10s. j'ai déjà essayé d'augmenter le timeout à 12s ça change rien. le pod prometheus est sur des nodes avec plein de ressources et il utilise peu de cpu/ram.
c surtout sur un service users-api en go. j'ai testé son endpoint /metrics en curl depuis le pod prometheus, il répond en 20ms. CNI c'est calico, pas de souci apparent sur les logs.
Ok donc le problème n'est pas côté cible, ni côté réseau. T'as vraiment des ressources libres sur Prometheus ? Des fois, c'est pas le CPU global mais juste un thread qui est bloqué ou un truc de ce genre. T'as regardé les métriques internes de Prometheus lui-même ? Genre prometheus_target_scrapes_missed_total.
MERCI ! c'était les métriques internes de prometheus. je viens de voir prometheus_target_scrapes_missed_total exploser. il y avait une tonne de labels dynamiques générés par un de nos services qui rendaient l'ingestion de métriques super lourde pour prometheus. j'ai nettoyé les labels et ça respire mieux. nickel !
Laisser une réponse
Vous devez être connecté pour poster un message !
salut l'équipe on a un problème aléatoire avec prometheus. de temps en temps il rate des scrapes sur certains de nos services k8s. on se retrouve avec des trous dans nos graphes grafana. on est sur prometheus 2.30. des idées ?
les services c'est majoritairement du go et nodejs, avec des /metrics standards. pas de trucs exotiques.