Install Pushgateway to Expose Metrics to Prometheus
In most cases when we want to scrape a node for metrics, we will install node-exporter on a host and configure prometheus to scrape the configured node to consume metric data. But in certain cases we want to push custom metrics to prometheus. In such cases, we can make use of pushgateway.
Pushgateway allows you to push custom metrics to push gateway’s endpoint, then we configure prometheus to scrape push gateway to consume the exposed metrics into prometheus.
Pre-Requirements
If you have not set up Prometheus, head over to this blogpost to set up prometheus on Linux.
What we will do?
In this tutorial, we will setup pushgateway on linux and after pushgateway has been setup, we will push some custom metrics to pushgateway and configure prometheus to scrape metrics from pushgateway.
Install Pushgateway
Get the latest version of pushgateway from prometheus.io, then download and extract:
12
$ wget https://github.com/prometheus/pushgateway/releases/download/v0.8.0/pushgateway-0.8.0.linux-amd64.tar.gz
$ tar -xvf pushgateway-0.8.0.linux-amd64.tar.gz
$ systemctl status pushgateway
pushgateway.service - Pushgateway
Loaded: loaded (/etc/systemd/system/pushgateway.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2019-05-07 09:05:57 UTC; 2min 33s ago
Main PID: 6974 (pushgateway)
Tasks: 6 (limit: 4704)
CGroup: /system.slice/pushgateway.service
└─6974 /usr/local/bin/pushgateway --web.listen-address=:9091 --web.telemetry-path=/metrics --persistence.file=/tmp/metric.store --persistence.interval=5m --log.level=info --log.format=logger:st
May 07 09:05:57 ip-172-31-41-126 systemd[1]: Started Pushgateway.
Configure Prometheus
Now we want to configure prometheus to scrape pushgateway for metrics, then the scraped metrics will be injected into prometheus’s time series database:
At the moment, I have prometheus, node-exporter and pushgateway on the same node so I will provide my complete prometheus configuration, If you are just looking for the pushgateway config, it will be the last line:
With this method, you can push any custom metrics (bash, lambda function, etc) to pushgateway and allow prometheus to consume that data into it’s time series database.