욱'S 노트

OpenTelemetry 개요 및 구성 본문

Programming/Micrometer

OpenTelemetry 개요 및 구성

devsun 2025. 3. 14. 10:19
반응형

마이크로미터를 시작하면서 집킨과 비교하면서 오픈텔레메트리(aka. Otel)에 대해서 간략하게 알아보았지만, 좀 더 자세히 살펴보겠다. 

CNCF ?

오픈텔레메트리는 비영리 리눅스 재단의 CNCF(Cloud Native Computing Foundation)의 주요 프로젝트이다. 

 

CNCF의 각 단계는 다음과 같으며,  오픈텔레메트리는 현재 인큐베이팅이다. 밑에 도표로 보면 인큐베이팅 프로젝트도 굉장한 프로젝트임을 알 수 있다.

  • Graduated - 안정적이고 널리 채택되었으며 제품 출시 준비가 완료된 것으로 간주되는 프로젝트로, 수천 명의 컨트리뷰터
  • Incubating - 소수의 사용자가 제품에서 성공적으로 사용하고 건전한 컨트리뷰터 풀
  • Sandbox - 아직 제품에서 널리 테스트되지 않은 실험적인 프로젝트로 첨단 기술에 대한 최신 프로젝트
  • Archived - 생명 주기가 끝나고 비활성된 프로젝트

OpenTelemetry 란?

오픈텔레메트리는 공식 사이트의 첫 문구는 아래와 같다. 

 

"High-quality, ubiquitous, and portable telemetry to enable effective observability"

"효과적인 관측을 가능하게 하는 고품질, 유비쿼터스, 무설치 원격 측정"

 

Otel은 트레이스, 메트릭스, 로그같은 텔레메트리 데이터를 생성, 추출, 수집을 위한 observability 프레임워크와 툴킷이다. 

오픈 소스이며 벤더와 툴에 구애받지 않으며, jaeger나 prometheus와 같은 오픈소스 툴을 포함하여 다양한 상업적 툴들과도 연동할 수 있다. Otel은 자체적인 observability 백엔드(stroage)와 프론트엔드(visualization)을 제공하지 않는다.

 

Observability 란?

Observability는 검사 결과를 바탕으로 시스템의 내부 상태를 이해하는 능력이다. 소프트웨어적으로 더 풀어서 얘기를 해보면 트레이스, 메트릭, 로그를 포함한 텔레메트리 데이터를 검사하여 시스템의 내부 상태를 이해할 수 있게 만드는 것이다.

 

OpenTelemetry 주요 컴포넌트

  • Specification - 모든 컴포넌트의 스펙
  • Standard Protocol - 텔레메트리 데이터의 형태를 정의
  • Language SDK - 언어별 스펙, API, 텔레메트리 데이터의 추출을 위한 구현체
  • Collector - 텔레메트리 데이터을 수집하며 처리하고, 추출을 위한 프록시

 

가장 일반적인 구성은 아래와 같은 각 어플리케이션에 SDK를 통해 텔레메트리 데이터를 측정하고, OTLP 프로토콜에 컬렉터로 전송된다. 컬렉터는 해당 프로토콜을 외부 백엔드로 처리 후 전송한다.

 

정리

오픈텔레메트리는 오픈센서스(OpenCensus)와 오픈트레이싱(OpenTracing)이라는 두 개의 독립적인 프로젝트가 통합되어 2019년에 탄생했다. 결국 각각 흩어져있던 텔레메트리 데이터의 스펙과 프로토콜을 표준화를 위해서 만들어진 프로젝트란 의미이다. 

마이크로미터로부터 학습을 시작하면서 생각이 정리되는 방향은 Spring Actuator는 스프링에 종속적인 Observability를 제공하고, 서비스 추상화의 대상으로 Observability를 바라보지만, Otel은 프로그래밍 언어, 밴더, 툴에 종속적이지 않는 방향을 지향한다. OpenTelemetry가 더 큰 표준을 지향한다는 생각이 들었다.

Opentelemetry Java 자체적으로 Spring boot starter를 제공하기도 한다.

 

앞으로는 다양한 방식으로 오픈텔레메트리를 활용하여, 텔레메트리 데이터를 수집 및 처리해보고 정리해보겠다.

 

참고자료 :

https://opentelemetry.io/docs/

 

Documentation

OpenTelemetry, also known as OTel, is a vendor-neutral open source Observability framework for instrumenting, generating, collecting, and exporting telemetry data such as traces, metrics, and logs. As an industry-standard, OpenTelemetry is supported by mor

opentelemetry.io

https://landscape.cncf.io/

 

CNCF Landscape

 

landscape.cncf.io

 

 

 

 

반응형