MongoDB 커넥션 풀 모니터링과 알림 시스템 구축기
백엔드
MongoDB 커넥션 풀 모니터링과 알림 시스템 구축기
두줄요약
MongoDB 커넥션 풀 사용률이 80%를 넘을 때 실시간 알림이 가도록 모니터링 시스템을 구축했습니다. 이를 통해 이벤트성 트래픽 급증을 사전에 감지하고 풀 설정도 조정했습니다.
문제 상황
- 트래픽 급증 시 MongoDB DocumentDB 커넥션 풀이 부족할지 사전에 확인할 수 없는 상태
- 슬로우 쿼리 모니터링 이후 다음 병목으로 커넥션 풀이 드러났지만, 외부에서 상태 관측이 어려운 블랙박스 구조
원인 분석
- MongoDB 드라이버의 커넥션 풀 상태를 JMX로는 볼 수 있으나 실시간 스파이크 포착에 한계
- 임계치 초과를 자동 알림으로 연결하지 못해 장애 전에 대응하기 어려운 구조
해결 방법
- ConnectionPoolListener 구현으로 체크아웃/체크인 이벤트를 실시간 수집하고 AtomicInteger로 사용량 카운팅
- 사용률 80% 초과 시 WARN 로그를 남기고, OpenSearch Alerting과 Slack으로 알림 전송
- 운영 데이터를 바탕으로 minSize, maxSize, maxWaitTime을 조정해 풀 설정 재최적화
적용해볼 점
- 임계치 도달 전 경고 기준을 두고 사전 대응 여유 확보
- 로그 기반 알림과 운영 지표를 함께 보며 트래픽 원인 추적
- 이벤트성 트래픽이 있는 서비스라면 커넥션 풀 모니터링부터 도입
