본문 바로가기

트러블슈팅

micrometer 관련 PortUnreachableException 알림 처리하기

회사에서 Beanstalk으로 서버를 운영 중인데 서버가 종료가 될 때 간헐적으로 아래와 같은 Sentry 알림이 발생했습니다.

[a9a8261e, L:/127.0.0.1:43140 - R:localhost/127.0.0.1:8125] An exception has been observed post termination, use DEBUG level to see the full stack: java.net.PortUnreachableException: recvAddress(..) failed: Connection refused

 

warn 로그인데 Sentry 로그 알림 수준이 warn라  알림이 오는 것이었습니다.

발생 시점은 트래픽으로 인해 스케일 아웃 후 다시 스케일 인 될 때, dev 환경 인스턴스가 저녁에 죽을 때 주로 발생했습니다.

 

서버가 종료될 때만 발생하는 것이고 매번 발생하는 것이 아니기는 아니지만 지속적으로 불필요한 알림이 왔기 때문에 알림 채널을 잘 관리하기 위해 적절히 관리가 필요했습니다.

 

관련해서 확인했을 때 다행히 관련 github issue 확인 시 기능적인 문제는 없고 로깅과 관련 된 것이며 해소를 위한 PR 진행 중이었습니다.

기능적으로 이슈가 없는 것이기 때문에 관련 logger인 io.micrometer.shaded.reactor.netty.channel.FluxReceive의 로그 레벨을 warn이 아니라 error로 조절하여 알림이 오지 않도록 조치 하였습니다.