Spring - actuator, HAL Explorer

JungWooLee·2022년 9월 24일
0

Spring

목록 보기
5/5
post-thumbnail

1. Actuator

Spring Boot Actuator 란?

Spring Boot Actuator: Production-ready Features

Spring Boot includes a number of additional features to help you monitor and manage your application when you push it to production.You can choose to manage and monitor your application by using HTTP endpoints or with JMX.Auditing, health, and metrics gathering can also be automatically applied to your application.

공식 문서를 직역하자면 프로젝트내에의 애플리케이션을 HTTP나 JMX를 이용하여 모니터링, 관리할 수 있는 기능을 제공하는데 이것이 Spring Actuator 이다

기능들의 확인을 위해 지속적으로 모니터링하거나 서버를 재가동, 로그 정보를 변경하거나 등등 범 애플리케이션 관점에서 처리해야 할 일이 많을 때에 주로 쓰인다

제공되는 엔드포인트

  • beans : 애플리케이션 내의 전체 빈들의 리스트
  • health : 애플리케이션의 상태 정보
  • metrics : 메모리, 스레드 상태 등등
  • mappings : Request Mapping 에 대한 상세정보
  • startup/shutdown : 애플리케이션을 재기동

사용법

디펜던시 추가

아무런 설정을 하지 않았을 때 health 밖에 열람 할 수 없다

모든 앤드포인트들을 활성화 하고자 한다면 application.properties 에 management.endpoints.web.exposure.include=* 를 추가한다

빈 관리
앞서 말했듯 /beans 에 접근하여 프로젝트내의 모든 빈들에 대한 정보를 열람할 수 있다

예를 들어 아래 사진의 경우

dependencies 의 messageSource 를 확인해보면

다음과 같이 DI 해주었던 메시지소스에 대한 정보를 정확히 갖고 오는 것을 확인해볼 수 있다

환경 관리
/env 에서는 애플리케이션의 환경들을 볼 수 있다

포트정보, 시스템 정보, 언어정보 등등의 여러 정보를 확인 해 볼 수 있다

MSA 아키텍쳐로 구성되어있다면 Actuator 를 통하여 현재 running 중인 애플리케이션이 무엇인지 확인 가능!

Metrics
/metrics 에서는 쓰레드, CPU, Heap, 커넥션 풀 등과 같은 정보를 모니터링 할 수 있음

가령 /metrics/http.server.requests 를 통해서는 아래와 같이 서버요청에 대한 모니터링을 제공

특정 비즈니스 로직의 성능 분석을 할때에도 actuator 지표를 통하여 분석하기 편할듯하다

mappings
/mappings 에서는 모든 request method 에대한 세부정보를 모니터링 가능


2. HAL Explorer

HAL 이란?

  • HAL은 리소스와 API 사이를 하이퍼링크를 쉽게 하고 일관성 있게 하기 위한 간단한 포맷

✔ : API 를 탐색가능하게 하고 문서화 된 것이 API 자체에서 쉽게 보이게 함

HAL Explorer 란?

  • HAL을 사용하는 RESTful API 라면 HAL Explorer 를 통하여 API 를 테스트하거나 실행해볼 수 있다
  • 기술자가 아닌 사람도 Hal explorer 를 통하여 API 를 사용할 수 있다 (PostMan 과 같은 툴을 쓰지 않더라도)

Spring boot Hal explorer 은 프로젝트에서 자동으로 HAL explorer 설정을 해준다
✔ : spring-data-rest-hal-explorer

디펜던시 추가후 /explorer/index.html#을 통하여 접근하여 API를 테스트 해볼 수 있다


0개의 댓글