본문 바로가기
Java/Spring

[Spring Boot] 액추에이터

by Dev_Green 2023. 4. 21.

1. 액추에이터(Actuator)란?

출처 docs.spring.io

스프링 공식 문서에서는 위와 같이 설명하고 있다.

즉, 스프링 부트 액추에이터는 HTTP 엔드포인트나 JMX를 사용해 애플리케이션을 관리하고 모니터링할 수 있는 기능을 제공한다. 

* JMX(Java Management Extensions) : 실행 중인 애플리케이션의 상태를 모니터링하고 설정을 변경할 수 있게 해주는 API

2. 액추에이터 사용을 위한 의존성

액추에이터 기능을 사용하려면 spring-boot-starter-actuator 모듈의 의존성을 추가해야 한다.

다음은 build.gradle 예시이다.

implementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator'

 

3. 엔드포인트

  액추에이터의 엔드포인트는 애플리케이션의 다양한 정보들을 모니터링할 때 사용하는 경로이다. 기본적으로 제공되는 엔트포인트 목록은 여기에서 확인할 수 있다. 기본 URL 경로는 "/actuator" 로 설정되며 이 뒤에 각 엔트포인트에 해당하는 경로를 추가해 상세 내역에 접근할 수 있다. 예를 들어 health 엔드포인트는 "/actuator/health" 에 매핑되어 있다. 경로는 application.properties 파일을 통해 변경할 수도 있다.
  엔드포인트는 HTTP와 JMX에 대해 활성화(enabled) 여부와 노출(exposure) 여부를 설정할 수 있다. 기본적으로, 오직 health 엔드포인트만이 HTTP와 JMX 모두에게 노출되어 있으며, 나머지 엔드포인트들은 대부분 JMX에는 노출되어 있으나 WEB에는 노출되어 있지 않다. 

 

다음은 주요 엔드포인트이다. ahems 

3.1. 애플리케이션 기본 정보(/info)

application.properties 파일에 info 정보를 설정할 수 있다. 
/actuator/info로 접근하면 설정한 info 정보를 JSON 형태로 출력받을 수 있다.

info:
  organization:
    name: "green"
  contact:
    email: "test@gmail.com"

3. 2. 애플리케이션 상태(/health)

별도의 설정이 없다면 status 항목만 출력되며 아래와 같이 상세 상태에 대한 접근을 허용하면 상세 정보까지 얻을 수 있다.

management:
  endpoint:
    health:
      show-details: "always"

3. 3. 빈 정보 확인(/beans)

스프링 컨테이너에 등록된 스프링 빈의 전체 목록을 출력할 수 있다.

3. 4. 로깅 레벨 확인(/loggers)

애플리케이션의 로깅 레벨 수준을 확인할 수 있다.

 

 

[참고 자료] 스프링 부트 핵심 가이드 장정우 지음

위 책을 읽고 정리한 내용입니다.