使用Prometheus监控Java Web应用程序

问题描述 投票:1回答:2

我有一个在Tomcat上运行的简单java Web应用程序,我想用Prometheus监控它。我使用the official client在我的java应用程序中添加了一些计数器和仪表,我在另一台服务器上安装了Prometheus而不想使用Prometheus从我的Java应用程序中提取指标。

普罗米修斯得到了tons of exporters,但我不清楚哪一个适合我的用例。我考虑使用Prometheus push gateway,但根据documentation,Pushgateway唯一有效的用例是捕获服务级批处理作业的结果,这不是我的情况。我应该怎么做才能从我的Java应用程序中提取指标?

java monitoring prometheus
2个回答
3
投票

您应该让您的应用程序通过HTTP公开指标。您可能希望将servlet挂钩到现有的Web服务器中。


2
投票

要注册MetricsServlet:

如果你使用spring-boot注册一个bean来表示端点:

@Bean
ServletRegistrationBean registerPrometheusExporterServlet(CollectorRegistry metricRegistry) {
    ServletRegistrationBean srb = new ServletRegistrationBean();
    srb.setServlet(new MetricsServlet(metricRegistry));
    srb.setUrlMappings(Arrays.asList("/prometheus"));
    return srb;
}

如果是非spring应用程序,请在web.xml中添加servlet:

<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>
© www.soinside.com 2019 - 2024. All rights reserved.