OpenTelemetry(OTel)란?
OpenTelemetry(OTel)는 애플리케이션으로부터 분산 트레이스, 메트릭, 로그를 수집하기 위한 API, 라이브러리, 에이전트를 제공하는 오픈소스 관측 가능성 프레임워크입니다. 이는 텔레메트리 데이터 수집 방식을 표준화하여 Jaeger, Prometheus, Datadog와 같은 다양한 관측 가능성 도구와 쉽게 통합될 수 있도록 설계되었습니다.
-
통합된 계측 방식: 특정 백엔드에 종속되지 않고 애플리케이션을 모니터링, 트레이싱, 관측 가능하게 하는 통합된 방법을 제공합니다.
-
확장성: 애플리케이션 및 인프라가 성장함에 따라 다양한 언어, 프레임워크, 도구로 구성된 서비스가 존재할 수 있는데, OTel은 이들에게 자체 계측 형식에 구애받지 않는 큰 이점을 제공합니다.
Rails 내장 도구와의 비교
Rails는 성능 로그, 예외, 데이터베이스 쿼리 시간과 같은 기본적인 텔레메트리 데이터를 수집할 수 있는 ActiveSupport::Notifications와 같은 내장 모니터링 및 로깅 도구를 제공합니다. 그러나 이러한 내장 도구에는 다음과 같은 한계가 있습니다.
-
제한된 범위: Rails 도구는 주로 Rails 프레임워크 자체에 중점을 두므로 분산 시스템의 다른 부분을 모니터링하기에는 불충분합니다.
-
비표준화: 트레이스 또는 메트릭에 대한 보편적인 표준을 따르지 않아 광범위한 관측 가능성 스택에 통합하기 어렵습니다.
-
분산 트레이싱 부족: 마이크로서비스 또는 서드파티 API를 다룰 때 매우 중요한 분산 트레이싱을 기본적으로 지원하지 않습니다.
반면, OpenTelemetry는 다음과 같은 이점을 제공합니다.
-
분산 트레이싱: 여러 서비스, 데이터베이스 또는 외부 API에 걸쳐 요청을 추적하여 요청 수명 주기에 대한 완전한 시야를 확보할 수 있습니다.
-
표준화된 데이터 수집: 표준화된 프로토콜을 따르므로 다양한 관측 가능성 백엔드로 데이터를 쉽게 전송할 수 있습니다.
-
다중 언어 지원: 다국어 환경에서 작업하는 경우, OpenTelemetry는 다양한 언어 및 프레임워크에서 원활하게 작동합니다.