spring acturator를 통해서 스프링 애플리케이션의 작동여부등을 체크해보자.
설정
우선 gradle 라이브러리를 추가한다.
compile 'org.springframework.boot:spring-boot-starter-actuator'
그리고 기존에는 application.properties나 yml에 아래 옵션을 설정해줘야 했지만 기본적으로 설정이 되어있다.
endpoints.health.enabled=true
하지만 이는 Spring boot 2.0에서 다음으로 변경되었다. (https://stackoverflow.com/questions/48900892/how-to-enable-all-endpoints-in-actuator-spring-boot-2-0-0-rc1)
각 health, info등으로 적어도 되지만 귀찮으면 asterisk로 모두 포함해도 된다. 대표적인 엔드포인트에 대한 설명은 아래 기재해 놓았다.
management:
endpoints:
web:
exposure:
include: "*"
endpoint는 다음과 같이 지정해줄수 있다.
management:
endpoints:
web:
base-path: /application
기본적인 정보를 보여주는 Endpoint
Actuator에서 사용할 수 있는 기본적인 엔드포인트는 다음과 같고 더 자세하게 다른 정보를 볼 수 있는 api들도 제공한다.
/health
앱의 대한 건강 정보를 보여준다.
/info
전체적인 앱에 대한 정보를 보여준다.
/metrics
앱에 대한 통계정보를 보여준다. (카운터 등등)
우선적으로 볼 수 있는 파라미터정보가 나오고 상세히 보고 싶은경우 다음 경로에 추가해서 조회하면 볼 수있다.
/httptrace
앱에 대한 상세 요청정보를 보여준다.
Spring Acturator의 데이터는 모두 휘발성으로 데이터를 저장하고 있지는 않다. 이를 저장하는 방법은 따로 있는지는 확인해보지는 않았다. 나주에 기회되면 확인해보고 정리해봐야겠다. 그리고 health endpoint를 내가 원하는대로 커스텀할 수 있다. 이 또한 당장 필요성이 없어 상세하게 알아보지는 않았지만 크게 어렵지는 않은 것 같다.
모니터링 할 수 있는 Acturator가 생각보다 괜찮은 것 같다. 나중에 실무에서 써볼 수 있으면 써봐야겠다.
'web > Spring' 카테고리의 다른 글
Redis에서 Pub/Sub 방식 소개 및 Spring Boot에서 구현해보기 (2) | 2019.08.21 |
---|---|
Spring5 리액티브 스트림 정리 및 api 전달 방식 정리 (0) | 2019.08.16 |
Intellij에서 spring boot multi module 사용시 jsp 못찾는 이슈 해결방법 (6) | 2019.04.10 |
heroku 에서 spring boot jar파일 deploy시 Web process failed to bind to $PORT within 90 seconds of launch 에러 처리 (0) | 2019.03.31 |
creating bean with name 'webMvcRequestHandlerProvider' defined in URL 에러처리 (0) | 2019.03.27 |