Type to search.

HAProxy OpenTelemetry Assets

Serverless Observability Preview

Elastic Cloud Serverless projects are autoscaled environments, fully managed by Elastic and available on Elastic Cloud.

Availability

  • Preview

    This functionality is in technical preview and is ready for evaluation. Use with caution in production; it is not recommended for mission-critical workloads. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features. Specific Support terms apply.

Serverless Security Preview

Elastic Cloud Serverless projects are autoscaled environments, fully managed by Elastic and available on Elastic Cloud.

Availability

  • Preview

    This functionality is in technical preview and is ready for evaluation. Use with caution in production; it is not recommended for mission-critical workloads. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features. Specific Support terms apply.

Stack Preview 9.4+

The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats.

Availability

  • Preview since 9.4

    This functionality is in technical preview and is ready for evaluation. Use with caution in production; it is not recommended for mission-critical workloads. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features. Specific Support terms apply.

Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments.

This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.

Version 0.3.1 Availability Preview This functionality is in technical preview and is ready for evaluation. Use with caution in production; it is not recommended for mission-critical workloads. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features. Specific Support terms apply. (View all)
Subscription level
What's this?
Basic
Developed by
What's this?
Elastic
Minimum Kibana version(s) 9.4.0
The Haproxy OpenTelemetry Assets integration v0.3.1 is in technical preview

To use pre-release integrations, go to the Integrations page in Kibana, scroll down, and toggle on the Display beta integrations option.

HAProxy is a high-performance TCP/HTTP load balancer and reverse proxy that distributes traffic across backend servers. This content pack provides dashboards, alert rules, and SLO templates for monitoring HAProxy via the OpenTelemetry HAProxy receiver, covering traffic, latency, errors, saturation, and backend availability.

The HAProxy OpenTelemetry assets have been tested with:

  • OpenTelemetry haproxyreceiver v0.144.0 from OpenTelemetry Collector Contrib.
  • HAProxy 3.x

You need Elasticsearch for storing and searching your data and Kibana for visualizing and managing it. You can use our hosted Elasticsearch Service on Elastic Cloud, which is recommended, or self-manage the Elastic Stack on your own hardware.

Enable the HAProxy stats interface so the collector can poll metrics. Add a listen or frontend block to your HAProxy configuration:

Text
listen stats
    bind *:8404
    stats enable
    stats uri /stats
    stats refresh 10s
    # Optional: stats auth <user>:<password>

For Unix socket access instead of HTTP:

Text
listen stats
    bind *:8404
    stats enable
    stats socket /var/run/haproxy.sock mode 660 level admin

Verify the stats endpoint. For HTTP: curl -s "http://localhost:8404/stats;csv". For socket: echo "show stat" | socat stdio /var/run/haproxy.sock.

Configure the OpenTelemetry Collector or Elastic Observability Distribution (EDOT) Collector to receive HAProxy metrics and export them to Elasticsearch. The following example wires the haproxy receiver to the elasticsearch/otel exporter.

Placeholder Description Example
<HAPROXY_ENDPOINT> HAProxy stats endpoint: HTTP URL or Unix socket path http://localhost:8404/stats or file:///var/run/haproxy.sock
<ES_ENDPOINT> Elasticsearch endpoint https://my-deployment.es.us-central1.gcp.cloud.es.io:443
<ES_API_KEY> Elasticsearch API key (or use es_username / es_password) ${env:ES_API_KEY}
YAML
receivers:
  haproxy:
    endpoint: <HAPROXY_ENDPOINT>
    collection_interval: 1m
    metrics:
      haproxy.active:
        enabled: true
      haproxy.sessions.limit:
        enabled: true
      haproxy.connections.average_time:
        enabled: true
      haproxy.requests.average_time:
        enabled: true
      haproxy.responses.average_time:
        enabled: true
      haproxy.failed_checks:
        enabled: true

exporters:
  elasticsearch/otel:
    endpoints: [<ES_ENDPOINT>]
    api_key: <ES_API_KEY>
    mapping:
      mode: otel

