Configure Prometheus to scrape metrics from k8s nginx-containers with nginx-exporter

863 views
Skip to first unread message

a...@unix4all.com

unread,
Sep 20, 2016, 4:03:39 AM9/20/16
to Prometheus Developers
Can't get how to scrape pod-level labels only for pods with openresty and nginx-exporter containers deployed (port 9113).

Now I have default config, where job 'kubernetes-service-endpoints' scrapes metrics from nginx-exporter out-of-box, but I can't get how to scrape labels, such as pod_name, etc.

- job_name: 'kubernetes-service-endpoints'
scheme: http
kubernetes_sd_configs:
- api_servers:
- 'https://kubernetes.default.svc'
in_cluster: true
role: endpoint
relabel_configs:
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
action: replace
target_label: __scheme__
regex: (https?)
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
action: replace
target_label: __address__
regex: (.+)(?::\d+);(\d+)
replacement: $1:$2
- action: labelmap
regex: __meta_kubernetes_service_label_(.+)
- source_labels: [__meta_kubernetes_service_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_service_name]
action: replace
target_label: kubernetes_name
Also, I have such a job:

- job_name: 'kubernetes-nginx-exporter'
static_configs:
- targets: ['nginx-exporter.default.svc.cluster.local:9113']
Which scrapes no container or pod labels at all (eventually?)

Thanks in advance for any kind of help.

Matthias Rampke

unread,
Sep 20, 2016, 11:51:25 AM9/20/16
to a...@unix4all.com, Prometheus Developers
Hi,

Endpoints are connected to the service, so you only get the service labels. If you need more information about the pods, use the `role: pod` (https://github.com/prometheus/prometheus/blob/master/documentation/examples/prometheus-kubernetes.yml#L156) discovery.

Accordingly, the annotations need to be on the pods, not the service then.

/MR

--
You received this message because you are subscribed to the Google Groups "Prometheus Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to prometheus-devel...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages