이번에 작성할 주제는 Spring Actuator를 이용하여 모니터링이나 매트릭(metric)과 같은 기능을 HTTP와 JMX 엔드포인트를 통해 사용하는 방법을 작성하겠다.
사용하는 방법은 Spring Actuator에 대해서 공부하며 알게된, 잘 정리 되어있는 글을 추천하고 넘어가겠다.
https://incheol-jung.gitbook.io/docs/study/srping-in-action-5th/chap-16.
참고로 Spring 3 버전부터 HttpTrace 대신 HttpExchanges로 이름이 변경되었다.
아래 게시글을 참고해서 변경하는 것을 추천한다.
https://www.appsdeveloperblog.com/how-to-enable-actuators-httptrace-in-spring-boot-3/
위에서 보았던 것 처럼, Spring Actuator는 개발자에게 많은 편의를 제공하지만, 잘못 사용되었을 때는 보안상 심각한 위험을 초래할 수 있다. 이에 대해 우아한 기술 블로그에 잘 정리되어있기 때문에 해당 글을 추천하고 넘어가겠다.
management:
endpoints:
enabled-by-default: false
web:
exposure:
include: info, refresh, health, beans, httpexchanges
jmx:
exposure:
exclude: '*'
endpoint:
info:
enabled: true
refresh:
enabled: true
health:
enabled: true
beans:
enabled: true
httpexchanges:
enabled: true
지금까지의 게시글들을 종합하여 구현하면 해당 예시와 같다.
package com.sjy.apigatewayservice.config;
import org.springframework.boot.actuate.web.exchanges.HttpExchangeRepository;
import org.springframework.boot.actuate.web.exchanges.InMemoryHttpExchangeRepository;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ActuatorHttpExchangesConfiguration {
@Bean
public HttpExchangeRepository httpTraceRepository() {
return new InMemoryHttpExchangeRepository();
}
}
httpexchanges 를 사용하기 위한 HttpExchangeRepository 이다.