Prometheus scrapes qui disparaissent avec Kubernetes SD

pherve 10/02/2025
RÉSOLU
pherve
Auteur Actif
Avatar de pherve
pherve
Auteur Actif

Salut à tous ! On a Prometheus qui monitore nos pods k8s avec le service discovery intégré. Sauf que régulièrement des targets disparaissent du scrape pour réapparaître plus tard. Y'a pas de scale down ou de crash de pod. juste le scrape qui est plus là pendant quelques minutes. C'est aléatoire mais chiant pour les alertes

# partie prometheus.yaml
scrape_configs:
  - job_name: 'kubernetes-pods'
    kubernetes_sd_configs:
      - role: pod
    relabel_configs:
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        action: keep
        regex: true
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port]
        action: replace
        regex: (\d+)
        target_label: __metrics_path__
        replacement: /metrics
      - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
        action: replace
        regex: (.+):(?:\d+);(\d+)
        target_label: __address__
        replacement: $1:$2
10/02/2025 à 03:33

12 commentaires

alain-guyon
Membre
Avatar de alain-guyon
alain-guyon
Membre

check tes logs prometheus y'a ptete des erreurs de scrape genre timeout ou http status non 2xx. des fois le pod est ok mais l'endpoint /metrics rame

11/02/2025 à 00:11
pherve
Auteur Actif
Avatar de pherve
pherve
Auteur Actif

j'ai regardé les logs y'a pas d'erreurs de timeout ou de connexion. juste le target qui n'apparait plus dans la page /targets. comme si Prometheus le voyait plus

11/02/2025 à 22:46
ppotier
Membre Actif Secouriste
Avatar de ppotier
ppotier
Membre Actif Secouriste

c'est pas un problème de ressource sur ton prometheus ? genre il est over-provisionné et il struggle a parler à l'api k8s ou a processer tous les targets

12/02/2025 à 20:07
pherve
Auteur Actif
Avatar de pherve
pherve
Auteur Actif

non le prometheus est large il a de la ram et du cpu en rab. et puis quand ça arrive c'est pas tous les targets qui disparaissent juste quelques uns randomly

13/02/2025 à 19:22

t'as pas des network policies dans ton cluster k8s qui pourraient bloquer temporairement le trafic entre prometheus et l'api-server ou entre prometheus et les pods ciblés ? des fois les règles sont un peu trop agressives

14/02/2025 à 17:45
pherve
Auteur Actif
Avatar de pherve
pherve
Auteur Actif

hmm bonne piste ! j'ai des network policies mais elles sont censées être ouvertes pour le namespace monitoring. je vais double checker si y'a pas une règle qui traine et qui casserait le truc

15/02/2025 à 16:45
alain-guyon
Membre
Avatar de alain-guyon
alain-guyon
Membre

aussi check la fréquence de resync de ton kubernetes_sd_configs. par défaut c'est 30s. si ton cluster est très dynamique avec bcp de churn de pods ça peut rater des events

16/02/2025 à 15:09
pherve
Auteur Actif
Avatar de pherve
pherve
Auteur Actif

j'ai mis 5s la refresh interval. ça a pas changé grand chose

17/02/2025 à 14:06
ppotier
Membre Actif Secouriste
Avatar de ppotier
ppotier
Membre Actif Secouriste

et si c'était pas un souci de service discovery mais un truc au niveau de ton CNI ? genre cilium ou calico qui drop des paquets pour X raison et prometheus n'arrive plus a atteindre le pod

18/02/2025 à 13:29
pherve
Auteur Actif
Avatar de pherve
pherve
Auteur Actif

c'est calico. j'ai regardé les logs du calico-node sur les nodes où les pods qui disparaissent sont schedulés j'ai rien vu d'alarmant. mais c'est une piste. je vais voir les logs du control plane de calico si y'a un truc

19/02/2025 à 07:54

si le problème est vraiment intermittent et qu'il n'y a pas d'erreurs visibles dans les logs de prometheus ou des pods cible, ça sent le soucis d'event de l'api k8s. parfois l'api cache des etcd events ou le watch channel est lent. regarde les métriques de ton k8s api-server pour voir si y'a des latences ou des erreurs de watch

20/02/2025 à 03:49
pherve
Auteur Actif
Avatar de pherve
pherve
Auteur Actif

MERCI ! c'était bien un problème de latence sur l'api-server k8s certains noeuds avaient des micro-coupures réseau et ça faisait ramer l'api. une fois résolu les targets sont stables. je vous dois une bière

21/02/2025 à 03:41

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