KoTime:方法调用链路追踪以及运行时长监控

684 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


背景

koTime是一个springboot项目性能监控工具,通过方法调用链路追踪以及对应的运行时长快速定位性能瓶颈,它的起源是这样的:

最近项目出现了部分接口响应时间过长的情况,作为一名开发(che)多年的老司机,显然是打开浏览器看看是哪个接口作妖,然后顺着网线找到Controller层,找到Service层,找到dao层...一层的一层的看,一圈一圈的调试,一步一步的改...

一个上午的时间下来,也就是找出了一个需要花费我5分钟改掉的问题,而大部分的时候却花费在了定位问题上,于是乎,常年面向网络编程的我决定上网找找有没有方法调用链路追踪框架,帮我记录每个接口的调用情况,以及每个方法的运行时长,这样可以快速定位到问题所在,省下我一个或者多个一早上定位问题的时间,毕竟,时间是用来解决问题的,而不是用来发现问题的,而这个问题往往是自己写下的愚蠢代码导致的!

出乎意料的是,竟然没有找到一个对应开源框架可以直接使用(也有可能是我的搜索水平有待提高,当然我是不会承认的),有的是那些服务调用链路跟踪的,没有细化到方法层面,于是乎我决定还是先定个小目标:自己写一个小demo吧!

先来看一下效果吧,毕竟本人廉价的口语无法满足你的想象,可能还会让你想歪!

可视化展示

1.接口调用统计

根据颜色判断需要优化的接口数,红色为待优化,绿色为正常

image.png

2.接口列表总览

在列表中会显示接口的运行耗时,绿色则无需优化,红色则需要详细查看问题所在

在这里插入图片描述

3.调用详情

点开接口时,会显示该接口的调用链路以及运行时长,我们可以通过颜色快速定位问题所在方法,剩下的时间用来优化自己的代码

image.png

4.入参组合分析

双击节点,展示不同参数组合之下的运行时长

image.png

5.异常诊断

记录方法对应的异常

image.png image.png

总结

以上就是一个可以简单快速集成到项目中进行接口分析的小工具,感兴趣的童鞋可以试用:

使用文档

开源地址

也可以提提建议,谢谢!