HAProxy

Supported OS Linux Windows Mac OS

통합 버전5.2.2

HAProxy 즉시 사용 가능한 대시보드

개요

Datadog에서 HAProxy 활동을 캡처하여 다음을 수행합니다.

  • HAProxy 로드 밸런싱 성능을 시각화합니다.
  • 서버가 다운되는 시점을 파악합니다.
  • HAProxy의 성능을 나머지 애플리케이션과 상호 연결합니다.

설정

이 통합은 프로메테우스(Prometheus) 엔드포인트(권장) 또는 소켓 기반 통합에서 통계 엔드포인트(더 이상 사용되지 않음)를 통해 메트릭을 수집할 수 있습니다. 프로메테우스 엔드포인트를 사용하려면 HAProxy 버전 2(엔터프라이즈 버전 1.9rc1) 이상이 필요합니다.

프로메테우스 엔드포인트를 사용하는 경우 버전 4.0.0부터 개방형메트릭 기반 통합에는 최신 모드(use_openmetrics: true)와 레거시 모드(use_openmetrics: false 및 use_prometheus: true)가 포함되어 있습니다. 최신 기능을 모두 사용하려면 Datadog에서 최신 모드를 활성화할 것을 권장합니다. 자세한 내용은 [개방형메트릭 기반 통합을 위한 최신 및 레거시 버전 관리]를 참조하세요.

소켓 기반 통합을 사용하려면 use_openmetricsuse_prometheus를 모두 false로 설정하고 설정 섹션의 해당 지침을 따르세요.

use_openmetrics 옵션은 최신 모드의 개방형메트릭를 사용해야 합니다. 메트릭 수집을 위해 에이전트 v7.35 이상이 필요하거나 에이전트 v6.35 이상에서 파이썬(Python) 3를 활성화해야 합니다.. 파이썬 3을 사용할 수 없거나 에이전트 v7.34 이하를 사용하는 호스트의 경우 레거시 모드나 개방형메트릭 또는 소켓 기반 레거시 통합을 사용하세요.

[OpenMetrics V1] 또는 [OpenMetrics V2]로 표시된 메트릭은 해당 HAProxy 통합 모드에서만 사용할 수 있습니다. [OpenMetrics V1 and V2]로 표시된 메트릭은 두 모드 모두에서 수집됩니다.

설치

Datadog 에이전트 패키지에 HAProxy 점검이 포함되어 있으므로 HAProxy 서버에 아무 것도 설치할 필요가 없습니다.

설정

프로메테우스 사용

통합을 설정하는 권장 방법은 HAProxy에서 프로메테우스 엔드포인트를 활성화하는 것입니다. 이 엔드포인트는 버전 2(엔터프라이즈 버전 1.9rc1)부터 HAProxy에 내장되어 있습니다. 이전 버전을 사용하는 경우, HAProxy 프로메테우스 내보내기를 설정하거나 다음 섹션에 설명된 레거시 소켓 기반 통합을 설정하는 것을 고려하세요.

레거시 개방형메트릭 모드를 최신 모드 대신 사용하려면 use_openmetrics 옵션을 use_prometheus로 변경하고 openmetrics_endpoint 옵션을 prometheus_url로 변경하세요. 자세한 내용은 호스트 설명서의 프로메테우스 및 개방형메트릭 메트릭 수집을 참조하세요.

HAProxy 준비

  1. 공식 가이드를 사용하여 haproxy.conf를 설정하세요.
  2. 프로메테우스 엔드포인트를 활성화하려면 HAProxy를 다시 시작하세요.

에이전트 설정

호스트

메트릭 수집

호스트에서 실행 중인 에이전트에 대해 이 점검을 구성하려면

  1. 에이전트의 설정 디렉터리 루트에 있는 conf.d/ 폴더에서 haproxy.d/conf.yaml 파일을 편집하여 HAProxy 메트릭 수집을 시작합니다. 사용 가능한 모든 설정 옵션은 haproxy.d/conf.yaml 샘플을 참조하세요.

    instances:
    
      ## @param use_openmetrics - boolean - optional - default: false
      ## Enable to preview the new version of the check which supports HAProxy version 2 or later
      ## or environments using the HAProxy exporter.
      ##
      ## OpenMetrics-related options take effect only when this is set to `true`. 
      ##
      ## Uses the latest OpenMetrics V2 implementation for more features and better performance.
      ## Note: To see the configuration options for the OpenMetrics V1 implementation (Agent v7.33 or earlier),
      ## https://github.com/DataDog/integrations-core/blob/7.33.x/haproxy/datadog_checks/haproxy/data/conf.yaml.example
      #
    - use_openmetrics: true  # Enables OpenMetrics V2
    
      ## @param openmetrics_endpoint - string - optional
      ## The URL exposing metrics in the OpenMetrics format.
      #
      openmetrics_endpoint: http://localhost:<PORT>/metrics
    

    레거시 구현에 대한 설정 옵션을 보려면 에이전트 v7.34 이전 버전에 대한 haproxy.d/conf.yaml 샘플 파일을 참조하세요.

  2. 에이전트를 재시작하세요.

컨테이너화

컨테이너화된 환경의 경우 자동탐지 통합 템플릿에 아래 파라미터를 적용하는 방법이 안내되어 있습니다.

메트릭 수집
파라미터
<INTEGRATION_NAME>haproxy
<INIT_CONFIG>비어 있음 또는 {}
<INSTANCE_CONFIG>{"openmetrics_endpoint": "http://%%host%%:<PORT>/metrics", "use_openmetrics": "true"}
쿠버네티스(Kubernetes) 배포 예시

배포를 위해 .spec.template.metadata 아래에 포드 주석을 추가합니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: haproxy
spec:
  template:
    metadata:
      labels:
        name: haproxy
      annotations:
        ad.datadoghq.com/haproxy.check_names: '["haproxy"]'
        ad.datadoghq.com/haproxy.init_configs: '[{}]'
        ad.datadoghq.com/haproxy.instances: |
          [
            {
              "openmetrics_endpoint": "http://%%host%%:<PORT>/metrics", "use_openmetrics": "true"
            }
          ]          
    spec:
      containers:
        - name: haproxy

통계 엔드포인트 사용

이 설정 전략은 레거시 사용자를 위한 참조용으로 제공됩니다. 통합을 처음 설정하는 경우 이전 섹션에서 설명한 프로메테우스 기반 전략을 사용하는 것이 좋습니다.

에이전트는 통계 엔드포인트를 사용하여 메트릭을 수집합니다.

  1. haproxy.conf에서 메트릭을 설정합니다.

      listen stats # Define a listen section called "stats"
      bind :9000 # Listen on localhost:9000
      mode http
      stats enable  # Enable stats page
      stats hide-version  # Hide HAProxy version
      stats realm Haproxy\ Statistics  # Title text for popup window
      stats uri /haproxy_stats  # Stats URI
      stats auth Username:Password  # Authentication credentials
    
  2. 통계 엔드포인트를 활성화하려면 HAProxy를 다시 시작하세요.

호스트

호스트에서 실행 중인 에이전트에 대해 이 점검을 구성하려면,

메트릭에이전트의 설정 디렉토리 루트의 conf.d/ 폴더에 있는 haproxy.d/conf.yaml 파일을 편집하여 HAProxy 메트릭로그 수집을 시작합니다. 사용 가능한 모든 설정 옵션은 haproxy.d/conf.yaml 샘플을 참조하세요.

