OpenTelemetry/번역

[Concepts] Instrumentation / Code-base

justbagmeg 2024. 4. 14. 20:38
 

Code-based

Learn the essential steps in setting up code-based instrumentation

opentelemetry.io

Import the OpenTelemetry API and SDK

먼저 서비스 코드에 OpenTelemetry를 import해야 한다. 만약 라이브러리나 실행 가능한 바이너리에 의해 사용될 것으로 예상되는 다른 컴포넌트를 개발하는 경우, API에만 의존해야 한다. 만약 결과물이 독립 프로세스나 서비스인 경우라면 API와 SDK 모두에 의존해야 한다. OpenTelemetry API와 SDK에 대한 자세한 정보는 specification을 참조하자.

 

Configure the OpenTelemetry API

매트릭이나 트레이스를 생성하기 위해서는 먼저 tracer 제공자(provider)나 meter 제공자를 생성해야 한다. 일반적으로 SDK는 이러한 객체들에 대한 단일 기본 제공자를 제공하도록 권장한다. 그 후 해당 제공자로부터 tracer나 meter 인스턴스를 갖오고 이름과 버전을 지정한다. 여기서 선택하는 이름은 무엇이 계측되는지 식별할 수 있어야 한다. 예를 들어, 라이브러리를 작성하고 있다면 라이브러리의 이름으로 명명해야하며 (예: com.example.myLibrary) 이 이름은 생성된 모든 스팬이나 매트릭을 네임스페이스화 한다. (즉, 이 이름아래 포함된다) 또한, 라이브러리나 서비스ㅢ 현재 버전에 해당하는 버전을 문자열(예: semver:1.0.0)을 제공하는 것이 권장된다.

 

Configure the OpenTelemetry SDK

서비스 프로세스를 만드는 경우, 텔레메트리 데이터를 분석 백엔드로 내보내기 위해 SDK를 적절한 옵션으로 구성해야 한다. 이 구성은 설정 파일이나 다른 매커니즘을 통해 프로그래밍적으로 처리하는 것이 권장된다. 프로그래밍 언어 별 튜닝 옵션도 있으니 활용하자.

 

Create Telemetry Data

API와 SDK를 구성했다면 제공자(provider)를 통해 얻은 tracer와 meter를 통해 트레이스와 매트릭 이벤트를 자유롭게 생성할 수 있다. 종석성에 대한 계측 라이브러리를 사용하고 - 자세한 내용은 registry 혹은 사용중인 언어의 레포를 확인하자.

 

Export Data

텔레메트리 데이터를 생성한 후에는 이를 어딘가 전송하고 싶어질 것이다. OpenTelemetry는 프로세스에서 직접 또는 OpenTelemetry 컬렉터를 통해 프록시하는 방식으로 백엔드로 데이터를 보내는 두 가지 주요 방법을 지원한다.

 

프로세스 내부(In-process)에서 직접 내보내는 것은 하나 이상의 익스포터(exporter)를 import 하여 의존해야하며 이 것들은ㄴ OpetnTelemetry의 인메모리 스팬과 메트릭 객체를 Jaeger나 Prometheus와 같은 텔레메트리 분석 도구에서 사용할 수 있는 적절한 형식으로 변환하는 라이브러리이다. 또한 OpenTelemetry는 OTLP라는 와이어 프로토콜을 지원하며, 이는 모든 OpenTelemetry SDK에서 지원한다. 이 프로토콜은 데이터를 OpenTelemetry Collector로 전송하는데 사용할 수 있으며, collector는 프록시나 서비스 인스터스의 사이드카나 또는 별도의 호스트에서 실행할 수 있는 독립 실행 바이너리 프로세스다. Collector는 선택한 분석 도구로 데이터를 전달하고 내보내도록 구성할 수 있다.

 

Jaeger나 Prometheus와 같은 오픈 소스 도구뿐만 아니라, 더 많은 회사들이 OpenTelemetry에서 텔레메트리 데이터를 수집하는 것을 지원하고 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'OpenTelemetry > 번역' 카테고리의 다른 글

[Specs] - OTel 1.32.0 / Common concepts  (0) 2024.04.14
[Specs] - OTel 1.30.0 / Overview  (0) 2024.04.14
[Concepts] Observability Primer  (0) 2024.04.14
[Demo] Architecture  (0) 2024.04.12
[OTLP Spec] 1.0.0  (1) 2024.01.03