当 Spring actuator 在 Webflux 项目中满足 Spring Metrics

When Spring actuator meets Spring Metrics in a Webflux project

我有一个小问题: 请问在 Spring Webflux 项目 中同时使用 Spring 执行器和 Spring 指标有什么好处(如果有的话)?

从这些年来看,执行器似乎越来越受欢迎。但是,在“Spring 生态系统”中有这个 Spring 指标项目。

将两者结合起来有什么好处吗?或者只是一个就足够了(在这种情况下,哪个)?也许某些用例只有两者结合才能实现?

最后,我想跟踪在 Webflux 项目中执行 something 所花费的时间。如:

  • webflux 端点被调用了多少次?
  • 从接收请求到响应请求花费了多长时间?
  • 响应式数据库调用需要多少时间?
  • 执行此服务花费了多少时间?

等等...而不必重新发明轮子。任何框架的建议 Spring 友好能够实现这一点?

谢谢

您不需要同时使用这两个库。 Actuator 是您检测 spring 引导应用程序所需的唯一库。 Actuator 使用 Micrometer 作为它的底层指标库。看起来 Spring-metrics 是在将此集成移至 Actuator 之前创建的。我不认为 spring-metrics 是受支持或维护的库。

How many times was a webflux endpoint invoked?

How much time spent between receiving and responding to the request?

Actuator 附带一个 WebFilter 来检测对您的系统进行的每个 http 调用。这是默认启用的。 Docs

How much time needed for the reactive database call?

我认为没有任何开箱即用的工具,但您可以使用 Micrometer 添加自定义代码来为每个数据库调用计时。 Micrometer Timer Docs

How much time spent executing this service?

同上。

在 spring 引导中有很多开箱即用的支持来检测代码库的不同部分。了解提供给您的内容的最佳位置是 documentation