春季指标中的@Timed注释

use*_*r_x 4 java spring metrics spring-boot micrometer

@Timed在String Boot rest控制器上使用批注,并且工作正常。控制器的方法调用服务的方法,该方法也用注释@Timed

但是,此后续Service Bean中方法的注释不起作用(我在中看不到结果/metrics)。为什么会这样呢?可以解决吗?

Kar*_*cki 6

根据任何Spring管理的bean#361中对@Timed的支持,您可以通过TimedAspect手动注册来获得此行为。

@Configuration
@EnableAspectJAutoProxy
public class AutoTimingConfiguration {
  @Bean
  public TimedAspect timedAspect(MeterRegistry registry) {
    return new TimedAspect(registry);
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,按照#361中的jkschneider注释:

我们可以通过Boot 2.1中的AOP或BPP重新访问@Timed的应用程序,具体取决于社区对此功能的反应。

  • @user_x您缺少`@ EnableAspectJAutoProxy`所需的AspectJ依赖项。您可以添加“ spring-boot-starter-aop”作为依赖项。 (2认同)
  • @user_x我确认上述配置适用于示例:https://github.com/izeye/sample-micrometer-spring-boot/tree/timed-annotation,尽管我发现了控制器的其他问题:https:// github。 com / micrometer-metrics / micrometer / issues / 780 (2认同)