OpenTelemetry

지원 버전: OTEL 1.x 마지막 업데이트: 2026년 2월 20일

소개

OpenTelemetry(OTel)는 클라우드 네이티브 소프트웨어를 위한 관측성 프레임워크입니다. Traces, Metrics, Logs의 세 가지 신호를 생성, 수집, 관리하기 위한 벤더 중립적 표준을 제공합니다. CNCF의 두 번째로 활발한 프로젝트로, 업계 표준으로 자리잡고 있습니다.

OpenTelemetry란?

OpenTelemetry는 OpenTracing과 OpenCensus 프로젝트가 합쳐져 탄생했습니다:

spinner

핵심 개념

세 가지 신호 (Three Signals)

신호
설명
사용 사례

Traces

분산 요청 추적

지연 시간 분석, 의존성 매핑

Metrics

수치 측정값

리소스 사용량, SLI/SLO

Logs

이벤트 기록

디버깅, 감사

spinner

핵심 컴포넌트

spinner

OpenTelemetry SDK

Auto-instrumentation (자동 계측)

코드 변경 없이 자동으로 계측을 추가합니다.

Java Auto-instrumentation

Python Auto-instrumentation

Node.js Auto-instrumentation

Manual Instrumentation (수동 계측)

세밀한 제어가 필요한 경우 수동으로 계측합니다.

Java Manual Instrumentation

Python Manual Instrumentation

OTEL Collector

아키텍처

spinner

Collector 설정

EKS 배포 패턴

DaemonSet 패턴

각 노드에 Collector를 배포하여 해당 노드의 모든 Pod에서 데이터를 수집:

Sidecar 패턴

각 애플리케이션 Pod에 Collector를 사이드카로 배포:

Gateway 패턴

중앙 집중식 Collector 클러스터:

Kubernetes Operator

OpenTelemetry Operator를 사용한 자동 계측:

Operator 설치

Instrumentation CR

자동 계측 주입

다중 백엔드 구성

하나의 Collector에서 여러 백엔드로 데이터 전송:

Best Practices

1. 리소스 속성 표준화

2. 샘플링 전략

3. 보안 고려사항

퀴즈

이 장에서 배운 내용을 테스트하려면 OpenTelemetry 퀴즈를 풀어보세요.

마지막 업데이트