1. 의존성 추가
// build.gradle
implementation 'org.springframework.boot:spring-boot-starter-actuator' //actuator 추가
2.
액츄에이터가 제공하는 수 많은 기능을 확인할 수 있음
액츄에이터가 제공하는 기능 하나하나를 엔드포인트라고하고 health는 헬스 정보를 beans는 스프링 컨테이너에 등록된 빈을 보여줌
{
"_links": {
"self": {
"href": "http://localhost:8080/actuator",
"templated": false
},
"beans": {
"href": "http://localhost:8080/actuator/beans",
"templated": false
},
"caches-cache": {
"href": "http://localhost:8080/actuator/caches/{cache}",
"templated": true
},
"caches": {
"href": "http://localhost:8080/actuator/caches",
"templated": false
},
"health": {
"href": "http://localhost:8080/actuator/health",
"templated": false
},
"health-path": {
"href": "http://localhost:8080/actuator/health/{*path}",
"templated": true
},
"info": {
"href": "http://localhost:8080/actuator/info",
"templated": false
},
"conditions": {
"href": "http://localhost:8080/actuator/conditions",
"templated": false
},
"configprops-prefix": {
"href": "http://localhost:8080/actuator/configprops/{prefix}",
"templated": true
},
"configprops": {
"href": "http://localhost:8080/actuator/configprops",
"templated": false
},
"env": {
"href": "http://localhost:8080/actuator/env",
"templated": false
},
"env-toMatch": {
"href": "http://localhost:8080/actuator/env/{toMatch}",
"templated": true
},
"loggers": {
"href": "http://localhost:8080/actuator/loggers",
"templated": false
},
"loggers-name": {
"href": "http://localhost:8080/actuator/loggers/{name}",
"templated": true
},
"heapdump": {
"href": "http://localhost:8080/actuator/heapdump",
"templated": false
},
"threaddump": {
"href": "http://localhost:8080/actuator/threaddump",
"templated": false
},
"metrics-requiredMetricName": {
"href": "http://localhost:8080/actuator/metrics/{requiredMetricName}",
"templated": true
},
"metrics": {
"href": "http://localhost:8080/actuator/metrics",
"templated": false
},
"scheduledtasks": {
"href": "http://localhost:8080/actuator/scheduledtasks",
"templated": false
},
"mappings": {
"href": "http://localhost:8080/actuator/mappings",
"templated": false
}
}
}
엔드포인트 설정
1. 엔드포인트 활성화
해당 기능 자체를 사용할지 말지 on/off 선택하는 것
엔드포인트 노출은 활성화된 엔드포인트를 HTTP에 노출할 지 아니면 JMX에 노출할 지 선택하는 것
엔드포인트를 활성화 하고 추가로 HTTP를 통해서 웹에 노출할지, JMX에 노출할 지 두 위치에 모두 노출할 지 설정해야함
// application.yml
management:
endpoint:
shutdown:
enabled: true
endpoints:
web:
exposure:
include: "*"
특정 엔드포인트 활성화
management.endpoint.{엔드포인트명}.enable=true
특정 엔드포인트 비활성화
// application.yml
management:
endpoints:
web:
exposure:
include: "*"
exclude: "{엔드포인트명}"
2. 엔드포인트 노출
활성화가 되어 있어야 노출이 됨
엔드포인트는 대부분 기본으로 활성화 되어있음(shutdown 제외), 노출이 되어 있지 않을 뿐
노출할 엔드포인트를 선택하면 됨
HTTP와 JMX를 선택할 수 있는데, 보통 JMX는 잘 사용하지 않으므로 HTTP에 어떤 엔드포인트를 노출할 지 선택하면 됨
cf) JMX?
JMX(Java Management eXtensions)는 응용 프로그램(소프트웨어)/객체/장치 (프린터 등) 및 서비스 지향 네트워크 등을 감시 관리를 위한 도구를 제공하는 자바 API이다.
application.yml
"*" 옵션은 모든 엔드포인트를 웹에 노출하는 것
management:
endpoints:
web:
exposure:
include: "*"
엔드포인트
엔드포인트를 통해서 개발자는 애플리케이션 내부의 수 많은 기능을 관리하고 모니터링할 수 있음
스프링 부트에서 기본으로 제공하는 다양한 엔드포인트
beans
스프링 컨테이너에 등록된 스프링 빈을 보여줌
conditions
condition을 통해서 빈을 등록할 때 평가 조건과 일치하거나 일치하지 않은 이유를 표시
configprops
@ConfigurationProperties를 보여줌
env
Environment 정보를 보여줌
health
애플리케이션 헬스 정보를 보여줌
httpexchanges
HTTP 호출 응답 정보를 보여줌
HttpExchangeRepository를 구현한 빈 별도 등록 필요
info
애플리케이션 정보를 보여줌
loggers
애플리케이션 로거 설정을 보여주고 변경할 수 있음
metrics
애플리케이션의 매트릭 정보를 보여줌
cpu 사용률 확인
mappings
@RequestMapping 정보를 보여줌
threaddump
스레드 덤프를 실행해서 보여줌
shutdown
애플리케이션을 종료함
이 기능은 기본으로 비활성화 되어 있음
공식 메뉴얼
'Spring > Springboot' 카테고리의 다른 글
[Springboot] 액츄에이터 - info 엔드포인트 (0) | 2023.12.30 |
---|---|
[Springboot] 액츄에이터 - 헬스정보 health 엔드포인트 (0) | 2023.12.30 |
[Springboot] 스프링부트에서 로그(log) 설정/관리하기 - Logback (0) | 2023.12.18 |
[Spring] WebClient와 RestTemplate (0) | 2023.12.06 |
스프링 프로젝트 생성하기 (0) | 2023.01.27 |