问题描述
有没有办法通过 Micrometer 使用 Servlet 过滤器(即非 Spring 应用程序)收集 HTTP 指标。我正在寻找类似于 io.micrometer.jersey2.server.MetricsApplicationEventListener 的解决方案,在 Jersey 的情况下...
解决方法
如果您选择的 Servlet Container 恰好是 Tomcat,则可以使用 TomcatMetrics
。它将为您注册一堆与 Tomcat 相关的指标,例如:tomcat.servlet.request
和 tomcat.servlet.error
。您可以在 TomcatMetricsAutoConfiguration
和 TomcatMetricsBinder
中查看 spring-boot-actuator 如何自动配置它,基于这些,您也可以在非 spring 应用程序中使用它。
如果您需要更高级/更精细的东西,您可以创建一个 servlet Filter
(我认为千分尺没有),您可以在其中使用 Timer
测量您需要的东西。您可以检查 spring-boot-actuator 的作用,并在此基础上实现自己的 Filter
,请参阅:WebMvcMetricsAutoConfiguration
和 WebMvcMetricsFilter
。