OpenTelemetry 2025: 도입 과제 극복을 위한 필수 가이드

I-IH 아바타

by

on


OpenTelemetry, 클라우드 시대 관측 가능성의 새로운 표준

클라우드 네이티브 환경이 대세가 되면서 IT 인프라 운영의 복잡성은 기하급수적으로 증가했습니다. 이러한 환경에서 시스템의 상태를 정확히 파악하고 문제를 빠르게 해결하는 것은 비즈니스 연속성에 직결되는 핵심 역량이죠. 바로 이 지점에서 OpenTelemetry가 등장했습니다. 다양한 분산 시스템에서 발생하는 텔레메트리 데이터, 즉 트레이스(Traces), 메트릭(Metrics), 로그(Logs)를 표준화된 방식으로 수집하고 내보내는 사실상의 표준으로 빠르게 자리매김하고 있습니다. 지난 몇 년간 OpenTelemetry는 CNCF 프로젝트 중 쿠버네티스(Kubernetes)에 이어 가장 활발하게 기여가 이루어지는 프로젝트로 성장하며, 많은 조직들이 관측 가능성(Observability) 전략의 핵심으로 채택하고 있습니다. 하지만 모든 혁신적인 기술이 그렇듯, OpenTelemetry의 도입과 전면적인 활용에도 여전히 해결해야 할 현실적인 과제들이 존재합니다. 이 글에서는 OpenTelemetry의 현재와 미래를 심층적으로 들여다보고, 실무에서 마주할 수 있는 주요 도전 과제들과 그에 대한 시사점을 함께 탐색합니다.

OpenTelemetry 도입의 현실: 만만치 않은 초기 복잡성

OpenTelemetry는 텔레메트리 데이터 수집을 표준화하여 어떤 관측 가능성 플랫폼에서도 데이터를 이해하고 활용할 수 있도록 설계되었습니다. 이 원대한 목표는 분명 매력적이지만, 실제 현장에서는 상당한 도입 및 관리 복잡성이 큰 허들로 작용합니다. 특히 수백 개의 마이크로서비스와 수천 개의 인스턴스로 이루어진 대규모 멀티클러스터 환경에서는 OpenTelemetry를 처음부터 제대로 구현하는 것이 쉬운 일이 아닙니다. Grafana Labs의 개발자 프로그램 디렉터인 테드 영(Ted Young)은 ObservabilityCon에서 “OpenTelemetry는 복잡하고 설치가 어렵다”고 지적하기도 했습니다.

실무에서 가장 흥미로운 점은, 개발자들이 트레이스 데이터를 위해 레이블(Label)과 속성(Attribute)에 대한 올바른 시맨틱 컨벤션(Semantic Conventions)을 지키는 데 어려움을 겪는다는 것입니다. 수많은 개발자가 각자 다른 방식으로 인스트루멘테이션(Instrumentation)을 하다 보면, 데이터 품질이 떨어지고 나중에 데이터 분석 시 중요한 상관관계를 파악하기 어렵게 됩니다. HTTP 프로토콜과 같은 표준에는 잘 정립된 컨벤션이 있지만, 메시징 큐나 오래된 원격 프로시저 호출(RPC)과 같은 비표준 프로토콜에서는 아직 명확한 컨벤션이 부족한 상황입니다. 이러한 격차는 옵저버빌리티 백엔드가 수집된 데이터를 자동으로 이해하고 ‘지식 그래프’ 같은 고급 기능을 제공하는 데 방해가 됩니다. 결국, OpenTelemetry는 장기적으로는 복잡성을 줄여주지만, 초기 도입 과정에서는 상당한 ‘삽질’과 학습 곡선이 필요한 것이 현실입니다.

프로메테우스와의 공존: 익숙함과 새로운 표준 사이의 줄타기

오랜 기간 메트릭 수집의 사실상 표준으로 자리매김해 온 프로메테우스(Prometheus)는 OpenTelemetry 도입 시 또 다른 고민거리를 안겨줍니다. 많은 조직에서 이미 안정적으로 운영 중인 프로메테우스 기반 시스템에 OpenTelemetry를 굳이 추가해야 하는가에 대한 의문이 많습니다. ‘잘 작동하는 것을 건드려서 고장 낼 필요는 없다’는 심리가 강하게 작용하는 것이죠. 실제로 초기에는 OpenTelemetry와 프로메테우스 간의 호환성 문제가 존재했습니다. 특히 프로메테우스 2.0 버전 이후 데이터 형식, 특히 히스토그램(Histogram)과 데이터 포워딩 프로토콜에서 설계 철학의 차이로 인한 충돌이 있었습니다.

