STK-OBS-06 aggregator OTel Java agent 계측
작업 내용
aggregator(Spring BFF, :8090)를 OTel Java agent로 자동계측한다(ADR-004). aggregator는 FE 진입점이자 backend·ml로의 reverse-proxy/병렬 호출 지점이라 분산 trace 연결의 허브다.
- agent +
OTEL_SERVICE_NAME=aggregator, Collector 엔드포인트, W3C propagator. - RestClient reverse-proxy 호출(Reverse Proxy 구현 방식 선택)과 코루틴 병렬 호출(Aggregator의 Backend·ML 호출 방식 선택)에 traceparent가 자동 전파되는지 확인.
롤백:
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가 유실되지 않는다.