2017-10-19 14 views
0

Prometheus을 사용하여 모니터링하려는 Tomcat에서 실행되는 간단한 Java 웹 응용 프로그램이 있습니다. the official client을 사용하여 Java 응용 프로그램에 카운터 및 게이지를 추가했는데 Prometheus를 다른 서버에 설치했지만 Prometheus를 사용하여 Java 응용 프로그램에서 메트릭을 가져 오지 않았습니다.Prometheus를 사용하여 Java 웹 응용 프로그램 모니터링

Prometheus는 tons of exporters을 얻었지만 어느 것이 내 사용 사례에 적합한 지 명확하지 않습니다. Prometheus push gateway을 사용했지만, documentation에 따르면 Pushgateway의 유일한 유스 케이스는 서비스 레벨 배치 작업의 결과를 캡처하는 경우입니다. Java 애플리케이션에서 메트릭을 가져 오려면 어떻게해야합니까?

답변

0

:

당신은 엔드 포인트 표현하기 위해 빈을 등록 봄 부팅을 사용하는 경우 :

비 스프링 응용 프로그램의 경우
@Bean 
ServletRegistrationBean registerPrometheusExporterServlet(CollectorRegistry metricRegistry) { 
    ServletRegistrationBean srb = new ServletRegistrationBean(); 
    srb.setServlet(new MetricsServlet(metricRegistry)); 
    srb.setUrlMappings(Arrays.asList("/prometheus")); 
    return srb; 
} 

가에 서블릿을 추가를 web.xml :

<servlet> 
     <servlet-name>metrics</servlet-name> 
     <servlet-class>io.prometheus.client.exporter.MetricsServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>metrics</servlet-name> 
     <url-pattern>/metrics/</url-pattern> 
    </servlet-mapping> 
</servlet> 
2

응용 프로그램에서 HTTP를 통해 메트릭을 노출하도록해야합니다. servlet을 기존 웹 서버에 연결하고 싶을 것입니다. MetricsServlet를 등록하기 위해

+0

이것은 부두의 좋은 예입니다. Tomcat은 어떻습니까? – forhas

+0

@forhas : 서블릿은 컨테이너 중립입니다. – rkosegi