카테고리 없음

오픈텔레메트리의 이해

AKA.DM 2025. 4. 4. 06:56
반응형

오픈텔레메트리란?

 

애플리케이션 관측성을 높이기 위한 오픈 소스 프레임워크

트레이스, 메트릭, 로그를 수집

 

트레이스?

분산 시스템에서 요청(Requset)의 흐름을 추적하는 데이터

- 특정 요청이 여러 서비스와 인프라를 거치면서 어떻게 처리되는지 분석

- 구성요소 : 트레이스ID, 스펜ID, 스펜

1. 트레이스ID : 하나의 요청을 식별하는 고유 ID

2. 스펜ID : 특정 작업(span)을 식별하는 고유 ID

3. 스펜(span) : 특정 작업을 식별하는 ID

 

트레이스ID vs SPANID

- 트레이스 ID : 하나의 요청이 여러 서비스를 걸쳐 실행될때 하나의 트레이스 아이디를 사용함

- 스팬 ID : 하나의 트레이스ID에 여러 스팬이 존재함

 

Trace ID: 4bf92f3577b34da6a3ce929d0e0e4736
├── Span ID (Root): 00f067aa0ba902b7 (API Gateway)
    ├── Span ID: a3c19a2b3f0d4c1e (User Service)
    ├── Span ID: f87c65a0bcdb4d5e (Order Service)
        ├── Span ID: 9df2c7d31abc0123 (Payment Service)

 

 

정리

 

  트레이스ID 스펜ID
역할 하나의 요청(Trace) 전체 식별 개별 작업(Span) 식별
길이 16바이트 (128비트) 8바이트 (64비트)
범위 트랜잭션 전체에 걸쳐 공유됨 특정 작업(Span) 내에서만 사용됨
관계 트레이스 내 모든 스팬이 같은 트레이스 ID를 공유 각 스팬은 고유한 스팬 ID를 가짐

 

메트릭?

시간 기반 데이터이며, 특정 시점에 측정된 값을 저장

정량적 표현이며, cpu 사용량, 요청수, 응답수 같은 정보를 저장

 

- 구성요소

1. 메트릭 이름 : 측정하는 값의 이름 http_request_total 등

2. 값 : 메트릭의 수치 95% cpu사용율 10ms 응답시간 등

3. 레이블/태그 : 메트릭을 세부적으로 구분하는 키-값 데이터 {method="GET", status="200"} 등

4. 타임스탬프 : 해당 메트릭이 수집된 시간

 

- 메트릭의종류 

메트릭 종류 설명 예제
Counter (카운터) 증가만 가능 (Reset 전까지 감소 X) http_requests_total (총 HTTP 요청 수)
UpDownCounter (업다운 카운터) 증가 & 감소 가능 active_users (현재 접속자 수)
Histogram (히스토그램) 값의 분포를 측정 (최소, 최대, 평균) request_duration (응답 시간 분포)
Gauge (게이지) 특정 시점의 상태값 cpu_usage (현재 CPU 사용량)

 

 

로그?

이벤트 발생 기록을 남기는 데이터로 디버깅, 감사, 이벤트 분석 등에 사용

 

- 구성 요소

1. 타임스탬프 : 로그발생시

2. 레벨 : 로그 심각도(info, warn 등)

3. 메시지 : 다양한 이벤트 설명

 

최종정리

유형 목적 주요정보 예제
트레이스 요청의 흐름을 추적 트레이스아이디, 스펜아이디 api호출 시간 측정
메트릭 성능 모니터링 카운터, 게이지, 히스토그램, 업다운카운터 cpu사용률75%
로그 이벤트 기록 타임스탬프, 레벨, 메시지 db연결 실패 로그
반응형