OpenTelemetry Collector란? 파이프라인 구조와 설정 3요소

OpenTelemetry Collector(OTel Collector)가 무엇이고 왜 필요한지 설명합니다. receivers·processors·exporters 3요소, OTLP 파이프라인 YAML 예시, 듀얼 라이트와 자주 겪는 오류까지.

모범 사례
OpenTelemetry Collector란? 파이프라인 구조와 설정 3요소

OpenTelemetry Collector(OTel Collector)는 트레이스·메트릭·로그 같은 텔레메트리 데이터를 받아서(receivers), 가공하고(processors),보내는(exporters) 중간 기지입니다. 애플리케이션이 데이터를 만들면, Collector 가 그것을 모아 배치 처리·필터링·마스킹을 거쳐 하나 이상의 백엔드(관측성 플랫폼)로 보냅니다. OTel 자체는 데이터의 "만드는 법과 운반"만 정하고, 저장·조회는 백엔드의 몫이라는 점이 핵심입니다(전체 개념은 옵저버빌리티란?을 참고하세요).

왜 애플리케이션에서 바로 보내지 않을까

SDK 에서 백엔드로 직접 보낼 수도 있습니다. 그런데도 운영 환경에서는 Collector 를 사이에 두는 것이 표준입니다. 이유는 세 가지입니다.

  1. 배치와 재전송: 전송을 모아서 효율화하고, 장애 때는 큐잉으로 유실을 막습니다.
  2. 가공의 일원화: 개인정보 마스킹, 속성 추가·삭제, 샘플링을 Collector 설정 한곳에서 관리합니다.
  3. 멀티 전송(듀얼 라이트): 같은 데이터를 현행 백엔드와 검증 중인 새 백엔드에 동시에 보낼 수 있습니다. 마이그레이션 검증의 핵심 기법입니다.

파이프라인으로 이해하기 — 설정 3요소

Collector 설정은 세 요소와 그것을 잇는 파이프라인으로 이루어집니다.

관련 가이드APM 뜻: 애플리케이션 성능 모니터링의 원리와 실무

  • receivers: 데이터를 받는 입구. 표준은 OTLP(OTel 의 표준 프로토콜)이고, 그 외에도 다양한 형식을 받을 수 있습니다.
  • processors: 받은 데이터를 가공. 배치(batch)가 사실상 필수이고, 속성 수정·필터·메모리 제한 등이 있습니다.
  • exporters: 보내는 출구. 백엔드마다 exporter 를 두고, 하나의 파이프라인에서 여러 exporter 로 동시에 보낼 수 있습니다.

개념 예시(동작 구조를 보여 주기 위한 최소 형태):

receivers:
  otlp:                 # SDK 에서 OTLP 로 수신
    protocols:
      grpc:
      http:
processors:
  batch:                # 모아서 보냄 (유실·효율의 핵심)
exporters:
  otlphttp/backend_a: { endpoint: "https://a.example.com" }
  otlphttp/backend_b: { endpoint: "https://b.example.com" }  # 듀얼 라이트
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlphttp/backend_a, otlphttp/backend_b]

여기서 중요한 것은 파이프라인을 선언하지 않으면 데이터가 흐르지 않는다는 점입니다. receivers 와 exporters 를 정의만 하고 service.pipelines 에 연결하지 않는 실수가 "데이터가 안 보인다"의 대표 원인입니다. 실제 이행( Datadog 과의 듀얼 라이트 전체 YAML)은 영문판 Datadog to OpenTelemetry에 있습니다.

자주 겪는 문제 3가지

  1. 파이프라인 미선언: 위에서 본 대로, 정의만 하고 pipeline 에 안 넣으면 조용히 아무 일도 안 일어납니다.
  2. 포트 혼동: OTLP 는 gRPC 4317, HTTP 4318 이 기본입니다. exporter 의 엔드포인트가 백엔드가 기대하는 프로토콜·포트와 맞는지 확인하세요.
  3. 샘플링 이중 적용: SDK 와 Collector 양쪽에서 샘플링하면 의도보다 훨씬 적게 남습니다. 어느 한쪽에서만 결정하는 것이 안전합니다.

트레이스가 아예 안 보일 때의 7단계 점검표는 영문판 OpenTelemetry Not Showing Traces에 정리돼 있습니다.

도입 순서 — 작게 시작해서 키우기

  1. 대상을 좁혀 주요 거래 경로 1~2개에 자동 계측을 넣습니다.
  2. Collector 를 OTLP 수신 → 현행 백엔드 전송 구성으로만 둡니다.
  3. 속성(서비스명·환경·버전)을 통일하고, 트래픽에 맞춰 샘플링을 정합니다.
  4. 필요하면 exporter 를 추가해 제2의 백엔드와 병행 가동하며 조회 품질을 맞춰 봅니다.

관련 가이드Datadog vs WhaTap(와탭) 비교 2026: 가격·기능·한국 지원 기준 정리

자주 묻는 질문

Q. OpenTelemetry Collector 는 무료인가요?
네, 규격과 구현은 오픈소스로 무료입니다. 비용이 드는 쪽은 데이터를 저장·조회하는 백엔드이며, 제품마다 과금 모델이 다릅니다(비교는 APM 뜻과 도구 선택 참조).

Q. Collector 를 꼭 써야 하나요?
소규모 검증이라면 SDK 에서 직접 보내도 됩니다. 운영 환경에서는 배치·마스킹·멀티 전송을 위해 Collector 를 끼우는 구성이 표준입니다.

Q. Jaeger 와는 무슨 관계인가요?
Collector 는 텔레메트리의 수집·운반(중간 기지), Jaeger 는 트레이스를 저장·보여 주는 백엔드(도착지)입니다. Collector 로 모아 Jaeger 로 보내는 조합이 일반적입니다.

Q. 이미 Datadog SDK(ddtrace)를 쓰고 있습니다.
백엔드를 바꾸고 싶다면 두 길이 있습니다. 계측을 OTel 로 옮기는 길(언어별 전환표는 Datadog to OpenTelemetry)과, ddtrace 호환 입력을 가진 백엔드로 보내는 목적지만 바꾸는 길입니다. 후자라면 재계측 없이 전환 비용을 낮출 수 있습니다.

다음 읽기

맞춤형 플랜 상담

문의하기

커뮤니티 가입

WeChat으로 스캔하여
커뮤니티에 가입하세요

Guance 사용해 보기

온라인에서 바로 시작하고 사용한 만큼만 결제하세요.

시작하기

Guance 요금제 선택

코드 저장소