spring 의 장점중 하나는 공식 가이드가 아주 친절하다는 것입니다. 그래서 spring boot actuator 를 공부할때 서적이나 기술블로그를 통해 기본적인 이해와 사용법을 알고 난후에 공식 가이드를 통해 확실히 자기것으로 만드는 순서로 진행하는걸 추천합니다.
본 포스팅에서는 중요하거나 자주 사용할 만한 부분을 공식 가이드의 내용을 근거로 해서 샘플을 제작하도록 하겠습니다. 기술 블로그의 단점 중 하나가 "동작 하는건 알겠는데 이게 최선인가?, 내가 아는것과 약간 다른데 이 정보의 출처는 어디인가?" 라는 의문이 생기는건데 공식 가이드를 base 로 작성 및 관련 링크를 넣을 예정이니 믿고 읽어도 됩니다. :)
spring boot actuator 공식 레퍼런스 주소는 아래와 같습니다.
https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator
https://spring.io 가 spring 메인 페이지이므로 아래와 같은 방법으로 공식 레퍼런스를 찾아가면 됩니다.
자 그럼 이제 공식 가이드를 기준으로 중요한 부분을 확인해보도록 하겠습니다.
공식 가이드 맨 처음에 아래처럼 의존성을 넣어야 한다고 나옵니다.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
intellij 의 maven 의존성 부분을 보니 아래처럼 spring-boot-starter-actuator 는 내부적으로 micrometer 라이브러리를 사용하고, auto configuration을 위한 라이브러리리(spring-boot-actuator-autoconfigure)를 포함하는걸 알 수 있습니다.
핵심 라이브러리인 micrometer-core 의 내용을 살펴보면 아래처럼 spring boot 가 구동되는 application 의 health, info, metric 정보들을 수집하는 역할을 하는 binder 클래스들이 아주 많이 구현되어 있는걸 알수 있습니다.
즉 spring boot 에서 cache를 사용하고 있다면 cache 관련 정보를 수집하는 클래스를 micrometer 라이브러리에서 이미 제공하고 있으며, kafka 를 사용하고 있다면 kafka 관련 정보를 수집하는 클래스를 micrometer 라이브러리에서 이미 제공하고 있습니다. 즉 자주 쓰는 대부분의 기능들에 대해 micrometer 에서 정보를 수집하는 binder 를 이미 제공하고 있습니다.
spring boot 는 자동설정을 지원해주기에 아래처럼 spring-boot-actuator-autoconfigure 라이브러리에서 정보를 수집할수 있도록 bean 으로 등록해주고 있습니다.
하나를 예로 들어 설명하면,
아래처럼 ElasticsearchRestHealthContributorAutoConfiguration 라는 클래스내부에는
결론적으로 현재 spring boot 프로젝트는 elasticSearch 라이브러리를 넣지 않았으니 elasticSearch 관련 bean은 생성되지 않습니다.
import org.elasticsearch.client.RestClient; <-- spring 패키지가 아님
@ConditionalOnClass(RestClient.class) <-- elasticSearch 관련 라이브러리의 클래스명
public class ElasticsearchRestHealthContributorAutoConfiguration {
@Bean
public HealthContributor elasticsearchHealthContributor(Map<String, RestClient> clients) {
return createContributor(clients);
}
}
설마... 다음페이지는 다음에 봐야지! 하는건 아니죠? 아직 제대로 시작도 안했습니다. 달려요 달려
'spring boot > actuator in spring boot' 카테고리의 다른 글
spring boot 3.x + actuator 파헤치기. 6. about info endpoint (0) | 2023.04.01 |
---|---|
spring boot 3.x + actuator 파헤치기. 5. about health endpoint (0) | 2023.03.25 |
spring boot 3.x + actuator 파헤치기. 4. custom endpoint 생성 (0) | 2023.03.24 |
spring boot 3.x + actuator 파헤치기. 3. endpoints 설정 (0) | 2023.03.24 |
spring boot 3.x + actuator 파헤치기. 1. 프로젝트 생성 (0) | 2023.03.19 |