프로젝트 도중 스프링부트로 메트릭 등록 및 수집하는 기능이 아닌 스프링을 이용한 메트릭 수집이 필요해 기능 개발한 것에 대해 적어본다.
먼저 사용되는 라이브러리 목록
io.prometheus:simpleclient
io.prometheus:simpleclient_hotspot
io.prometheus:simpleclient_httpserver
메트릭 수집할 수 있는 HTTP SERVER(Client) 생성 필요하다.
HTTPServer server = new HTTPServer(9990);
DefaultExports.initialize();
DefaultExports는 프로메테우스 자바 클라이언트가 제공하는 기본 JVM관련 지표를 포함하여 넘겨줄지 여부를 결정한다.
여기서 count,gauge 등을 사용해 추가적으로 내가 노출하고자 하는 메트릭을 등록하여 사용하면 된다.
내가 사용했던 카운터를 사용 예시다.
Counter counter = Counter.build()
.name("cus_info").help("customer event info")
.labelNames("cusno").register();
첫번째로 카운터를 등록하는 과정이다.
counter.labels("cusno").inc();
두번째로 해당 카운터를 증가시키는 기능이다.
스프링부트가 아닌 스프링을 통해 메트릭을 노출시키고 싶을 때 사용하면 될거같다.