OpenTelemetry
OpenTelemetry(OTel)는 애플리케이션, 인프라, 서비스에서 발생하는 로그(Log), 메트릭(Metric), 트레이스(Trace) 데이터를 수집하고 내보내기 위한 오픈소스 관측(Observability) 프레임워크이다.
클라우드 네이티브 환경에서 분산 시스템의 상태를 모니터링하고, 성능 문제를 진단하며, 가시성을 확보하는 데 필수적으로 사용된다.
CNCF(Cloud Native Computing Foundation)에서 호스팅하는 프로젝트로, 여러 언어와 플랫폼에서 표준화된 방식으로 텔레메트리 데이터를 생성·전송할 수 있다.
주요 특징
- 표준화된 관측 데이터 포맷: Trace, Metric, Log를 위한 통합 스펙 제공 → 도구/플랫폼 간 호환성 보장.
- 멀티 언어 지원: Java, Go, Python, .NET, JavaScript 등 주요 언어 SDK 제공.
- 자동 계측(Auto-Instrumentation): 애플리케이션 코드 수정 최소화로 빠른 적용 가능.
- 플러그형 Exporter 구조: Prometheus, Jaeger, Zipkin, OTLP 등 다양한 백엔드로 전송 가능.
- 벤더 중립성: 특정 APM/모니터링 벤더에 종속되지 않고 자유롭게 선택 가능.
- 분산 트레이싱 지원: 마이크로서비스 간 호출 체인(Trace)을 추적해 병목 지점 파악 가능.
장점
- 관측 표준화: 여러 팀·시스템에서 일관된 방식으로 메트릭/로그/트레이스를 수집.
- 확장성: 클라우드 네이티브·컨테이너·Kubernetes 환경에 최적화.
- 비용 효율성: 오픈소스이므로 상용 APM보다 초기 도입 비용 절감 가능.
- 유연한 아키텍처: 데이터 수집·처리·전송 경로를 자유롭게 구성 가능.
- 빠른 문제 해결: 서비스 호출 관계와 성능 병목을 시각적으로 파악 가능.
관련 용어
- Telemetry: 시스템에서 발생하는 데이터를 수집·전송·분석하는 과정.
- Tracing : 요청(Request)이 시스템 내에서 어떻게 처리되는지 호출 체인을 추적하는 기법.
- Metrics: CPU 사용량, 응답 시간 등 정량적 성능 지표.
- Logs: 이벤트·오류·상태 정보를 기록한 데이터.
- OTLP(OpenTelemetry Protocol): OTel의 표준 데이터 전송 프로토콜.
- Collector: 수집한 데이터를 처리하고 원하는 백엔드로 내보내는 컴포넌트.
주요 솔루션 및 사용 사례
- 주요 솔루션
- OpenTelemetry Collector: 데이터 수집, 변환, 필터링, 내보내기를 담당하는 핵심 컴포넌트.
- Language SDKs: 애플리케이션 코드에서 메트릭·트레이스·로그 생성.
- Auto-Instrumentation Agent: 코드 수정 없이 자동 계측 기능 제공.
- OTLP Exporter: OpenTelemetry Protocol 기반 데이터 전송 모듈.
- 사용 사례
- 마이크로서비스 모니터링: 서비스 간 호출 관계 시각화, 장애 지점 빠른 식별.
- 성능 최적화: 응답 시간 병목 구간 분석 및 개선.
- 클라우드 네이티브 가시성 확보: Kubernetes 클러스터, 컨테이너 상태 추적.
- 멀티벤더 APM 통합: 여러 백엔드로 동일 데이터 전송하여 비교/검증 가능.
- SLO·SLA 관리: 서비스 수준 목표(SLO) 측정 지표 기반으로 경보 및 보고.
![[자료 다운로드] OpenTelemetry 활용하기](https://www.cncf.co.kr/wp-content/uploads/2025/09/CNF_BLOG_TITLE_OpenTelemetryUse.webp)


![[자료 다운로드] OpenTelemetry 구성 요소](https://www.cncf.co.kr/wp-content/uploads/2025/09/CNF_BLOG_TITLE_OpenTelemetry-Components.webp)



