STK-OBS-06 aggregator OTel Java agent 계측

작업 내용

aggregator(Spring BFF, :8090)를 OTel Java agent로 자동계측한다(ADR-004). aggregator는 FE 진입점이자 backend·ml로의 reverse-proxy/병렬 호출 지점이라 분산 trace 연결의 허브다.

롤백: OTEL_SDK_DISABLED=true 또는 agent 제거. 코드 무변경.

다이어그램

처리 흐름

sequenceDiagram
    participant FE as frontend
    participant AGG as aggregator(agent)
    participant BE as backend
    participant ML as ml
    FE->>AGG: HTTP (traceparent)
    AGG->>BE: RestClient (전파)
    AGG->>ML: RestClient (전파)
    AGG-->>FE: merged response
    AGG->>COL["Collector"]: OTLP span

클래스/계측 의존

flowchart LR
    AGENT["OTel Java agent"]
    RC["RestClient"]
    CORO["코루틴 병렬 호출"]
    AGENT --> RC
    AGENT --> CORO
    AGENT --> COL["→ Collector"]

테스트 케이스

  • frontend→aggregator→backend 요청이 동일 trace_id로 연결된다.
  • aggregator가 backend·ml을 병렬 호출할 때 두 client span이 같은 부모 trace에 붙는다.
  • reverse-proxy 패스스루 요청도 trace에 포함된다.
  • Collector 미기동 시 aggregator 프록시 동작은 정상이다.
  • 코루틴 컨텍스트 전환에도 trace context가 유실되지 않는다.