-
Spring boot actuatorJava & Spring/기본 개념 정리 2021. 7. 13. 11:29반응형
Spring boot actuator
- 엔드포인트로 HTTP나 JMX를 통해서 Application을 모니터링하고 관리하는 기능 제공
- health, Auditing, beans, ...
- 종속성 추가
-
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies>
-
- 제공하는 엔트포인트
-
ID Description auditevents
현재 실행중인 Applicaition의 audit Event를 보여준다. AuditEventRepository
bean이 필요beans
애플리케이션의 모든 Spring 빈 목록을 보여준다. caches
사용 가능한 캐시를 보여준다. conditions
Configuration과 Auto-Configuration의 매칭 여부와 이유를 보여준다. configprops
모든 @ConfigurationProperties
의 조합된 목록을 보여준다.env
Spring의 ConfigurableEnvironment
를 보여준다.flyway
Flyway DB 마이그레이션이 적용된 모든 것을 보여준다.
하나 이상의 Flyway bean이 필요health
Application의 health 정보를 보여준다. httptrace
HTTP Trace 정보를 보여준다. HttpTraceRepository
bean이 필요.info
임의의 application 정보를 보여준다. integrationgraph
Spring의 Integration(통합) 그래프를 보여준다. spring-integration-core
의존성 필요.loggers
Application의 로거에 대한 구성을 보여주고, 수정한다. liquibase
Liquibase DB 마이그레이션이 적용된 모든 것을 보여준다.
하나 이상의Liquibase
bean이 필요.metrics
현재 Application에 대한 metrics 정보를 보여준다. mappings
@RequestMapping
path들을 보여준다. (모든 API 주소)quartz
Quartz Scheduler의 jobs의 정보를 보여준다. scheduledtasks
Application의 작업 스케쥴을 보여준다. sessions
Allows retrieval and deletion of user sessions from a Spring Session-backed session store. Requires a Servlet-based web application using Spring Session.
Spring Session-backed 세션 스토어에서 user 세션 검색 및 삭제를 허용. Spring Session을 사용하는 Servlet 기반 웹 Application이 필요.shutdown
Application을 정상적으로 종료. (Default는 비활성화) startup
ApplicationStartup
에서 수집한 시작 단계 데이터를 보여준다.BufferingApplicationStartup
로 구성된SpringApplication
필요threaddump
스레드 덤프 수행
-
- 웹 애플리케이션(Spring MVC, Spring WebFlux 또는 Jersey)인 경우 다음 엔드포인트를 추가 제공
-
ID Description heapdump
hprof
힙 덤프 파일을 리턴
HotSpot JVM 필요.jolokia
HTTP를 통해 JMX 빈을 보여준다(Jolokia가 classpath에 있으면, WebFlux에서는 사용 불가). jolokia-core
의존성 필요.logfile
로그 파일의 내용을 return( logging.file.name
orlogging.file.path
..)
HTTPRange
header를 사용해서 로그 파일의 일부 내용을 검색할 수 있도록 제공prometheus
Prometheus 서버에서 수집할 수 있는 metrices를 보여준다. micrometer-registry-prometheus
의존성 필요.
-
- shutdown을 제외한 모든 엔드포인트는 default로 enabled 상태
- enabled-by-default 속성을 통해 활성화 false 설정을 할 수 있고, 개별 endpoint마다 설정 가능
- 비활성화된 엔드포인트는 Application 컨텍스트에서 완전하게 제거됨
-
management: endpoints: enabled-by-default: false endpoint: info: enabled: true
- 엔드포인트에 대한 노출만 변경하려는 경우 include와 exclude를 활용
-
management: endpoints: jmx: exposure: include: "health,info"
-
management: endpoints: web: exposure: include: "*" exclude: "env,beans"
-
- 이 외에도 Cors 설정이나 TTL 등 여러 기능이 존재하니 필요에 따라 검색해서 사용하면 좋을 것 같음
- 하지만, 사용할 때 보안 이슈를 꼭 체크하고 방지하는 설정들이 꼭 필요
Reference
https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html
반응형'Java & Spring > 기본 개념 정리' 카테고리의 다른 글
HandlerMethodArgumentResolver (0) 2021.07.13 xml 설정과 Java Config 설정 (2) 2021.04.09 Spring IoC/DI (0) 2021.01.30 - 엔드포인트로 HTTP나 JMX를 통해서 Application을 모니터링하고 관리하는 기능 제공