[MSA] 모니터링

Dev_Sanizzang·2023년 6월 2일
0

MSA

목록 보기
9/10

Turbine Server

  • 마이크로서비스에 설치된 Hystrix 클라이언트의 스트림을 통합
    • 마이크로서비스에서 생성되는 Hystrix 클라이언트 스트림 메시지를 터빈 서버로 수집

Hystrix Dashboard

  • Hystrix 클라이언트에서 생성하는 스트림을 시각화
    • Web Dashboard

💡 최신 Spring Cloud 버전에서는 Turbine, Hystrix가 아닌 Micrometer 라이브러리를 소개하고 있다.

Micrometer

  • https://micrometer.io/
  • JVM 기반의 애플리케이션 Metrics 제공
  • Spring Framework 5, Spring Boot 2 부터 Spring의 Metrics 처리
  • Prometheus 등의 다양한 모니터링 시스템 지원

모니터링?

Timer

  • 짧은 지연 시간, 이벤트의 사용 빈도를 측정
  • 시계열로 이벤트의 시간, 호출 빈도 등을 제공
  • @Timed 제공

Dependency 추가

implementation group: 'io.micrometer', name: 'micrometer-registry-prometheus'

application.yml endpoint 추가

management:
  endpoint:
    web:
      exposure:
        include: info, prometheus, metrics

@Timed 어노테이션 추가


	@GetMapping("/health_check")
	@Timed(value="users.status", longTask = true)
    public String status() {
        return String.format("It's Working in User Service"
                + ", port(local.server.port)=" + env.getProperty("local.server.port")
                + ", port(server.port)=" + env.getProperty("local.server.port")
                + ", token secret=" + env.getProperty("token.secret")
                + ", token expiration time=" + env.getProperty("token.expiration_time"));
    }

    @GetMapping("/welcome")
    @Timed(value="users.welcome", longTask = true)
    public String welcome() {
//        return env.getProperty("greeting.message");
        return greeting.getMessage();
    }

Prometheus

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

Prometheus 다운

prometheus.yml 파일 수정

  • target 지정
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']
    
  - job_name: 'user-service'
    scrape_interval: 15s
    metrics_path:; '/user-service/actuator/prometheus'
    static_configs:
    - targets: ['localhost:8000']
  • metrics_path: 정보를 수집하고자 하는 actuator의 주소를 입력한다.
  • static_configs: 서비스를 접속할 때 다이렉트로 접속하는 것이 아니라 apigateway를 통해서 접근을 하기 때문에 apigateway의 주소를 입력한다.

Prometheus 서버 실행

실행하기 위해서는 prometheus 실행파일을 실행하면 된다.

Prometheus Dashboard

  • metrics 검사 - Table

Grafana

  • 데이터 시각화, 모니터링 및 분석을 위한 오픈소스 애플리케이션
  • 시계열 데이터를 시각화하기 위한 대시보드 제공

Grafana 다운로드

생략

Grafana 실행

Grafana - Prometheus 연동

profile
기록을 통해 성장합니다.

0개의 댓글