이 페이지는 haproxyreceiver 및 Prometheus 수신 경로를 포함하여 OpenTelemetry를 통해 수집된 모든 HAProxy 메트릭에 대한 전체 참조를 제공합니다.
개요
HAProxy OpenTelemetry 통합은 haproxyreceiver를 통해 HAProxy CSV 통계 엔드포인트에서 메트릭을 수집합니다. 메트릭은 두 개의 티어로 구성됩니다:
- 기본 메트릭(17): 기본 설정으로 자동 수집됨 ― 대부분의 모니터링 사용 사례에 충분함
- 선택적 메트릭(16): 기본적으로 비활성화되어 있으며 수신기의
metrics섹션에서 개별적으로 활성화됨 ― 상세한 디버깅 및 용량 계획에 유용함
NRDOT 안내 설치를 사용할 때 두 가지 설정 중 하나를 선택할 수 있습니다:
- 최적화됨 (낮은 수집량): 17개의 기본 메트릭, 60초 수집 간격, 최적화 프로세서 적용됨
- 포괄적 (전체 세부 정보): 27개 메트릭(17개 기본+10개 선택), 15초 수집 간격
팁
선택적 메트릭을 활성화하려면 enabled: true을(를) 사용하여 haproxy 수신기 설정의 metrics 섹션에 추가합니다. 설정 세부 정보는 OpenTelemetry로 자체 호스팅 HAProxy 모니터 를 참조하십시오.
기본 측정항목
이 17개의 메트릭은 기본 설정으로 수집됩니다(metrics 섹션이 필요하지 않음).
측정항목 이름 | 설명 | 유형 | 유닛 |
|---|---|---|---|
| 프록시가 수신한 총 바이트 수(프론트엔드, 백앤드 및 서버별로 수집됨) | 합계(누적) | 기준 |
| 프록시가 전송한 총 바이트 수(프론트엔드, 백앤드 및 서버별로 수집됨) | 합계(누적) | 기준 |
| 총 연결 오류 수(백앤드 및 서버만 해당) | 합계(누적) | {errors} |
| 지난 1초 동안의 초당 연결 수(프런트엔드 전용) | 계량기 | {connections}/s |
| 총 연결 재시도 횟수(백앤드 및 서버 전용) | 합계(누적) | {retries} |
| 거부된 총 requests 수(프론트엔드 및 백앤드) | 합계(누적) | {requests} |
| 총 요청 오류 수(프런트엔드 전용) | 합계(누적) | {errors} |
| 대기 중인 현재 requests 수(백앤드 및 서버 전용) | 계량기 | {requests} |
| 마지막으로 경과된 1초 동안의 초당 HTTP requests 수(프런트엔드 전용) | 계량기 | {requests}/s |
| 총 요청 재분배 수(백앤드 및 서버 전용) | 합계(누적) | {requests} |
| 수신된 총 HTTP requests 수(프론트엔드 및 백앤드) | 합계(누적) | {requests} |
| 거부된 총 응답 수(프런트엔드, 백앤드 및 서버) | 합계(누적) | {responses} |
| 총 응답 오류 수(백앤드 및 서버 전용) | 합계(누적) | {errors} |
| 로드 밸런싱을 위해 서버가 선택된 총 횟수(백앤드 및 서버) | 합계(누적) | {selections} |
| 지난 1,024개의 requests에 대한 평균 총 세션 시간(초)(백앤드 및 서버) | 계량기 | 에스 |
| 현재 활성 세션 수(프론트엔드, 백앤드 및 서버) | 계량기 | {sessions} |
| 마지막으로 경과된 1초 동안의 초당 세션 수(프런트엔드, 백앤드 및 서버) | 계량기 | {sessions}/s |
선택적 메트릭
이 16개의 메트릭은 기본적으로 비활성화되어 있습니다. 수신기의 metrics 섹션에서 enabled: true 을(를) 설정하여 수집기 설정에서 개별적으로 활성화합니다.
NRDOT 포괄적 설정은 이 중 처음 10개([C]로 표시됨)를 활성화합니다.
측정항목 이름 | 설명 | 유형 | 유닛 |
|---|---|---|---|
[C] | 평균 연결 시간(초)(지연시간 모니터링) | 계량기 | 에스 |
[C] | 초 단위의 requests 평균 대기 시간 | 계량기 | 에스 |
[C] | 평균 응답시간(초) | 계량기 | 에스 |
[C] | 백앤드의 활성 서버 수 | 계량기 | {servers} |
[C] | 백앤드의 백업 서버 수 | 계량기 | {servers} |
[C] | 초 단위의 총 다운타임 | 합계(누적) | 에스 |
[C] | 실패한 상태 확인의 총 횟수 | 합계(누적) | {checks} |
[C] | 서버 가중치(로드 밸런싱 결정에 사용됨) | 계량기 | {weight} |
[C] | 총 누적 세션 수 | 합계(누적) | {sessions} |
[C] | 총 누적 연결 수 | 합계(누적) | {connections} |
| 압축기에 제출된 총 바이트 수 | 합계(누적) | 기준 |
| 압축기에서 방출된 총 바이트 수 | 합계(누적) | 기준 |
| 압축을 우회한 총 바이트 수 | 합계(누적) | 기준 |
| 압축된 총 HTTP 응답 수 | 합계(누적) | {responses} |
| 클라이언트가 중단한 총 데이터 전송 수 | 합계(누적) | {cancellations} |
| 프록시에 대해 설정된 세션 제한 | 계량기 | {sessions} |
리소스 속성
다음 리소스 속성은 모든 HAProxy 메트릭에 연결되어 필터링 및 그룹화를 위한 컨텍스트를 제공합니다.
기인하다 | 설명 | 예시 값 |
|---|---|---|
| HAProxy 프록시 이름(haproxy.cfg의 프런트엔드/백앤드/listen 섹션 이름에서 가져옴) |
,
,
|
| 유형 식별자 또는 서버 이름: 프론트엔드 집계의 경우
, 백앤드 집계의 경우
, 또는 서버별 메트릭의 경우 특정 서버 이름 |
,
,
,
|
| 스크랩된 통계 엔드포인트 URL(엔티티 식별자의 일부로 사용됨) |
|
| 호스트의 고유 식별자(Linux의
에서 가져옴) |
|
| 수집기를 실행하는 머신의 호스트명 |
|
| 운영 시스템 유형 |
|
엔티티 식별자: 뉴렐릭의 HAProxy 엔티티는 host.id + haproxy.addr (예: ec23da5ead46571f2c3a9771b093658b:http://localhost:8404/stats)에서 합성됩니다.
Prometheus 메트릭 매핑
Prometheus 수신기 경로를 사용하는 경우 다음 표는 HAProxy Prometheus 메트릭 이름이 OTel haproxyreceiver의 해당 항목에 어떻게 매핑되는지 보여줍니다. 각 OTel 메트릭에는 여러 Prometheus 소스가 있을 수 있습니다(티어당 하나: 프런트엔드, 백앤드, 서버).
OTel 메트릭 | Prometheus 프론트엔드 | Prometheus 백앤드 | Prometheus 서버 |
|---|---|---|---|
|
|
|
|
|
|
|
|
| — |
|
|
|
| — | — |
| — |
|
|
|
|
| — |
|
| — | — |
| — |
|
|
|
| — | — |
| — |
|
|
|
|
| — |
|
|
|
|
| — |
|
|
| — |
|
|
| — |
|
|
|
|
|
|
|
|
|
|
중요
Prometheus 경로의 알려진 제한 사항:
- 상태 코드별 FACET 없음: haproxyreceiver는
hrsp_*CSV 필드를haproxy.requests.total의status_code속성으로 구문 분석합니다. Prometheus 경로는 이를 지원하지 않습니다 ― HTTP 응답 코드 분류는 변환 설정에 포함되지 않은 별도의 메트릭(haproxy_frontend_http_responses_total{code="2xx"})으로만 사용할 수 있습니다. - 비율 메트릭은 수명 주기 최댓값입니다:
haproxy.connections.rate은(는)haproxy_frontend_connections_rate_max에 매핑되고haproxy.requests.rate은(는)haproxy_frontend_http_requests_rate_max에 매핑됩니다. 이것은 순간적인 비율이 아니라 수명 주기 최댓값입니다. 실제 현재 비율을 보려면 누적 카운터 메트릭에rate()NRQL 함수를 사용하세요. - -136개의 Prometheus 메트릭에는 해당하는 OTel 항목이 없음: HAProxy의 Prometheus 엔드포인트는 -204개의 메트릭을 노출합니다. 36개만 17개의 OTel 기본 메트릭에 매핑됩니다(프런트엔드/백앤드/서버 티어 전체). 나머지(프로세스 내부, 상태 확인 세부 정보, DNS 확인자 통계)에는 해당하는 haproxyreceiver 항목이 없습니다.
샘플 NRQL 쿼리
뉴렐릭에서 HAProxy 메트릭을 탐색하려면 다음 쿼리를 사용하십시오:
-- Current sessions across all frontendsFROM Metric SELECT latest(haproxy.sessions.count)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'FRONTEND'
-- Request rate per frontend over timeFROM Metric SELECT average(haproxy.requests.rate)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'FRONTEND'TIMESERIES
-- Backend error rate (responses.errors as rate)FROM Metric SELECT rate(sum(haproxy.responses.errors), 1 second)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'BACKEND'TIMESERIES
-- Bytes throughput per backendFROM Metric SELECT rate(sum(haproxy.bytes.input), 1 minute) AS 'Bytes In/min', rate(sum(haproxy.bytes.output), 1 minute) AS 'Bytes Out/min'FACET haproxy.proxy_nameWHERE haproxy.service_name = 'BACKEND'
-- Average session time per backend (latency indicator)FROM Metric SELECT average(haproxy.sessions.average)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'BACKEND'
-- Per-server session count (individual backend servers)FROM Metric SELECT latest(haproxy.sessions.count)FACET haproxy.proxy_name, haproxy.service_nameWHERE haproxy.service_name NOT IN ('FRONTEND', 'BACKEND')
-- Queued requests (indicates backend saturation)FROM Metric SELECT max(haproxy.requests.queued)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'BACKEND'TIMESERIES다음 단계
- HAProxy 데이터 찾기 및 쿼리 ― 대시보드, NRQL 쿼리 및 데이터 탐색
- 자체 호스팅 HAProxy 모니터 ― Linux VM 또는 베어메탈용 설정
- Kubernetes에서 HAProxy 모니터 — 컨테이너화된 환경을 위한 자동 파드 검색
- NRQL 공지 조건 생성 — HAProxy 메트릭을 기반으로 알림을 설정합니다.