我有一个在 Tomcat 上运行的简单 Java Web 应用程序,我想使用 Prometheus 对其进行监控. 我使用 the official client 向我的 Java 应用程序添加了一些计数器和仪表。 ,我在另一台服务器上安装了 Prometheus,不想使用 Prometheus 从我的 Java 应用程序中提取指标。
普罗米修斯得到了tons of exporters但我不清楚哪个适合我的用例。 我考虑过使用 Prometheus push gateway但根据documentation Pushgateway 的唯一有效用例是捕获服务级别批处理作业的结果,这不是我的情况。 我应该怎么做才能从我的 Java 应用程序中提取指标?
最佳答案
为了注册 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>
关于java - 使用 Prometheus 监控 Java 网络应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46823855/