운영 환경에서 서비스할 때 필요한 이런 기능들을 프로덕션 준비 기능이라 한다. 쉽게 이야기해서 프로덕션을 운영에 배포할 때 준비해야 하는 비 기능적 요소들을 뜻한다.
좀 더 구제적으로 설명하자면, 애플리케이션이 현재 살아있는지, 로그 정보는 정상 설정 되었는지, 커넥션 풀은 얼마나사용되고 있는지 등을 확인할 수 있어야 한다.
implementation 'org.springframework.boot:spring-boot-starter-actuator' //actuator 추가
액츄에이터는 /actuator 경로를 통해서 기능을 제공한다
지금 눈에 보이는 기능은 헬스 상태를 확인할 수 있는 기능 뿐이다. 액츄에이터는 헬스 상태 뿐만 아니라 수 많은 기능을 제공하는데, 이런 기능이 웹 환경에서 보이도록 노출해야 한다.
management:
info:
java:
enabled: true
os:
enabled: true
env:
enabled: true
server:
port: 8080
endpoint:
shutdown:
enabled: true
health:
show-components: always
#show-details: always
endpoints: **#액츄에이터 기능을 웹에 노출**
web:
exposure:
include: "*"
info:
app:
name: hello-actuator
company: yh
logging:
level:
hello.controller: debug
server:
tomcat:
mbeanregistry:
enabled: true
엔드포인트를 사용하려면 다음 2가지 과정이 모두 필요하다.
엔드포인트를 활성화 한다는 것은 해당 기능 자체를 사용할지 말지 on , off 를 선택하는 것이다.
엔드포인트를 노출하는 것은 활성화된 엔드포인트를 HTTP에 노출할지 아니면 JMX에 노출할지 선택하는 것이다.
그런데 엔드포인트는 대부분 기본으로 활성화 되어 있다.( shutdown 제외) 노출이 되어 있지 않을 뿐이다. 따라서 어떤 엔드포인트를 노출할지 선택하면 된다. 참고로 HTTP와 JMX를 선택할 수 있는데, 보통 JMX는 잘 사용하지 않으므로 HTTP에 어떤 엔드포인트를 노출할지 선택하면 된다.