CN111427773A - Web应用资源监控方法、电子装置及计算机可读存储介质 - Google Patents
Web应用资源监控方法、电子装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111427773A CN111427773A CN202010155296.XA CN202010155296A CN111427773A CN 111427773 A CN111427773 A CN 111427773A CN 202010155296 A CN202010155296 A CN 202010155296A CN 111427773 A CN111427773 A CN 111427773A
- Authority
- CN
- China
- Prior art keywords
- monitoring
- monitored
- web application
- file
- application system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 197
- 238000000034 method Methods 0.000 title claims abstract description 91
- 239000003795 chemical substances by application Substances 0.000 description 14
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 239000000243 solution Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 210000000609 ganglia Anatomy 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及监控技术领域,揭露了一种Web应用资源监控方法,该方法包括:通过预设监控系统在Web应用系统中的类文件加载之前拦截预定的待监控类文件并绑定唯一的标识码,对待监控类文件添加监控字节码,在预设统计周期内,基于标识码获取修改后的待监控类文件,基于修改后的待监控类文件的字节码获取类文件的监控内容,对虚拟机、线程状态进行监控,得到Web应用系统的监控内容,推送类文件的监控内容与应用系统的监控内容至预设接收端并以预设方式展示。本发明还提出一种电子装置以及一种计算机可读存储介质。本发明采用监控系统结合在类文件中添加监控代码的方法得到监控内容并展示监控内容,进而快速高效地定位Web应用系统出错的位置及原因。
Description
技术领域
本发明涉及监控技术领域,尤其涉及一种Web应用资源监控方法、电子装置及计算机可读存储介质。
背景技术
Web应用资源数据包括系统在运行中的运行数据,包括系统处于何种状态、接口方法请求响应时间数据、内存使用情况、线程运行状况等等信息。Web应用服务器是一种可以运行Web应用的服务器,在该服务器上部署用户自己的Web应用之后,用户即可通过该服务器访问自己的服务。监控系统是独立于Web应用的另外一种工具系统,用户通过监控系统收集目标系统的运行数据,即可实时了解目标系统的运行状况,为后期维持目标系统稳定运行、性能调优等工作提供了很大的帮助。
目前,业界存在的使用较多的监控系统有YourKit、JIP、TProfiler等。但是,YourKit、JIP均不能提供细粒度的监控内容,例如,方法级别的监控内容,而细粒度的监控内容最容易定位Web应用系统出错的位置及原因;TProfiler虽然能够提供细粒度的监控内容,但是对于监控内容只提供文本展示,形式较单一,也无法满足要求。
因此,提供一种对Web应用进行全面、高效的监控并根据需求展示监控内容的方法成为有待解决的问题。
发明内容
鉴于以上内容,有必要提供一种Web应用资源监控方法,旨在解决Web应用监控内容单一、监控内容展示渠道单一的问题。
本发明提供的Web应用资源监控方法,包括:
在待监控的Web应用系统启动后,通过预设监控系统在所述Web应用系统中的类文件加载之前拦截待监控类文件;
为所述待监控类文件绑定唯一的标识码,并对所述待监控类文件添加监控字节码;
在预设统计周期内,基于所述标识码获取修改后的待监控类文件,并基于所述修改后的待监控类文件的字节码获取所述待监控类文件的监控内容,并对所述Web应用系统使用的虚拟机、线程状态进行监控,得到所述Web应用系统的监控内容;
推送所述待监控类文件的监控内容与所述Web应用系统的监控内容至预设接收端,所述预设接收端以预设方式展示所述待监控类文件的监控内容与所述Web应用系统的监控内容。
可选的,所述对所述待监控类文件添加监控字节码的步骤具体包括:
在所述待监控类文件的方法的开头加入记录时间戳的第一代码片段;
在所述待监控类文件的方法的末尾加入记录时间戳的第二代码片段,并传入开始时间作为参数。
可选的,所述对所述待监控类文件添加监控字节码的步骤之后还包括:
计算所述待监控类文件的方法本次执行耗时,将一次执行耗时作为一个统计周期。
可选的,所述Web应用系统在tomcat服务器中运行。
可选的,所述预设接收端包括本地控制台、本地日志文件、卡夫卡消息中间件、数据库、展示平台。
此外,为实现上述目的,本发明还提供一种电子装置,该电子装置包括:存储器、处理器,所述存储器上存储有可在所述处理器上运行的Web应用资源监控程序,所述Web应用资源监控程序被所述处理器执行时实现如下步骤:
在待监控的Web应用系统启动后,通过预设监控系统在所述Web应用系统中的类文件加载之前拦截待监控类文件;
为所述待监控类文件绑定唯一的标识码,并对所述待监控类文件添加监控字节码;
在预设统计周期内,基于所述标识码获取修改后的待监控类文件,并基于所述修改后的待监控类文件的字节码获取所述待监控类文件的监控内容,并对所述Web应用系统使用的虚拟机、线程状态进行监控,得到所述Web应用系统的监控内容;
推送所述待监控类文件的监控内容与所述Web应用系统的监控内容至预设接收端,所述预设接收端以预设方式展示所述待监控类文件的监控内容与所述Web应用系统的监控内容。
可选的,所述对所述待监控类文件添加监控字节码的步骤具体包括:
在所述待监控类文件的方法的开头加入记录时间戳的第一代码片段;
在所述待监控类文件的方法的末尾加入记录时间戳的第二代码片段,并传入开始时间作为参数。
可选的,所述对所述待监控类文件添加监控字节码的步骤之后还包括:
计算所述待监控类文件的方法本次执行耗时,将一次执行耗时作为一个统计周期。
可选的,所述Web应用系统在tomcat服务器中运行。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有Web应用资源监控程序,所述Web应用资源监控程序可被一个或者多个处理器执行,以实现上述Web应用资源监控方法的步骤。
相较现有技术,本发明采用监控系统结合修改类文件字节码,在Web应用中的类文件的方法代码中添加监控代码,得到方法细粒度的监控内容,并将获取到的监控内容根据需求进行展示,进而快速高效地定位Web应用系统出错的位置及原因。
附图说明
图1为本发明电子装置一实施例的示意图;
图2为图1中的Web应用资源监控程序一实施例的程序模块图;
图3为本发明Web应用资源监控方法一实施例的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
如图1所示,为本发明电子装置1一实施例的示意图。电子装置1是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。所述电子装置1可以是计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
在本实施例中,电子装置1包括,但不仅限于,可通过系统总线相互通信连接的存储器11、处理器12、网络接口13,该存储器11中存储有Web应用资源监控程序10,所述Web应用资源监控程序10可被所述处理器12执行。图1仅示出了具有组件11-13以及Web应用资源监控程序10的电子装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对电子装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
其中,存储器11包括内存及至少一种类型的可读存储介质。内存为电子装置1的运行提供缓存;可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等的非易失性存储介质。在一些实施例中,可读存储介质可以是电子装置1的内部存储单元,例如该电子装置1的硬盘;在另一些实施例中,该非易失性存储介质也可以是电子装置1的外部存储设备,例如电子装置1上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)等。本实施例中,存储器11的可读存储介质通常用于存储安装于电子装置1的操作系统和各类应用软件,例如存储本发明一实施例中的Web应用资源监控程序10的代码等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器12在一些实施例中可以是中央处理器(CentralProcessingUnit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子装置1的总体操作,例如执行与其他设备进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行Web应用资源监控程序10等。
网络接口13可包括无线网络接口或有线网络接口,该网络接口13用于在所述电子装置1与客户端(图中未画出)之间建立通信连接。
可选的,所述电子装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选的,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(OrganicLight-EmittingDiode,OLED)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子装置1中处理的信息以及用于显示可视化的用户界面。
在本发明的一实施例中,所述Web应用资源监控程序10被所述处理器12执行时实现如下步骤:
拦截步骤:在待监控的Web应用系统启动后,通过预设监控系统在所述Web应用系统中的类文件加载之前拦截预定的待监控类文件。
本实施例中,所述预设监控系统采用JavaAgent监控系统。JDK是Java语言的软件开发工具包,可编译Java代码文件为class文件,再由JVM(Java虚拟机)加载运行。Web应用系统由Java代码开发而成,经过JDK编译之后为一个个class文件,再由JVM(Java虚拟机)加载运行。JavaAgent是JDK1.5以后引入的,也可以叫做Java代理,是一个JVM级别的代理器,可在加载应用系统的class文件之前做拦截,实现自定义的个性化的需求。因此,根据JavaAgent这项技术原理可以在加载目标应用系统的class文件时对这些class文件做修改,添加一些额外的代码,实现代码增强。JavaAgent并不能单独启动,必须依附在一个Java应用上运行,所述JavaAgent即为本实施例的JavaAgent监控系统,而被依附的Java应用即为所述待监控的Web应用系统。
修改步骤:为所述待监控类文件绑定唯一的标识码,并对所述待监控类文件添加监控字节码。
本实施例中,每个被监控的方法在系统启动时绑定一个唯一的functionId作为该方法的标记,functionId在系统启动后不再改变。本实施例采用ASM字节码修改框架对所述待监控类文件添加监控字节码。ASM字节码修改框架由Java代码开发,它能够读取和修改Java编译之后的class文件,对class文件原方法代码进行修改或添加自定义方法,实现自动化代码注入、功能增强。
在本发明的一个实施例中,所述对所述待监控类文件添加监控字节码的步骤具体包括:
在待监控类文件的开头加入记录时间戳的第一代码片段;
在待监控类文件的末尾加入记录时间戳的第二代码片段,并传入开始时间作为参数。
具体地,当启动Web应用系统时,监控系统随被监控的Web应用系统一同启动。本实施例采用JavaAgent技术在Web应用类文件(class)加载的时候使用ASM技术修改加载的class文件的字节码,在被监控的方法的开头加入记录当前时间戳的代码片段,在被监控的方法的末尾加入记录当前时间戳的代码片段,并传入开始时间作为参数,最后计算方法本次执行耗时。
例如,经ASM修改后的方法执行流程包括:
线程启动后执行方法【Thread1.call】;
调用System.nanoTime()记录方法1【method1】的开始执行时间;
开始调用方法1【method1】;
调用System.nanoTime()记录方法2【method2】的开始执行时间;
开始调用方法2【method2】;
方法2执行结束,调用Profile.record(startTime,functionId)方法,传入两个参数,1个是方法2【method2】的开始执行时间,另外1个是方法2【method2】的方法唯一ID。最后算出方法2【method2】总共耗时的时间。
依照上一步骤过程计算出方法1【method1】的总共耗时的时间。
监控步骤:在预设统计周期内,基于所述标识码获取修改后的待监控类文件,并基于所述修改后的待监控类文件的字节码获取所述待监控类文件的监控内容,并对所述Web应用系统使用的虚拟机、线程状态进行监控,得到所述Web应用系统的监控内容。
本实施例中,一个方法的一次执行耗时为一个时间片,每个时间片作为一个统计周期,在一个统计周期之内,记录方法的调用情况。具体地,通过上述修改的字节码中的时间计算监控内容,例如请求次数、请求响应时间、请求最大响应(同一时间点或时刻,最多能响应多少请求)、最小响应(同一时间点或时刻,最少能响应多少请求)、平均时间。因为每个被监控的方法的functionId唯一不变,因此,记录这些值所需要的内存是固定的。时间片结束后统计的数据会被定时任务发送到目的地。因此,所使用的内存会被初始化,继续记录下一个时间片内的方法的监控内容。由于被监控的方法是数量是固定的,每个时间片内统计的都是相同方法的调用信息,因此复用的是相同的内存空间,不会额外增加内存开销。
java.lang.management.ManagementFactory是JDK自1.7版本之后引入的接口,该接口能够获取应用系统JVM的加载信息,内容包括class类加载数、GC次数、堆与非堆内存使用量以及线程状态信息等,基本涵盖应用系统的各个方面。本实施例通过使用定时调度线程定期调用ManagementFactory接口去获取当前系统的运行信息即所述Web应用系统的监控内容。
展示步骤:推送所述待监控类文件的监控内容与所述Web应用系统的监控内容至预设接收端,所述预设接收端以预设方式展示所述待监控类文件的监控内容与所述Web应用系统的监控内容。
本实施例中,定时调度的线程定时运行,将获取到的监控内容推送到第三方展示。具体地,监控系统根据用户所配置的监控项将监控内容发送到预设接收端。所述预设接收端支持本地控制台、本地日志文件、卡夫卡消息中间件(KafKa)、数据库(influxDB)、展示平台(ganglia)等。
在一实施方式中,监控内容直接打印到控制台和本地日志文件,可在本地直接查看统计的各种监控内容。
在另一实施方式中,监控内容发送到KafKa和influxDB等中间件中,可做个性化的监控内容展示定制。
在另一实施方式中,监控内容展示到展示平台gangalia中,可远程查看监控内容,实现远程监控。
由上述实施例可知,本发明提出的电子装置1,在待监控的Web应用系统启动后,通过预设监控系统在所述Web应用系统中的类文件加载之前拦截待监控类文件,为所述待监控类文件绑定唯一的标识码,并对所述待监控类文件添加监控字节码,在预设统计周期内,基于所述标识码获取修改后的待监控类文件,并基于所述修改后的待监控类文件的字节码获取所述待监控类文件的监控内容,并对所述Web应用系统使用的虚拟机、线程状态进行监控,得到所述Web应用系统的监控内容,推送所述待监控类文件的监控内容与所述Web应用系统的监控内容至预设接收端,所述预设接收端以预设方式展示所述待监控类文件的监控内容与所述Web应用系统的监控内容。本发明提出的电子装置1,采用监控系统结合修改类文件字节码,在Web应用中的类文件的方法代码中添加监控代码,得到方法细粒度的监控内容,并将获取到的监控内容根据需求进行展示,进而快速高效地定位Web应用系统出错的位置及原因。
在其他实施例中,Web应用资源监控程序10还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述Web应用资源监控程序10在电子装置1中的执行过程。
如图2所示,为图1中的Web应用资源监控程序10一实施例的程序模块图。
在本发明的一个实施例中,Web应用资源监控程序10包括拦截模块110、修改模块120、监控模块130及展示模块140,示例性地:
所述拦截模块110,用于在待监控的Web应用系统启动后,通过预设监控系统在所述Web应用系统中的类文件加载之前拦截待监控类文件。
所述修改模块120,用于为所述待监控类文件绑定唯一的标识码,并对所述待监控类文件添加监控字节码。
所述监控模块130,用于在预设统计周期内,基于所述标识码获取修改后的待监控类文件,并基于所述修改后的待监控类文件的字节码获取所述待监控类文件的监控内容,并对所述Web应用系统使用的虚拟机、线程状态进行监控,得到所述Web应用系统的监控内容。
所述展示模块140,用于推送所述待监控类文件的监控内容与所述Web应用系统的监控内容至预设接收端,所述预设接收端以预设方式展示所述待监控类文件的监控内容与所述Web应用系统的监控内容。
上述拦截模块110、修改模块120、监控模块130及展示模块140等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
如图3所示,为本发明Web应用资源监控方法一实施例的流程图,该Web应用资源监控方法包括步骤S1-S4。
S1、在待监控的Web应用系统启动后,通过预设监控系统在所述Web应用系统中的类文件加载之前拦截预定的待监控类文件。
本实施例中,所述预设监控系统采用JavaAgent监控系统。JDK是Java语言的软件开发工具包,可编译Java代码文件为class文件,再由JVM(Java虚拟机)加载运行。Web应用系统由Java代码开发而成,经过JDK编译之后为一个个class文件,再由JVM(Java虚拟机)加载运行。JavaAgent是JDK1.5以后引入的,也可以叫做Java代理,是一个JVM级别的代理器,可在加载应用系统的class文件之前做拦截,实现自定义的个性化的需求。因此,根据JavaAgent这项技术原理可以在加载目标应用系统的class文件时对这些class文件做修改,添加一些额外的代码,实现代码增强。JavaAgent并不能单独启动,必须依附在一个Java应用上运行,所述JavaAgent即为本实施例的JavaAgent监控系统,而被依附的Java应用即为所述待监控的Web应用系统。
S2、为所述待监控类文件绑定唯一的标识码,并对所述待监控类文件添加监控字节码。
本实施例中,每个被监控的方法在系统启动时绑定一个唯一的functionId作为该方法的标记,functionId在系统启动后不再改变。本实施例采用ASM字节码修改框架对所述待监控类文件添加监控字节码。ASM字节码修改框架由Java代码开发,它能够读取和修改Java编译之后的class文件,对class文件原方法代码进行修改或添加自定义方法,实现自动化代码注入、功能增强。
在本发明的一个实施例中,所述对所述待监控类文件添加监控字节码的步骤具体包括:
在待监控类文件的开头加入记录时间戳的第一代码片段;
在待监控类文件的末尾加入记录时间戳的第二代码片段,并传入开始时间作为参数。
具体地,当启动Web应用系统时,监控系统随被监控的Web应用系统一同启动。本实施例采用JavaAgent技术在Web应用类文件(class)加载的时候使用ASM技术修改加载的class文件的字节码,在被监控的方法的开头加入记录当前时间戳的代码片段,在被监控的方法的末尾加入记录当前时间戳的代码片段,并传入开始时间作为参数,最后计算方法本次执行耗时。
例如,经ASM修改后的方法执行流程包括:
线程启动后执行方法【Thread1.call】;
调用System.nanoTime()记录方法1【method1】的开始执行时间;
开始调用方法1【method1】;
调用System.nanoTime()记录方法2【method2】的开始执行时间;
开始调用方法2【method2】;
方法2执行结束,调用Profile.record(startTime,functionId)方法,传入两个参数,1个是方法2【method2】的开始执行时间,另外1个是方法2【method2】的方法唯一ID。最后算出方法2【method2】总共耗时的时间。
依照上一步骤过程计算出方法1【method1】的总共耗时的时间。
S3、在预设统计周期内,基于所述标识码获取修改后的待监控类文件,并基于所述修改后的待监控类文件的字节码获取所述待监控类文件的监控内容,并对所述Web应用系统使用的虚拟机、线程状态进行监控,得到所述Web应用系统的监控内容。
本实施例中,一个方法的一次执行耗时为一个时间片,每个时间片作为一个统计周期,在一个统计周期之内,记录方法的调用情况。具体地,通过上述修改的字节码中的时间计算监控内容,例如请求次数、请求响应时间、请求最大响应(同一时间点或时刻,最多能响应多少请求)、最小响应(同一时间点或时刻,最少能响应多少请求)、平均时间。因为每个被监控的方法的functionId唯一不变,因此,记录这些值所需要的内存是固定的。时间片结束后统计的数据会被定时任务发送到目的地。因此,所使用的内存会被初始化,继续记录下一个时间片内的方法的监控内容。由于被监控的方法是数量是固定的,每个时间片内统计的都是相同方法的调用信息,因此复用的是相同的内存空间,不会额外增加内存开销。
java.lang.management.ManagementFactory是JDK自1.7版本之后引入的接口,该接口能够获取应用系统JVM的加载信息,内容包括class类加载数、GC次数、堆与非堆内存使用量以及线程状态信息等,基本涵盖应用系统的各个方面。本实施例通过使用定时调度线程定期调用ManagementFactory接口去获取当前系统的运行信息即所述Web应用系统的监控内容。
S4、推送监所述待监控类文件的监控内容与所述Web应用系统的监控内容至预设接收端,所述预设接收端以预设方式展示所述待监控类文件的监控内容与所述Web应用系统的监控内容。
本实施例中,定时调度的线程定时运行,将获取到的监控内容推送到第三方展示。具体地,监控系统根据用户所配置的监控项将监控内容发送到指定的位置。所述指定的位置支持本地控制台、本地日志文件、卡夫卡消息中间件(KafKa)、数据库(influxDB)、展示平台(ganglia)等。
在一实施方式中,监控内容直接打印到控制台和本地日志文件,可在本地直接查看统计的各种监控内容。
在另一实施方式中,监控内容发送到KafKa和influxDB等中间件中,可做个性化的监控内容展示定制。
在另一实施方式中,监控内容展示到展示平台gangalia中,可远程查看监控内容,实现远程监控。
由上述实施例可知,本发明提出的Web应用资源监控方法,在待监控的Web应用系统启动后,通过预设监控系统在所述Web应用系统中的类文件加载之前拦截待监控类文件,为所述待监控类文件绑定唯一的标识码,并对所述待监控类文件添加监控字节码,在预设统计周期内,基于所述标识码获取修改后的待监控类文件,并基于所述修改后的待监控类文件的字节码获取所述待监控类文件的监控内容,并对所述Web应用系统使用的虚拟机、线程状态进行监控,得到所述Web应用系统的监控内容,推送所述待监控类文件的监控内容与所述Web应用系统的监控内容至预设接收端,所述预设接收端以预设方式展示所述待监控类文件的监控内容与所述Web应用系统的监控内容。本发明提出的Web应用资源监控方法,采用监控系统结合修改类文件字节码,在Web应用中的类文件的方法代码中添加监控代码,得到方法细粒度的监控内容,并将获取到的监控内容根据需求进行展示,进而快速高效地定位Web应用系统出错的位置及原因。
此外,本发明实施例还提出一种计算机可读存储介质,计算机可读存储介质可以是硬盘、多媒体卡、SD卡、闪存卡、SMC、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器等中的任意一种或者几种的任意组合。计算机可读存储介质中包括Web应用资源监控程序10,所述Web应用资源监控程序10被处理器执行时实现如下操作:
A1、在待监控的Web应用系统启动后,通过预设监控系统在所述Web应用系统中的类文件加载之前拦截待监控类文件;
A2、为所述待监控类文件绑定唯一的标识码,并对所述待监控类文件添加监控字节码;
A3、在预设统计周期内,基于所述标识码获取修改后的待监控类文件,并基于所述修改后的待监控类文件的字节码获取所述待监控类文件的监控内容,并对所述Web应用系统使用的虚拟机、线程状态进行监控,得到所述Web应用系统的监控内容;
A4、推送所述待监控类文件的监控内容与所述Web应用系统的监控内容至预设接收端,所述预设接收端以预设方式展示所述待监控类文件的监控内容与所述Web应用系统的监控内容。
本发明之计算机可读存储介质的具体实施方式与上述Web应用资源监控方法以及电子装置的具体实施方式大致相同,在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种Web应用资源监控方法,应用于电子装置,其特征在于,所述方法包括:
在待监控的Web应用系统启动后,通过预设监控系统在所述Web应用系统中的类文件加载之前拦截待监控类文件;
为所述待监控类文件绑定唯一的标识码,并对所述待监控类文件添加监控字节码;
在预设统计周期内,基于所述标识码获取修改后的待监控类文件,并基于所述修改后的待监控类文件的字节码获取所述待监控类文件的监控内容,并对所述Web应用系统使用的虚拟机、线程状态进行监控,得到所述Web应用系统的监控内容;
推送所述待监控类文件的监控内容与所述Web应用系统的监控内容至预设接收端,所述预设接收端以预设方式展示所述待监控类文件的监控内容与所述Web应用系统的监控内容。
2.如权利要求1所述的Web应用资源监控方法,其特征在于,所述对所述待监控类文件添加监控字节码的步骤具体包括:
在所述待监控类文件的方法的开头加入记录时间戳的第一代码片段;
在所述待监控类文件的方法的末尾加入记录时间戳的第二代码片段,并传入开始时间作为参数。
3.如权利要求1所述的Web应用资源监控方法,其特征在于,所述对所述待监控类文件添加监控字节码的步骤之后还包括:
计算所述待监控类文件的方法本次执行耗时,将一次执行耗时作为一个统计周期。
4.如权利要求1所述的Web应用资源监控方法,其特征在于,所述Web应用系统在tomcat服务器中运行。
5.如权利要求1所述的Web应用资源监控方法,其特征在于,所述预设接收端包括本地控制台、本地日志文件、卡夫卡消息中间件、数据库、展示平台。
6.一种电子装置,其特征在于,该电子装置包括:存储器、处理器,所述存储器上存储有可在所述处理器上运行的Web应用资源监控程序,所述Web应用资源监控程序被所述处理器执行时实现如下步骤:
在待监控的Web应用系统启动后,通过预设监控系统在所述Web应用系统中的类文件加载之前拦截待监控类文件;
为所述待监控类文件绑定唯一的标识码,并对所述待监控类文件添加监控字节码;
在预设统计周期内,基于所述标识码获取修改后的待监控类文件,并基于所述修改后的待监控类文件的字节码获取所述待监控类文件的监控内容,并对所述Web应用系统使用的虚拟机、线程状态进行监控,得到所述Web应用系统的监控内容;
推送所述待监控类文件的监控内容与所述Web应用系统的监控内容至预设接收端,所述预设接收端以预设方式展示所述待监控类文件的监控内容与所述Web应用系统的监控内容。
7.如权利要求6所述的电子装置,其特征在于,所述对所述待监控类文件添加监控字节码的步骤具体包括:
在所述待监控类文件的方法的开头加入记录时间戳的第一代码片段;
在所述待监控类文件的方法的末尾加入记录时间戳的第二代码片段,并传入开始时间作为参数。
8.如权利要求6所述的电子装置,其特征在于,所述对所述待监控类文件添加监控字节码的步骤之后还包括:
计算所述待监控类文件的方法本次执行耗时,将一次执行耗时作为一个统计周期。
9.如权利要求6所述的电子装置,其特征在于,所述Web应用系统在tomcat服务器中运行。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有Web应用资源监控程序,所述Web应用资源监控程序可被一个或者多个处理器执行,以实现如权利要求1至5任一项所述的Web应用资源监控方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010155296.XA CN111427773A (zh) | 2020-03-06 | 2020-03-06 | Web应用资源监控方法、电子装置及计算机可读存储介质 |
PCT/CN2020/119119 WO2021174838A1 (zh) | 2020-03-06 | 2020-09-29 | Web应用资源监控方法、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010155296.XA CN111427773A (zh) | 2020-03-06 | 2020-03-06 | Web应用资源监控方法、电子装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111427773A true CN111427773A (zh) | 2020-07-17 |
Family
ID=71546154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010155296.XA Pending CN111427773A (zh) | 2020-03-06 | 2020-03-06 | Web应用资源监控方法、电子装置及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111427773A (zh) |
WO (1) | WO2021174838A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021174838A1 (zh) * | 2020-03-06 | 2021-09-10 | 平安科技(深圳)有限公司 | Web应用资源监控方法、电子设备及计算机可读存储介质 |
CN113760767A (zh) * | 2021-09-10 | 2021-12-07 | 元心信息科技集团有限公司 | 操作系统的调试方法、装置、电子设备及计算机可读存储介质 |
CN116048605A (zh) * | 2023-01-10 | 2023-05-02 | 成都九洲电子信息系统股份有限公司 | 一种基于反编译特征进行拼装集成的程序设计系统及方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143086B (zh) * | 2021-11-30 | 2023-09-26 | 北京天融信网络安全技术有限公司 | 一种Web应用识别方法、装置、电子设备及存储介质 |
CN116644425B (zh) * | 2022-04-02 | 2024-02-20 | 港珠澳大桥管理局 | 基于Javaagent的Web漏洞即时阻断方法、装置、设备和存储介质 |
CN115134270B (zh) * | 2022-06-28 | 2023-09-08 | 北京奇艺世纪科技有限公司 | 代码监控方法、监控系统、电子设备及存储介质 |
CN115981962B (zh) * | 2022-12-30 | 2024-03-12 | 北京基调网络股份有限公司 | 线程池监控方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248651A (zh) * | 2012-02-09 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种性能监控的方法和系统以及客户端和服务器 |
CN104346148A (zh) * | 2013-07-30 | 2015-02-11 | 阿里巴巴集团控股有限公司 | 获取程序性能消耗信息的方法、装置及系统 |
CN107896156A (zh) * | 2016-11-26 | 2018-04-10 | 上海壹账通金融科技有限公司 | web前端异常的监控方法、监控服务器及监控系统 |
CN110083436A (zh) * | 2019-05-14 | 2019-08-02 | 上海理想信息产业(集团)有限公司 | 一种基于Java字节码增强技术的业务数据实时监控系统及方法 |
CN110716854A (zh) * | 2019-08-14 | 2020-01-21 | 平安普惠企业管理有限公司 | 代码性能测试方法、装置、计算机设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2722004A1 (en) * | 2010-10-14 | 2012-04-14 | Gognitive Group Inc. | Method and system for operation management |
CN109508273A (zh) * | 2018-09-21 | 2019-03-22 | 广东电网有限责任公司珠海供电局 | 一种基于Web的电动汽车充电站监控系统及数据获取方法 |
CN109788247B (zh) * | 2018-12-25 | 2020-10-13 | 视联动力信息技术股份有限公司 | 一种监控指令识别的方法和装置 |
CN111427773A (zh) * | 2020-03-06 | 2020-07-17 | 平安科技(深圳)有限公司 | Web应用资源监控方法、电子装置及计算机可读存储介质 |
-
2020
- 2020-03-06 CN CN202010155296.XA patent/CN111427773A/zh active Pending
- 2020-09-29 WO PCT/CN2020/119119 patent/WO2021174838A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248651A (zh) * | 2012-02-09 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种性能监控的方法和系统以及客户端和服务器 |
CN104346148A (zh) * | 2013-07-30 | 2015-02-11 | 阿里巴巴集团控股有限公司 | 获取程序性能消耗信息的方法、装置及系统 |
CN107896156A (zh) * | 2016-11-26 | 2018-04-10 | 上海壹账通金融科技有限公司 | web前端异常的监控方法、监控服务器及监控系统 |
CN110083436A (zh) * | 2019-05-14 | 2019-08-02 | 上海理想信息产业(集团)有限公司 | 一种基于Java字节码增强技术的业务数据实时监控系统及方法 |
CN110716854A (zh) * | 2019-08-14 | 2020-01-21 | 平安普惠企业管理有限公司 | 代码性能测试方法、装置、计算机设备和存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021174838A1 (zh) * | 2020-03-06 | 2021-09-10 | 平安科技(深圳)有限公司 | Web应用资源监控方法、电子设备及计算机可读存储介质 |
CN113760767A (zh) * | 2021-09-10 | 2021-12-07 | 元心信息科技集团有限公司 | 操作系统的调试方法、装置、电子设备及计算机可读存储介质 |
CN113760767B (zh) * | 2021-09-10 | 2024-04-19 | 元心信息科技集团有限公司 | 操作系统的调试方法、装置、电子设备及计算机可读存储介质 |
CN116048605A (zh) * | 2023-01-10 | 2023-05-02 | 成都九洲电子信息系统股份有限公司 | 一种基于反编译特征进行拼装集成的程序设计系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021174838A1 (zh) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111427773A (zh) | Web应用资源监控方法、电子装置及计算机可读存储介质 | |
US10949237B2 (en) | Operating system customization in an on-demand network code execution system | |
JP6695984B2 (ja) | マルチタスクスケジューリング方法、システム、アプリケーションサーバ及びコンピュータの読み取り可能な記憶媒体 | |
CN108399132B (zh) | 一种调度测试方法、装置及存储介质 | |
CN112214260B (zh) | 终端应用app的加载方法及装置 | |
CN109766253B (zh) | 一种性能数据发送方法、装置、计算机设备及存储介质 | |
US9811356B2 (en) | Automated software configuration management | |
CN108874464B (zh) | 中间件自动扫描装配方法、装置及存储介质 | |
CN111427596B (zh) | 一种软件升级的方法、装置及终端设备 | |
US9535666B2 (en) | Dynamic agent delivery | |
CN110659131B (zh) | 任务处理方法、电子装置、计算机设备及存储介质 | |
US10216601B2 (en) | Agent dynamic service | |
CN111800506A (zh) | 一种边缘计算节点部署方法及相关装置 | |
US20180159724A1 (en) | Automatic task tracking | |
CN109684573B (zh) | 目标图片显示方法及装置、存储介质、电子设备 | |
CN109359092B (zh) | 文件管理方法、桌面显示方法、装置、终端及介质 | |
CN112214388A (zh) | 内存监控方法、装置、设备及计算机可读存储介质 | |
CN109857579B (zh) | 一种数据处理方法及相关装置 | |
CN112558982B (zh) | 代码检测方法、装置及计算机设备 | |
US10073689B2 (en) | Managing application lifecycles within a federation of distributed software applications | |
CN108228266B (zh) | 一种Android插件框架下不同插件间启动Fragment组件的方法和装置 | |
CN112148428B (zh) | 一种Java虚拟机内存监控方法、计算机设备及存储介质 | |
CN112163178A (zh) | 页面数据的显示方法和装置、存储介质、电子装置 | |
CN108566293B (zh) | 电子装置、zk节点信息通知方法及存储介质 | |
CN111382351B (zh) | 软电话资源共享方法、电子装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |