背景
koTime是一个springboot项目性能监控工具,通过方法调用链路追踪以及对应的运行时长快速定位性能瓶颈,他的起源是这样的:
最近项目出现了部分接口响应时间过长的情况,作为一名开发(che)多年的老司机,显然是打开浏览器看看是哪个接口作妖,然后顺着网线找到Controller层,找到Service层,找到dao层…一层的一层的看,一圈一圈的调试,一步一步的改,一个上午的时间下来,也就是找出了一个需要花费我5分钟改掉的问题,而大部分的时候却花费在了定位问题上,于是乎,常年面向网络编程的我决定上网找找有没有方法调用链路追踪
框架,帮我记录每个接口的调用情况,以及每个方法的运行时长,这样可以快速定位到问题所在,省下我一个或者多个一早上定位问题的时间,毕竟,时间是用来解决问题的,而不是用来发现问题的,而这个问题往往是自己写下的愚蠢代码导致的!
出乎意料的是,竟然没有找到一个对应开源框架可以直接使用(也有可能是我的搜索水平有待提高,当然我是不会承认的),有的是那些服务调用链路跟踪的,没有细化到方法层面,于是乎我决定还是先定个小目标:自己写一个小demo吧!
这里插一句,不要好奇为什么本人写了多篇NLP和深度学习,突然冒出来一篇Java,其实,臣本Javer,躬耕于Jvm,苟全性命于Compute,偶尔写写NLP!
先来看一下效果吧,毕竟本人廉价的口语无法满足你的想象,可能还会让你想歪!
可视化展示
1.接口调用统计
根据颜色判断需要优化的接口数,红色为待优化,绿色为正常
2.接口列表总览
在列表中会显示接口的运行耗时,绿色则无需优化,红色则需要详细查看问题所在
3.调用详情
点开接口时,会显示该接口的调用链路以及运行时长,我们可以通过颜色快速定位问题所在方法,剩下的时间用来优化自己的代码
4.入参组合分析
双击节点,展示不同参数组合之下的运行时长
5.异常诊断
记录方法对应的异常
6.代码热更新
不重启在线更新代码
总结
以上就是一个可以简单快速集成到项目中进行接口分析的小工具,感兴趣的童鞋可以试用:
也可以提提建议,谢谢!