[FE-02] BFF fetch traceparent 전파 검증

작업 내용 (설계 의도)

변경 사항

근거: design-fe-web.md “traceparent 전파 흐름” · BE TDD traceparent 규약. FR-10.

BFF가 BE를 호출할 때 traceparent(W3C Trace Context)를 전파해 BE(Micrometer Tracing, isObservationEnabled)가 같은 trace로 합류하게 한다.

  • lib/server/be-client.ts(검증/미세수정): @vercel/otel의 global fetch 자동 계측이 나가는 요청에 traceparent를 주입하는지 확인. 자동 계측이 미치지 않는 경로가 있으면 활성 span 컨텍스트에서 헤더가 실리도록 보정(수동 traceId 생성은 금지 — 계측 컨텍스트 사용).
  • 대상 Route가 Node 런타임인지 확인(Edge 미사용).

롤백: OTLP endpoint 언셋 시 계측 no-op(전파 무영향).

의존

  • FE-01 (OTel 등록 — 계측 컨텍스트 전제)

다이어그램

처리 흐름

sequenceDiagram
    participant W as Next BFF
    participant B as BE(Spring)
    W->>W: 활성 span 컨텍스트
    W->>B: fetch (traceparent 헤더)
    B->>B: traceparent로 trace 합류
    B-->>W: 응답(동일 trace)

테스트 케이스

  • 활성 span 컨텍스트 하에서 beClient fetch 요청 헤더에 traceparent가 존재한다.
  • OTLP 미설정 상태에서도 beClient 요청이 정상 성공한다(계측 no-op).
  • 기존 Authorization(쿠키)·timeout 동작이 유지된다(회귀 없음).
  • 대상 Route Handler가 Node 런타임으로 동작한다.