通过 Micrometer 使用 Servlet 过滤器的 HTTP 指标

问题描述

有没有办法通过 Micrometer 使用 Servlet 过滤器(即非 Spring 应用程序)收集 HTTP 指标。我正在寻找类似于 io.micrometer.jersey2.server.MetricsApplicationEventListener 的解决方案,在 Jersey 的情况下...

解决方法

如果您选择的 Servlet Container 恰好是 Tomcat,则可以使用 TomcatMetrics。它将为您注册一堆与 Tomcat 相关的指标,例如:tomcat.servlet.requesttomcat.servlet.error。您可以在 TomcatMetricsAutoConfigurationTomcatMetricsBinder 中查看 spring-boot-actuator 如何自动配置它,基于这些,您也可以在非 spring 应用程序中使用它。

如果您需要更高级/更精细的东西,您可以创建一个 servlet Filter(我认为千分尺没有),您可以在其中使用 Timer 测量您需要的东西。您可以检查 spring-boot-actuator 的作用,并在此基础上实现自己的 Filter,请参阅:WebMvcMetricsAutoConfigurationWebMvcMetricsFilter