prometheus scrape config k8s service discovery marche pas bien

Posté par laurent55 le 14/02/2025
RÉSOLU

laurent55

Membre depuis le 22/05/2024

hello la team. j'ai un souci avec prometheus. je veux scraper des métriques depuis des services dans mon cluster k8s. j'ai configuré la service discovery pour k8s mais prometheus voit pas tous mes targets. certains pods avec les annotations adéquates sont pas découverts ou alors prometheus me dit qu'il arrive pas à les joindre

# prometheus.yml scrape config (extrait)
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_path]
        action: replace
        target_label: __metrics_path__
        regex: (.+)
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port]
        action: replace
        target_label: __scheme__
        regex: (https?)
      - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
        action: replace
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:$2
        target_label: __address__

Commentaires

arthur-fernandez

Membre depuis le 18/11/2024

salut. t'as vérifié les rbac de prometheus ? le service account de ton prometheus doit avoir les droits list et watch sur les pods, services, endpoints, nodes etc. si il manque des droits il verra rien

laurent55

Membre depuis le 22/05/2024

oui j'ai un clusterrole et un clusterrolebinding qui donnent les droits nécessaires. j'ai vérifié les logs du pod prometheus y'a pas d'erreur de permission

arthur-fernandez

Membre depuis le 18/11/2024

ok alors go dans l'interface de prometheus sous status -> targets et regarde ce qu'il te dit. si le target est là mais failed regarde la raison. souvent c'est un souci de firewall réseau entre prometheus et le pod ou un port qui écoute pas

laurent55

Membre depuis le 22/05/2024

purée oui c'était con en fait. le port par défaut pour le scrape est 9100 et mes annotations spécifiaient pas le port. j'ai rajouté une annotation prometheus.io/port: "8080" pour mon service et hop les targets apparaissent et sont scrapés. merci pour l'aide !

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