Prometheus scrapes qui disparaissent avec Kubernetes SD

Posté par pherve le 10/02/2025
RÉSOLU

pherve

Membre depuis le 30/07/2019

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

Commentaires

alain-guyon

Membre depuis le 21/08/2019

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

pherve

Membre depuis le 30/07/2019

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

ppotier

Membre depuis le 21/08/2019

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

pherve

Membre depuis le 30/07/2019

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

dupuy-henriette

Membre depuis le 23/11/2024

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

pherve

Membre depuis le 30/07/2019

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

alain-guyon

Membre depuis le 21/08/2019

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

pherve

Membre depuis le 30/07/2019

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

ppotier

Membre depuis le 21/08/2019

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

pherve

Membre depuis le 30/07/2019

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

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