HAProxy Exporter for Prometheus
This is a simple server that scrapes HAProxy stats and exports them via HTTP for
Prometheus consumption.
Getting Started
To run it:
./haproxy_exporter [flags]
Help on flags:
./haproxy_exporter --help
For more information check the source code documentation. All of the
core developers are accessible via the Prometheus Developers mailinglist.
Usage
HTTP stats URL
Specify custom URLs for the HAProxy stats port using the --haproxy.scrape-uri
flag. For example, if you have set stats uri /baz
,
haproxy_exporter --haproxy.scrape-uri="http://localhost:5000/baz?stats;csv"
Or to scrape a remote host:
haproxy_exporter --haproxy.scrape-uri="http://haproxy.example.com/haproxy?stats;csv"
Note that the ;csv
is mandatory (and needs to be quoted).
If your stats port is protected by basic auth, add the credentials to the
scrape URL:
haproxy_exporter --haproxy.scrape-uri="http://user:pass@haproxy.example.com/haproxy?stats;csv"
You can also scrape HTTPS URLs. Certificate validation is enabled by default, but
you can disable it using the --haproxy.ssl-verify=false
flag:
haproxy_exporter --haproxy.ssl-verify=false --haproxy.scrape-uri="https://haproxy.example.com/haproxy?stats;csv"
Unix Sockets
As alternative to localhost HTTP a stats socket can be used. Enable the stats
socket in HAProxy with for example:
stats socket /run/haproxy/admin.sock mode 660 level admin
The scrape URL uses the 'unix:' scheme:
haproxy_exporter --haproxy.scrape-uri=unix:/run/haproxy/admin.sock
Docker
To run the haproxy exporter as a Docker container, run:
docker run -p 9101:9101 quay.io/prometheus/haproxy-exporter:v0.9.0 --haproxy.scrape-uri="http://user:pass@haproxy.example.com/haproxy?stats;csv"
Development
Building
make build
Testing
make test
License
Apache License 2.0, see LICENSE.