This is a simple server that periodically scrapes HAProxy stats and exports them via HTTP/JSON for Prometheus consumption.
To run it:
go run haproxy_exporter [flags]
Help on flags:
go run haproxy_exporter --help
- The source code is periodically indexed: Prometheus HAProxy Exporter Bridge.
- All of the core developers are accessible via the Prometheus Developers Mailinglist.
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://user:pass@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:[email protected]/haproxy?stats;csv"
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
To run the haproxy exporter as a Docker container, run:
$ docker run -p 9101:9101 prom/haproxy-exporter -haproxy.scrape-uri="http://user:[email protected]/haproxy?stats;csv"