imqa.document

OpenTelemetry

What is OpenTelemetry

Summary

OpenTelemetry가 무엇이고 무엇이 아닌지에 대한 간단한 설명입니다.

    이 문서는 IMQA SDK의 이해를 돕기 위해 OpenTelemetry 공식문서를 번역하였습니다.

OpenTelemetry란 무엇인가?

OpenTelemetry는:

  • 추적 , 메트릭 , 로그 와 같은 원격 측정 데이터를 생성하고 관리하도록 설계된 Observability 프레임워크 및 툴킷 입니다 .
  • 공급업체(vendors)나 도구(tools)에 구애받지 않으므로 JaegerPrometheus 와 같은 오픈소스 도구는 물론, 상용 제품을 포함한 광범위한 Observability 백엔드와 함께 사용할 수 있습니다 .
  • Jaeger, Prometheus 또는 다른 상용 공급업체와 같은 관찰 가능한 백엔드가 아닙니다.
  • 원격 측정의 생성, 수집, 관리 및 내보내기에 중점을 둡니다. OpenTelemetry의 주요 목표는 언어, 인프라 또는 런타임 환경에 관계없이 애플리케이션이나 시스템을 쉽게 계측할 수 있다는 것입니다. 원격 측정의 저장 및 시각화는 의도적으로 다른 도구에 맡겨집니다.

관찰가능성이란 무엇인가?

관찰 가능성은 출력을 조사하여 시스템의 내부 상태를 이해하는 능력입니다. 소프트웨어 맥락에서 이는 추적, 메트릭 및 로그를 포함하는 원격 측정 데이터를 조사하여 시스템의 내부 상태를 이해할 수 있음을 의미합니다.

시스템을 관찰 가능하게 만들려면 계측 되어야 합니다 . 즉, 코드는 traces , metrics , 또는 logs 를 방출해야 합니다 . 계측된 데이터는 그런 다음 관찰 백엔드로 전송되어야 합니다.

왜 OpenTelemetry인가?

클라우드 컴퓨팅, 마이크로서비스 아키텍처의 등장과 점점 복잡해지는 비즈니스 요구 사항에 따라 소프트웨어와 인프라에 대한 관찰 가능성 에 대한 필요성은 그 어느 때보다 커졌습니다.

OpenTelemetry는 두 가지 핵심 원칙을 따르는 동시에 관찰 가능성에 대한 필요성을 충족합니다.

  1. 당신은 당신이 생성하는 데이터를 소유합니다. 공급업체에 대한 종속성(vendor lock-in)은 없습니다.
  2. 단일 API와 규칙 세트만 배우면 됩니다.

두 가지 원칙을 모두 결합하여 오늘날의 현대 컴퓨팅 세계에서 필요한 유연성을 팀과 조직에 부여합니다.

자세히 알아보려면 OpenTelemetry의 사명, 비전, 가치를 살펴보세요 .

주요 OpenTelemetry 구성 요소

OpenTelemetry는 다음과 같은 주요 구성 요소로 구성됩니다.

  • 모든 구성 요소에 대한 사양
  • 원격측정 데이터의 형태를 정의하는 표준 프로토콜
  • 일반적인 원격 측정 데이터 유형에 대한 표준 명명 체계를 정의하는 의미 규칙
  • 원격 측정 데이터를 생성하는 방법을 정의하는 API
  • 원격 측정 데이터의 사양, API 및 내보내기를 구현하는 언어 SDK
  • 공통 라이브러리 및 프레임워크에 대한 계측을 구현하는 라이브러리 생태계
  • 코드 변경 없이 원격 측정 데이터를 생성하는 자동 계측 구성 요소
  • 원격 측정 데이터를 수신, 처리 및 내보내는 프록시인 OpenTelemetry Collector
  • Kubernetes용 OpenTelemetry Operator , OpenTelemetry Helm Charts , FaaS용 커뮤니티 자산 과 같은 다양한 기타 도구

OpenTelemetry는 기본적으로 관찰성을 제공하기 위해 OpenTelemetry가 통합된 다양한 라이브러리, 서비스 및 앱 에서 사용됩니다.

OpenTelemetry는 수많은 공급업체 의 지원을 받고 있으며 , 이 중 많은 공급업체가 OpenTelemetry에 대한 상업적 지원을 제공하고 프로젝트에 직접 기여하고 있습니다.

확장성

OpenTelemetry는 확장 가능하도록 설계되었습니다. 확장 가능한 방법에 대한 몇 가지 예는 다음과 같습니다.

  • 사용자 정의 소스의 원격 측정 데이터를 지원하기 위해 OpenTelemetry Collector에 수신기 추가
  • SDK에 사용자 정의 계측 라이브러리 로드
  • 특정 사용 사례에 맞춰 SDK 또는 Collector 배포 생성
  • 아직 OpenTelemetry 프로토콜(OTLP)을 지원하지 않는 사용자 지정 백엔드에 대한 새 내보내기 생성
  • 비표준 컨텍스트 전파 형식에 대한 사용자 정의 전파기 생성

대부분 사용자는 OpenTelemetry를 확장할 필요가 없더라도, 이 프로젝트는 거의 모든 수준에서 이를 가능하게 하도록 설계되었습니다.

역사

OpenTelemetry는 두 개의 이전 프로젝트인 OpenTracingOpenCensus가 합병된 결과인 Cloud Native Computing Foundation(CNCF) 프로젝트입니다 . 두 프로젝트 모두 동일한 문제, 즉 코드를 계측하고 원격 측정 데이터를 Observability 백엔드로 보내는 방법에 대한 표준이 부족하다는 문제를 해결하기 위해 만들어졌습니다. 두 프로젝트 모두 독립적으로 문제를 완전히 해결할 수 없었기 때문에 두 프로젝트는 합병하여 OpenTelemetry를 형성하고 각자의 강점을 결합하여 단일 솔루션을 제공했습니다.

현재 OpenTracing이나 OpenCensus를 사용하고 있다면 마이그레이션 가이드 에서 OpenTelemetry로 마이그레이션하는 방법을 알아볼 수 있습니다 .