MongoDB 커넥션 풀 모니터링 시스템 구축으로 서비스 안정성 확보!
by DD
5개월 전
조회수 13
DocumentDB의 커넥션 풀 부족 문제를 해결하기 위해 모니터링 시스템을 구축함
ConnectionPoolListener를 구현하여 커넥션 사용량을 실시간으로 감지함
OpenSearch Alerting과 Slack 연동을 통해 장애 발생 전 알림을 받도록 개선
ConnectionPoolListener 구현 상세
MongoDB Java Driver의 ConnectionPoolListener 인터페이스를 구현하여 커넥션 풀 이벤트를 실시간으로 감지한다. 구체적으로 connectionCheckedOut 및 connectionCheckedIn 메서드를 통해 커넥션 사용량을 추적한다. 따라서 AtomicInteger를 사용하여 멀티스레드 환경에서도 안전하게 동작하도록 설계되었다.
OpenSearch Alerting을 활용한 알림 시스템
OpenSearch의 Alerting 기능을 활용하여 커넥션 풀 사용량을 모니터링한다. 구체적으로 WARN 로그를 기반으로 알림을 발생시키며, 5분 간격으로 로그를 분석한다. 반면, JMX는 실시간 스파이크 감지에 취약하며, 임계치 초과 알림 기능이 부재하다는 단점이 있다.
실제 운영 환경 적용 및 개선 효과
구축된 시스템은 이벤트 발송 시 커넥션 풀 사용량 급증을 감지하여, 장애 발생을 사전에 예방했다. 따라서 커넥션 풀 사이즈 조정을 통해 서비스 안정성을 확보했다. 결과적으로 6개월간 장애 발생 0건을 달성하며, 모니터링 시스템의 중요성을 입증했다.