@Timed注释不适用于请求范围内的bean?

时间:2019-06-04 19:48:27

标签: spring-boot spring-aop prometheus spring-micrometer requestscope

我有一个具有请求范围的bean,并且其中有一个用micrometer(io.micrometer.core.annotation)@Timed注释的方法,但未在度量标准中显示。它显示Bean是否在默认范围内(Singleton)。

@RequestScope
@Component
public class MyTask {
 //some local variables here
public MyTask() {
  //some unhelpful stuff
}
    @Timed(value = "mappingTask")
    @Override
    public void map(List<MyPojo> myApps) {
      //Some process
}

}

它不应该与Request作用域一起使用还是我缺少什么?

1 个答案:

答案 0 :(得分:0)

摘自:Micrometer github issues

原始问题/问题:

  

@Timed放在一个由Spring管理的任意bean的方法上是无声的   忽略。

这是微米计的响应:

  

TimedAspect方面现在存在于千分尺内核中,但不会存在   在Spring Boot 2或micrometer-spring-legacy中自动配置。我们可以   通过Boot 2.1中的AOP或BPP重新访问@Timed的应用程序,具体取决于   社区对功能的反应方式。

     

要手动配置:

@Configuration
@EnableAspectJAutoProxy
public class AutoTimingConfiguration {
   @Bean
   public TimedAspect timedAspect(MeterRegistry registry) {
      return new TimedAspect(registry);
   }
}

我不确定这是否是您的问题,但值得一试。