Prometheus의 스프링 부트 메트릭

소개




며칠 간의 고된 개발 끝에 내 애플리케이션이 마침내 프로덕션에 배포되었습니다! 어떤 사용자도 버그를 보고하지 않았으므로 모든 것이 정상인 것 같습니다. 하지만 정말 그럴까요?

그냥 배포하고 다음 작업으로 넘어가는 것을 좋아하지 않기 때문에 새로운 API가 건강하고 숨 쉬고 있는지 확인해야 할 필요성을 느낍니다. 그래서 즉시 새 브라우저 탭을 열고 Kibana에서 로그를 확인합니다.

이제 내가 남긴 관련 로그 메시지와 Lucene 구문을 기억해야 하지만 모든 배포에 대해 이 작업을 수행할 수 없기 때문에 확장할 수 없습니다. 이 프로세스는 제품 관리자와 같은 비기술적인 사람에게도 적합하지 않습니다. 한 번만 구성한 다음 모든 메트릭을 시각화할 수 있는 대시보드가 ​​있었으면 좋겠습니다.

전제 조건





Spring 부트 API는 Prometheus에서 수집한 다음 Grafana에 표시할 데이터를 노출합니다. Spring 부트 애플리케이션을 실행하려면 Java 8이 필요합니다.

Linux 기반 OS에 Prometheus 및 Grafana를 설치하는 방법을 알고 싶다면 my .

셋업 스프링





OnSpring initializr에서 종속성이 있는 Gradle 프로젝트를 선택합니다.
  • Spring Web
  • Spring Boot DevTools
  • Prometheus
  • Spring Boot Actuator

  • 최종 코드는 여기Github repository에서 사용할 수 있습니다.

    Prometheus 메트릭 노출


    application.properties 파일에 다음 줄을 추가합니다.

    management.endpoints.web.exposure.include=*
    


    Spring 애플리케이션을 실행하고 엔드포인트에 액세스합니다.

    http://localhost:8080/actuator/prometheus
    


    Prometheus에서 이해할 수 있는 형식으로 많은 데이터를 반환해야 합니다.

    이 데이터를 스크랩하도록 Prometheus 구성


    prometheus.yml 파일에서 scrape_configs 아래에 새 작업을 추가합니다.

    global:
      scrape_interval: 10s
    
    scrape_configs:
      - job_name: 'spring_micrometer'
        metrics_path: '/actuator/prometheus'
        scrape_interval: 5s
        static_configs:
          - targets: ['localhost:8080']
    


    이제 http://localhost:9090/에서 Prometheus 인터페이스에 액세스하고 다음을 쿼리합니다.

    http_server_requests_seconds_count{job="spring_micrometer"}
    




    Prometheus가 Spring 부트 애플리케이션에서 데이터를 스크랩하도록 요청하는 것을 볼 수 있습니다. 지금까지 모든 것이 제대로 작동하고 있다는 신호입니다.

    Grafana 구성



    이제 이 데이터를 표시하도록 Grafana를 구성합니다. 브라우저에서 Grafana를 열고 JVM (Actuator) dashboard 을 가져옵니다.



    이제 몇 가지 멋진 데이터가 표시됩니다.


    결론



    이제 모든 메트릭이 한 곳에 있으므로 브라우저에서 URL을 입력하기만 하면 됩니다. 대형 TV를 구입하고 대시보드 스트리밍을 24/7로 유지할 수도 있습니다.

    비즈니스 메트릭과 같이 Prometheus에 고유한 사용자 지정 메트릭을 보낼 수 있다면 어떨까요? Prometheus 쿼리를 기반으로 자동 알림을 생성할 수 있다면 어떨까요? 아래에 댓글을 남겨주시면 이 콘텐츠에 관심이 있으신지 알 수 있습니다.

    좋은 웹페이지 즐겨찾기