하지만 다행히도 프로메테우스 커뮤니티와 OpenTelemetry 커뮤니티는 활발한 협업을 통해 이러한 문제를 해결해 나가고 있습니다. 프로메테우스는 이제 OpenTelemetry와 잘 통합되며, 전체 옵저버빌리티 에코시스템의 핵심 구성 요소로 남아 있습니다. 특히 프로메테우스 3.0 출시와 함께 OpenTelemetry를 통한 메트릭 수집이 과거보다 훨씬 개선되고 수월해졌습니다. 저의 실무 경험으로 미루어 보면, 기존 프로메테우스 레이블과 OpenTelemetry의 컨벤션을 조화시키는 작업이 꾸준히 진행되면서 데이터 구조와 연관성(collatability)이 크게 향상되었습니다. 두 시스템은 이제 경쟁 관계라기보다는 서로를 보완하며 더 강력한 관측 가능성을 제공하는 ‘오래된 부부’ 같은 관계로 발전하고 있습니다.

러스트(Rust) 언어 지원: 토키오 트레이싱(Tokio Tracing)과의 딜레마

OpenTelemetry가 모든 주요 프로그래밍 언어에서 메트릭, 로그, 트레이스를 지원하는 것을 목표로 하지만, 러스트(Rust)는 아직 이 부분에서 상대적으로 뒤처져 있습니다. 현재 러스트에 대한 OpenTelemetry 지원은 트레이스, 메트릭, 로그 모두 베타 단계에 머물러 있습니다. 이는 러스트가 다른 언어들에 비해 비교적 최근에 대규모로 채택된 언어라는 점도 있지만, 더 큰 이유는 러스트 생태계 내에 ‘토키오 트레이싱(Tokio tracing)’이라는 강력한 네이티브 툴링이 이미 널리 사용되고 있기 때문입니다.

토키오는 러스트의 비동기 런타임으로, 토키오 트레이싱은 러스트 개발자들에게 매우 익숙한 인스트루멘테이션 도구입니다. 문제는 OpenTelemetry가 요구하는 ‘분산 트레이싱’과 토키오 트레이싱의 작동 방식에 차이가 있다는 점입니다. 토키오 트레이싱은 스택 트레이싱(Stack Tracing)에 가깝고, 마이크로서비스 환경에서 여러 서비스에 걸친 요청 흐름을 추적하는 분산 트레이싱 기능을 natively 제공하지 않습니다. 이로 인해 OpenTelemetry 커뮤니티는 토키오 트레이싱을 러스트의 공식 솔루션으로 채택할지, 아니면 별도의 OpenTelemetry 네이티브 솔루션을 발전시킬지 논의하는 ‘어색한 상황’에 놓여 있습니다. 게다가 토키오 개발사는 옵저버빌리티 전문 회사가 아니어서, 토키오 트레이싱의 개발 모멘텀이 다소 부족하다는 지적도 있습니다. 이는 개발 언어별로 특화된 기존 솔루션이 있을 때, 새로운 표준이 어떻게 통합되어야 하는지에 대한 중요한 질문을 던집니다. 러스트 개발자들은 이미 익숙하고 잘 작동하는 도구를 선호하기 때문에, OpenTelemetry가 이들을 설득하고 원활하게 통합되기까지는 시간이 더 필요해 보입니다.

결론: OpenTelemetry의 지속적인 성장과 현명한 도입 전략

OpenTelemetry는 클라우드 시대 IT 인프라의 관측 가능성 표준으로서 그 중요성이 점점 더 커지고 있습니다. 하지만 앞서 언급했듯이, 도입의 복잡성, 기존 시스템(특히 프로메테우스)과의 호환성 문제, 그리고 특정 언어(러스트) 생태계와의 통합 딜레마 등 여러 도전 과제에 직면해 있습니다. 이러한 문제들은 OpenTelemetry가 아직 ‘진행 중인 작업(work in progress)’임을 분명히 보여줍니다.

그럼에도 불구하고 OpenTelemetry 커뮤니티는 이러한 문제들을 해결하기 위해 끊임없이 노력하고 있습니다. 프로메테우스와의 통합은 이미 상당한 진전을 보였고, 러스트 지원 또한 궁극적으로는 해결될 것으로 기대됩니다. 여기서 핵심은 OpenTelemetry를 도입하려는 조직들이 이러한 현실적인 제약과 발전 과정을 이해하고, 장기적인 관점에서 접근해야 한다는 점입니다. 초기에는 상당한 학습과 노력이 필요하지만, 일단 표준화된 텔레메트리 데이터를 구축하면 향후 옵저버빌리티 플랫폼을 유연하게 교체하고, 데이터를 더욱 효과적으로 활용하여 시스템 안정성과 효율성을 극대화할 수 있습니다. IT 인프라의 관측 가능성 전략을 수립할 때, OpenTelemetry가 제공하는 강력한 표준화의 이점과 함께, 현재 직면하고 있는 현실적인 과제들을 면밀히 검토하고 현명한 도입 계획을 세우는 것이 중요합니다.

참고: OpenTelemetry Adoption Update: Rust, Prometheus and Other Speed Bumps – The New Stack, 2025


답글 남기기