728x90
전파 전략
Open Tracing 의 전파 전략에 대해 알아보겠습니다.
오픈트레이싱에서 선택할수 있는 방법은 두가지가 있습니다. 이전 Brave모드와, W3C Trace Context 스팩입니다.
W3C Trace Context
traceparent: {version}-{trace-id}-{parent-id}-{trace-flags}
- traceparent (필수)
- 트레이스 구조 표현
- version
- trace ID
- span ID
- trace flages
trace-id 32자리 전체 트레이스를 식별하는 ID parent-id 16자리 현재 요청의 상위 span Id trace-flasgs 2자리 샘플링 정보 (01: 샘플링 OK, 00: 샘플링 NO ) - 트레이스 구조 표현
traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
tracestate: congo=BleGNlZWRzIHRohbCBwbGVhc3VyZS4
- tracestate(선택)
- 밴더-특화 정보를 추가로 담을수있는 선택적 헤더.
- 구현체간 상태 전파용
- Key=value 쌍으로 된 정보를 담을 수있다. (구분자 쉼표 )
tracestate: ot=1234567890abcdef,gcp=abcdefghijklmno
B3(Brave)
- 멀티헤더와 싱글헤더 방식을 취할 수있다.
Single Header
- 모든 필드를 하나의 b3 헤더 즉 ‘-’(하이픈)으로 연결한다.
#format
b3: {traceId}-{spanID}-{SampleingState}-{parentSpanId}
TraceId 전체 Trace ID (16 or 32 hex char)
| SpanId | 현재 span ID (16 hex char) |
| SamplingState | 샘플링 여부 |
| 0, 1, d |
sample
b3: 463ac35c9f6413ad48485a3953bb6124-a2fb4a1d1a96d312-1-0020000000000001
Multi Header
- 각 필드를 별도의 HTTP 헤더로 전송한다.
X-B3-TraceId 전체 트레이스 ID 이며, 최상위 요청 식별자이다.
| X-B3-SpanID | 현재 작업 고유 ID |
| X-B3-ParentSpanID | 상위 |
| X-B3-Sampled | 샘플링 여부 (0,1,true,false) |
| X-B3-Flags | 디버그 플래그로 1이면 항상 샘플링 한다. |
X-B3-TraceId: 463ac35c9f6413ad48485a3953bb6124
X-B3-SpanId: a2fb4a1d1a96d312
X-B3-ParentSpanId: 0020000000000001
X-B3-Sampled: 1
X-B3-Flags: 0
Observability 기대효과
문제 발생시 근본 원인에 대한 신속 분석 가능
- 로그, 메트릭, 트레이스를 통한 상관관계 분석으로 장애 원인에 대한 빠른 진단 가능
운영 효율성과 자동화 수준 향상
- 알림 및 리포트를 통한 devOps/SRE 업무 부담절감
서비스 안정성 및 가용성 확보
'모티터링도구' 카테고리의 다른 글
| matric / trace micrometer, OTLP 라이브러리 설명 (0) | 2025.09.03 |
|---|---|
| zipkin , jaeger, grafana tempo 특징 (2) | 2025.07.30 |
| Observability & Opentelemetry (3) | 2025.07.30 |
| Springboot Prometheus , micrometer architecture (0) | 2024.05.26 |
| docker 를 이용한 loki 와 promtail, grafana 설정 (docker compose) (0) | 2023.04.27 |