/haproxy_exporter

Simple server that scrapes HAProxy stats and exports them via HTTP for Prometheus consumption

Primary LanguageGoApache License 2.0Apache-2.0

HAProxy Exporter for Prometheus

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

Getting Started

Testing

Build Status

Custom HAProxy 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://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).

Basic Auth

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"

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 prom/haproxy-exporter -haproxy.scrape-uri="http://user:pass@haproxy.example.com/haproxy?stats;csv"