메트릭 수집
  1. haproxy.d/conf.yaml 파일에 설정 블록을 추가하여 HAProxy 메트릭 수집을 시작하세요.

    init_config:
    
    instances:
      ## @param url - string - required
      ## Haproxy URL to connect to gather metrics.
      ## Set the according <USERNAME> and <PASSWORD> or use directly a unix stats
      ## or admin socket: unix:///var/run/haproxy.sock
      #
      - url: http://localhost/admin?stats
    
  2. 에이전트를 재시작하세요.

로그 수집

기본적으로 Haproxy는 UDP를 통해 포트 514로 로그를 전송합니다. 에이전트는 이 포트에서 로그를 수신할 수 있지만 1024 미만의 포트 번호에 바인딩하려면 더 높은 권한이 필요합니다. 아래 지침에 따라 설정하세요. 또는 다른 포트를 사용하고 3단계를 건너뛸 수 있습니다.

  1. Datadog 에이전트에서 로그 수집은 기본적으로 사용하지 않도록 설정되어 있습니다. datadog.yaml 파일에서 로그 수집을 사용하도록 설정합니다.

    logs_enabled: true
    
  2. haproxy.d/conf.yaml 파일에 설정 블록을 추가하여 Haproxy 로그 수집을 시작하세요.

    logs:
      - type: udp
        port: 514
        service: <SERVICE_NAME>
        source: haproxy
    

    service 파라미터 값을 변경하고 환경에 맞춰 설정을 변경합니다. 사용 가능한 모든 설정 옵션은 haproxy.d/conf.yaml 샘플을 참조하세요.

  3. setcap 명령을 사용하여 포트 514에 대한 액세스 권한을 부여합니다.

    sudo setcap CAP_NET_BIND_SERVICE=+ep /opt/datadog-agent/bin/agent/agent
    

    getcap 명령을 실행하여 설정이 올바른지 확인합니다.

    sudo getcap /opt/datadog-agent/bin/agent/agent
    

    예상 결과:

    /opt/datadog-agent/bin/agent/agent = cap_net_bind_service+ep
    

    참고: 에이전트를 업그레이드할 때마다 이 setcap 명령을 다시 실행합니다.

  4. 에이전트를 재시작하세요.

도커(Docker)

컨테이너에서 실행 중인 에이전트에 이 점검을 구성하는 방법:

메트릭 수집

애플리케이션 컨테이너에 자동탐지 통합 템플릿을 Docker 레이블로 설정하세요.

LABEL "com.datadoghq.ad.check_names"='["haproxy"]'
LABEL "com.datadoghq.ad.init_configs"='[{}]'
LABEL "com.datadoghq.ad.instances"='[{"url": "https://%%host%%/admin?stats"}]''
로그 수집

기본적으로 로그 수집은 Datadog 에이전트에서 비활성화되어 있습니다. 활성화하려면 Docker 로그 수집을 참고하세요.

그런 다음 Docker 레이블로 로그 통합을 설정하세요.

LABEL "com.datadoghq.ad.logs"='[{"source":"haproxy","service":"<SERVICE_NAME>"}]'

쿠버네티스(Kubernetes)

쿠버네티스에서 실행 중인 에이전트에 이 점검을 구성하는 방법:

메트릭 수집

자동탐지 통합 템플릿을 애플리케이션 컨테이너의 포드 주석으로 설정합니다. 이외 템플릿은 또한 파일, configmap, key-value store로 설정할 수 있습니다.

주석 v1(Datadog 에이전트 v7.36 이전)

apiVersion: v1
kind: Pod
metadata:
  name: haproxy
  annotations:
    ad.datadoghq.com/haproxy.check_names: '["haproxy"]'
    ad.datadoghq.com/haproxy.init_configs: '[{}]'
    ad.datadoghq.com/haproxy.instances: |
      [
        {
          "url": "https://%%host%%/admin?stats"
        }
      ]      
spec:
  containers:
    - name: haproxy

주석 v2(Datadog 에이전트 v7.36 이상)

apiVersion: v1
kind: Pod
metadata:
  name: haproxy
  annotations:
    ad.datadoghq.com/haproxy.checks: |
      {
        "haproxy": {
          "init_config": {},
          "instances": [
            {
              "url": "https://%%host%%/admin?stats"
            }
          ]
        }
      }      
spec:
  containers:
    - name: haproxy
로그 수집

에이전트 버전 6.0 이상에서 사용 가능

Datadog 에이전트에서 기본적으로 로그 수집이 비활성화되어 있습니다. 활성화하려면 [쿠버네티스 로그 수집]을 확인하세요.

그런 다음 로그 통합을 포드 주석으로 설정합니다. 또한 파일, configmap, 또는 key-value store로 설정할 수 있습니다.

주석 v1/v2

apiVersion: v1
kind: Pod
metadata:
  name: haproxy
  annotations:
    ad.datadoghq.com/haproxy.logs: '[{"source":"haproxy","service":"<SERVICE_NAME>"}]'
spec:
  containers:
    - name: haproxy

ECS

ECS에서 실행 중인 에이전트에 이 점검을 구성하는 방법:

메트릭 수집

애플리케이션 컨테이너에 자동탐지 통합 템플릿을 Docker 레이블로 설정하세요.

{
  "containerDefinitions": [{
    "name": "haproxy",
    "image": "haproxy:latest",
    "dockerLabels": {
      "com.datadoghq.ad.check_names": "[\"haproxy\"]",
      "com.datadoghq.ad.init_configs": "[{}]",
      "com.datadoghq.ad.instances": "[{\"url\": \"https://%%host%%/admin?stats\"}]"
    }
  }]
}
로그 수집

에이전트 버전 6.0 이상에서 사용 가능

기본적으로 로그 수집은 Datadog 에이전트에서 비활성화되어 있습니다. 활성화하려면 ECS 로그 수집을 참조하세요.

그런 다음 Docker 레이블로 로그 통합을 설정하세요.

{
  "containerDefinitions": [{
    "name": "haproxy",
    "image": "haproxy:latest",
    "dockerLabels": {
      "com.datadoghq.ad.logs": "[{\"source\":\"haproxy\",\"service\":\"<SERVICE_NAME>\"}]"
    }
  }]
}

검증

에이전트의 상태 하위 명령을 실행하고 점검 섹션에서 haproxy를 찾습니다.

수집한 데이터

메트릭

