MongoDB 커넥션 풀 모니터링 시스템 구축으로 서비스 안정성 확보!

by DD
5개월 전
조회수 13

DocumentDB커넥션 풀 부족 문제를 해결하기 위해 모니터링 시스템을 구축함

ConnectionPoolListener를 구현하여 커넥션 사용량을 실시간으로 감지함

OpenSearch AlertingSlack 연동을 통해 장애 발생 전 알림을 받도록 개선

ConnectionPoolListener 구현 상세

MongoDB Java Driver의 ConnectionPoolListener 인터페이스를 구현하여 커넥션 풀 이벤트를 실시간으로 감지한다. 구체적으로 connectionCheckedOutconnectionCheckedIn 메서드를 통해 커넥션 사용량을 추적한다. 따라서 AtomicInteger를 사용하여 멀티스레드 환경에서도 안전하게 동작하도록 설계되었다.

OpenSearch Alerting을 활용한 알림 시스템

OpenSearch의 Alerting 기능을 활용하여 커넥션 풀 사용량을 모니터링한다. 구체적으로 WARN 로그를 기반으로 알림을 발생시키며, 5분 간격으로 로그를 분석한다. 반면, JMX는 실시간 스파이크 감지에 취약하며, 임계치 초과 알림 기능이 부재하다는 단점이 있다.

실제 운영 환경 적용 및 개선 효과

구축된 시스템은 이벤트 발송커넥션 풀 사용량 급증을 감지하여, 장애 발생을 사전에 예방했다. 따라서 커넥션 풀 사이즈 조정을 통해 서비스 안정성을 확보했다. 결과적으로 6개월간 장애 발생 0건을 달성하며, 모니터링 시스템의 중요성을 입증했다.

MongoDB 커넥션 풀 모니터링과 알림 시스템 구축기