ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로메테우스 - 설정
    스프링/스프링부트 2023. 10. 2. 16:41

    프로메테우스가 애플리케이션 메트릭을 수집하도록 연동하는 과정

     

    1. 애플리케이션 설정 : 프로케테우스가 애플리케이션의 메트릭을 가져갈 수 있도록 애플리케이션에서 프로메테우스의 형식에 맞추어 메트릭 만들기

    2. 프로메테우스 설정 : 프로메테우스가 애플리케이션의 메트릭을 주기적으로 수집하도록 설정

     

     

    아래의 사이트에서 운영체제에 맞는 프로메테우스를 다운받으면 된다.

    https://prometheus.io/download/

     

    prometheus.exe를 실행하면 9090포트로 프로메테우스 페이지에 접근할 수 있다.

    http://localhost:9090

     

     

     

    애플리케이션 설정

    프로메테우스는 localhost:8080/actuator/metrics의 JSON 형식은 이해하지 못한다.

    마이크로미터가 프로메테우스 포멧에 맞춰서 메트릭을 맞춰주기 때문에 마이크로미터를 사용하면 된다.

     

    implementation 'io.micrometer:micrometer-registry-prometheus' // 추가

    build.gradle에 해당 라이브러리를 추가해준다. 스프링 부트와 액츄에이터가 자동으로 마이크로미터 프로메테우스 구현체를 등록해서 동작하도록 설정해준다.

    그러면 자동으로 액츄에이터에 prometheus라는 엔드포인트가 추가된다.

     

    프로메테우스 엔드포인트

    모든 메트릭이 프로메테우스 포멧으로 만들어진 것이다.

     

     

     

     

    프로메테우스 수집 설정

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

    프로메테우스 폴더의 prometheus.yml 파일을 수정해야한다.

    위의 사진과 같이 추가해주면 된다. job_name은 원하는 이름, etrics_path는 메트릭 경로를 적으면 된다.

    scrape_interval은 수집 경로인데 보통 10초정도로 하는데 예제기 때문에 1초로 했다.

    마지막으로 static_configs의 target은 localhost:8080으로 설정해주면 된다.

     

    최종적으로 프로메테우스는 다음 경로를 1초에 한번씩 호출해서 애플리케이션의 메트릭을 수집한다.

     

    수집 주기를 너무 작게하면 애플리케이션 성능에 영향을 줄 수 있기 때문에 10s ~ 1m를 권장한다.

     

     

     

    localhost:9090/config에 접근했을 때

    위의 사진처럼 우리가 설정한 것들이 들어가있으면 잘 된것이다.

     

     

    localhost:9090/targets로 접근하면 위와 같이 뜨는데, prometheus는 프로메테우스 자체에서 제공하는 프로메테우스가 프로메테우스 자신의 메트릭을 확인하는 것이며 spring-actuator는 우리가 연동한 애플리케이션의 매트릭 정보이다.

     

    UP 상태면 정상적으로 연동 된 것이며, DOWN이면 정상 연동이 안된 것이다.

    '스프링 > 스프링부트' 카테고리의 다른 글

    프로메테우스 - 게이지와 카운터  (0) 2023.10.02
    프로메테우스 - 기본 기능  (0) 2023.10.02
    프로메테우스와 그라파나 소개  (0) 2023.10.02
    메트릭의 종류들  (0) 2023.10.02
    메트릭 확인  (0) 2023.10.02
Designed by Tistory.