OpenTelemetry 작동 성공, 복잡한 이유는?
1 week ago
9
OTel?
- **OpenTelemetry (OTel)**은 관측 가능성 프레임워크 및 도구 모음임.
- 기존 도구로는 Prometheus(메트릭), Logstash(로그), OpenTracing(분산 추적)이 있음.
- OTel은 메트릭, 로그, 추적이라는 세 가지 신호를 표준화하고, OpenTelemetry Protocol (OTLP), OpenTelemetry Collector, 다양한 언어 SDK를 제공함.
No strangers to observability
- IPF는 이미 관측 가능성에 대한 경험이 있음.
- 다양한 환경에서 작동할 수 있도록 추상화된 기본값을 제공해야 함.
- OTel 이전에는 Prometheus 메트릭을 기본으로 사용했음.
Easy wins: logs and metrics
- 로그와 메트릭은 OTel로 쉽게 전환 가능했음.
- 추적은 고객들에게 익숙하지 않음.
Tracing my headache
- 분산 시스템에서의 추적은 특정 호출과 트랜잭션을 연결하는 정보 전달이 필요함.
- OTel은 여러 표준을 지원해야 하며, OpenTracing과의 호환성 문제 발생.
- Lightbend Telemetry는 OpenTelemetry 로그와 메트릭을 지원하지만, 추적은 지원하지 않음.
Clash of APIs
- IPF는 Spring과 Akka를 사용하며, OTel 사용 시 두 API 간의 호환성 문제 발생.
- OTel과 OpenTracing 간의 추적 ID 전파 문제로 인해 두 시스템이 서로 인식하지 못함.
Into the weeds
- OTel과 Lightbend Telemetry는 Java Agent를 사용하여 특정 클래스의 메서드 호출을 추적함.
- Jaeger와 OTel 간의 호환성 문제를 해결하기 위해 수동으로 OTel 컨텍스트를 Jaeger SpanContext로 변환하여 문제 해결.
Reflections
- Lightbend Telemetry를 OTel API로 전환하는 것은 큰 작업이 될 것임.
- OTel 프로젝트는 표준화를 시도하며 좋은 오픈 소스 프로젝트로 평가됨.
- Akka가 스레드 간에 추적 컨텍스트를 올바르게 전달할 수 있을지에 대한 우려가 있음.
-
Homepage
-
Tech blog
- OpenTelemetry 작동 성공, 복잡한 이유는?