System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种JVM探针的配置方法及装置、电子设备、存储介质制造方法及图纸_技高网

一种JVM探针的配置方法及装置、电子设备、存储介质制造方法及图纸

技术编号:40992415 阅读:2 留言:0更新日期:2024-04-18 21:34
本发明专利技术提供一种JVM探针的配置方法及装置、电子设备、存储介质,当接收到的java指令时,执行java指令对应的java程序;根据java程序的JVM配置文件,查找JVM动态链接库文件;基于JVM动态链接库文件初始化JVM实例,获取JNIEnv接口;通过JNIEnv接口,利用自定义动态链接库文件在java程序的运行参数中配置探针参数;自定义动态链接库文件预先根据Linux预加载机制装载到java程序中;基于配置后的java程序的运行参数和JVM实例,创建并启动JVM实例。基于Linux系统的动态链接库预加载机制,通过自定义的动态链接库动态注入探针参数,实现探针对业务系统的完全无侵入式注入。

【技术实现步骤摘要】

本专利技术涉及运维监控,尤其涉及一种jvm探针的配置方法及装置、电子设备、存储介质。


技术介绍

1、随着java技术发展,应用程序越来越复杂化,为更好的优化应用程序,在开发、部署及运行的过程中,需要及时对业务进程的运行数据(如各种性能指标和运行状态信息)进行监测和对可观性数据进行采集,可以通过配置探针的方式对运行数据进行监测。

2、现有的探针配置方式为开发者对业务服务进行编译打包时,手工在每一个服务镜像的启动脚本中固定增加-javaagent配置,或者由部署人员通过流水线方式在每一次程序编译打包时统一配置增加-javaagent的配置。但是这种配置方式需要侵入到业务打包及部署的环节,存在采集代理agent与业务服务包严重耦合的问题。


技术实现思路

1、有鉴于此,本专利技术实施例提供一种jvm探针的配置方法及装置、电子设备、存储介质,以解决目前探针配置存在采集代理agent与业务服务包严重耦合的问题。

2、为实现上述目的,本专利技术实施例提供如下技术方案:

3、本专利技术第一方面公开一种jvm探针的配置方法,所述方法包括:

4、当接收到的java指令时,执行所述java指令对应的java程序;

5、根据所述java程序的jvm配置文件,查找jvm动态链接库文件;

6、基于所述jvm动态链接库文件初始化jvm实例,获取jnienv接口;

7、通过所述jnienv接口,利用自定义动态链接库文件在所述java程序的运行参数中配置探针参数;所述自定义动态链接库文件预先根据linux预加载机制装载到所述java程序中;

8、基于配置后的所述java程序的运行参数和所述jvm实例,创建并启动jvm实例。

9、优选的,预先根据linux预加载机制装载自定义动态链接库文件到所述java程序中的过程,包括:

10、接收用户输入的自定义动态链接库文件;

11、根据linux的ld_preload预加载机制,将所述自定义动态链接库文件装载到所述java程序中。

12、优选的,所述通过所述jnienv接口,利用自定义动态链接库文件在所述java程序的运行参数中配置探针参数,包括:

13、通过所述jnienv接口,利用自定义动态链接库文件对所述java程序的运行参数进行编排;

14、在编排后的所述java程序的运行参数的列表末尾配置探针参数。

15、优选的所述基于配置后的所述java程序的运行参数和所述jvm实例,创建并启动jvm实例,包括:

16、基于配置后的所述java程序的运行参数,执行对应的创建方法创建jvm实例;

17、在所述jvm实例中运行所述探针参数对应的探针程序;

18、启动所述jvm实例。

19、本专利技术第二方面公开一种jvm探针的配置装置,所述装置包括:

20、执行单元,用于当接收到的java指令时,执行所述java指令对应的java程序;

21、查找单元,用于根据所述java程序的jvm配置文件,查找jvm动态链接库文件;

22、获取单元,用于基于所述jvm动态链接库文件初始化jvm实例,获取jnienv接口;

