Micrometer

이재철·2021년 10월 24일
0

MSA

목록 보기
12/13

Turbine Server

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

Hystrix Dashboard

  • Hystrix 클라이언트에서 생성하는 스트림을 시각화 (Web Dashboard)
  • Hystrix Dashboard / Turbine -> Micrometer + Monitoring System

Micrometer

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

Timer

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

사용해보기

  • pom.xml
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
  • application.yml (info, metrics, prometheus 추가)
management:
  endpoints:
    web:
      exposure:
        include: refresh, health, beans, busrefresh, info, metrics, prometheus
  • controller (@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("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();
  }

0개의 댓글