Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) (9)

·2024년 1월 5일
0

Micrometer

  • Micrometer(분산 되어있는 서비스들을 모니터링)
    • https://micrometer.io/
    • JVM 기반의 애플리케이션의 Metrics 제공
    • Spring Framework 5, Spring Boot 2부터 Spring의 Metrics 처리
    • Prometheus등의 다양한 모니터링 시스템 지원
  • Timer
    • 짧은 지연 시간, 이벤트의 사용 빈도를 측정
    • 시계열로 이벤트의 시간, 호출 빈도 등을 제공
    • Spring - @Timed 제공

micrometer의 prometheus를 연동하기 위해선 다음과 같이 pom.xml과 application.yml을 수정해 주어야 한다.

그후 코드에는 다음과 같이 @Timed를 사용하면

end-point로 접속 하였을 때, users.status와 users.welcome을 지표로서 사용할 수 있음을 확인할 수 있다. 이 두가지 메서드를 사용자가 호출하게 되면, 호출된 정보가 micrometer에서 기록이 되고 기록된 정보는 추후에 prometheus에서 자동으로 사용할 수 있게 된다.

Prometheus + Grafana

  • Prometheus
    • Metrics를 수집하고 모니터링 및 알람에 사용되는 오픈소스 애플리케이션
    • 2016년부터 CNCF에서 관리되는 2번째 공식 프로젝트
      • Level DB -> Time Series Database(TSDB)
    • Pull 방식의 구조와 다양한 Metric Exporter 제공
    • 시계열 DB에 Metrics 저장 -> 조회 가능 (Query)
  • Grafana
    • 데이터 시각화, 모니터링 및 분석을 위한 오픈소스 애플리케이션
    • 시계열 데이터를 시각화하기 위한 대시보드 제공

prometheus는 https://prometheus.io/download/ 에서 다운 받을 수 있고, prometheus.yml파일에 target을 지정한다.

prometheus dashboard에 접근하기 위해서는 http://127.0.0.1:9000 으로 접속하면 된다.
grafana는 https://grafana.com 에서 다운 받을 수 있다.


grafana와 prometheus를 연동하기 위해서는 grafana에 data source를 추가한다.

그후 grafana dashboard에

  • JVM(Micrometer)
  • Prometheus
  • Spring Cloud Gateway
    를 추가하여 서비스들이 어떠한 리소스를 가지고 있고, 호출되고 있는지에 대한 상태를 도식화 하여 표시한다.
profile
고민0

0개의 댓글