ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 메트릭 등록 - 게이지
    스프링/스프링부트 2023. 10. 3. 22:20

    게이지는 임의로 오르내릴 수 있는 단일 숫자 값을 나타내는 메트릭이다.

     

    카운터와 게이지는 값이 감소할 수 있는지의 차이이다.

     

    @Configuration
    public class StockConfigV1 {
    
        @Bean
        public MyStockMetric myStockMetric(OrderService orderService, MeterRegistry registry) {
            return new MyStockMetric(orderService, registry);
        }
        
        @Slf4j
        static class MyStockMetric {
            private OrderService orderService;
            private MeterRegistry registry;
    
            public MyStockMetric(OrderService orderService, MeterRegistry registry)
            {
                this.orderService = orderService;
                this.registry = registry;
            }
    
            @PostConstruct // 외부에서 메트릭을 확인할 때마다 호출되며 이 함수의 반환 값이 게이지의 값이다.
            public void init() {
                Gauge.builder("my.stock", orderService, service -> {
                    log.info("stock gauge call");
                    return service.getStock().get();
                }).register(registry);
            }
        }
    }

    게이지는 단순하게 Configuration만 만들어주면 된다. 빈으로 등록해주고, 생성자를 만든 다음에 @PostContruct로 외부에서 메트릭을 확인할 때마다 호출해주면 된다.

     

    그라파나에서도 쉽게 확인할 수 있다.

     

     

    @Slf4j
    @Configuration
    public class StockConfigV2 {
    
        @Bean
        public MeterBinder stockSize(OrderService orderService) {
            return registry -> Gauge.builder("my.stock", orderService, service -> {
                log.info("stock gauge call");
                return service.getStock().get();
            }).register(registry);
        }
    }

    StockConfigV2도 위와같이 코드를 간단하게 줄일 수 있다.

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

    메트릭 등록 - Timer  (0) 2023.10.03
    메트릭 등록 - 카운터  (0) 2023.10.03
    그라파나 - 공유 대시보드 활용  (0) 2023.10.02
    그라파나 - 대시보드 만들기  (0) 2023.10.02
    그라파나 - 설치 및 연동  (0) 2023.10.02
Designed by Tistory.