如何跟踪用户在 Spring 启动应用程序中使用的总输入/输出带宽



经过一些研究,我发现有一个弹簧执行器项目,用于监视和记录有关应用程序的信息。这是建议如何将登录到我自己的自定义存储库进行后处理的链接。[http://www.sedooe.com/2017/08/tracing-requests-and-responses-with-spring-boot-actuator/]

但是,不包括输入/输出字节总数。我知道我可以尝试包装HttpServeletRequestHttpServeletResponse(在过滤器中,将它们传递给过滤器链,以便它可以在消耗或写出它们时计算进出吞吐量(,这将返回可以计算字节数的自定义SerlvetInputStreamServletOutputStream

这似乎是业务应用程序中的常见问题,应该已经有一个解决方案,所以我想知道是否有更简单的方法来实现这一点。

据我了解,Spring-Boot 1.5 执行器实现不提供这样的功能。(假设你说的是Spring-Boot 1.5。

你可以做的是看看千分尺项目。它是Spring-Boot 2.0的新执行器指标"后端"。如果您仍在使用 Spring-Boot 1.5,您可以在应用程序中使用 micrometer-spring-legacy 库。

这里要理解的关键是,对于 Spring-Boot 1.5,这是一个公制后端,位于"旧"执行器旁边。

该项目提供的是嵌入式JettyTomcat服务器的检测。尽管只有后者确实提供进出流量指标。

假设Tomcat,您将获得tomcat_global_received_bytes_totaltomcat_global_sent_bytes_total指标,您可以在自己喜欢的监控系统中对其进行推理。

最新更新