如何使用AOP计算在控制器类中被调用的所有内部服务的响应时间

时间:2019-04-23 08:48:40

标签: java spring-boot spring-aop splunk

我的Rest Api是在Spring Boot中开发的,为了进行日志记录,我们使用Splunk和Spring AOP。我的问题是如何计算所有内部服务被调用的响应时间。现在,我能够获得端到端的响应时间。 我们需要在Splunk中创建仪表板来跟踪Api的性能。

1 个答案:

答案 0 :(得分:0)

这是一个使用AspectJ的@Around注释的示例。

@Aspect
@Configuration
public class MethodExecutionCalculationAspect {

    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @Around("@annotation(com.in28minutes.springboot.tutorial.basics.example.aop.TrackTime)")
    public void around(ProceedingJoinPoint joinPoint) throws Throwable {
        long startTime = System.currentTimeMillis();

        joinPoint.proceed();

        long timeTaken = System.currentTimeMillis() - startTime;
        logger.info("Time Taken by {} is {}", joinPoint, timeTaken);
    }
}

所以,我认为这是您想要做的。