OpenTelemetry
OpenTelemetry(OTel)는 애플리케이션의 성능과 동작을 모니터링하고 분석하기 위해 텔레메트리 데이터(트레이스, 메트릭, 로그)를 생성, 수집, 처리, 내보내기(Export)할 수 있도록 지원하는 오픈 소스 관측 가능성(Observability) 프레임워크다. Cloud Native Computing Foundation(CNCF)에서 관리하며, 특정 모니터링 백엔드 벤더에 종속되지 않는 표준화된 계측 방법을 제공한다.
주요 구성 요소
- API: 특정 벤더에 얽매이지 않고 코드를 계측(Instrumentation)할 수 있는 범용 인터페이스를 제공한다.
- SDK: API의 언어별 구현체로, 데이터를 실질적으로 수집하고 처리하여 익스포터(Exporter)로 전달한다.
- Collector: 서비스 백엔드와 독립적으로 실행되며, 다양한 포맷의 텔레메트리 데이터를 수신(Receive), 처리(Process), 외부 관측 스택으로 내보내는(Export) 벤더 중립적 프록시 서버다.
텔레메트리 데이터 유형 비교 OpenTelemetry가 수집 및 관리하는 세 가지 핵심 데이터(관측 가능성의 3원칙) 역량 비교는 다음과 같다.
| 텔레메트리 유형 | 정의 | 목적 | 핵심 특징 |
|---|---|---|---|
| 트레이스 (Traces) | 단일 사용자 요청이 마이크로서비스 등 분산 시스템을 통과하는 전체 경로 기록 | 병목 구간 파악 및 분산 시스템 내 지연 시간(Latency) 디버깅 | 여러 개의 스팬(Span)으로 구성되며, 인프라 전반의 실행 컨텍스트 흐름을 표현함 |
| 메트릭 (Metrics) | 일정 간격으로 측정된 시스템 및 애플리케이션의 정량적 데이터 | 시스템 리소스 사용량, 에러율 등 전반적인 가용성 및 성능 모니터링 | CPU 사용률, 메모리, 초당 HTTP 요청 수 등 집계 가능한 수치 데이터 |
| 로그 (Logs) | 시스템에서 발생한 개별 이벤트에 대한 타임스탬프 기반의 텍스트 기록 | 장애 발생 시 심층적인 근본 원인(Root Cause) 분석 및 상세 오류 로그 확인 | 구조화(JSON 등)되거나 구조화되지 않은 텍스트 형태의 메시지 |
이전 표준 프로젝트와의 비교 (OpenTelemetry의 기원) OpenTelemetry는 과거 클라우드 네이티브 환경에서 사용되던 두 주요 관측 가능성 프로젝트인 OpenTracing과 OpenCensus가 병합되어 탄생한 프로젝트다.
| 프로젝트명 | 주요 기능 및 초점 | 초기 개발 주도 플랫폼 | 현재 상태 |
|---|---|---|---|
| OpenTracing | 분산 추적(Distributed Tracing)을 위한 벤더 중립적 API 및 표준 규격 제공 | CNCF | OpenTelemetry로 통합 후 지원 종료(Archived) |
| OpenCensus | 트레이스 및 메트릭 데이터를 수집하기 위한 언어별 라이브러리 세트 | OpenTelemetry로 통합 후 지원 종료(Archived) | |
| OpenTelemetry | 트레이스, 메트릭, 로그를 모두 아우르는 통합 관측 가능성 프레임워크 및 데이터 수집기 제공 | CNCF | 클라우드 네이티브 관측 가능성 표준으로 활발히 통합 적용 중 |
출처
- OpenTelemetry. “What is OpenTelemetry?”. opentelemetry.io.
- Cloud Native Computing Foundation. “OpenTelemetry Project”. cncf.io.
- Splunk. “OpenTelemetry: What it is and How it works”. splunk.com. (벤더 분석 기반)
- Dynatrace. “What is OpenTelemetry?”. dynatrace.com.