📡 Trace Context 전파 W3C traceparent
서비스 간 호출 시 이 헤더 하나로 trace_id를 이어받는다.
# 요청 헤더
traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
│ └─ trace_id (32자) └─ span_id (16자)
# 다음 서비스로 넘어갈 때
# trace_id는 그대로, span_id만 새로 발급
new_span = tracer.start_span(
"weather-api-call",
parent=incoming_span_id
)
🏛️ 관측 가능성의 세 기둥
Logs — "무슨 일이 있었나" 이산적 이벤트 기록
Metrics — "지금 상태가 어떤가" 집계된 수치(CPU, QPS)
Traces — "요청 하나가 어디를 거쳤나" 인과관계 있는 span 트리
셋은 서로를 대체하지 않는다. 메트릭으로 이상 징후를 감지하고,
트레이스로 어느 span이 느린지 좁힌 뒤, 로그로 원인을 확인하는 식으로 함께 쓴다.