我在String Boot rest控制器上使用@Timed
批注,并且工作正常。控制器的方法调用服务的方法,该方法也用@Timed
注释。
但是,此后续Service Bean中方法的注释不起作用(我在/metrics
中看不到结果)。为什么会这样呢?可以解决吗?
最佳答案
按照Support for @Timed in any Spring-managed bean #361,您可以通过手动注册 TimedAspect
来获得此行为。
@Configuration
@EnableAspectJAutoProxy
public class AutoTimingConfiguration {
@Bean
public TimedAspect timedAspect(MeterRegistry registry) {
return new TimedAspect(registry);
}
}
请注意,按照#361中的jkschneider注释:
我们可以通过Boot 2.1中的AOP或BPP重新访问@Timed的应用程序,具体取决于社区对此功能的反应。