네로개발일기

개발자 네로의 개발 일기, 자바를 좋아합니다 !

'2022/04/01'에 해당되는 글 1건


반응형

스프링부트 액추에이터 사용하기

 

액추에이터는 스프링 부트 애플리케이션의 모니터링이나 매트릭(metric)과 같은 기능을 HTTP와 JMX 엔드포인트를 통해 제공한다.

 

액추에이터 개요

액추에이터는 실행 중인 애플리케이션의 내부를 볼 수 있게 하고, 어느 정도까지는 애플리케이션의 작동 방법을 제어할 수 있게 한다. 예를 들면, 다음과 같다.

 

* 애플리케이션 환경에서 사용할 수 있는 구성 속성들

* 애플리케이션에 포함된 다양한 패키지의 로깅 레벨(logging level)

* 애플리케이션이 사용 중인 메모리

* 지정된 엔드포인트가 받은 요청 횟수

* 애플리케이션의 건강 상태 정보

 

스프링 부트 애플리케이션에 액추에이터를 활성화하려면 의존성을 빌드에 추가해야 한다.

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

 

액추에이터 엔드포인트

HTTP 메서드 경로 설명 디폴트 활성화
GET /auditevents 호출된 감사(audit) 이벤트 리포트를 생성한다.  NO
GET /beans 스프링 애플리케이션 컨텍스트의 모든 빈을 알려준다. NO
GET /conditions 성공 또는 실패했던 자동-구성 조건의 내역을 생성한다. NO
GET /configprop 모든 구성 속성들을 현재 값과 같이 알려준다. NO
GET,POST,DELETE /env 스프링 애플리케이션에 사용할 수 있는 모든 속성 근원과 이 근원들의 속성을 알려준다. NO
GET /env/{toMatch} 특정 환경 속성의 값을 알려준다. NO
GET /health 애플리케이션의 건강 상태 정보를 반환한다. YES
GET /heapdump 힙(heap) 덤프를 다운로드한다. NO
GET /httptrace 가장 최근의 100개 요청에 대한 추적 기록을 생성한다. NO
GET /info 개발자가 정의한 애플리케이션에 관한 정보를 반환한다. YES
GET /loggers 애플리케이션의 패키지 리스크(각 패키지의 로깅 레벨이 포함된)를 생성한다. NO
GET /loggers/{name} 지정된 로거의 로깅 레벨(구성된 로깅 레벨과 유효 로깅 레벨 모두)를 반환한다. 유효 로깅 레벨은 HTTP POST 요청으로 설정될 수 있다. NO
GET /mappings 모든 HTTP 매핑과 이 매핑들을 처리하는 핸들러 메서드들의 내역을 제공한다. NO
GET /metrics 모든 메트릭 리스트를 반환한다. NO
GET /metrics/{name} 지정된 메트릭의 값을 반환한다. NO
GET /scheduledtasks 스케줄링된 모든 태스크의 내역을 제공한다. NO
GET /threaddump 모든 애플리케이션 스레드의 내역을 반환한다. NO

액추에이터의 기본 경로 구성하기

액추에이터의 모든 앤드포인트의 경로에는 /actuator가 앞에 붙는다. 액추에이터의 기본 경로는 management.endpoint.web.base-path 속성을 설정하여 변경할 수 있다.

management:
  endpoints:
    web:
      base-path: /management

 

액추에이터의 엔드포인트의 활성화와 비활성화

액추에이터를 추가하면 /health 와 /info 엔드포인트만 기본적으로 활성화되는 것을 알 수 있다. 대부분의 액추에이터 엔드포인트는 민감한 정보를 제공하므로 보안 처리가 되어야 하기 때문이다. 물론 스프링 시큐리트를 사용해서 액추에이터를 보완처리할 수 있다. 그러나 액추에이터 자체로는 보안처리가 되어있지 않으므로 엔드포인트가 기본적으로 비활성화되어 있다.

엔드포인트의 노출 여부를 제어할 때는 management.endpoints.web.exposure.include와 management.endpoints.web.exposure.exclude 구성 속성을 사용할 수 있다.

management:
  endpoints:
    web:
      exposure:
        include: health, info, beans, conditions
        exclude: threaddump, heapdump
728x90
반응형
blog image

Written by ner.o

개발자 네로의 개발 일기, 자바를 좋아합니다 !