[자료 다운로드] OpenTelemetry 구성 요소
OpenTelemetry는 API, SDK, Collector, OTLP 등으로 분산 시스템 데이터를 표준화해 일관된 관측성과 안정성을 제공합니다.
2025년 09월 04일

OpenTelemetry의 주요 구성 요소
이 발표 자료는 OpenTelemetry(OTel)의 구성요소를 “API–SDK–Collector–OTLP–Semantic Conventions–Context Propagation”의 흐름으로 정리하면서, 분산 시스템에서 데이터를 일관되게 만들고 서비스 간 인과관계를 끝까지 잇는 관측성(Observability)의 표준 경로를 제시합니다.
애플리케이션 안에서는 API/SDK로 신호를 정확히 만들어 내고, 파이프라인에서는 Collector로 표준 방식으로 수집·가공·전송하며, 전송 계층에서는 OTLP로 손실 없이 옮기고, 데이터 모델은 Semantic Conventions로 이름과 스키마를 맞추며, 마지막으로 Context Propagation으로 서비스 경계를 넘어 Trace–Metrics–Logs를 한 요청 단위로 끝까지 엮어야 한다는 점입니다. 이 체계가 자리 잡아야 MSA·쿠버네티스 환경에서 대시보드가 ‘보여주기’에 머물지 않고 원인 파악과 회복 탄력성을 보장하는 운영 도구가 됩니다.
왜 이 자료를 꼭 참고 해야 할까요?
이 발표 자료는 마이크로서비스 아키텍처(MSA), 쿠버네티스, 클라우드 네이티브 환경을 처음 접하는 독자들뿐만 아니라, 기존 IT 시스템의 관측성 문제를 해결하고자 하는 IT 의사결정자들에게도 매우 귀중한 통찰력을 제공합니다
MSA, 쿠버네티스, 클라우드 네이티브를 처음 접하는 독자들을 위해:
분산 시스템의 복잡성은 단일 애플리케이션과는 차원이 다릅니다. 수많은 서비스가 서로 통신하며 유기적으로 동작하기 때문에, 문제가 발생했을 때 어느 지점에서 어떤 원인으로 발생했는지 파악하기가 매우 어렵습니다. 이 자료는 OpenTelemetry라는 표준화된 도구를 통해 이러한 복잡성을 어떻게 해결하고 서비스의 내부를 투명하게 들여다볼 수 있는지에 대한 기본적인 이해를 돕습니다. 관측성이라는 개념이 추상적으로 느껴질 수 있지만, OpenTelemetry의 구체적인 구성 요소를 통해 실제 시스템에 어떻게 적용되는지 명확하게 설명해주어 실질적인 학습 가이드가 될 수 있습니다.
IT 의사결정자들을 위해:
클라우드 네이티브 전환을 고려하거나 이미 진행 중인 기업의 의사결정자들은 기술 스택 선택에 있어 많은 고민을 합니다. 특히 관측성 솔루션은 서비스 안정성과 직결되기 때문에 신중한 접근이 필요합니다. 이 자료는 OpenTelemetry가 왜 분산 시스템 관측성의 ‘표준’으로 자리매김하고 있는지, 그리고 이 표준을 도입함으로써 얻을 수 있는 벤더 중립성, 유연성, 비용 효율성 등의 이점을 명확하게 제시합니다. 특정 벤더에 종속되지 않고 미래 확장성을 고려한 관측성 전략을 수립하는 데 필수적인 정보를 제공하며, 기술 투자에 대한 합리적인 의사결정을 돕는 데 큰 도움이 될 것입니다. 궁극적으로 이 자료는 분산 시스템 환경에서 서비스의 안정성을 확보하고 운영 효율성을 극대화하기 위한 로드맵을 제시하며, 성공적인 클라우드 네이티브 여정을 위한 필수적인 지침서 역할을 합니다.
이 발표 자료의 핵심 주제
OpenTelemetry는 사양(Specification), 언어별 API/SDK 구현, Collector, 그리고 프로토콜(OTLP), Semantic Conventions, 전파(Propagation)로 구성됩니다. 사양은 용어와 행위 기준을 정의하고, 각 언어별 API/SDK는 그 사양을 코드 수준에서 구현합니다. Collector는 실행 파일 형태의 중립 에이전트/게이트웨이로서 다양한 수신·처리·내보내기 컴포넌트를 조합해 파이프라인을 만들고, OTLP는 이 모든 신호를 표준 방식으로 인코딩·전송합니다. Semantic Conventions는 이름과 속성 체계를 통일해 도구·벤더를 바꿔도 의미가 유지되도록 하고, Context Propagation은 요청의 인과관계를 서비스 경계 밖까지 이어 줍니다.
발표 자료 주요 내용
OpenTelemetry의 주요 구성 요소
![OpenTelemetry_구성요소_V2_Pub-3 [자료 다운로드] OpenTelemetry 구성 요소](https://www.cncf.co.kr/wp-content/uploads/2025/09/OpenTelemetry_구성요소_V2_Pub-3-scaled.webp)
OpenTelemetry는 관측성 데이터를 생성하고 수집하며 전송하기 위한 네 가지 핵심 구성 요소로 이루어져 있습니다. 이들은 마치 정교하게 맞물려 돌아가는 기어처럼 함께 작동하여 완벽한 관측성 파이프라인을 구축합니다.
API (Application Programming Interface):
API는 애플리케이션 코드에 관측성 코드를 추가하기 위한 ‘공통 인터페이스’를 제공합니다. 개발자는 이 API를 사용하여 어떤 데이터를 수집할지 정의합니다. 예를 들어, 특정 함수의 실행 시간, HTTP 요청 정보, 데이터베이스 쿼리 등 시스템의 다양한 동작을 측정하고 기록하는 코드를 삽입할 수 있습니다. 중요한 점은 이 API가 벤더 중립적이라는 것입니다. 즉, 특정 모니터링 솔루션에 종속되지 않고 표준화된 방식으로 데이터를 정의할 수 있습니다. 이는 개발자가 관측성 코드를 한 번 작성하면 어떤 백엔드 분석 도구를 사용하든 재활용할 수 있게 하여 코드의 유연성과 재사용성을 극대화합니다.
- 핵심 이점:
- 벤더 중립성: 특정 백엔드에 종속되지 않는 표준 인터페이스를 제공하여, 나중에 분석 도구를 변경하더라도 애플리케이션 코드를 수정할 필요가 없습니다.
- 일관성: 다양한 프로그래밍 언어에서 동일한 개념과 패턴을 사용하여 일관된 방식으로 관측성 데이터를 생성할 수 있습니다.
- 코드 분리: 비즈니스 로직과 관측성 코드를 명확하게 분리하여 코드의 가독성과 유지보수성을 높입니다.
SDK (Software Development Kit):
SDK는 각 프로그래밍 언어별로 API를 구현한 ‘실체’입니다. 즉, API가 “무엇을 측정할 것인가”를 정의한다면, SDK는 “어떻게 측정하고 처리할 것인가”를 담당합니다. SDK는 애플리케이션에서 실제로 관측성 데이터를 생성하고, 이를 전송 가능한 형태로 가공하는 역할을 수행합니다. 예를 들어, 데이터를 샘플링하여 모든 요청을 추적하는 것이 아닌 일부만 추적함으로써 성능 오버헤드를 줄이거나, 민감한 정보를 필터링하여 보안을 강화하고 데이터 전송량을 최적화할 수 있습니다. 또한 수집된 데이터를 OTLP(OpenTelemetry Protocol) 형식으로 변환하여 Collector나 백엔드로 내보내는 역할도 SDK가 담당합니다.
- 핵심 기능:
- 데이터 샘플링: 시스템의 부하를 줄이기 위해 모든 데이터를 수집하는 대신, 특정 기준(예: 에러 발생률, 트래픽 볼륨)에 따라 일부 데이터만 선별적으로 수집하는 기능을 제공합니다.
- 데이터 필터링: 중요하지 않거나 민감한 정보를 제외하고 필요한 데이터만 선택적으로 수집하여 개인정보 보호 및 데이터 최적화를 가능하게 합니다.
- 데이터 처리: 수집된 원시 데이터를 가공, 변환, 정규화하여 분석에 용이한 형태로 만듭니다.
- 데이터 내보내기 (Exporter): 처리된 데이터를 OTLP와 같은 표준 형식으로 변환하여 다양한 백엔드 시스템(Collector, APM 솔루션 등)으로 전송합니다.
- TIP: 자동 계측 (Auto-instrumentation): SDK는 개발자가 직접 코드를 수정하지 않고도 기본적인 관측성 데이터를 수집할 수 있는 자동 계측 기능을 제공합니다. 이는 특히 레거시 애플리케이션에 OpenTelemetry를 도입할 때 매우 유용합니다.
Collector:
Collector는 OpenTelemetry의 ‘중앙 허브’ 역할을 하는 매우 유연한 파이프라인이자 프록시입니다. 다양한 형식의 관측성 데이터를 수신, 처리, 그리고 여러 백엔드로 동시에 내보내는 기능을 수행합니다. 이는 애플리케이션이 직접 각 백엔드와 통신하는 복잡성을 줄여주며, 데이터의 중앙 집중식 관리를 가능하게 합니다. Collector는 애플리케이션과 백엔드 분석 도구 사이에 위치하여 데이터 흐름을 효율적으로 조율합니다.
![OpenTelemetry_구성요소_V2_Pub-6 [자료 다운로드] OpenTelemetry 구성 요소](https://www.cncf.co.kr/wp-content/uploads/2025/09/OpenTelemetry_구성요소_V2_Pub-6-scaled.webp)
- 주요 기능:
- 데이터 수신 (Receivers): OTLP, Jaeger, Prometheus 등 다양한 프로토콜로 데이터를 수신할 수 있습니다.
- 데이터 처리 (Processors): 수신된 데이터를 일괄 처리(Batching), 필터링, 민감 정보 마스킹 등을 통해 가공합니다. 이를 통해 네트워크 대역폭을 절약하고 백엔드 부하를 줄일 수 있습니다.
- 데이터 내보내기 (Exporters): 처리된 데이터를 Datadog, New Relic, Grafana 등 다양한 모니터링 백엔드로 전송합니다.
- 배포 방식:
- 에이전트(Agent) 배포: 각 호스트에 에이전트 형태로 배포하여 로컬 데이터를 효율적으로 수집합니다. 낮은 지연 시간으로 직접적인 데이터 수집이 가능합니다.
- 게이트웨이(Gateway) 배포: 여러 에이전트의 데이터를 집계하는 중앙 게이트웨이로 독립 실행됩니다. 대규모 환경에서 효율적인 데이터 관리가 가능합니다.
OTLP (OpenTelemetry Protocol):
OTLP는 모든 관측성 데이터(메트릭, 로그, 트레이스 등)를 표준화된 방식으로 전송하기 위한 ‘통합 프로토콜’입니다. 이전에는 각 모니터링 솔루션마다 고유한 데이터 전송 프로토콜을 사용하여 상호 운용성이 떨어졌습니다. OTLP는 이러한 문제를 해결하고, 서로 다른 형태의 관측성 데이터를 일관된 파이프라인을 통해 Collector나 백엔드로 효율적으로 전송할 수 있도록 합니다.
![OpenTelemetry_구성요소_V2_Pub-7 [자료 다운로드] OpenTelemetry 구성 요소](https://www.cncf.co.kr/wp-content/uploads/2025/09/OpenTelemetry_구성요소_V2_Pub-7-scaled.webp)
- 핵심 이점:
- 데이터 통합: 트레이스, 메트릭, 로그 등 모든 관측성 데이터를 단일 프로토콜로 전송하여 파이프라인을 통합합니다.
- 벤더 중립성: 특정 벤더에 종속되지 않는 표준 프로토콜로, 다양한 백엔드 시스템과의 호환성을 보장합니다.
- 효율적인 전송: 배치 처리, 압축 등을 통해 네트워크 대역폭과 리소스 사용을 최적화하여 데이터 전송 효율을 높입니다.
Semantic Conventions (의미론적 규약)
![OpenTelemetry_구성요소_V2_Pub-8 [자료 다운로드] OpenTelemetry 구성 요소](https://www.cncf.co.kr/wp-content/uploads/2025/09/OpenTelemetry_구성요소_V2_Pub-8-scaled.webp)
Semantic Conventions는 OpenTelemetry의 또 다른 강력한 특징으로, 수집된 데이터에 ‘일관된 의미’를 부여하기 위한 표준 명명 규칙입니다. 이는 단순히 데이터를 수집하는 것을 넘어, 그 데이터가 무엇을 의미하는지 명확하게 정의함으로써 모든 이해관계자가 데이터를 동일하게 해석하고 활용할 수 있도록 돕습니다.
-
의미론적 규약이란?
분산 시스템에서는 다양한 언어와 환경에서 수많은 서비스가 데이터를 생성합니다. 만약 각 서비스가 제각각의 방식으로 데이터에 이름을 붙인다면, 이를 분석하는 과정에서 혼란과 비효율이 발생할 수밖에 없습니다. Semantic Conventions는 이러한 문제를 해결하기 위해, 예를 들어 HTTP 요청 메소드는 http.method, 데이터베이스 시스템은 db.system과 같이 표준화된 키와 값의 이름을 정의합니다.
-
주요 이점:
- 일관성 보장: 어떤 언어, 어떤 환경에서 수집된 데이터든 동일한 의미로 해석될 수 있도록 보장합니다. 이는 시스템 간의 통합 분석을 용이하게 합니다.
- 벤더 독립적인 표준화된 데이터 형식: 특정 벤더의 도구에 종속되지 않고 모든 백엔드 분석 도구에서 데이터를 일관되게 처리할 수 있습니다.
- 통합 분석 용이: 서로 다른 시스템에서 수집된 데이터를 함께 분석하여 시스템 전반의 상관관계를 파악하고 문제를 진단하는 데 큰 도움이 됩니다.
- 데이터 해석 일관성 유지: 백엔드 분석 도구를 변경하더라도 데이터의 의미가 변질되지 않고 일관성을 유지할 수 있습니다
-
적용 예시:
발표 자료에서는 Kubernetes 및 Database 관련 데이터를 어떻게 표준화된 이름으로 기록하는지 예시를 통해 보여줍니다. 예를 들어, Kubernetes 클러스터의 이름은 k8s.cluster.name으로, 데이터베이스 시스템의 종류는 db.system으로 통일하여 기록함으로써, 클러스터 내의 수많은 마이크로서비스에서 발생하는 이벤트와 데이터베이스의 성능 지표를 명확하게 연결하여 분석할 수 있게 됩니다. 이는 팀과 도구 간의 상호운용성을 극대화하여 복잡한 분산 시스템의 가시성을 획기적으로 향상시킵니다.
Context Propagation (컨텍스트 전파)
![OpenTelemetry_구성요소_V2_Pub-11 [자료 다운로드] OpenTelemetry 구성 요소](https://www.cncf.co.kr/wp-content/uploads/2025/09/OpenTelemetry_구성요소_V2_Pub-11-scaled.webp)
Context Propagation은 분산 시스템에서 여러 마이크로서비스에 걸쳐 발생하는 ‘요청의 전체 흐름을 하나의 트랜잭션으로 연결하는 핵심 메커니즘’입니다. 이는 마치 수많은 지점을 거쳐가는 택배의 운송장 번호처럼, 하나의 요청이 여러 서비스를 오가더라도 그 출처와 경로를 명확히 추적할 수 있게 해줍니다.
-
핵심 개념:
분산 시스템에서는 단일 요청이 여러 서비스를 순차적 또는 병렬적으로 호출하며 처리됩니다. Context Propagation은 이 요청의 시작점에서 고유한 Trace ID를 생성하고, 이후 요청이 다른 서비스를 호출할 때 이 Trace ID와 해당 서비스 내에서의 작업 단위를 나타내는 Span ID를 HTTP 헤더 등을 통해 함께 전달합니다. OpenTelemetry는 W3C의 TraceContext 표준(특히 traceparent 헤더)을 기본으로 사용하여 이러한 컨텍스트 전파를 구현합니다. traceparent 헤더는 Trace ID와 Span ID를 포함하여 요청의 전체 경로를 식별할 수 있도록 합니다.
-
HTTP 헤더를 통한 Context 전파 예시:
발표 자료에 제시된 traceparent 헤더 예시(00-4bf92f3577b34da6a3ce929d0e0e4736-0000000000000001-01)를 보면, 첫 번째 부분(00)은 버전, 두 번째 부분(4bf92f3577b34da6a3ce929d0e0e4736)은 Trace ID, 세 번째 부분(0000000000000001)은 Span ID, 마지막 부분(01)은 플래그를 나타냅니다. 이 정보를 통해 하나의 요청이 프론트엔드, API 게이트웨이, 인증 서비스 등 여러 마이크로서비스를 거치면서 각 단계에서 어떤 작업이 수행되었는지 명확하게 추적할 수 있습니다.
-
주요 이점:
- 전체 요청 흐름 가시화: 사용자의 첫 요청부터 마지막 응답까지 모든 서비스 간의 호출 경로를 한눈에 파악할 수 있게 합니다. 이는 복잡한 분산 시스템에서 특정 기능이 어떻게 동작하는지 이해하는 데 필수적입니다.
- 병목 지점 식별: 요청 처리 시간이 길어지거나 성능 저하가 발생했을 때, 어느 특정 서비스나 특정 구간에서 병목 현상이 발생하는지 정확하게 식별할 수 있습니다. 이를 통해 문제 해결의 초점을 좁히고 효율적인 최적화 작업을 수행할 수 있습니다.
- 오류 추적 및 디버깅: 오류가 발생했을 때, 해당 오류가 어떤 요청의 어떤 서비스에서 발생했는지, 그리고 그 오류가 전체 요청 흐름에 어떤 영향을 미쳤는지 신속하게 추적하고 디버깅할 수 있습니다. 이는 장애 발생 시 빠른 원인 분석과 복구에 결정적인 역할을 합니다.
마무리
OpenTelemetry는 단순한 도구를 넘어, 분산 시스템 환경에서 서비스의 건강 상태를 파악하고 운영 효율성을 극대화하기 위한 ‘사고방식의 전환’을 의미합니다.
이 표준을 통해 우리는 더 이상 블랙박스와 같은 시스템을 추측으로 관리하는 것이 아니라, 투명하고 일관된 관점으로 시스템의 모든 움직임을 이해하고 통제할 수 있게 됩니다. 이 자료를 통해 OpenTelemetry에 대한 깊이 있는 이해를 얻으시고, 여러분의 시스템에 성공적으로 적용하시기를 바랍니다.