DevOps

Otel(OpenTelemetry)

YoonJong 2026. 5. 5. 21:10
728x90
반응형

  전체 흐름 한줄 요약
  Spring Boot Pod
    → OTel Java Agent (자동 계측)
    → OTel Collector (Shared, 중앙 수집/필터)
    → Traces: Tempo / Metrics: Thanos / Logs: Loki(S3)
    → Grafana (한 곳에서 전부 시각화)

 

애플리케이션에서 발생하는 3가지 데이터를 수집하는 표준 프레임워크를 먼저 본다.

데이터 설명 예시
Traces API 요청의 전체 흐름 추적 /order 호출 → member 조회 → DB 쿼리 경로
Metrics 숫자로 표현되는 지표 JVM 힙 사용량, HTTP 요청 수, 응답시간
Logs 로그에 trace ID 자동 연결 에러 로그가 어느 요청에서 발생했는지 추적

 

지금 사내 백에서는 spring boot 를 사용하고 있다.

  [Spring Boot App]
        │
        │ Java Agent (자동 계측) : OTel Operator가 init container로 주입
        ▼
  [OTel SDK] ──── gRPC ────▶ [OTel Collector (중앙수집기)] 
                                (otel.dev.shared.internal.riman.com:4317)
                                        │
                             ┌──────────┬──────────┐
                             ▼          ▼          ▼
                          [Tempo]   [Thanos]    [Loki]
                         (Traces)  (Metrics)   (Logs→S3)
                             │          │          │
                             └──────────┴──────────┘
                                        ▼
                                    [Grafana]

 

Agent가 JVM에 붙어서 spring의 HTTP요청, DB 쿼리 등을 자동으로 가로채서 데이터를 수집한다.

 

- 각각의 pod에 Otel이 모두 설치된다.

- Otel Operator는 EKS 당 1개 (Helm으로 설치) 

 ㄴ pod 생성 시 annotation 감지해서 Java Agent 자동 주입하는 역할

- 각각의 pod에서 직접 Otel Collector에 metrics / log / trace 보냄.

- OTel Collector → Loki (Shared EKS) → S3 버킷 (shared-loki-dev-logs) 에 저장
  Grafana는 S3 직접 연결이 아니라 Loki 데이터소스로 연결 → Loki가 S3에서 읽어서 반환

- Grafana로 표출

 

-- 

 

1. Spring boot App에서 metrics 발생 

 ㄴ JVM이 자동으로 매트릭 발생 시킴

2. Otel Java Agen가 매트릭을 수집해서 전송 

 ㄴ Otel Operator가 pod 생성 시 자동으로 agent 주입

 

Java Agent -> gRPC 연결 -> OTLP 형식으로 데이터 직렬화 -> OTel Colletor로 전송

OTLP : OpenTelemetry Protocol

 

3. OTel Collector가 받아서 처리 

 ㄴ 중간 수집기 

 

4. Thanos가 메트릭 장기 저장

 ㄴ Prometheus 메트릭을 장기 보관하는 스토리지 (1년)

 ㄴ 기본으로 로컬 디스크에 저장하는데 15일간 저장 -> 장기 데이터 볼 수 없음

 

5. Grafana에서 쿼리해서 시각화

 ㄴ 대시보드에서 Thanos를 데이터 소스로 연결해서 PromQL로 조회

 

데이터 OTel Collector 저장소 Grafana 데이터 소스
메트릭 prometheusremotewrite Thanos dev Thanos(Prometheus)
로그 otlphttp Loki dev Loki
트레이스 otlp Tempo dev Tempo

 

728x90
반응형