• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

OpenTelemetry를 사용한 HAProxy 분산 추적

|View as Markdown (English)

HAProxy를 서비스 간의 단순한 블랙박스가 아니라 분산 트레이스에서 연결된 홉으로 확인하십시오. HAProxy 3.4 이상에는 로드 밸런서가 분산 트레이스에 직접 참여할 수 있도록 하는 OpenTelemetry 필터가 포함되어 있으므로, 뉴렐릭은 서비스 맵에서 애플리케이션과 HAProxy 엔티티 간의 서비스 관계를 자동으로 매핑할 수 있습니다 ― 수동 설정이 필요하지 않습니다.

이 페이지에서는 트레이스 데이터가 뉴렐릭에 도달하도록 HAProxy OTel 필터, 해당 익스포터 및 OTel Collector를 구성하는 방법을 안내합니다. 내부적으로 트레이싱이 어떻게 작동하는지 ― HAProxy를 통해 W3C Trace Context를 추출하고 전파하는 방법 ― 살펴보려면 아래의 작동 방식을 참조하십시오.

작동 원리

일반적인 설정에서 트래픽은 다음과 같이 흐릅니다:

Instrumented app (frontend) → HAProxy (with OTel filter) → Instrumented app (backend)
  1. 프런트엔드 애플리케이션은 W3C traceparent 헤더와 함께 요청을 보냅니다.
  2. HAProxy의 OTel 필터는 트레이스 컨텍스트를 추출하고, 요청 수명 주기를 포괄하는 스팬을 생성하며, 백앤드로 전달되는 요청에 업데이트된 트레이스 컨텍스트를 주입합니다.
  3. 백앤드 애플리케이션은 전파된 트레이스 컨텍스트와 함께 요청을 수신하고 트레이스를 계속합니다.
  4. 프런트엔드, HAProxy 및 백앤드는 스팬을 OpenTelemetry Collector로 내보내며, OpenTelemetry Collector는 이를 뉴렐릭으로 전달합니다.

뉴렐릭은 이러한 연결된 스팬을 사용하여 CALLS 관계를 생성합니다:

  • 프런트엔드 서비스가 HAProxy 엔티티를 호출합니다.
  • HAProxy 엔티티가 백앤드 서비스를 호출합니다.

이러한 관계는 서비스 맵 및 맵 환경에서 볼 수 있습니다.

시작하기 전에

HAProxy OTel 필터는 다음을 포함하여 W3C Trace Context 전파를 지원하는 모든 애플리케이션과 작동합니다:

  • OpenTelemetry SDK로 계측된 애플리케이션(모든 언어)
  • OpenTelemetry 자동 계측 (자바, .NET, 파이썬, Node.js)
  • 뉴렐릭 APM 에이전트 (Go, 자바, .NET, Node.js, 파이썬, 루비, PHP) 중 분산 추적이 활성화된 에이전트

계측 방식을 혼합할 수 있습니다. 예를 들어, OTel SDK 프런트엔드는 HAProxy를 통해 뉴렐릭 APM 에이전트 백앤드로 호출할 수 있으며, 관계 체인은 뉴렐릭에 올바르게 표시됩니다.

또한 다음 사항을 갖추고 있는지 확인하십시오:

  • 유효한 뉴렐릭 클러스터
  • OTel 필터가 활성화된 HAProxy 3.4 이상. OTel 필터 지원이 포함된 배포판을 얻는 방법에 대한 지침은 HAProxy OTel 설치 가이드를 참조하십시오.
  • 동일한 호스트에서 실행되거나 HAProxy 호스트에서 액세스할 수 있는 OpenTelemetry Collector (OTel Collector Contrib 또는 NRDOT)
  • 위에 나열된 호환 가능한 계측 접근 방식 중 하나를 사용하여 HAProxy를 통해 requests를 보내는 계측된 애플리케이션
  • 수집기에서 뉴렐릭의 OTLP 엔드포인트로의 네트워크 액세스

팁

이 가이드는 단일 OTel Collector에서 메트릭 수집과 분산 추적을 모두 설정합니다. 고급 메트릭 설정 또는 Kubernetes 배포에 대해서는 자체 호스팅 HAProxy 모니터 및 Kubernetes의 HAProxy 모니터를 참조하십시오.

분산 추적 설정

팁

아래의 트레이스 파이프라인은 수동 관계 설정이 아니라 ― 분산 추적에 참여하는 모든 서비스에 사용할 수 있는 동일한 표준 설정입니다. 추적이 활성화되면 뉴렐릭은 연결된 스팬을 자동으로 감지하고 서비스 관계를 생성합니다. 관계가 표시되기 위해 추가적인 설정은 필요하지 않습니다.

서비스 관계를 확인하십시오.

HAProxy와 수집기가 실행되면 계측된 애플리케이션을 통해 트래픽을 생성하십시오. 몇 분 후 뉴렐릭에 데이터가 도착하는지 확인하십시오:

-- Verify HAProxy trace spans
FROM Span SELECT count(*)
WHERE service.name = 'YOUR_HAPROXY_SERVICE_NAME'
SINCE 10 minutes ago
-- Verify HAProxy metrics
FROM Metric SELECT count(*)
WHERE metricName LIKE 'haproxy.%'
SINCE 10 minutes ago

트레이스 데이터가 유입되기 시작하면 뉴렐릭은 서비스와 HAProxy 엔티티 간에 CALLS 관계를 자동으로 생성합니다. 관계가 나타나려면 최대 10분이 걸릴 수 있습니다.

관계를 보려면 다음 단계를 따르십시오.

  1. one.newrelic.com > All capabilities > All entities 으)로 이동합니다.
  2. HAProxy 엔티티 또는 계측된 서비스 중 하나를 검색하십시오.
  3. 엔티티를 선택하여 요약 페이지를 여십시오.
  4. 엔티티 관계 그래프를 보려면 Service map을(를) 클릭하십시오.

프런트엔드 서비스가 HAProxy에 연결되고, HAProxy가 백앤드 서비스에 연결된 것을 확인할 수 있어야 합니다:

[Frontend app] → CALLS → [HAProxy] → CALLS → [Backend app]

또한 NRQL로 관계를 쿼리할 수 있습니다:

FROM Relationship SELECT *
WHERE source.entityName = 'YOUR_HAPROXY_SERVICE_NAME'
OR target.entityName = 'YOUR_HAPROXY_SERVICE_NAME'
SINCE 1 day ago

문제점 해결

다음 단계

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.