STK-OBS-09 Kafka 샘플 produce→consume trace 검증
작업 내용
message-consume 추적(R-02)을 입증하기 위해 backend에 검증 전용 최소 샘플 produce→consume 경로를 둔다(ADR-007). 도메인 Kafka 적용은 범위 밖이다.
- 검증 전용 토픽 1개 + 샘플 이벤트 producer/consumer(
@Profile로 격리하거나 trigger 엔드포인트). - OTel Java agent(STK-OBS-05)가 Kafka client를 자동계측해 메시지 헤더에 traceparent를 주입·복원, producer span과 consumer span이 동일 trace로 연결되는지 확인.
롤백: 샘플 producer/consumer·토픽 제거. 검증 코드는
@Profile("otel-poc")로 격리해 프로덕션 경로에 영향 없음.
다이어그램
처리 흐름
sequenceDiagram participant P as Producer(backend) participant K as Kafka participant C as Consumer(backend) participant COL as Collector P->>K: produce(traceparent 헤더) K->>C: deliver(헤더 보존) C->>C: consume span을 부모 trace에 연결 P->>COL: producer span C->>COL: consumer span
클래스 의존
flowchart LR TRIG["sample trigger"] PROD["SampleEventProducer"] CONS["SampleEventConsumer"] AGENT["OTel Java agent"] TRIG --> PROD PROD --> CONS AGENT --> PROD AGENT --> CONS
테스트 케이스
- 샘플 이벤트 produce→consume 1건이 동일 trace에 producer·consumer span으로 연결된다.
- consumer span의 부모가 producer span이다(traceparent 헤더 전파 확인).
- consume 지연(latency)이 span에 측정되어 UI에 표시된다.
- kafka-exporter consumer lag 메트릭이 함께 수집된다.
otel-poc프로파일이 비활성이면 샘플 경로가 로드되지 않는다(프로덕션 격리).