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__
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
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 !