Spring Boot Actuator란 무엇인가
2024. 4. 27. 19:38ㆍSpring Boot/Common
반응형
들어가며
Spring Boot Actuator는 Spring Boot 어플리케이션의 운영 관리 도구이다.
제공되는 주요 기능은 다음과 같다.
- Health Check : 어플리케이션의 실행 상태와 이슈 여부 체크
- Metrics Endpoint : 각 엔드포인트별 요청에 대한 CPU나 메모리 자원 사용, 요청 수 등 성능 분석
- Info Endpoint : 버전 번호나 빌드 번호와 같은 어플리케이션 정보 제공
- Configuration Endpoint : 어플리케이션의 설정 정보 제공
Spring Actuator로 RESTful Web Service 구현하기
가이드 분서를 따라 간단한 Hello World 어플리케이션에 Spring Actuator를 주입해볼것이다.
Dependency - build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-web'
}
spring-boot-starter-actuator가 주입되었으므로 /actuator/health 엔드포인트에 요청을 보낼 수 있다.
$ curl localhost:8080/actuator/health
{"status":"UP"}
Representation - Greeting.java
public class Greeting {
private final long id;
private final String content;
public Greeting(final long id, final String content) {
this.id = id;
this.content = content;
}
public long getId() {
return id;
}
public String getContent() {
return content;
}
}
Representation - Resource Controller
@Controller
public class HelloWorldController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@GetMapping("/hello-world")
@ResponseBody
public Greeting helloWorld(@RequestParam(value = "name", defaultValue = "World") String name) {
return new Greeting(counter.incrementAndGet(), String.format(template, name));
}
}
/hello-world 에 대한 엔드포인트를 지정하였으므로 호출하면 응답을 받을 수 있다.
$ curl localhost:8080/hello-world
{"id":1,"content":"Hello, World!"}
서버 포트와 Management 포트 분리하기 - applicaion.yaml
server:
port = 9000
management:
server:
port: 9001
address: 127.0.0.1
포트를 9000번으로 변경하였으므로 더이상 8080 포트로의 요청은 응받을 받을 수 없고, actuator 엔드포인트는 9001번 포트에서 응답을 받을 수 있다.
$ curl localhost:8080/hello-world
curl: (7) Failed to connect to localhost port 8080 after 0 ms: Couldn't connect to server
$ curl localhost:9000/hello-world
{"id":1,"content":"Hello, World!"}
$ curl localhost:9001/actuator/health
{"status":"UP"}%
Resources
반응형
'Spring Boot > Common' 카테고리의 다른 글
Spring Boot Tomcat을 Jetty나 UnderTow로 교체하기 (0) | 2024.05.01 |
---|---|
Spring Boot AutoConfiguration이란 무엇인가 (0) | 2024.04.27 |
Spring Boot Starter란 무엇인가 (0) | 2024.04.27 |
Spring Boot를 사용하기 위해 알아야 할 것들 (1) | 2024.04.04 |
Spring Boot Application 첫 구축하기 (0) | 2024.04.02 |