HTTP 요청 수신
└─ OTel Instrumentation
├─ Trace 생성
├─ traceId / spanId 생성
├─ Context에 저장
└─ 다음 처리로 전달
Trace (하나의 요청)
├─ Span: HTTP Server
│ ├─ Span: DB Query
│ └─ Span: Redis
└─ Span: HTTP Client (다른 서비스)
traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
X-Trace-Id를 만들 필요가 없음| 역할 | 담당 |
|---|---|
| 분산 트레이싱 | OpenTelemetry |
| 로그 상관관계 | MDC |
| 시각화 | Tempo / Jaeger |
| 로그 검색 | NHN Log & Crash |
OTel Context
↓
Logback MDC Bridge
↓
로그에 traceId 출력
traceId, spanId 자동으로 MDC에 주입됨%X{trace_id} 가능즉, traceId를 OTel이 만들고, MDC는 로그 출력을 위해 자동으로 받아쓴다