Post

SpringBoot 2 to 3 upgrade. Exception none

최근 회사에서 End-Of-Life 상태가 된 SpringBoot 2.7.x 를 현재의 최신인 3.2.1 로 Upgrade 하였다. 물론 관련 라이브러리도 모두 업그레이드 되었는데, 거기엔 micrometer 역시 포함 되어 있다.

그런데 코드 수정을 모두 마친 후 첫 배포이후 엄청난 Reqeust Exception 이 잡히는 것이었다. 원인은 http_server_requests_seconds_count 지표에서 모든 Request 가 Exception 으로 발생 된 것으로 잡힌 것이었다.

잠시 멘붕 후 원인을 파악하였는데… 로그가 아래와 같았다

1
http_server_requests_seconds_count{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 19995.0

무엇이 문제인지 혹시 알겠는가? 이것만으론 알 수 없다. 이전엔 다음과 같았다. 비교해 보자

1
http_server_requests_seconds_count{exception="None",method="POST",status="200",uri=""/actuator/prometheus",} 19995.0

눈치 챘는가, exception 의 value 가 None 에서 none 으로 변경되 있었다. 우리가 사용하던 PromQL 에는 Exception 체크를 None 으로 하고 있었고, 그래서 모든 요청이 오류로 잡힌 것이다…

굉장히 사소한 이슈이지만 단순한 typo 변경이 어디까지 side effect 를 유발 할 수 있는지 알게된 하루였다.

This post is licensed under CC BY 4.0 by the author.