> ## Documentation Index
> Fetch the complete documentation index at: https://otel.fyi/llms.txt
> Use this file to discover all available pages before exploring further.

# Haproxy

> OpenTelemetry receiver for Haproxy

# Haproxy Receiver

![Status](https://img.shields.io/badge/status-beta-yellow)

**Available in:** `contrib`

**Maintainers:** [@atoulme](https://github.com/atoulme), [@MovieStoreGuy](https://github.com/MovieStoreGuy)

**Source:** [opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/haproxyreceiver)

## Supported Telemetry

![Metrics](https://img.shields.io/badge/metrics-beta-green)

## Overview

## Getting Started

## Configuration

### endpoint (required)

Path to the endpoint exposed by HAProxy for communications. It can be a local file socket or a HTTP URL.

### Collection interval settings (optional)

The scraping collection interval can be configured.

Default: 1 minute

### Initial delay settings (optional)

defines how long this receiver waits before starting.

Default: `1s`

### Example configuration

```yaml theme={null}
haproxy:
  endpoint: file:///var/run/haproxy.ipc
  collection_interval: 1m
  metrics:
    
```

## Enabling metrics.

See [documentation.md](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/haproxyreceiver/documentation.md).

You can enable or disable selective metrics.

Example:

```yaml theme={null}
receivers:
  haproxy:
    endpoint: http://127.0.0.1:8080/stats
    metrics:
      haproxy.connection_rate:
        enabled: false
      haproxy.requests:
        enabled: true
```

## Metrics

| Metric Name | Description | Unit | Type | Attributes |
| - | - | - | - | - |
| ❌ `haproxy.active` | Number of active servers (backend) or server is active (server). Corresponds to HAProxy's `act` metric. | \{server} | Gauge | |
| ❌ `haproxy.backup` | Number of backup servers (backend) or server is backup (server). Corresponds to HAProxy's `bck` metric. | \{server} | Gauge | |
| ✅ `haproxy.bytes.input` | Bytes in. Corresponds to HAProxy's `bin` metric. | By | Counter | |
| ✅ `haproxy.bytes.output` | Bytes out. Corresponds to HAProxy's `bout` metric. | By | Counter | |
| ❌ `haproxy.clients.canceled` | Number of data transfers aborted by the client. Corresponds to HAProxy's `cli_abrt` metric | \{cancellation} | Counter | |
| ❌ `haproxy.compression.bypass` | Number of bytes that bypassed the HTTP compressor (CPU/BW limit). Corresponds to HAProxy's `comp_byp` metric. | By | Counter | |
| ❌ `haproxy.compression.count` | Number of HTTP responses that were compressed. Corresponds to HAProxy's `comp_rsp` metric. | \{response} | Counter | |
| ❌ `haproxy.compression.input` | Number of HTTP response bytes fed to the compressor. Corresponds to HAProxy's `comp_in` metric. | By | Counter | |
| ❌ `haproxy.compression.output` | Number of HTTP response bytes emitted by the compressor. Corresponds to HAProxy's `comp_out` metric. | By | Counter | |
| ❌ `haproxy.connections.average_time` | Average connect time in ms over the 1024 last requests. Corresponds to HAProxy's `ctime` metric. | ms | Gauge | |
| ✅ `haproxy.connections.errors` | Number of requests that encountered an error trying to connect to a backend server. The backend stat is the sum of the stat. Corresponds to HAProxy's `econ` metric | \{error} | Counter | |
| ✅ `haproxy.connections.rate` | Number of connections over the last elapsed second (frontend). Corresponds to HAProxy's `conn_rate` metric. | \{connection} | Gauge | |
| ✅ `haproxy.connections.retries` | Number of times a connection to a server was retried. Corresponds to HAProxy's `wretr` metric. | \{retry} | Counter | |
| ❌ `haproxy.connections.total` | Cumulative number of connections (frontend). Corresponds to HAProxy's `conn_tot` metric. | \{connection} | Counter | |
| ❌ `haproxy.downtime` | Total downtime (in seconds). The value for the backend is the downtime for the whole backend, not the sum of the server downtime. Corresponds to HAProxy's `downtime` metric | s | Counter | |
| ❌ `haproxy.failed_checks` | Number of failed checks. (Only counts checks failed when the server is up). Corresponds to HAProxy's `chkfail` metric. | \{check} | Counter | |
| ❌ `haproxy.requests.average_time` | Average queue time in ms over the 1024 last requests. Corresponds to HAProxy's `qtime` metric. | ms | Gauge | |
| ✅ `haproxy.requests.denied` | Requests denied because of security concerns. Corresponds to HAProxy's `dreq` metric | \{request} | Counter | |
| ✅ `haproxy.requests.errors` | Cumulative number of request errors. Corresponds to HAProxy's `ereq` metric. | \{error} | Counter | |
| ✅ `haproxy.requests.queued` | Current queued requests. For the backend this reports the number queued without a server assigned. Corresponds to HAProxy's `qcur` metric. | \{request} | Counter | |
| ✅ `haproxy.requests.rate` | HTTP requests per second over last elapsed second. Corresponds to HAProxy's `req_rate` metric. | \{request} | Gauge | |
| ✅ `haproxy.requests.redispatched` | Number of times a request was redispatched to another server. Corresponds to HAProxy's `wredis` metric. | \{request} | Counter | |
| ✅ `haproxy.requests.total` | Total number of HTTP requests received. Corresponds to HAProxy's `req_tot`, `hrsp_1xx`, `hrsp_2xx`, `hrsp_3xx`, `hrsp_4xx`, `hrsp_5xx` and `hrsp_other` metrics. | \{request} | Counter | status\_code |
| ❌ `haproxy.responses.average_time` | Average response time in ms over the 1024 last requests. Corresponds to HAProxy's `rtime` metric. | ms | Gauge | |
| ✅ `haproxy.responses.denied` | Responses denied because of security concerns. Corresponds to HAProxy's `dresp` metric | \{response} | Counter | |
| ✅ `haproxy.responses.errors` | Cumulative number of response errors. Corresponds to HAProxy's `eresp` metric, `srv_abrt` will be counted here also. | \{error} | Counter | |
| ✅ `haproxy.server_selected.total` | Number of times a server was selected, either for new sessions or when re-dispatching. Corresponds to HAProxy's `lbtot` metric. | \{selection} | Counter | |
| ✅ `haproxy.sessions.average` | Average total session time in ms over the last 1024 requests. Corresponds to HAProxy's `ttime` metric. | ms | Gauge | |
| ✅ `haproxy.sessions.count` | Current sessions. Corresponds to HAProxy's `scur` metric. | \{session} | Gauge | |
| ❌ `haproxy.sessions.limit` | Configured session limit. Corresponds to HAProxy's `slim` metric. | \{session} | Gauge | |
| ✅ `haproxy.sessions.rate` | Number of sessions per second over last elapsed second. Corresponds to HAProxy's `rate` metric. | \{session} | Gauge | |
| ❌ `haproxy.sessions.total` | Cumulative number of sessions. Corresponds to HAProxy's `stot` metric. | \{session} | Counter | |
| ❌ `haproxy.weight` | Total effective weight (backend) or effective weight (server). Corresponds to HAProxy's `weight` metric. | 1 | Gauge | |

## Attributes

| Attribute Name | Description | Type | Values |
| - | - | - | - |
| `status_code` | Status code category, 1xx, 2xx, 3xx, 4xx, 5xx or other | string | `1xx`, `2xx`, `3xx`, `4xx`, `5xx`, `other` |

## Resource Attributes

| Attribute Name | Description | Type | Enabled |
| - | - | - | - |
| `haproxy.addr` | address:port or "unix". IPv6 has brackets around the address. | string | ✅ |
| `haproxy.proxy_name` | Proxy name | string | ✅ |
| `haproxy.server.state` | Server status (UP, DOWN, NOLB, MAINT, no check, etc.). Corresponds to HAProxy's `status` field. | string | ❌ |
| `haproxy.service_name` | Service name (FRONTEND for frontend, BACKEND for backend, any name for server/listener) | string | ✅ |

***

*Last generated: 2026-10-05*