23、配置单元,用于通过所述jnienv接口,利用自定义动态链接库文件在所述java程序的运行参数中配置探针参数;所述自定义动态链接库文件预先根据linux预加载机制装载到所述java程序中;

24、创建单元,用于基于配置后的所述java程序的运行参数和所述jvm实例,创建并启动jvm实例。

25、优选的,所述装置还包括:

26、接收单元,用于接收用户输入的自定义动态链接库文件;

27、装载单元,用于根据linux的ld_preload预加载机制,将所述自定义动态链接库文件装载到所述java程序中。

28、优选的,所述配置单元,包括:

29、编排模块,用于通过所述jnienv接口,利用自定义动态链接库文件对所述java程序的运行参数进行编排;

30、配置模块,用于在编排后的所述java程序的运行参数的列表末尾配置探针参数。

31、优选的,所述创建单元,包括:

32、创建模块,用于基于配置后的所述java程序的运行参数,执行对应的创建方法创建jvm实例;

33、运行模块,用于在所述jvm实例中运行所述探针参数对应的探针程序;

34、启动模块,用于启动所述jvm实例。

35、本专利技术第三方面公开一种电子设备,包括:

36、存储器和处理器;

37、其中,所述存储器用于存储程序;

38、所述处理器用于执行所述程序,所述程序被执行时,具体用于实现本专利技术第一方面公开的一种jvm探针的配置方法。

39、本专利技术第四方面公开一种计算机存储介质,用于存储计算机程序,所述计算机程序被执行时,用于实现如本专利技术第一方面公开的一种jvm探针的配置方法。

40、基于上述本专利技术实施例提供的一种jvm探针的配置方法及装置、电子设备、存储介质,该方法包括:当接收到的java指令时,执行java指令对应的java程序;根据java程序的jvm配置文件,查找jvm动态链接库文件;基于jvm动态链接库文件初始化jvm实例,获取jnienv接口;通过jnienv接口,利用自定义动态链接库文件在java程序的运行参数中配置探针参数;自定义动态链接库文件预先根据linux预加载机制装载到java程序中;基于配置后的java程序的运行参数和jvm实例,创建并启动jvm实例。基于linux系统的动态链接库预加载机制,通过自定义的动态链接库动态注入探针参数,实现探针对业务系统的完全无侵入式注入,同时实现了业务程序开发及部署全流程与监控采集模块的解耦,二者之间形成一个动态插拨的关系。

本文档来自技高网...

【技术保护点】

1.一种JVM探针的配置方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,预先根据Linux预加载机制装载自定义动态链接库文件到所述java程序中的过程,包括:

3.根据权利要求1所述的方法,其特征在于,所述通过所述JNIEnv接口,利用自定义动态链接库文件在所述java程序的运行参数中配置探针参数,包括:

4.根据权利要求1所述的方法,其特征在于,所述基于配置后的所述java程序的运行参数和所述JVM实例,创建并启动JVM实例,包括:

5.一种JVM探针的配置装置,其特征在于,所述装置包括:

6.根据权利要求5所述的装置,其特征在于,所述装置还包括:

7.根据权利要求5所述的装置,其特征在于,所述配置单元,包括:

8.根据权利要求5所述的装置,其特征在于,所述创建单元,包括:

9.一种电子设备,其特征在于,包括:

10.一种计算机存储介质,其特征在于,用于存储计算机程序,所述计算机程序被执行时,用于实现如权利要求1至4任意一项所述的一种JVM探针的配置方法。

...

【技术特征摘要】

1.一种jvm探针的配置方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,预先根据linux预加载机制装载自定义动态链接库文件到所述java程序中的过程,包括:

3.根据权利要求1所述的方法,其特征在于,所述通过所述jnienv接口,利用自定义动态链接库文件在所述java程序的运行参数中配置探针参数,包括:

4.根据权利要求1所述的方法,其特征在于,所述基于配置后的所述java程序的运行参数和所述jvm实例,创建并启动jvm实例,包括:<...

【专利技术属性】
技术研发人员:梁勇
申请(专利权)人:南京亚信软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1