모니터링 스택
- OpenTelemetry
- 관측 가능성을 위한 프레임워크
- 로그, 메트릭, 트레이스 데이터를 수집하여 직접 데이터를 저장, 시각화 하는 것이 아니라 Jaeger, Prometheus 등의 백엔드로 데이터를 전송하는 표준화된 방식 제공
- Jaeger
- 분산 트레이싱 시스템
- 주로 복잡한 마이크로서비스 환경을 모니터링 할 때 사용되며, 하나의 요청 전체를 추적한 기록 trace, 단위 구간인 span과 관련된 데이터를 제공하고 시각화 가능
- Prometheus
- 시계열 기반의 메트릭 수집, 모니터링 시스템
- 시간에 따라 변화하는 데이터를 분석하고, 여러 데이터 소스를 통해 카운팅, cpu 사용률 등 서버 운영에 필요한 데이터를 수집, 저장
- Loki
- 경량 로그 수집, 관리 시스템
- 로그의 메타데이터(라벨)만 인덱싱하여 대규모 시스템에서 효율적으로 로그를 저장하고 검색 가능
- Grafana
- 데이터 시각화 및 모니터링 도구
- 여러 데이터 소스에서 수집한 데이터를 대시보드로 만들어 보기 쉽게 만들 수 있고 알림 기능 등을 지원
도입 배경
- 도메인들 사이의 결합을 최소화 하기 위해 WebClient, MessageQueue 기술을 사용함에 따라 요청의 흐름을 쉽게 파악하는데 어려움이 있기 때문에 트레이싱 분산 추적 모니터링 시스템 필요
- 분산 추적을 통해 문제 발생 지점을 특정할 수는 있으나 정확한 원인 파악을 위해서는 로그 모니터링 요구
- AWS EC2 가상서버 환경에서 서비스를 운영할 계획이기 때문에 운영 중 리소스 및 성능을 모니터링 하기 위해 메트릭을 수집이 필수적
기대 효과
- 통합 모니터링 시스템
- 모든 모니터링 지표를 각각의 UI가 아닌 한 곳에서 관찰 가능
- 완전한 관찰 가능성 확보
- 메트릭, 로그, 트레이스 세가지 핵심 관찰 가능성(Observability)을 모두 지원
- 다각도 분석, 상호 연관성 분석을 통한 장애 원인 파악 및 해결 가능
- 오픈 소스 기반 유연성
- 특정 벤더에 소속되지 않음
- 관련 자료, 문서 검색에서 유리
- 플러그인, 확장 기능을 활용 가능
- 장기적인 유지보수 및 확장에 용이
- 비용 효율성
- 상용 모니터링 솔루션과 비교하여 도입 및 운영 비용이 낮음
- 필요에 따라 구성 요소 선택적으로 확장 가능