本申请涉及计算机程序,特别涉及一种应用程序的零侵入监控方法,还涉及一种应用程序的零侵入监控装置、电子设备以及计算机可读存储介质。
背景技术:
1、针对应用程序的性能监控是服务稳定性领域的重要能力,传统的性能监控可以通过javaagent(运行类加载器在加载类之前对类做出动态的修改)等无侵入的方式进行。传统的javaagent的无侵入方式,在应用启动时需要耗费大量的时间,用于通过字节码编辑组件完成对程序的修改,经过测试,javaagent在启动时,需要额外花费上百秒时间,从而造成应用启动超时的问题。
2、因此,如何有效降低应用启动时长,避免由于挂载javaagent而导致的应用启动超时是本领域技术人员亟待解决的问题。
技术实现思路
1、本申请的目的是提供一种应用程序的零侵入监控方法,该应用程序的零侵入监控方法可以有效降低应用启动时长,从而避免由于挂载javaagent而导致的应用启动超时的问题;本申请的另一目的是提供一种应用程序的零侵入监控装置、电子设备及计算机可读存储介质,均具有上述有益效果。
2、第一方面,本申请提供了一种应用程序的零侵入监控方法,应用于服务端,所述服务端部署有修改程序,包括:
3、获取客户端上传的应用开发程序;
4、利用所述修改程序在所述应用开发程序中插入性能监控代码,获得修改应用程序;
5、发布所述修改应用程序。
6、可选地,所述利用所述修改程序在所述应用开发程序中插入性能监控代码,获得修改应用程序,包括:
7、利用所述修改程序对所述应用开发程序进行扫描,获得目标文件;
8、确定所述目标文件中的修改位置,并在所述修改位置插入所述性能监控代码,获得所述修改应用程序。
9、可选地,所述确定所述目标文件中的修改位置,并在所述修改位置插入所述性能监控代码,获得所述修改应用程序,包括:
10、获取所述目标文件的文件属性信息;
11、根据所述文件属性信息判断所述目标文件是否为更新文件;
12、若是,则确定所述目标文件中的修改位置,并在所述修改位置插入所述性能监控代码,获得所述修改应用程序;
13、若否,则查询所述文件属性信息对应的历史修改记录,并根据所述历史修改记录对所述应用开发程序进行修改,获得所述修改应用程序。
14、可选地,当所述目标文件为所述更新文件时,所述方法还包括:
15、统计所述应用开发程序的修改记录;
16、将所述文件属性信息和所述修改记录进行对应存储。
17、可选地,所述发布所述修改应用程序之前,还包括:
18、获取历史应用开发程序的历史修改时间;
19、根据所述历史修改时间确定程序发布模式;
20、相应地,所述发布所述修改应用程序,包括:
21、按照所述程序发布模式对所述修改应用程序进行发布。
22、可选地,所述根据所述历史修改时间确定程序发布模式,包括:
23、若所述历史修改时间低于预设阈值,则设置所述程序发布模式为同步发布模式;
24、若所述历史修改时间不低于所述预设阈值,则设置所述程序发布模式为异步发布模式。
25、可选地,当所述程序发布模式为所述同步发布模式时,所述按照所述程序发布模式对所述修改应用程序进行发布,包括:
26、记录所述应用开发程序的修改时长;
27、若所述修改时长未超出预设时长,则按照所述同步发布模式对所述修改应用程序进行发布;
28、若所述修改时长超出所述预设时长,则将所述程序发布模式由所述同步发布模式切换为所述异步发布模式,并按照所述异步发布模式对所述修改应用程序进行发布。
29、第二方面,本申请还公开了一种应用程序的零侵入监控装置,应用于服务端,所述服务端部署有修改程序,包括:
30、获取模块,用于获取客户端上传的应用开发程序;
31、修改模块,用于利用所述修改程序在所述应用开发程序中插入性能监控代码,获得修改应用程序;
32、发布模块,用于发布所述修改应用程序。
33、第三方面,本申请还公开了一种电子设备,包括:
34、存储器,用于存储计算机程序;
35、处理器,用于执行所述计算机程序时实现如上所述的任一种应用程序的零侵入监控方法的步骤。
36、第四方面,本申请还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任一种应用程序的零侵入监控方法的步骤。
37、本申请提供了一种应用程序的零侵入监控方法,应用于服务端,所述服务端部署有修改程序,包括:获取客户端上传的应用开发程序;利用所述修改程序在所述应用开发程序中插入性能监控代码,获得修改应用程序;发布所述修改应用程序。
38、应用本申请所提供的技术方案,在服务端部署修改程序,在接收到客户端上传的应用开发程序之后,对该应用开发程序进行发布之前,可以利用服务器自身部署的修改程序先对其进行修改,即在应用开发程序中插入性能监控代码以实现对应用开发程序的性能监控功能,然后再进行应用开发程序的发布,那么,对于应用开发程序的各个应用方而言,其所获取到的应用开发程序是已经在服务端插入性能监控代码的应用开发程序,也就是可以直接从服务端获得具有性能监控功能的应用开发程序,因此,后续应用端在启动或重启应用开发程序时无需再进行javaagent挂载,故而可以有效降低应用启动时长,避免由于挂载javaagent而导致的应用启动超时的问题。
39、本申请所提供的应用程序的零侵入监控装置、电子设备以及计算机可读存储介质,同样具有上述技术效果,本申请在此不再赘述。
1.一种应用程序的零侵入监控方法,其特征在于,应用于服务端,所述服务端部署有修改程序,包括:
2.根据权利要求1所述的应用程序的零侵入监控方法,其特征在于,所述利用所述修改程序在所述应用开发程序中插入性能监控代码,获得修改应用程序,包括:
3.根据权利要求2所述的应用程序的零侵入监控方法,其特征在于,所述确定所述目标文件中的修改位置,并在所述修改位置插入所述性能监控代码,获得所述修改应用程序,包括:
4.根据权利要求3所述的应用程序的零侵入监控方法,其特征在于,当所述目标文件为所述更新文件时,所述方法还包括:
5.根据权利要求1至4任意一项所述的应用程序的零侵入监控方法,其特征在于,所述发布所述修改应用程序之前,还包括:
6.根据权利要求5所述的应用程序的零侵入监控方法,其特征在于,所述根据所述历史修改时间确定程序发布模式,包括:
7.根据权利要求6所述的应用程序的零侵入监控方法,其特征在于,当所述程序发布模式为所述同步发布模式时,所述按照所述程序发布模式对所述修改应用程序进行发布,包括:
8.一种应用程序的零侵入监控装置,其特征在于,应用于服务端,所述服务端部署有修改程序,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的应用程序的零侵入监控方法的步骤。