hayu's 개발 일지

[TIL]240420 프로메테우스와 스프링 연결하기 본문

프레임워크/spring

[TIL]240420 프로메테우스와 스프링 연결하기

hayu00 2024. 4. 20. 21:04

애플리케이션 설정

  • 스프링의 마이크로미터가 프로메테우스가 사용하는 포멧에 맞추어 메트릭을 만들어 준다. 각각의 메트릭들은 내부에서 마이크로미터 표준 방식으로 측정되고 있기 때문에 우리는 어떤 구현체를 사용할지 지정만 해주면 된다.

build.gradle에 내용 추가

// Prometheus
    implementation 'org.springframework.boot:spring-boot-starter-actuator' // actuator
    implementation 'io.micrometer:micrometer-registry-prometheus'

이제 엑추에이터에 프로메테우스 메트릭 수집 엔드포인트( /actuator/prometheus )가 자동으로 추가된다.  /actuator/prometheus 엔드포인트로 들어가보면 모든 메트릭이 프로메테우스 포멧으로 만들어져 있다.

프로메테우스 수집 설정

프로메테우스가 애플리케이션의 /actuator/prometheus 를 호출해서 메트릭을 주기적으로 수집하도록 설정해보자.

다운로드 받은 프로메테우스 폴더에 있는 prometheus.yml 파일을 수정한다.

파일을 열어서 다음 코드를 추가한다. (# 추가 부분)

  •  

- job_name : 수집하는 이름. ( 임의의 이름을 사용하면 된다. )

- metrics_path : 수집할 경로를 지정.

- scrape_interval : 수집할 주기를 설정

- targets : 수집할 서버의 IP, PORT를 지정

 

+ 테스트 용도로 매트릭을 빠르게 확인하기 위해서 수집주기를 1초로 설정했다. 하지만 수집 주기가 너무 짧으면 애플리케이션 성능에 영향을 줄 수 있으므로 운영에서는 10s ~ 1m 정도를 권장한다.

 

설정이 끝났으면 파일을 저장하고 프로메테우스를 재시작하고 프로메테우스에 접속해 추가한 설정 정보가 반영되어 있는지 확인한다. ( 프로메테우스 메뉴 → status )

 

 

연동한 애플리케이션의 메트릭 정보가 있는지 확인한다.(프로메테우스 메뉴 → status → targets)

State 가 UP 으로 되어 있으면 정상, DOWN 으로 되어 있으면 연동 X

 

참고 자료

- https://developer-nyong.tistory.com/49

- https://do0911.tistory.com/19

- https://benlee73.tistory.com/60