有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用Prometheus监控Java webapp

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

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


共 (2) 个答案

  1. # 1 楼答案

    要注册MetricsServlet,请执行以下操作:

    如果使用spring引导注册bean来表示端点:

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

    如果是非spring应用程序,请在web中添加servlet。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>
    
  2. # 2 楼答案

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