다루는 내용
- 액추에이터 웹 엔드포인트
- 액추에이터 조정
액추에이터의 엔드포인트 살펴보기
애플리케이션을 먼저 기동한 후 http://localhost:8080/actuator 에 접속하면 웹 환경의 기본으로 적용되는 엔드포인트를 확인할 수 있다. 기본적으로 웹 환경에서는 health, info가 제공된다.
{
"_links": {
"self": {
"href": "http://localhost:8080/actuator",
"templated": false
},
"health": {
"href": "http://localhost:8080/actuator/health",
"templated": false
},
"info": {
"href": "http://localhost:8080/actuator/info",
"templated": false
}
}
}
액추에이터의 기본 경로( /actuator )를 변경할 수 있다.
management:
endpoints:
web:
base-path: /management
액추에이터 엔드포인트는 민감한 정보를 제공한다. 따라서 액추에이터 자체로는 보안 처리가 되어 있지 않으므로 대부분의 엔드포인트는 비활성화되어 있다. 엔드포인트의 노출 여부를 제어할 때는 application.yml 에 다음과 같은 코드를 추가한다. include는 활성화할 엔드포인트, exclude는 비활성화할 엔드포인트이다.
management:
endpoints:
web:
exposure:
include: beans, conditions, mappings, info
exclude: heapdump, env
액추에이터 엔드포인트 세부 구성
- beans
애플리케이션의 모든 Spring Bean의 목록 표시한다. - health
애플리케이션의 상태 정보를 표시한다.
{ "status": "UP" }
- conditions
스프링 부트의 자동설정(AutoConfiguration)과 직접 구성한 설정에서 평가된 조건(@Conditional)에 관한 정보이다. - configprops
@ConfigurationProperties에 대한 정보가 표시된다.
{
"spring.datasource-org.springframework.boot.autoconfigure.jdbc.DataSourceProperties": {
"prefix": "spring.datasource",
"properties": {
"password": "******", // !!
"driverClassName": "com.mysql.jdbc.Driver",
"url": "jdbc:mysql://1.1.1.1:3306/db",
"username": "username"
}
}
}
- env
모든 환경변수 정보를 표시한다.
- info
application.yml에 info로 시작하는 프로퍼티 하위의 값들을 JSON으로 반환한다.
# application.yml
info:
copyright: mine
contact:
email: ooo@gmail.com
phone: 010-1111-2222
/info GET 요청
{
"copyright": "mine",
"contact":{
"email": "ooo@gmail.com",
"phone": "010-1111-2222"
}
- logfile
로그 파일 내용을 반환한다. - loggers
애플리케이션의 Logger 구성을 표시하거나 변경. - threaddump
스레드 덤프를 수행한다. 요청 추적과 더불어 스레드 활동은 실행 중인 애플리케이션에서 어떤 일이 일어나고 있는지 결정하는 데 매우 유용하다. /dump 엔드포인트는 현재 스레드 활동 스냅샷을 생성한다. - metrics
현재 애플리케이션의 각종 지표(metrics) 정보를 표시한다. - mappings
모든 @RequestMappig 경로를 표시한다.
- shutdown
애플리케이션을 정상적으로(gracefully) 종료한다. 기본적으로 비활성화 되어 있고 POST 요청으로 작동한다. 아래와 같은 코드를 입력해 엔드포인트를 활성화할 수 있다.
endpoints:
shutdown:
enabled: true
(자세한 내용 : http://forward.nhnent.com/hands-on-labs/java.spring-boot-actuator/04-endpoint.html)
'Develop > Spring˙Spring Boot' 카테고리의 다른 글
[Spring Boot] 애플리케이션 배포하기 (0) | 2023.02.18 |
---|---|
[Spring Boot] 액추에이터로 내부 들여다보기 - 2 (0) | 2023.02.17 |
[Spring Boot] 스프링 부트 테스트하기 (0) | 2023.02.05 |
[Spring Boot] 구성을 사용자화하기 (0) | 2023.02.03 |
[Spring Boot] 스프링 부트 애플리케이션 개발하기 (0) | 2023.01.26 |