우선 스프링프레임워크 부트 3.0.2에 build.gradle을 이용하여 해보고 있습니다.
APM란 지금 이 어플리케이션이 잘 동작하고 있는지 상태들을 볼수있게 도와주며 문제점을 파악하기 위해서 사용합니다.
Actuator은.. APM(Application Performance Management)의 종류중 중 하나입니다.
//actuator 사용을 위한것
implementation 'org.springframework.boot:spring-boot-starter-actuator:3.0.4'
이제 yml파일을 수정해봅시다. properties라고도 할수있어요
# Actuator
management:
endpoint:
metrics:
enabled : true
prometheus:
enabled: true
endpoints:
web:
base-path: /actuator
exposure:
include: health, metrics, prometheus, info
# exclude: env은 Actuator 엔드포인트 중에서 "env"를 제외하겠다는 의미입니다.
# "env" 엔드포인트는 애플리케이션의 환경 변수를 보여주는 엔드포인트이며,
# 보안상의 이유로 기본적으로 제외되어 있습니다.
# 굳이 해둔이유는 누군가
# include를 "*"로 바꾸었을때를 위한 대비입니다.
exclude: env
metrics:
tags:
application: TestProjectApplication#이곳에 Application이름을 적어주시면됩니다. 스프링 실행시키기 위한거요
health의 경우 이 어플리케이션이
오류 없이 동작한다면 UP을 보여주며
오류가 있다면 Down을 보여줍니다.
threaddump의 경우 돌아가는 스레드들의 상태를 보여줍니다.
어떤 스레드에 문제가 생겼는지 파악하고 오류부분을 수정할 수있게 도와주는겁니다.
info 이 어플리케이션의 정보를 적어서 보여주는부분입니다.
적어놔야.. 보여줄수있습니다.
@Component
public class MyInfoContributor implements InfoContributor {
@Override
public void contribute(Info.Builder builder) {
builder.withDetail("name", "SearchGym")
.withDetail("version", "1.0.0")
.withDetail("descriptionEnglish", "Test")
.withDetail("descriptionKorean", "실험이에요");
}
}
이런식으로 말이죠
.yml에서 수정 할 수도 있다고 합니다.
길어질 수 도 있으니 저같은 경우 클래스를 하나 따로 만들어 봤습니다.
그런데.. 이렇게만하면 json형태로 글자만 보여서.. 문제를 파악하기 매우.. 매우~~~ 어렵습니다. 그래서 이제 이것을 시각화 해주는것 여러개가 있는데 그중에서
Prometheus + Grafana를 이용한 시각화를 다음시간에 이어서 해볼 예정입니다.