service:
  pipelines:
    metrics:
      receivers: [haproxy]
      exporters: [elasticsearch/otel]
  1. disabled by default — required for Backend availability SLO and alerts
  2. disabled by default — required for Session saturation alert
  3. disabled by default — required for High connection time alert
  4. disabled by default — required for High queue time alert
  5. disabled by default — required for Response time SLO and High response time alert
  6. disabled by default — required for Health check failures alert
Note

If your stats endpoint uses HTTP basic auth, set username and password (or password_file) under the haproxy receiver config.

Note

Enable Optional Haproxy metrics in the config file. HAProxy exposes default metrics automatically, but optional metrics in the OpenTelemetry HAProxy receiver are disabled by default. To send them to Elasticsearch, explicitly enable them in the OTel Collector HAProxy receiver configuration (as shown above).

Refer to the metadata.yaml of the OpenTelemetry HAProxy receiver for details on available metrics.

Dashboard Description
[HAProxy OTel] Overview Top-level health across all proxies: error rates, traffic volume, latency summary, session saturation, server availability.
[HAProxy OTel] Frontend Per-frontend request rates, connection rates, session utilization, bytes throughput, request errors, denied requests, and status code distribution.
[HAProxy OTel] Backend Per-backend aggregate latency, error breakdown, session saturation, server selection distribution, retries, and redispatches.
[HAProxy OTel] Server Per-server health, latency, error rates, failed health checks, downtime, sessions, and throughput. Compare across servers within a backend.
Alert Trigger Severity
[HAProxy OTel] Backend has no active servers Backend has zero active servers in the evaluation window Critical
[HAProxy OTel] Connection errors spike Connection errors to backend servers exceed threshold in 5-minute window High
[HAProxy OTel] Request errors spike Frontend request errors (malformed, timed out) exceed threshold in 5-minute window High
[HAProxy OTel] Response errors spike Response errors (server aborts, delivery failures) exceed threshold in 5-minute window High
[HAProxy OTel] Session saturation approaching limit Session utilization exceeds 80% of configured limit High
[HAProxy OTel] High backend connection time Backend connection time exceeds 100 ms Medium
[HAProxy OTel] High backend response time Backend response time exceeds 500 ms Medium
[HAProxy OTel] High backend queue time Backend queue time exceeds 10 ms (indicates capacity pressure) Medium
[HAProxy OTel] Server health check failures One or more servers report failed health checks Medium
[HAProxy OTel] Requests queued at backend Requests are queued waiting for an available server Medium
[HAProxy OTel] Connection retries or redispatches spike Retries or redispatches exceed threshold (backend instability signal) Medium
Note

SLO templates require Elastic Stack version 9.4.0 or later.

SLO Target Window Description
[HAProxy OTel] Backend availability 99.5% rolling 30 days 99.5% 30-day rolling Proportion of 1-minute timeslices where each backend has at least one active server.
[HAProxy OTel] Response time latency 99.5% rolling 30 days 99.5% 30-day rolling Proportion of 1-minute timeslices where average backend response time is below 500 ms.
[HAProxy OTel] Request success rate 99.5% rolling 30 days 99.5% 30-day rolling Proportion of 1-minute timeslices where non-5xx requests meet the target ratio.

This integration includes one or more Kibana dashboards that visualizes the data collected by the integration. The screenshots below illustrate how the ingested data is displayed.

HAProxy Metrics OTel Overview
HAProxy Metrics OTel Frontend
HAProxy Metrics OTel Backend
HAProxy Metrics OTel  Server
Changelog
Version Details Minimum Kibana version
0.3.1 Bug fix (View pull request)
Regenerate Kibana dashboards so ES|QL Lens panels include populated adHocDataViews, internalReferences, and per-layer index, fixing the broken "Explore in Discover" action on Kibana 9.3+.
9.4.0
0.3.0 Enhancement (View pull request)
Add tags to Kibana assets
9.4.0
0.2.0 Enhancement (View pull request)
Add description and artifact fields to alerting rule template.
9.4.0
0.1.0 Enhancement (View pull request)
Initial draft of the Haproxy OTel content package
9.2.1