본문 바로가기

Spring Boot

spring actuator

 

spring actuator

Spring Boot 에서 설정 관련 파일을 수정할 때 마다 Boot를 재시작 해야지만 반영이 되는데

 

실제 서비스를 한다고 가정했을 때 이런 재시작 작업은 사용자 경험에 치명적일 수 있다.

 

spring actuator를 활용하면 Boot 재시작 안하고도 api 호출로 설정을 반영할 수 있다.

 

환경

자바17 / Spring Boot 3.2.5 / Gradle 8.7

 

spring actuator 적용하기

1. dependency 추가해준다.

implementation 'org.springframework.boot:spring-boot-starter-actuator'

 

2. yml 또는 properties 설정 파일에 설정해준다. 

2-1. 참고로 내 환경은 yml 이고 파일명이 bootstrap.yml이라서 bootstrap dependency 도 추가해줘야한다.

 

// bootstrap.yml 을 사용하기 위해 dependency 추가
implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap'
#bootstrap.yml 파일

#spring actuator 설정
#actuator 설명: microservice에 대해서 API를 통해 애플리케이션의 상태나 정보를 확인할 수 있도록 지원하는 라이브러리
management:
  #endpoints: actuator 기능들을 명시
  endpoints:
    web:
      exposure:
        # refresh: 설정파일에 대해서 refresh를 사용하겠다. => 얘만 적용해줘도 설정 파일이 변경되어도 프로세스 재실행 없이 reload 할 수 있다.
        # health: 현재 상태
        # beans: spring에 등록한 bean 확인 
        include: refresh, health, beans

 

3. 테스트를 위해 서버 가동 후 로그 파일이 생성되는지 확인한다.

3-1. 현재 logs 를 확인해보면 api3.log로 저장이되고 있다.

log 관련 yml 설정

 

api3.log 파일 확인됨

 

3-2. 서버가 구동중인 상태에서 logs 설정부분을 변경해 api4.log 파일로 생성되게 변경해본다.

api4.log 파일로 변경

 

4. actuator를 실행시켜본다.

4-1. refresh 를 하기 위해서는 api로 호출하면 된다 경로는 서버주소/actuator/refresh 이다. 

포스트맨을 활용해 api 호출

 

4-2. 응답이 제대로 됐으면 log 파일이 새로 생겼는지 확인한다.

새로 생성된 api4.log