OpenTelemetry와 Kafka를 활용한 안정적인 Observability 구축기
두줄요약
OpenTelemetry와 Kafka를 활용해 마이크로서비스 환경의 Observability 파이프라인을 구축한 사례를 소개했습니다.\n자동 계측, 중앙 Collector, Signal별 분리로 안정성과 확장성을 높였습니다.
핵심 내용
- 마이크로서비스 환경에서 전통적 모니터링 한계를 보완하기 위한 Observability 구축 사례
- OpenTelemetry로 Traces, Metrics, Logs를 표준화해 수집·전송하는 구조
- Gateway Collector와 Kafka를 중간 파이프라인으로 두어 안정성, 확장성, 벤더 종속성 완화 확보
구조와 흐름
- 애플리케이션 SDK의 자동 계측과 Operator 기반 주입으로 수집 자동화
- Gateway Collector에서 transform, batch 등으로 데이터 정제 후 Kafka로 전달
- Signal별 Collector가 Kafka 토픽을 소비해 Tempo, Mimir, Loki로 적재하고 Grafana로 통합 시각화
선택 이유
- Collector 중앙화로 공통 정책 관리와 애플리케이션 부담 감소
- Kafka로 백엔드 장애 시에도 데이터 유실 방지와 트래픽 완충 확보
- Signal별 Collector 분리로 독립 확장과 장애 격리 강화
주의할 점
- Kafka 최대 메시지 크기에 맞춘 batch, queue 설정 필요
- 대용량 로그 본문과 불필요한 리소스 속성 정제 필요
- Signal별 처리 특성 차이를 고려한 파이프라인 분리 필요
적용해볼 점
- OTel 표준 API 기반 계측으로 백엔드 교체 유연성 확보
- Kafka를 중간 버퍼로 활용한 비동기 관측 데이터 파이프라인 설계
- KEDA 같은 오토스케일링으로 소비자 처리량 변화 대응


