통합 모니터링 및 트레이싱 환경 구축 - Genie-Uss/genieus GitHub Wiki

모니터링 스택 선택

Prometheus + Grafana 선택 이유

  • Prometheus는 다수의 시계열 데이터를 효율적으로 수집/저장할 수 있으며, Kubernetes, Docker 기반 환경에 최적화된 Exporter 생태계를 제공합니다.
  • 오픈소스 기반으로 라이선스 비용 없이 구축이 가능하며, 확장성과 유연성이 뛰어났습니다.
  • Grafana는 Prometheus와의 자연스러운 통합을 지원하며, 사용자 정의가 가능한 대시보드 템플릿과 알람(Alerts) 설정 기능을 통해 시각화 및 운영 편의성을 대폭 향상시킬 수 있었습니다.

Zipkin + Micrometer Tracing 선택 이유

  • MSA 환경에서 요청 흐름을 추적하기 위해 다양한 트레이싱 솔루션(예: Jaeger, OpenTelemetry 등)을 검토했습니다.
  • Zipkin은 상대적으로 설정이 간단하고, Micrometer와의 기본 연동이 가능하여 Spring Boot 기반 서비스에 자연스럽게 녹여넣을 수 있었습니다.
  • 시스템 복잡도가 낮고 트래픽이 빠르게 증가할 수 있는 환경에 적합하여 선택했습니다.

로그 수집 및 저장

Loki + Promtail 선택 이유

  • 기존 EFK(Elasticsearch-Fluentd-Kibana) 스택 대비 설치 및 운영 비용이 가볍고, Docker/Kubernetes 환경에 최적화된 로그 수집을 지원합니다.

  • Promtail은 별도의 복잡한 설정 없이 Docker 컨테이너의 표준 출력(stdout/stderr) 을 수집할 수 있어,

    로그 수집 인프라를 최소한으로 유지할 수 있었습니다.

  • Loki는 로그를 인덱싱하지 않고 메타데이터 기반 검색을 지원하여, 저장소 비용을 절감하면서도 빠른 로그 조회가 가능했습니다.

  • Grafana와의 통합이 기본 지원되기 때문에, 하나의 통합 대시보드에서 메트릭, 트레이싱, 로그를 한눈에 모니터링할 수 있는 Observability 환경을 완성할 수 있었습니다.


✍🏻 요약

항목 선택 이유
Prometheus + Grafana 오픈소스 기반, 시계열 데이터 최적화, 시각화 및 알람 강화
Zipkin + Micrometer Spring Boot 연동 최적, 간단한 설정, 분산 트랜잭션 추적
Loki + Promtail 경량화된 설치, 도커 친화적, Grafana 통합 지원, 비용 절감