엑추에이터란?
애플리케이션 운영 단계가 되면 정상적으로 동작하는지 모니터링하는 환경을 구축하는 것이 중요한데 해당 기능을 하는 '액추에이터' 에 대해 알아보겠습니다.
스프링부트 액추에이터
HTTP 엔드포인트나 JMX를 활용하여 애플리케이션을 모니터링하고 관리할 수 있는 기능을 제공한다.
JMX(Java Management Extensions)
- 실행 중인 애플리케이션의 상태를 모니터링하고 설정을 변경할 수 있게 해주는 API
- JMX를 통해 리소스 관리를 하려면 MBeans(Managed Beans)를 생성해야한다.
엔드포인트
- 액추에이터의 엔드포인트는 애플리케이션의 모니터링을 사용하는 경로이다.
- 스프링부트에는 여러 내장 엔드포인트가 포함되어 있고, 커스텀 엔드포인트도 추가할 수 있다.
- 액추에이터를 추가하면 기본적으로 엔드포인트 URL로 /actuator가 추가되며 이 뒤에 경로를 추가해 상세 내역에 접근한다.
- /actuator 경로가 아닌 다른 경로로 사용하고 싶으면 application.properties 에서 변경해야한다.
management.endpoints.web.base-path=/custom-path
기본 엔드포인트 리스트[예시]
ID | 설명 |
auditevents | 호출된 Audit 이벤트 정보를 표시한다. AuditEventRepository 빈이 필요하다 |
beans | 애플리케이션에 있는 모든 스프링 빈 리스트를 표시한다. |
caches | 사용 가능한 캐시를 표시한다. |
loggers | 애플리케이션의 로거 구성을 표시하고 수정한다. |
mappings | 모든 @RequestMapping 정보를 표시한다. |
shutdown | 애플리케이션을 정상적으로 종료할 수 있다. 기본값은 비활성화 상태이다. |
startup | 애플리케이션이 시작될 때 수집된 시작 단계 데이터를 표시한다. BufferingApplicationStartup으로 구성된 스프링 애플리케이션이 필요하다. |
info | 애플리케이션의 정보를 표시한다. |
Spring MVC / WebFlux에서 추가 사용한 엔드포인트
ID | 설명 |
heapdump | 힙 덤프 파일을 반환한다. 핫스팟(HotSpot) VM 상에서 hprof 포맷의 파일이 반환되며, OpenJ9 JVM 에서는 PHD 포맷 파일을 반환한다. |
jolokia | Jolokia가 클래스 패스에 있을 때, HTTP를 통해 JMX 빈을 표시한다. jolokia-core 모듈에 대한 의존성 추가가 필요하며, WebFlux에서는 사용할 수 없다. |
logfile | logging.file.name 또는 logging.file.path 속성이 설정되어있는 경우 로그 파일의 내용을 반환한다. |
Prometheus | Prometheus 서버에서 스크랩할 수 있는 형식으로 메트릭을 표시한다. micrometer-registry-prometheus 모듈의 의존성 추가가 필요하다. |
엔드포인트 활성화
- 활성화는 기능 자체를 활성화할 것인지 결정하는 것으로, 비활성화된 엔드포인트는 애플리케이션 컨텍스트에서 완전히 제거된다.
- 엔드포인트를 활성화 하려면 application.properties 파일에 속성을 추가하면 된다.
## 엔드포인트 활성화
management.endpoints.shutdown.enabled=true
management.endpoints.caches.enabled=false
엔드포인트 노출
노출 여부는 JMX를 통한 노출과 HTTP를 통한 노출이 있기에, 설정을 구분할 수 있다.
## 엔드포인트 노출 설정
## HTTP 설정
management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=threaddump,heapdump
## JMX 설정
management.endpoints.jmx.exposure.include=*
management.endpoints.jmx.exposure.exclude=threaddump,heapdump
- web과 jmx 환경에서 엔드포인트를 전체적으로 노출한다.
- 스레드 덤프(thread dump)와 힙 덤프(heap dump) 기능은 제외하겠다는 의미이다.
반응형
'Book > 스프링부트 핵심가이드' 카테고리의 다른 글
스프링부트 액추에이터 기능 (0) | 2023.11.30 |
---|---|
스프링부트에서 커스텀 예외 설정하기 (1) | 2023.11.25 |
스프링부트 예외 처리 (0) | 2023.11.24 |
댓글