Caution
HAProxy is deprecated at Funding Circle and there is no longer a build pipeline in this repo. If updates are required in the future, a new build pipeline should be added.
Fork of https://github.com/prometheus/haproxy_exporter
This is a simple server that scrapes HAProxy stats and exports them via HTTP for Prometheus consumption.
*Note: since HAProxy 2.0.0, the official source includes a Prometheus exporter module that can be built into your binary with a single flag during build time and offers an exporter-free Prometheus endpoint. More information down below.*
To run it:
./haproxy_exporter [flags]
Help on flags:
./haproxy_exporter --help
For more information check the source code documentation.
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 --no-haproxy.ssl-verify
flag:
haproxy_exporter --no-haproxy.ssl-verify --haproxy.scrape-uri="https://haproxy.example.com/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
make build
make test
https://github.com/FundingCircle/haproxy_exporter/releases
- Bump the VERSION file and merge to master
- Create a tag and then create a release
- Publish binaries:
git checkout <your-tag>
promu crossbuild
promu crossbuild tarballs
" You'll need
" brew install github-release
" export GITHUB_TOKEN=<your token from https://github.com/settings/tokens>
promu release -v .tarballs/
Apache License 2.0, see prometheus/haproxy_exporter/LICENSE, FundingCircle/haproxy_exporter/LICENSE.
https://github.com/prometheus/haproxy_exporter
As of 2.0.0, HAProxy includes a Prometheus exporter module that can be built into your binary during build time.
To build with the official Prometheus exporter module, make
with the following EXTRA_OBJS
flag:
make TARGET=linux-glibc EXTRA_OBJS="contrib/prometheus-exporter/service-prometheus.o"
Once built, you can enable and configure the Prometheus endpoint from your haproxy.cfg
file as a typical frontend:
frontend stats
bind *:8404
http-request use-service prometheus-exporter if { path /metrics }
stats enable
stats uri /stats
stats refresh 10s
For more information, see this official blog post.