Spring内部方法性能监控器

想要一个能监控Spring项目内部方法的监控器,看看调用次数,最大最小时间,平均时间等一些数据,数据5分钟统计一次就可以。找了一圈没找到合适的,就自己撸了一个。

原理

  • 使用者在外面用AOP拦截需要监控的方法。我是使用一个自定义的注解作为拦截条件。
  • 使用Around方式声明AOP,并在拦截中调用Monitor的方法。
@Aspect
@Component
public class PerformanceAop {
    @Autowired
    Monitor monitor;

    @Around("@annotation(MonitorMethod)")
    public Object whenMethodCall(ProceedingJoinPoint joinPoint){
        try {
            return monitor.newInvoke(joinPoint);
        } catch (Throwable throwable) {
            throwable.printStackTrace();
        }
        return null;
    }
}
  • 导入Bean
@ComponentScan(basePackages = {"io.github.bobdeng"})
  • Maven引用
<dependency>
            <groupId>io.github.bobdeng</groupId>
            <artifactId>appmonitor</artifactId>
            <version>0.3.4.SNAPSHOT</version>
   </dependency>
[
  {
    "className": "cn.v5.match.bean.impl.MatchServerImpl",
    "methodName": "void cn.v5.match.bean.impl.MatchServerImpl.runLoop()",
    "lastMonitorData": [
      {
        "max": 58,
        "min": 0,
        "times": 41,
        "time": "2016-12-27 15:35",
        "average": 2
      }
      ]
      }
]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值