haproxy.backend.active.servers
(gauge)
[OpenMetrics V1 and V2] Current number of active servers.
haproxy.backend.agg.check.status
(gauge)
[OpenMetrics V1 and V2] Backend's aggregated gauge of servers' state check status (since >= 2.4).
haproxy.backend.agg.server.check.status
(gauge)
[OpenMetrics V1 and V2] Backend's aggregated gauge of servers' state check status (deprecated).
haproxy.backend.agg.server.status
(gauge)
[OpenMetrics V1 and V2] Backend's aggregated gauge of servers' status (since >= 2.4).
haproxy.backend.backup.servers
(gauge)
[OpenMetrics V1 and V2] Current number of backup servers.
haproxy.backend.bytes.in.count
(count)
[OpenMetrics V2] Current total of incoming bytes. By default, submitted as count if using Prometheus.
Shown as byte
haproxy.backend.bytes.in.total
(count)
[OpenMetrics V1] Current total of incoming bytes. By default, submitted as count if using Prometheus.
Shown as byte
haproxy.backend.bytes.in_rate
(gauge)
[Legacy] Rate of bytes in on backend hosts.
Shown as byte
haproxy.backend.bytes.out.count
(count)
[OpenMetrics V2] Current total of outgoing bytes. By default, submitted as count if using Prometheus.
Shown as byte
haproxy.backend.bytes.out.total
(count)
[OpenMetrics V1] Current total of outgoing bytes. By default, submitted as count if using Prometheus.
Shown as byte
haproxy.backend.bytes.out_rate
(gauge)
[Legacy] Rate of bytes out on backend hosts.
Shown as byte
haproxy.backend.check.last.change.seconds
(gauge)
[OpenMetrics V1 and V2] Number of seconds since the last UP<->DOWN transition.
haproxy.backend.check.up.down.count
(count)
[OpenMetrics V2] Total number of UP->DOWN transitions.
haproxy.backend.check.up.down.total
(count)
[OpenMetrics V1] Total number of UP->DOWN transitions.
haproxy.backend.client.aborts.count
(count)
[OpenMetrics V2] Total number of data transfers aborted by the client.
haproxy.backend.client.aborts.total
(count)
[OpenMetrics V1] Total number of data transfers aborted by the client.
haproxy.backend.connect.time
(gauge)
[Legacy] Average connect time over the last 1024 backend requests.
Shown as millisecond
haproxy.backend.connect.time.average.seconds
(gauge)
[OpenMetrics V1 and V2] Avg. connect time for last 1024 successful connections.
haproxy.backend.connection.attempts.count
(count)
[OpenMetrics V2] Total number of connection establishment attempts.
haproxy.backend.connection.attempts.total
(count)
[OpenMetrics V1] Total number of connection establishment attempts.
haproxy.backend.connection.errors.count
(count)
[OpenMetrics V2] Total number of connection errors.
haproxy.backend.connection.errors.total
(count)
[OpenMetrics V1] Total number of connection errors.
haproxy.backend.connection.reuses.count
(count)
[OpenMetrics V2] Total number of connection reuses.
haproxy.backend.connection.reuses.total
(count)
[OpenMetrics V1] Total number of connection reuses.
haproxy.backend.count.time.average.seconds
(gauge)
[OpenMetrics V1 and V2] Avg. total time for last 1024 successful connections.
haproxy.backend.current.queue
(gauge)
[OpenMetrics V1 and V2] Current number of queued requests.
haproxy.backend.current.sessions
(gauge)
[OpenMetrics V1 and V2] Current number of active sessions.
haproxy.backend.denied.req_rate
(gauge)
[Legacy] Number of backend requests denied due to security concerns.
Shown as request
haproxy.backend.denied.resp_rate
(gauge)
[Legacy] Number of backend responses denied due to security concerns.
Shown as response
haproxy.backend.downtime.seconds.count
(count)
[OpenMetrics V2] Total downtime (in seconds) for the service.
haproxy.backend.downtime.seconds.total
(count)
[OpenMetrics V1] Total downtime (in seconds) for the service.
haproxy.backend.errors.con_rate
(gauge)
[Legacy] Rate of backend requests that encountered an error trying to connect to a backend server.
Shown as error
haproxy.backend.errors.resp_rate
(gauge)
[Legacy] Rate of backend responses aborted due to error.
Shown as error
haproxy.backend.failed.header.rewriting.count
(count)
[OpenMetrics V2] Total number of failed header rewriting warnings.
haproxy.backend.failed.header.rewriting.total
(count)
[OpenMetrics V1] Total number of failed header rewriting warnings.
haproxy.backend.http.cache.hits.count
(count)
[OpenMetrics V2] Total number of HTTP cache hits.
haproxy.backend.http.cache.hits.total
(count)
[OpenMetrics V1] Total number of HTTP cache hits.
haproxy.backend.http.cache.lookups.count
(count)
[OpenMetrics V2] Total number of HTTP cache lookups.
haproxy.backend.http.cache.lookups.total
(count)
[OpenMetrics V1] Total number of HTTP cache lookups.
haproxy.backend.http.comp.bytes.bypassed.count
(count)
[OpenMetrics V2] Total number of bytes that bypassed the HTTP compressor (CPU/BW limit).
Shown as byte
haproxy.backend.http.comp.bytes.bypassed.total
(count)
[OpenMetrics V1] Total number of bytes that bypassed the HTTP compressor (CPU/BW limit).
Shown as byte
haproxy.backend.http.comp.bytes.in.count
(count)
[OpenMetrics V2] Total number of HTTP response bytes fed to the compressor.
Shown as byte
haproxy.backend.http.comp.bytes.in.total
(count)
[OpenMetrics V1] Total number of HTTP response bytes fed to the compressor.
Shown as byte
haproxy.backend.http.comp.bytes.out.count
(count)
[OpenMetrics V2] Total number of HTTP response bytes emitted by the compressor.
Shown as byte
haproxy.backend.http.comp.bytes.out.total
(count)
[OpenMetrics V1] Total number of HTTP response bytes emitted by the compressor.
Shown as byte
haproxy.backend.http.comp.responses.count
(count)
[OpenMetrics V2] Total number of HTTP responses that were compressed.
haproxy.backend.http.comp.responses.total
(count)
[OpenMetrics V1] Total number of HTTP responses that were compressed.
haproxy.backend.http.requests.count
(count)
[OpenMetrics V2] Total number of HTTP requests received.
haproxy.backend.http.requests.total
(count)
[OpenMetrics V1] Total number of HTTP requests received.
haproxy.backend.http.responses.count
(count)
[OpenMetrics V2] Total number of HTTP responses.
haproxy.backend.http.responses.total
(count)
[OpenMetrics V1] Total number of HTTP responses.
haproxy.backend.internal.errors.count
(count)
[OpenMetrics V2] Total number of internal errors since process started (since >= 2.2).
haproxy.backend.internal.errors.total
(count)
[OpenMetrics V1] Total number of internal errors since process started (since >= 2.2).
haproxy.backend.last.session.seconds
(gauge)
[OpenMetrics V1 and V2] Number of seconds since last session assigned to server/backend.
haproxy.backend.limit.sessions
(gauge)
[OpenMetrics V1 and V2] Configured session limit.
haproxy.backend.loadbalanced.count
(count)
[OpenMetrics V2] Total number of times a service was selected, either for new sessions, or when redispatching.
haproxy.backend.loadbalanced.total
(count)
[OpenMetrics V1] Total number of times a service was selected, either for new sessions, or when redispatching.
haproxy.backend.max.connect.time.seconds
(gauge)
[OpenMetrics V1 and V2] Maximum observed time spent waiting for a connection to complete
haproxy.backend.max.count.time.seconds
(gauge)
[OpenMetrics V1 and V2] Maximum observed total request+response time (request+queue+connect+response+processing)
haproxy.backend.max.queue
(gauge)
[OpenMetrics V1 and V2] Maximum observed number of queued requests.
haproxy.backend.max.queue.time.seconds
(gauge)
[OpenMetrics V1 and V2] Maximum observed time spent in the queue
haproxy.backend.max.response.time.seconds
(gauge)
[OpenMetrics V1 and V2] Maximum observed time spent waiting for a server response
haproxy.backend.max.session.rate
(gauge)
[OpenMetrics V1 and V2] Maximum observed number of sessions per second.
haproxy.backend.max.sessions
(gauge)
[OpenMetrics V1 and V2] Maximum observed number of active sessions.
haproxy.backend.max.total.time.seconds
(gauge)
[OpenMetrics V1 and V2] Maximum observed total request+response time (request+queue+connect+response+processing)
haproxy.backend.queue.current
(gauge)
[Legacy] Number of backend requests without an assigned backend.
Shown as request
haproxy.backend.queue.time
(gauge)
[Legacy] Average queue time over the last 1024 backend requests.
Shown as millisecond
haproxy.backend.queue.time.average.seconds
(gauge)
[OpenMetrics V1 and V2] Avg. queue time for last 1024 successful connections.
haproxy.backend.redispatch.warnings.count
(count)
[OpenMetrics V2] Total number of redispatch warnings.
haproxy.backend.redispatch.warnings.total
(count)
[OpenMetrics V1] Total number of redispatch warnings.
haproxy.backend.requests.denied.count
(count)
[OpenMetrics V2] Total number of denied requests.
haproxy.backend.requests.denied.total
(count)
[OpenMetrics V1] Total number of denied requests.
haproxy.backend.requests.tot_rate
(gauge)
[Legacy] Rate of total number of backend HTTP requests.
Shown as request
haproxy.backend.response.1xx
(gauge)
[Legacy] Backend HTTP responses with 1xx code per second.
Shown as response
haproxy.backend.response.2xx
(gauge)
[Legacy] Backend HTTP responses with 2xx code per second.
Shown as response
haproxy.backend.response.3xx
(gauge)
[Legacy] Backend HTTP responses with 3xx code per second.
Shown as response
haproxy.backend.response.4xx
(gauge)
[Legacy] Backend HTTP responses with 4xx code per second.
Shown as response
haproxy.backend.response.5xx
(gauge)
[Legacy] Backend HTTP responses with 5xx code per second.
Shown as response
haproxy.backend.response.errors.count
(count)
[OpenMetrics V2] Total number of response errors.
haproxy.backend.response.errors.total
(count)
[OpenMetrics V1] Total number of response errors.
haproxy.backend.response.other
(gauge)
[Legacy] Backend HTTP responses with other code (protocol error).
Shown as response
haproxy.backend.response.time
(gauge)
[Legacy] Average response time over the last 1024 backend requests (0 for TCP).
Shown as millisecond
haproxy.backend.response.time.average.seconds
(gauge)
[OpenMetrics V1 and V2] Avg. response time for last 1024 successful connections.
haproxy.backend.responses.denied.count
(count)
[OpenMetrics V2] Total number of denied responses.
haproxy.backend.responses.denied.total
(count)
[OpenMetrics V1] Total number of denied responses.
haproxy.backend.retry.warnings.count
(count)
[OpenMetrics V2] Total number of retry warnings.
haproxy.backend.retry.warnings.total
(count)
[OpenMetrics V1] Total number of retry warnings.
haproxy.backend.server.aborts.count
(count)
[OpenMetrics V2] Total number of data transfers aborted by the server.
haproxy.backend.server.aborts.total
(count)
[OpenMetrics V1] Total number of data transfers aborted by the server.
haproxy.backend.session.current
(gauge)
[Legacy] Number of active backend sessions.
Shown as connection
haproxy.backend.session.limit
(gauge)
[Legacy] Configured backend session limit.
Shown as connection
haproxy.backend.session.pct
(gauge)
[Legacy] Percentage of sessions in use (backend.session.current/backend.session.limit * 100).
Shown as percent
haproxy.backend.session.rate
(gauge)
[Legacy] Number of backend sessions created per second.
Shown as connection
haproxy.backend.session.time
(gauge)
[Legacy] Average total session time over the last 1024 requests.
Shown as millisecond
haproxy.backend.sessions.count
(count)
[OpenMetrics V2] Total number of sessions.
haproxy.backend.sessions.total
(count)
[OpenMetrics V1] Total number of sessions.
haproxy.backend.status
(gauge)
[OpenMetrics V1 and V2] Current status of the service. <= 2.3: gauge value determines state (frontend: 0=STOP, 1=UP, 2=FULL - backend: 0=DOWN, 1=UP - server: 0=DOWN, 1=UP, 2=MAINT, 3=DRAIN, 4=NOLB). >= 2.4 per state label value.
haproxy.backend.total.time.average.seconds
(gauge)
[OpenMetrics V1 and V2] Avg. total time for last 1024 successful connections.
haproxy.backend.uptime
(gauge)
[Legacy] Number of seconds since the last UP<->DOWN transition
Shown as second
haproxy.backend.uweight
(gauge)
[OpenMetrics V1 and V2] Server's user weight or sum of active servers' user weights for a backend (>= 2.4).
haproxy.backend.warnings.redis_rate
(gauge)
[Legacy] Number of times a request was redispatched to another server.
Shown as error
haproxy.backend.warnings.retr_rate
(gauge)
[Legacy] Number of times a connection to a server was retried.
Shown as error
haproxy.backend.weight
(gauge)
[OpenMetrics V1 and V2] Service weight.
haproxy.backend_hosts
(gauge)
[Legacy] Number of backend hosts.
Shown as host
haproxy.count_per_status
(gauge)
[Legacy] Number of hosts by status (UP/DOWN/NOLB/MAINT).
Shown as host
haproxy.frontend.bytes.in.count
(count)
[OpenMetrics V2] Current total of incoming bytes. By default, submitted as count if using Prometheus.
Shown as byte
haproxy.frontend.bytes.in.total
(count)
[OpenMetrics V1] Current total of incoming bytes. By default, submitted as count if using Prometheus.
Shown as byte
haproxy.frontend.bytes.in_rate
(gauge)
[Legacy] Rate of bytes in on frontend hosts.
Shown as byte
haproxy.frontend.bytes.out.count
(count)
[OpenMetrics V2] Current total of outgoing bytes. By default, submitted as count if using Prometheus.
Shown as byte
haproxy.frontend.bytes.out.total
(count)
[OpenMetrics V1] Current total of outgoing bytes. By default, submitted as count if using Prometheus.
Shown as byte
haproxy.frontend.bytes.out_rate
(gauge)
[Legacy] Rate of bytes out on frontend hosts.
Shown as byte
haproxy.frontend.connections.count
(count)
[OpenMetrics V2] Total number of connections.
haproxy.frontend.connections.rate
(gauge)
[Legacy] Number of connections per second.
Shown as connection
haproxy.frontend.connections.rate.max
(gauge)
[OpenMetrics V1 and V2] Maximum observed number of connections per second.
haproxy.frontend.connections.tot_rate
(gauge)
[Legacy] Rate of total number of frontend connections.
Shown as connection
haproxy.frontend.connections.total
(count)
[OpenMetrics V1] Total number of connections.
haproxy.frontend.current.sessions
(gauge)
[OpenMetrics V1 and V2] Current number of active sessions.
haproxy.frontend.denied.connections.count
(count)
[OpenMetrics V2] Total number of requests denied by 'tcp-request connection' rules.
haproxy.frontend.denied.connections.total
(count)
[OpenMetrics V1] Total number of requests denied by 'tcp-request connection' rules.
haproxy.frontend.denied.req_rate
(gauge)
[Legacy] Number of frontend requests denied due to security concerns.
Shown as request
haproxy.frontend.denied.resp_rate
(gauge)
[Legacy] Number of frontend responses denied due to security concerns.
Shown as response
haproxy.frontend.denied.sessions.count
(count)
[OpenMetrics V2] Total number of requests denied by 'tcp-request session' rules.
haproxy.frontend.denied.sessions.total
(count)
[OpenMetrics V1] Total number of requests denied by 'tcp-request session' rules.
haproxy.frontend.errors.req_rate
(gauge)
[Legacy] Rate of frontend request errors.
Shown as error
haproxy.frontend.failed.header.rewriting.count
(count)
[OpenMetrics V2] Total number of failed header rewriting warnings.
haproxy.frontend.failed.header.rewriting.total
(count)
[OpenMetrics V1] Total number of failed header rewriting warnings.
haproxy.frontend.http.cache.hits.count
(count)
[OpenMetrics V2] Total number of HTTP cache hits.
haproxy.frontend.http.cache.hits.total
(count)
[OpenMetrics V1] Total number of HTTP cache hits.
haproxy.frontend.http.cache.lookups.count
(count)
[OpenMetrics V2] Total number of HTTP cache lookups.
haproxy.frontend.http.cache.lookups.total
(count)
[OpenMetrics V1] Total number of HTTP cache lookups.
haproxy.frontend.http.comp.bytes.bypassed.count
(count)
[OpenMetrics V2] Total number of bytes that bypassed the HTTP compressor (CPU/BW limit).
Shown as byte
haproxy.frontend.http.comp.bytes.bypassed.total
(count)
[OpenMetrics V1] Total number of bytes that bypassed the HTTP compressor (CPU/BW limit).
Shown as byte
haproxy.frontend.http.comp.bytes.in.count
(count)
[OpenMetrics V2] Total number of HTTP response bytes fed to the compressor.
Shown as byte
haproxy.frontend.http.comp.bytes.in.total
(count)
[OpenMetrics V1] Total number of HTTP response bytes fed to the compressor.
Shown as byte
haproxy.frontend.http.comp.bytes.out.count
(count)
[OpenMetrics V2] Total number of HTTP response bytes emitted by the compressor.
Shown as byte
haproxy.frontend.http.comp.bytes.out.total
(count)
[OpenMetrics V1] Total number of HTTP response bytes emitted by the compressor.
Shown as byte
haproxy.frontend.http.comp.responses.count
(count)
[OpenMetrics V2] Total number of HTTP responses that were compressed.
haproxy.frontend.http.comp.responses.total
(count)
[OpenMetrics V1] Total number of HTTP responses that were compressed.
haproxy.frontend.http.requests.count
(count)
[OpenMetrics V2] Total number of HTTP requests received.
haproxy.frontend.http.requests.rate.max
(gauge)
[OpenMetrics V1 and V2] Maximum observed number of HTTP requests per second.
haproxy.frontend.http.requests.total
(count)
[OpenMetrics V1] Total number of HTTP requests received.
haproxy.frontend.http.responses.count
(count)
[OpenMetrics V2] Total number of HTTP responses.
haproxy.frontend.http.responses.total
(count)
[OpenMetrics V1] Total number of HTTP responses.
haproxy.frontend.intercepted.requests.count
(count)
[OpenMetrics V2] Total number of intercepted HTTP requests.
haproxy.frontend.intercepted.requests.total
(count)
[OpenMetrics V1] Total number of intercepted HTTP requests.
haproxy.frontend.internal.errors.count
(count)
[OpenMetrics V2] Total number of internal errors since process started (since >= 2.2).
haproxy.frontend.internal.errors.total
(count)
[OpenMetrics V1] Total number of internal errors since process started (since >= 2.2).
haproxy.frontend.limit.session.rate
(gauge)
[OpenMetrics V1 and V2] Configured limit on new sessions per second.
haproxy.frontend.limit.sessions
(gauge)
[OpenMetrics V1 and V2] Configured session limit.
haproxy.frontend.max.session.rate
(gauge)
[OpenMetrics V1 and V2] Maximum observed number of sessions per second.
haproxy.frontend.max.sessions
(gauge)
[OpenMetrics V1 and V2] Maximum observed number of active sessions.
haproxy.frontend.request.errors.count
(count)
[OpenMetrics V2] Total number of request errors.
haproxy.frontend.request.errors.total
(count)
[OpenMetrics V1] Total number of request errors.
haproxy.frontend.requests.denied.count
(count)
[OpenMetrics V2] Total number of denied requests.
haproxy.frontend.requests.denied.total
(count)
[OpenMetrics V1] Total number of denied requests.
haproxy.frontend.requests.intercepted
(gauge)
[Legacy] Number of intercepted frontend requests per second.
Shown as request
haproxy.frontend.requests.rate
(gauge)
[Legacy] Number of frontend HTTP requests per second.
Shown as request
haproxy.frontend.requests.tot_rate
(gauge)
[Legacy] Rate of total number of frontend HTTP requests.
Shown as request
haproxy.frontend.response.1xx
(gauge)
[Legacy] Frontend HTTP responses with 1xx code.
Shown as response
haproxy.frontend.response.2xx
(gauge)
[Legacy] Frontend HTTP responses with 2xx code.
Shown as response
haproxy.frontend.response.3xx
(gauge)
[Legacy] Frontend HTTP responses with 3xx code.
Shown as response
haproxy.frontend.response.4xx
(gauge)
[Legacy] Frontend HTTP responses with 4xx code.
Shown as response
haproxy.frontend.response.5xx
(gauge)
[Legacy] Frontend HTTP responses with 5xx code.
Shown as response
haproxy.frontend.response.other
(gauge)
[Legacy] Frontend HTTP responses with other code (protocol error).
Shown as response
haproxy.frontend.responses.denied.count
(count)
[OpenMetrics V2] Total number of denied responses.
haproxy.frontend.responses.denied.total
(count)
[OpenMetrics V1] Total number of denied responses.
haproxy.frontend.session.current
(gauge)
[Legacy] Number of active frontend sessions.
Shown as connection
haproxy.frontend.session.limit
(gauge)
[Legacy] Configured frontend session limit.
Shown as connection
haproxy.frontend.session.pct
(gauge)
[Legacy] Percentage of sessions in use (frontend.session.current/frontend.session.limit * 100.
Shown as percent
haproxy.frontend.session.rate
(gauge)
[Legacy] Number of frontend sessions created per second.
Shown as connection
haproxy.frontend.sessions.count
(count)
[OpenMetrics V2] Total number of sessions.
haproxy.frontend.sessions.total
(count)
[OpenMetrics V1] Total number of sessions.
haproxy.frontend.status
(gauge)
[OpenMetrics V1 and V2] Current status of the service. <= 2.3: gauge value determines state (frontend: 0=STOP, 1=UP, 2=FULL - backend: 0=DOWN, 1=UP - server: 0=DOWN, 1=UP, 2=MAINT, 3=DRAIN, 4=NOLB). >= 2.4 per state label value.
haproxy.listener.bytes.in.count
(count)
[OpenMetrics V2] Total number of request bytes since process started (>= 2.4).
haproxy.listener.bytes.in.total
(count)
[OpenMetrics V1] Total number of request bytes since process started (>= 2.4).
haproxy.listener.bytes.out.count
(count)
[OpenMetrics V2] Total number of response bytes since process started (>= 2.4).
haproxy.listener.bytes.out.total
(count)
[OpenMetrics V1] Total number of response bytes since process started (>= 2.4).
haproxy.listener.current.sessions
(gauge)
[OpenMetrics V1 and V2] Number of current sessions on the frontend, backend or server (>= 2.4).
haproxy.listener.denied.connections.count
(count)
[OpenMetrics V2] Total number of incoming connections blocked on a listener/frontend by a tcp-request connection rule since the worker process started (>= 2.4).
haproxy.listener.denied.connections.total
(count)
[OpenMetrics V1] Total number of incoming connections blocked on a listener/frontend by a tcp-request connection rule since the worker process started (>= 2.4).
haproxy.listener.denied.sessions.count
(count)
[OpenMetrics V2] Total number of incoming sessions blocked on a listener/frontend by a tcp-request connection rule since the worker process started
haproxy.listener.denied.sessions.total
(count)
[OpenMetrics V1] Total number of incoming sessions blocked on a listener/frontend by a tcp-request connection rule since the worker process started
haproxy.listener.failed.header.rewriting.count
(count)
[OpenMetrics V2] Total number of failed HTTP header rewrites since the worker process started (>= 2.4).
haproxy.listener.failed.header.rewriting.total
(count)
[OpenMetrics V1] Total number of failed HTTP header rewrites since the worker process started (>= 2.4).
haproxy.listener.internal.errors.count
(count)
[OpenMetrics V2] Total number of internal errors since process started (>= 2.4).
haproxy.listener.internal.errors.total
(count)
[OpenMetrics V1] Total number of internal errors since process started (>= 2.4).
haproxy.listener.limit.sessions
(gauge)
[OpenMetrics V1 and V2] Frontend/listener/server's maxconn, backend's fullconn (>= 2.4).
haproxy.listener.max.sessions
(gauge)
[OpenMetrics V1 and V2] Highest value of current sessions encountered since process started (>= 2.4).
haproxy.listener.request.errors.count
(count)
[OpenMetrics V2] Total number of invalid requests since process started (>= 2.4).
haproxy.listener.request.errors.total
(count)
[OpenMetrics V1] Total number of invalid requests since process started (>= 2.4).
haproxy.listener.requests.denied.count
(count)
[OpenMetrics V2] Total number of denied requests since process started (>= 2.4).
haproxy.listener.requests.denied.total
(count)
[OpenMetrics V1] Total number of denied requests since process started (>= 2.4).
haproxy.listener.responses.denied.count
(count)
[OpenMetrics V2] Total number of denied responses since process started (>= 2.4).
haproxy.listener.responses.denied.total
(count)
[OpenMetrics V1] Total number of denied responses since process started (>= 2.4).
haproxy.listener.sessions.count
(count)
[OpenMetrics V2] Total number of sessions since process started (>= 2.4).
haproxy.listener.sessions.total
(count)
[OpenMetrics V1] Total number of sessions since process started (>= 2.4).
haproxy.listener.status
(gauge)
[OpenMetrics V1 and V2] Current status of the service, per state label value (>= 2.4).
haproxy.process.active.peers
(gauge)
[OpenMetrics V1 and V2] Current number of active peers.
haproxy.process.build_info
(gauge)
[OpenMetrics V1 and V2] Build info.
haproxy.process.busy.polling.enabled
(gauge)
[OpenMetrics V1 and V2] Non zero if the busy polling is enabled.
haproxy.process.bytes.out.count
(count)
[OpenMetrics V2] Total number of bytes emitted by current worker process since started (>= 2.3).
haproxy.process.bytes.out.rate
(gauge)
[OpenMetrics V1 and V2] Number of bytes emitted by current worker process over the last second (>= 2.3).
haproxy.process.bytes.out.total
(count)
[OpenMetrics V1] Total number of bytes emitted by current worker process since started (>= 2.3).
haproxy.process.connected.peers
(gauge)
[OpenMetrics V1 and V2] Current number of connected peers.
haproxy.process.connections.count
(count)
[OpenMetrics V2] Total number of created sessions.
haproxy.process.connections.total
(count)
[OpenMetrics V1] Total number of created sessions.
haproxy.process.current.backend.ssl.key.rate
(gauge)
[OpenMetrics V1 and V2] Current backend SSL Key computation per second over last elapsed second.
haproxy.process.current.connection.rate
(gauge)
[OpenMetrics V1 and V2] Current number of connections per second over last elapsed second.
haproxy.process.current.connections
(gauge)
[OpenMetrics V1 and V2] Number of active sessions.
haproxy.process.current.frontend.ssl.key.rate
(gauge)
[OpenMetrics V1 and V2] Current frontend SSL Key computation per second over last elapsed second.
haproxy.process.current.run.queue
(gauge)
[OpenMetrics V1 and V2] Current number of tasks in the run-queue.
haproxy.process.current.session.rate
(gauge)
[OpenMetrics V1 and V2] Current number of sessions per second over last elapsed second.
haproxy.process.current.ssl.connections
(gauge)
[OpenMetrics V1 and V2] Number of opened SSL connections.
haproxy.process.current.ssl.rate
(gauge)
[OpenMetrics V1 and V2] Current number of SSL sessions per second over last elapsed second.
haproxy.process.current.tasks
(gauge)
[OpenMetrics V1 and V2] Current number of tasks.
haproxy.process.current.zlib.memory
(gauge)
[OpenMetrics V1 and V2] Current memory used for zlib in bytes (zlib is no longer the default since >= 2.4).
haproxy.process.dropped.logs.count
(count)
[OpenMetrics V2] Total number of dropped logs.
haproxy.process.dropped.logs.total
(count)
[OpenMetrics V1] Total number of dropped logs.
haproxy.process.failed.resolutions
(count)
[OpenMetrics V1] Total number of failed DNS resolutions in current worker process since started (>= 2.3).
haproxy.process.failed.resolutions.count
(count)
[OpenMetrics V2] Total number of failed DNS resolutions in current worker process since started (>= 2.3).
haproxy.process.frontend.ssl.reuse
(gauge)
[OpenMetrics V1 and V2] SSL session reuse ratio (percent).
haproxy.process.hard.max.connections
(gauge)
[OpenMetrics V1 and V2] Initial Maximum number of concurrent connections.
haproxy.process.http.comp.bytes.in.count
(count)
[OpenMetrics V2] Number of bytes per second over last elapsed second, before http compression.
Shown as byte
haproxy.process.http.comp.bytes.in.total
(count)
[OpenMetrics V1] Number of bytes per second over last elapsed second, before http compression.
Shown as byte
haproxy.process.http.comp.bytes.out.count
(count)
[OpenMetrics V2] Number of bytes per second over last elapsed second, after http compression.
Shown as byte
haproxy.process.http.comp.bytes.out.total
(count)
[OpenMetrics V1] Number of bytes per second over last elapsed second, after http compression.
Shown as byte
haproxy.process.idle.time.percent
(gauge)
[OpenMetrics V1 and V2] Idle to total ratio over last sample (percent).
haproxy.process.jobs
(gauge)
[OpenMetrics V1 and V2] Current number of active jobs (listeners, sessions, open devices).
haproxy.process.limit.connection.rate
(gauge)
[OpenMetrics V1 and V2] Configured maximum number of connections per second.
haproxy.process.limit.http.comp
(gauge)
[OpenMetrics V1 and V2] Configured maximum input compression rate in bytes.
haproxy.process.limit.session.rate
(gauge)
[OpenMetrics V1 and V2] Configured maximum number of sessions per second.
haproxy.process.limit.ssl.rate
(gauge)
[OpenMetrics V1 and V2] Configured maximum number of SSL sessions per second.
haproxy.process.listeners
(gauge)
[OpenMetrics V1 and V2] Current number of active listeners.
haproxy.process.max.backend.ssl.key.rate
(gauge)
[OpenMetrics V1 and V2] Maximum observed backend SSL Key computation per second.
haproxy.process.max.connection.rate
(gauge)
[OpenMetrics V1 and V2] Maximum observed number of connections per second.
haproxy.process.max.connections
(gauge)
[OpenMetrics V1 and V2] Maximum number of concurrent connections.
haproxy.process.max.fds
(gauge)
[OpenMetrics V1 and V2] Maximum number of open file descriptors; 0=unset.
haproxy.process.max.frontend.ssl.key.rate
(gauge)
[OpenMetrics V1 and V2] Maximum observed frontend SSL Key computation per second.
haproxy.process.max.memory.bytes
(gauge)
[OpenMetrics V1 and V2] Per-process memory limit (in bytes); 0=unset.
haproxy.process.max.pipes
(gauge)
[OpenMetrics V1 and V2] Configured maximum number of pipes.
haproxy.process.max.session.rate
(gauge)
[OpenMetrics V1 and V2] Maximum observed number of sessions per second.
haproxy.process.max.sockets
(gauge)
[OpenMetrics V1 and V2] Maximum number of open sockets.
haproxy.process.max.ssl.connections
(gauge)
[OpenMetrics V1 and V2] Configured maximum number of concurrent SSL connections.
haproxy.process.max.ssl.rate
(gauge)
[OpenMetrics V1 and V2] Maximum observed number of SSL sessions per second.
haproxy.process.max.zlib.memory
(gauge)
[OpenMetrics V1 and V2] Configured maximum amount of memory for zlib in bytes (zlib is no longer the default since >= 2.4).
haproxy.process.nbproc
(gauge)
[OpenMetrics V1 and V2] Configured number of processes.
haproxy.process.nbthread
(gauge)
[OpenMetrics V1 and V2] Configured number of threads.
haproxy.process.pipes.free.count
(count)
[OpenMetrics V2] Number of pipes unused.
haproxy.process.pipes.free.total
(count)
[OpenMetrics V1] Number of pipes unused.
haproxy.process.pipes.used.count
(count)
[OpenMetrics V2] Number of pipes in used.
haproxy.process.pipes.used.total
(count)
[OpenMetrics V1] Number of pipes in used.
haproxy.process.pool.allocated.bytes
(gauge)
[OpenMetrics V1 and V2] Total amount of memory allocated in pools (in bytes).
haproxy.process.pool.failures.count
(count)
[OpenMetrics V2] Total number of failed pool allocations.
haproxy.process.pool.failures.total
(count)
[OpenMetrics V1] Total number of failed pool allocations.
haproxy.process.pool.used.bytes
(gauge)
[OpenMetrics V1 and V2] Total amount of memory used in pools (in bytes).
haproxy.process.recv.logs.count
(count)
[OpenMetrics V2] Total number of log messages received by log-forwarding listeners on this worker process since started (>= 2.4).
haproxy.process.recv.logs.total
(count)
[OpenMetrics V1] Total number of log messages received by log-forwarding listeners on this worker process since started (>= 2.4).
haproxy.process.relative.process.id
(gauge)
[OpenMetrics V1 and V2] Relative process id, starting at 1.
haproxy.process.requests.count
(count)
[OpenMetrics V2] Total number of requests (TCP or HTTP).
haproxy.process.requests.total
(count)
[OpenMetrics V1] Total number of requests (TCP or HTTP).
haproxy.process.spliced.bytes.out.count
(count)
[OpenMetrics V2] Total number of bytes emitted by current worker process through a kernel pipe since started (>= 2.3).
haproxy.process.spliced.bytes.out.total
(count)
[OpenMetrics V1] Total number of bytes emitted by current worker process through a kernel pipe since started (>= 2.3).
haproxy.process.ssl.cache.lookups.count
(count)
[OpenMetrics V2] Total number of SSL session cache lookups.
haproxy.process.ssl.cache.lookups.total
(count)
[OpenMetrics V1] Total number of SSL session cache lookups.
haproxy.process.ssl.cache.misses.count
(count)
[OpenMetrics V2] Total number of SSL session cache misses.
haproxy.process.ssl.cache.misses.total
(count)
[OpenMetrics V1] Total number of SSL session cache misses.
haproxy.process.ssl.connections.count
(count)
[OpenMetrics V2] Total number of opened SSL connections.
haproxy.process.ssl.connections.total
(count)
[OpenMetrics V1] Total number of opened SSL connections.
haproxy.process.start.time.seconds
(gauge)
[OpenMetrics V1 and V2] Start time in seconds.
haproxy.process.stopping
(gauge)
[OpenMetrics V1 and V2] Non zero means stopping in progress.
haproxy.process.unstoppable.jobs
(gauge)
[OpenMetrics V1 and V2] Current number of active jobs that can't be stopped during a soft stop.
haproxy.process.uptime.seconds
(gauge)
[OpenMetrics V1 and V2] How long ago this worker process was started (>= 2.4).
haproxy.server.bytes.in.count
(count)
[OpenMetrics V2] Current total of incoming bytes.
Shown as byte
haproxy.server.bytes.in.total
(count)
[OpenMetrics V1] Current total of incoming bytes.
Shown as byte
haproxy.server.bytes.out.count
(count)
[OpenMetrics V2] Current total of outgoing bytes.
Shown as byte
haproxy.server.bytes.out.total
(count)
[OpenMetrics V1] Current total of outgoing bytes.
Shown as byte
haproxy.server.check.code
(gauge)
[OpenMetrics V1 and V2] layer5-7 code, if available of the last health check. (>= 2.0)
haproxy.server.check.duration.seconds
(gauge)
[OpenMetrics V1 and V2] Previously run health check duration (>= 2.0)
Shown as second
haproxy.server.check.failures.count
(count)
[OpenMetrics V2] Total number of failed check (Only counts checks failed when the server is up).
haproxy.server.check.failures.total
(count)
[OpenMetrics V1] Total number of failed check (Only counts checks failed when the server is up).
haproxy.server.check.last.change.seconds
(gauge)
[OpenMetrics V1 and V2] Number of seconds since the last UP<->DOWN transition. (>= 2.0)
Shown as second
haproxy.server.check.status
(gauge)
[OpenMetrics V1 and V2] Status of last health check, if enabled.. <= 2.3 HCHKSTATUS* values in haproxy doc. >= 2.4 per state label value.
haproxy.server.check.up.down.count
(count)
[OpenMetrics V2] Total number of UP->DOWN transitions.
haproxy.server.check.up.down.total
(count)
[OpenMetrics V1] Total number of UP->DOWN transitions.
haproxy.server.client.aborts.count
(count)
[OpenMetrics V2] Total number of data transfers aborted by the client.
haproxy.server.client.aborts.total
(count)
[OpenMetrics V1] Total number of data transfers aborted by the client.
haproxy.server.connect.time.average.seconds
(gauge)
[OpenMetrics V1 and V2] Avg. connect time for last 1024 successful connections.
haproxy.server.connection.attempts.count
(count)
[OpenMetrics V2] Total number of connection establishment attempts.
haproxy.server.connection.attempts.total
(count)
[OpenMetrics V1] Total number of connection establishment attempts.
haproxy.server.connection.errors.count
(count)
[OpenMetrics V2] Total number of connection errors.
haproxy.server.connection.errors.total
(count)
[OpenMetrics V1] Total number of connection errors.
haproxy.server.connection.reuses.count
(count)
[OpenMetrics V2] Total number of connection reuses.
haproxy.server.connection.reuses.total
(count)
[OpenMetrics V1] Total number of connection reuses.
haproxy.server.current.queue
(gauge)
[OpenMetrics V1 and V2] Current number of queued requests.
haproxy.server.current.sessions
(gauge)
[OpenMetrics V1 and V2] Current number of active sessions.
haproxy.server.current.throttle
(gauge)
[OpenMetrics V1 and V2] Current throttle percentage for the server, when slowstart is active, or no value if not in slowstart.
haproxy.server.downtime.seconds.count
(count)
[OpenMetrics V2] Total downtime (in seconds) for the service.
haproxy.server.downtime.seconds.total
(count)
[OpenMetrics V1] Total downtime (in seconds) for the service.
haproxy.server.failed.header.rewriting.count
(count)
[OpenMetrics V2] Total number of failed header rewriting warnings.
haproxy.server.failed.header.rewriting.total
(count)
[OpenMetrics V1] Total number of failed header rewriting warnings.
haproxy.server.http.responses.count
(count)
[OpenMetrics V2] Total number of HTTP responses.
haproxy.server.http.responses.total
(count)
[OpenMetrics V1] Total number of HTTP responses.
haproxy.server.idle.connections.current
(gauge)
[OpenMetrics V1 and V2] Current number of idle connections available for reuse.
haproxy.server.idle.connections.limit
(gauge)
[OpenMetrics V1 and V2] Limit on the number of available idle connections.
haproxy.server.internal.errors.count
(count)
[OpenMetrics V2] Total number of internal errors since process started (since >= 2.2).
haproxy.server.internal.errors.total
(count)
[OpenMetrics V1] Total number of internal errors since process started (since >= 2.2).
haproxy.server.last.session.seconds
(gauge)
[OpenMetrics V1 and V2] Number of seconds since last session assigned to server/backend.
haproxy.server.limit.sessions
(gauge)
[OpenMetrics V1 and V2] Configured session limit.
haproxy.server.loadbalanced.count
(count)
[OpenMetrics V2] Total number of times a service was selected, either for new sessions, or when redispatching.
haproxy.server.loadbalanced.total
(count)
[OpenMetrics V1] Total number of times a service was selected, either for new sessions, or when redispatching.
haproxy.server.max.connect.time.seconds
(gauge)
[OpenMetrics V1 and V2] Maximum observed time spent waiting for a connection to complete
haproxy.server.max.count.time.seconds
(gauge)
[OpenMetrics V1 and V2] Maximum observed total request+response time (request+queue+connect+response+processing)
haproxy.server.max.queue
(gauge)
[OpenMetrics V1 and V2] Maximum observed number of queued requests.
haproxy.server.max.queue.time.seconds
(gauge)
[OpenMetrics V1 and V2] Maximum observed time spent in the queue
haproxy.server.max.response.time.seconds
(gauge)
[OpenMetrics V1 and V2] Maximum observed time spent waiting for a server response
haproxy.server.max.session.rate
(gauge)
[OpenMetrics V1 and V2] Maximum observed number of sessions per second.
haproxy.server.max.sessions
(gauge)
[OpenMetrics V1 and V2] Maximum observed number of active sessions.
haproxy.server.max.total.time.seconds
(gauge)
[OpenMetrics V1 and V2] Maximum observed total request+response time (request+queue+connect+response+processing)
haproxy.server.need.connections.current
(gauge)
[OpenMetrics V1 and V2] Estimated needed number of connections (>= 2.3).
haproxy.server.queue.limit
(gauge)
[OpenMetrics V1 and V2] Configured maxqueue for the server (0 meaning no limit).
haproxy.server.queue.time.average.seconds
(gauge)
[OpenMetrics V1 and V2] Avg. queue time for last 1024 successful connections.
haproxy.server.redispatch.warnings.count
(count)
[OpenMetrics V2] Total number of redispatch warnings.
haproxy.server.redispatch.warnings.total
(count)
[OpenMetrics V1] Total number of redispatch warnings.
haproxy.server.response.errors.count
(count)
[OpenMetrics V2] Total number of response errors.
haproxy.server.response.errors.total
(count)
[OpenMetrics V1] Total number of response errors.
haproxy.server.response.time.average.seconds
(gauge)
[OpenMetrics V1 and V2] Avg. response time for last 1024 successful connections.
haproxy.server.responses.denied.count
(count)
[OpenMetrics V2] Total number of denied responses.
haproxy.server.responses.denied.total
(count)
[OpenMetrics V1] Total number of denied responses.
haproxy.server.retry.warnings.count
(count)
[OpenMetrics V2] Total number of retry warnings.
haproxy.server.retry.warnings.total
(count)
[OpenMetrics V1] Total number of retry warnings.
haproxy.server.safe.idle.connections.current
(gauge)
[OpenMetrics V1 and V2] Current number of safe idle connections (>= 2.3).
haproxy.server.server.aborts.count
(count)
[OpenMetrics V2] Total number of data transfers aborted by the server.
haproxy.server.server.aborts.total
(count)
[OpenMetrics V1] Total number of data transfers aborted by the server.
haproxy.server.server.idle.connections.current
(gauge)
[OpenMetrics V1 and V2] Current number of idle connections available for reuse
haproxy.server.server.idle.connections.limit
(gauge)
[OpenMetrics V1 and V2] Limit on the number of available idle connections
haproxy.server.sessions.count
(count)
[OpenMetrics V2] Total number of sessions.
haproxy.server.sessions.total
(count)
[OpenMetrics V1] Total number of sessions.
haproxy.server.status
(gauge)
[OpenMetrics V1 and V2] Current status of the service. <= 2.3: gauge value determines state (frontend: 0=STOP, 1=UP, 2=FULL - backend: 0=DOWN, 1=UP - server: 0=DOWN, 1=UP, 2=MAINT, 3=DRAIN, 4=NOLB). >= 2.4 per state label value.
haproxy.server.total.time.average.seconds
(gauge)
[OpenMetrics V1 and V2] Avg. total time for last 1024 successful connections.
haproxy.server.unsafe.idle.connections.current
(gauge)
[OpenMetrics V1 and V2] Current number of unsafe idle connections (>= 2.3).
haproxy.server.used.connections.current
(gauge)
[OpenMetrics V1 and V2] Current number of connections in use (>= 2.3).
haproxy.server.uweight
(gauge)
[OpenMetrics V1 and V2] Server's user weight or sum of active servers' user weights for a backend (>= 2.4).
haproxy.server.weight
(gauge)
[OpenMetrics V1 and V2] Service weight.
haproxy.sticktable.size
(gauge)
[OpenMetrics V1 and V2] Maximum number of elements the table can hold (<= 2.3 through a Unix socket, >= 2.4 through Prometheus).
haproxy.sticktable.used
(gauge)
[OpenMetrics V1 and V2] Number of elements in the table (<= 2.3 through a Unix socket, >= 2.4 through Prometheus).

이벤트

HAProxy 점검은 이벤트를 포함하지 않습니다.

서비스 점검

haproxy.backend_up
Converts the HAProxy status page into service checks. Returns CRITICAL for a given service if HAProxy is reporting it down. maint, ok and any other state will result in OK.
Statuses: ok, critical, unknown

haproxy.openmetrics.health
Returns CRITICAL if the Agent is unable to connect to the OpenMetrics endpoint, otherwise returns OK.
Statuses: ok, critical

트러블슈팅

포트 514 이미 사용 중 오류

syslog를 사용하는 시스템의 에이전트가 포트 514에서 HAProxy 로그를 수신 대기 중인 경우 에이전트 로그에 다음 오류가 나타날 수 있습니다. Can't start UDP forwarder on port 514: listen udp :514: bind: address already in use.

기본적으로 syslog가 포트 514에서 수신 대기 중이기 때문에 이 오류가 발생합니다. 이 오류를 해결하려면 syslog를 사용하지 않도록 설정하거나 로그를 포트 514로 전달하고 에이전트 이 로그를 수신 대기 중인 다른 포트로 전달하도록 HAProxy를 설정할 수 있습니다. 에이전트가 수신 대기하는 포트는 haproxy.d/conf.yaml 파일 여기에서 정의할 수 있습니다.

도움이 필요하신가요? Datadog 고객 지원팀에 문의해주세요.

참고 자료