对应用启动时间的关注和获取

本文探讨了在应用接入分布式调用链路跟踪系统后,启动时间变长的问题。介绍了如何获取JavaWeb和JavaApp应用的启动时间,包括利用Tomcat日志和Spring容器加载完成时间。并通过自动化脚本与Jenkins实现启动时间的常规测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此文已由作者翟曜授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。


最近在跟进考拉中间件产品:分布式调用链路跟踪系统trace的测试。

昨天,trace收到一个业务方反馈:接入trace后,工程启动变慢。

针对这个问题,一方面,当前中间件团队内部的测试流程是基于demo工程进行测试,测试完毕后再推广业务接入,进行业务测试的验证。demo工程的复杂度跟实际业务工程相比,差别较大,demo应用的启动速度本身较快,所以测试过程中未能关注到明显差别。另一方面,也提醒了自己,要做一名严谨的qa,这类问题不应放过,发现了就要引起关注,并且需纳入后续的常规测试范围中,每个版本升级都应输出该项测试的比对结果。

那么,如何获取应用启动时间呢?

我们现在的应用都是通过ndp部署,应用类型主要有两类:java web和java app。

第1类:Java web应用类型的启动时间

这个比较容易获取,直接查看tomcat日志,会比较醒目的打印出:

即该应用的启动耗费时间。

第2类:java app应用类型的启动时间

测试demo中,该类型工程基于spring boot启动,日志中貌似没有明确的时间可以获取。

要获取启动耗费时间,有启动开始时间和启动结束时间即可。

启动开始时间,比较容易获取,可以约等于restart脚本开始执行start的时间or应用日志的第一条记录产生的时间。

启动结束时间,如何获取?可以约等于Spring容器加载完成的时间,那么可以利用监听ContextRefreshedEvent事件来获取这个结束时间。如下:

在监听器的onApplicationEvent中打印出“结束时间”,便可以根据“spring start success“关键字搜索到启动结束时间。

有了启动开始和启动结束时间,启动耗费时间可以得到了。

每次去服务器上人肉操作人肉查看,也比较费时。

那么可以将获取启动耗费时间自动脚本化,然后通过jenkins来触发执行。

最终获取并输出的测试结果如下:


免费体验云安全(易盾)内容安全、验证码等服务

更多网易技术、产品、运营经验分享请点击




相关文章:
【推荐】 windows下简单验证码识别——完美验证码识别系统


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值