测微仪@Timed for pojo 中的方法不起作用

问题描述

我正在尝试检测 POJO 类中的方法。当我对 Spring 控制器类中的方法使用 micrometer 的 @Timed 注释时,它工作正常,我可以在 prometheus 仪表板中看到指标(我在 pom 中配置了 micrometer-registry-prometheus)。但是,当我对 POJO 类(在同一个 Spring 应用程序中)中的方法使用相同的注释时,我在 prometheus 仪表板中看不到指标。

我是否需要一些额外的配置才能使其适用于 POJO 类中的方法

编辑:我已将指标命名为

@Timed(value="myCustomMethod_responseTime")

解决方法

控制器是自动检测的,您不需要在它们上添加 @Timed。 此外,您需要做一些事情才能完成这项工作:

  • 您需要创建一个 TimedAspect @Bean
  • 您正在检测的方法应该是公开的并且属于 @Bean