[스프링]APM중 하나인 Actuator 사용해보기

allnight5·2023년 4월 11일
0

스프링

목록 보기
57/62

우선 스프링프레임워크 부트 3.0.2에 build.gradle을 이용하여 해보고 있습니다.

APM란 지금 이 어플리케이션이 잘 동작하고 있는지 상태들을 볼수있게 도와주며 문제점을 파악하기 위해서 사용합니다.

Actuator은.. APM(Application Performance Management)의 종류중 중 하나입니다.

Actuator 를 사용하기 위한 의존성 추가 build.gradle에 한줄 추가해 주시면 됩니다.

    //actuator 사용을 위한것
implementation 'org.springframework.boot:spring-boot-starter-actuator:3.0.4'

이제 yml파일을 수정해봅시다. properties라고도 할수있어요

application.yml

# 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를 이용한 시각화를 다음시간에 이어서 해볼 예정입니다.

profile
공부기록하기

0개의 댓글