Background
I have installed Prometheus on my Kubernetes cluster (hosted on Google Container Engineer) using the Helm chart for Prometheus.
The Problem
I cannot figure out how to add scrape targets to the Prometheus server. The prometheus.io site describes how I can mount a prometheus.yml file (which contains a list of scrape targets) to a Prometheus Docker container -- I have done this locally and it works. However, I don't know how to specify scrape targets for a Prometheus setup installed via Kubernetes-Helm. Do I need to add a volume to the Prometheus server pod that contains the scrape targets, and therefore update the YAML files generated by Helm??
I am also not clear on how to expose metrics in a Kubernetes Pod -- do I need to forward a particular port?
You need to add annotations to the service you want to monitor.
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/scrape: 'true'
From the prometheus.yml in the chart:
prometheus.io/scrape
: Only scrape services that have a value of true
prometheus.io/scheme
: http or httpsprometheus.io/path
: override if the metrics path is not /metrics
prometheus.io/port
: If the metrics are exposed on a different portAnd yes you need to expose the port with metrics to the service so Prometheus could access it