haproxy_exporter

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

Github星跟踪图

HAProxy Exporter for Prometheus

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.

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 --no-haproxy.ssl-verify --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

Docker Repository on Quay
Docker Pulls

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

Go Report Card
Code Climate

Building

make build

Testing

Build Status
CircleCI

make test

License

Apache License 2.0, see LICENSE.

Alternatives

Official Prometheus 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 infromation, see this official blog post.

主要指标

概览
名称与所有者prometheus/haproxy_exporter
主编程语言Go
编程语言Makefile (语言数: 3)
平台
许可证Apache License 2.0
所有者活动
创建于2013-01-31 15:33:01
推送于2023-03-08 16:26:18
最后一次提交
发布数20
最新版本名称v0.15.0 (发布于 2023-02-15 11:43:04)
第一版名称0.1.0 (发布于 )
用户参与
星数619
关注者数28
派生数220
提交数293
已启用问题?
问题数89
打开的问题数0
拉请求数135
打开的拉请求数0
关闭的拉请求数34
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?