掌桥专利:专业的专利平台
掌桥专利
首页

应用程序监控方法、装置、系统、电子设备及可读介质

文献发布时间:2023-06-19 11:42:32


应用程序监控方法、装置、系统、电子设备及可读介质

技术领域

本公开涉及计算机信息处理领域,具体而言,涉及一种应用程序监控方法、装置、系统、电子设备及可读介质。

背景技术

由于互联网本身的快速发展,不断创新的特点,决定了只有以最快的开发速度和最低的成本才能取胜,才能始终保持一个网站的领先性和吸引更多的用户。各种应用程序,例如PHP相关技术和相关的人才,正是迎合目前互联网的发展趋势,超文本预处理器PHP(Hypertext Preprocessor)作为非常优秀的,简单的Web开发语言,和Linux、Nginx、Mysql的紧密结合,形成LNMP(一种网站服务器架构)的开源黄金组合,不仅降低使用成本,还提升了开发速度,满足最新的互动式网络开发应用。全球50000万互联网网站中,有60%以上使用着PHP技术,日益增长的互联网用户,对PHP网站的性能和稳定也提出了更高的要求,所以必须要有一套实时监控PHP应用性能和错误的系统,快速定位排除错误,提高网站性能并实时报警,避免造成损失。

现有技术中,常常通过在PHP应用中埋点的方式定位应用中的错误问题,但是埋点的方式由于需要开发人员进行大量的埋点,而且埋点的方式仅仅能获取应用少量的信息,因此,需要一种新的应用程序监控方法、装置、系统、电子设备及可读介质。

在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

有鉴于此,本公开提供一种应用程序监控方法、装置、系统、电子设备及可读介质,能够方便快捷的抓取应用程序相关的全量信息,快速解决应用程序中存在的问题。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

根据本公开的第一方面,提出一种应用程序监控方法,该方法包括:通过扩展程序根据预定规则抓取应用程序的执行数据;通过所述扩展程序将所述执行数据发送至合并程序;通过所述合并程序对所述执行数据进行数据合并,生成监控数据;以及通过所述合并程序将所述监控数据发送至监控服务器。

在本公开的一种示例性实施例中,通过扩展程序根据预定规则抓取应用程序的执行数据,包括:通过所述扩展程序接收所述应用程序的访问指令,触发所述扩展程序根据预定规则抓取应用程序的执行数据。

在本公开的一种示例性实施例中,还包括:在所述应用程序的内核中布置所述扩展程序。

在本公开的一种示例性实施例中,通过扩展程序根据预定规则抓取应用程序的执行数据,包括:根据预定规则确定待监控的函数名称;通过扩展程序抓取所述应用程序中的所述函数名称对应的执行数据。

在本公开的一种示例性实施例中,通过扩展程序抓取所述应用程序中的所述函数名称对应的执行数据,包括:所述扩展程序通过函数指针替换方式获取所述函数名称对应的执行数据。

在本公开的一种示例性实施例中,通过所述合并程序对所述执行数据进行数据合并,生成监控数据,包括:通过所述合并程序的第一子进程监控双向的通信连接以获取所述执行数据,并对所述执行数据进行数据合并,生成监控数据。

在本公开的一种示例性实施例中,通过所述合并程序将所述监控数据发送至监控服务器,包括:通过所述合并程序的第二子进程将所述监控数据发送至监控服务器。

在本公开的一种示例性实施例中,所述方法还包括:通过所述合并程序的第三子进程定时更新所述合并程序的配置信息。

根据本公开的第二方面,提出一种应用程序监控装置,该装置包括:抓取模块,配置为通过扩展程序根据预定规则抓取应用程序的执行数据;第一发送模块,配置为通过所述扩展程序将所述执行数据发送至合并程序;生成模块,配置为通过所述合并程序对所述执行数据进行数据合并,生成监控数据;以及第二发送模块,配置为通过所述合并程序将所述监控数据发送至监控服务器。

在本公开的一种示例性实施例中,所述抓取模块,配置为通过所述扩展程序接收所述应用程序的访问指令,触发所述扩展程序根据预定规则抓取应用程序的执行数据。

在本公开的一种示例性实施例中,所述装置还包括:布置模块,配置为在所述应用程序的内核中布置所述扩展程序。

在本公开的一种示例性实施例中,所述抓取模块,配置为:根据预定规则确定待监控的函数名称;通过扩展程序抓取所述应用程序中的所述函数名称对应的执行数据。

在本公开的一种示例性实施例中,所述抓取模块,配置为通过所述扩展程序通过函数指针替换方式获取所述函数名称对应的执行数据。

在本公开的一种示例性实施例中,所述生成模块,配置为通过所述合并程序的第一子进程监控双向的通信连接以获取所述执行数据,并对所述执行数据进行数据合并,生成监控数据。

在本公开的一种示例性实施例中,所述第二发送模块,配置为通过所述合并程序的第二子进程将所述监控数据发送至监控服务器。

在本公开的一种示例性实施例中,装置还包括:更新模块,配置为通过所述合并程序的第三子进程定时更新所述合并程序的配置信息。

根据本公开的第三方面,提出一种应用程序监控系统,该系统包括:代理服务器,配置为获取应用程序的访问指令;以及将所述访问指令转发至扩展程序服务器;扩展程序服务器,配置为通过扩展程序根据预定规则抓取应用程序的执行数据,并将所述执行数据发送至数据服务器;数据服务器,配置为对所述执行数据进行数据合并,生成监控数据;以及将所述监控数据发送至监控服务器;监控服务器,配置为接收所述监控数据并展示。

根据本公开的第四方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。

根据本公开的第五方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。

根据本公开的应用程序监控方法、装置、系统、电子设备及可读介质,能够方便快捷的抓取应用程序相关的全量信息,快速解决应用程序中存在的问题。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据一示例性实施例示出的一种应用程序监控方法及装置的系统框图。

图2是根据一示例性实施例示出的一种应用程序监控方法的流程图。

图3是根据另一示例性实施例示出的一种应用程序监控方法的示意图。

图4是根据另一示例性实施例示出的一种应用程序监控方法的示意图。

图5是根据一示例性实施例示出的一种应用程序监控装置的框图。

图6是根据另一示例性实施例示出的一种应用程序监控系统的框图。

图7是根据一示例性实施例示出的一种电子设备的框图。

图8是根据一示例性实施例示出一种计算机可读存储介质示意图。

具体实施方式

现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。

本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。

本申请的发明人发现,现有技术中,通过在PHP应用中埋点的方式,上报关键方法的执行时间和调用次数等简单信息,在系统后台设置一定的阈值来报警,收到报警后根据简单的信息来解决错误和性能调优。

现有技术中的这种定位应用信息的方式具有如下的缺点:

1、需要手动修改PHP应用的代码,开发人员需要自己梳理关键方法来添加埋点代码,但是通常不会所有方法都添加,一是因为工作量巨大。二是因为非关键方法添加过多的埋点可能对网站性能造成影响。

2、未埋点的方法影响网站性能或产生错误无法知晓,网站中会有大量未埋点的方法,这些方法如果在生产环境中产生错误或性能下降,技术人员和用户将无法感知。

3、定位错误和性能调优困难,当应用程序中的方法产生错误或性能下降时,埋点的方式能够获取的信息仅有调用方法失败或执行时间变长等简单信息,没有方法调用时的调用关系、文件名、行号、错误原因等关键信息,不利于解决问题。

有鉴于此,本申请提出了一种应用程序监控方法、装置、系统,能够在不需要修改PHP应用代码的情况下,开箱即用。

根据本申请的应用程序监控方法,由于获取的应用数据是全量数据,可动态抓取应用程序的错误和性能较慢的方法(比如抓取执行时间超过500毫秒的方法),没有漏网之鱼。

而且根据本申请的应用程序监控方法,可获取性能下降或错误产生时的函数调用关系,文件名,行号,错误原因,运行时传递的参数值等详细信息来快速解决错误。

图1是根据一示例性实施例示出的一种应用程序监控方法及装置的系统框图。

如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的购物类网站提供支持的后台服务器。后台服务器105可以通过自身安装的应用程序,对接收到请求数据进行分析等处理,并将处理结果反馈给终端设备。

服务器105可例如通过扩展程序根据预定规则抓取应用程序的执行数据;服务器105可例如通过所述扩展程序将所述执行数据发送至合并程序;服务器105可例如通过所述合并程序对所述执行数据进行数据合并,生成监控数据;服务器105可例如通过所述合并程序将所述监控数据发送至监控服务器。

服务器105还可例如通过所述扩展程序接收所述应用程序的访问指令,触发所述扩展程序根据预定规则抓取应用程序的执行数据。

服务器105可以是一个实体的服务器,还可例如为多个服务器组成,服务器105中的一部分可例如作为本公开中的代理服务器系统,配置为获取应用程序的访问指令;以及将所述访问指令转发至扩展程序服务器;服务器105中的一部分可例如作为本公开中的扩展程序服务器系统,配置为通过扩展程序根据预定规则抓取应用程序的执行数据,并将所述执行数据发送至数据服务器;服务器105中的一部分可例如作为本公开中的数据服务器系统,配置为对所述执行数据进行数据合并,生成监控数据;以及将所述监控数据发送至监控服务器;以及服务器105中的一部分还可例如作为本公开中的监控服务器系统,用于接收所述监控数据并展示。

需要说明的是,本公开实施例所提供的应用程序监控方法可以由服务器105执行,相应地,应用程序监控装置可以设置于服务器105中。而提供给用户进行商品浏览的网页端与进行商家查询的请求端一般位于终端设备101、102、103中。

图2是根据一示例性实施例示出的一种应用程序监控方法的流程图。应用程序监控方法20至少包括步骤S202至S208。

如图2所示,在S202中,通过扩展程序根据预定规则抓取应用程序的执行数据。其中,应用程序可为PHP应用程序,值得一提的是,本申请的方法也可应用与其他的应用程序中。

在一个实施例中,代理服务器获取应用程序的访问指令,以及将所述访问指令转发至所述扩展程序,触发所述扩展程序根据预定规则抓取应用程序的执行数据。其中,代理服务器可例如为Nginx服务器,Nginx是一个高性能的超文本传送协议HTTP和反向代理服务,也是一个IMAP(交互邮件访问协议)/POP3(邮局协议版本3)/SMTP(简单邮件传输协议)服务,Nginx作为负载均衡服务:Nginx既可以在内部直接支持Rails(一种Web开发框架)和PHP程序对外进行服务,也可以支持作为HTTP代理服务对外进行服务。Nginx采用C语言进行编写。

在一个实施例中,代理服务器将所述访问指令转发至所述扩展程序包括:通过常驻进程监控所述访问指令以将所述访问指令转发至所述扩展程序。

在一个实施例中,还包括:在所述应用程序的内核中布置所述扩展程序。其中,PHP扩展程序(可例如为jd_agent.so)可通过C语言进行开发。在一个实施例中,扩展程序位于扩展程序服务器中,通过扩展程序服务器中的扩展程序可以抓取到应用程序中多个函数对应的执行数据。

在一个实施例中,扩展程序根据预定规则可以确定待监控的函数名称,通过扩展程序抓取所述应用程序中的所述函数名称对应的执行数据。

在一个实施例中,所述应用程序可以为脚本语言程序,其中设置有多个执行数据的函数,当扩展程序接收到访问指令后,抓取脚本语言程序中的多个函数,以获取执行数据。

在一个实施例中,预定规则可以包括指定的执行数据的函数名称或者执行数据的阈值。扩展程序可以实时监控应用程序的多个执行数据的函数,当接收到访问指令后,若预定规则为指定的执行数据的函数名称,根据预定规则中的指定的执行数据的函数名称与监控的所有的应用程序的执行数据的函数进行匹配,以确定待监控的函数名称。若预定规则为各执行数据的阈值,则基于监控的应用程序的所有函数的执行数据进行统计,获取到达到其对应的执行数据阈值的执行数据,这些执行数据的函数名称为确定的待监控的函数名称的函数名称。在确定函数名称后,抓取这些函数名称对应的执行数据。

在一个实施例中,PHP扩展程序抓取函数相关数据的原理是通过C语言的函数指针替换,具体形式可例如如下:

假设需要抓取PHP内核函数zend_execute的执行时间,类似的扩展程序伪代码可如下:

void(*old_zend_execute)();/用于保存原zend_execute函数指针

void jd_execute();//用于抓取zend_execute函数执行时间

old_zend_execute=zend_execute;//保存原函数指针

zend_execute=jd_execute;//替换为自己的函数指针

void jd_execute(){

//记录开始时间

old_zend_execute();

//记录结束时间

}

在一个实施例中,所述执行数据可以包括但不限于:请求时间执行时间、任务执行时间、函数调用关系、服务器命令执行参数、错误信息、以及外部服务信息。更具体的,执行数据还可包括:根据扩展程序中的配置或扩展程序中设定的阈值,抓取PHP执行过程中的请求执行时间,函数或方法执行时间,函数或方法调用关系,参数值,函数或方法所在文件名,行号,过敏敏感信息的SQL语句,操作SQL类函数或方法执行时间,NOSQL操作执行时间,错误信息,外部服务(PHP通过HTTP/TCP请求第三方服务)执行时间,以及本次请求的GET,POST数据等信息。利用PHP扩展程序(jd_agent.so)来抓取数据不仅详细丰富而且不用修改一行PHP项目代码。

在S204中,通过所述扩展程序将所述执行数据发送至合并程序。

在一个实施例中,可构建缓存合并程序(jd_daemon),所述扩展程序将获取的执行数据发送至该合并程序。

在S206中,通过所述合并程序对所述执行数据进行数据合并,生成监控数据。

在一个实施例中,合并程序(jd_daemon)用于缓存合并PHP扩展程序(jd_agent.so)发送过来的执行数据,然后定时(比如每分钟)发送给服务器。

在一个实施例中,jd_daemon启动时创建一个jd_dameon的子进程,父进程负责监视子进程是否异常退出,如果退出则重启子进程。具体可例如通过复刻fork方式创建子进程,fork函数是UNIX及类UNIX(UNIX-like)系统中的分叉函数。fork函数的返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。

fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程序的两个副本。

在一个实施例中,jd_daemon子进程首先加载配置文件,配置文件可以包括但不限于:路径信息以及端口信息,当配置文件更新后,自动重启jd_daemon。

在一个实施例中,jd_daemon子进程首先加载配置文件后,可以启动三个线程:第一进程、第二进程以及第三进程。其中,第一进程可以是监听线程,第二进程可以是心跳线程,第三进程可以是更新配置线程。

在一个实施例中,通过所述合并程序的第一子进程监控双向的通信连接以获取所述执行数据,并对所述执行数据进行数据合并,生成监控数据。根据本发明实施例,第一子进程可以对执行数据进行计算,例如,统计次数等。

在一个实施例中,通过所述合并程序的第二子进程将所述监控数据发送至监控服务器。第二子进程接收到第一子进程发送的监控数据后,周期性发送至监控服务器。

在一个实施例中,通过所述合并程序的第三子进程定时更新所述合并程序的配置信息。第三子进程,如更新配置线程,用于在jd_daemon启动时负责发送环境信息到服务器,并从服务器获取配置信息,涉及jd_agent.so的配置会写入共享内存让jd_agent.so读取,然后周期性(比如10秒)从服务器获取更新的配置信息。配置信息可以包括:合并进程加载的配置文件,以及扩展程序中抓取执行数据的预定规则。

在S208中,通过所述合并程序将所述监控数据发送至监控服务器。合并程序通过第一子程序生成监控数据后,通过其第二子程序将监控数据周期性上报给监控服务器并展示监控数据。

根据本公开的应用程序监控方法,通过应用扩展程序监控应用运行状态的方式,相比于现有技术中的埋点方式,一方面可以便捷的获取更多的执行数据,埋点个数有限,若要获取到更多的执行数据,需要埋更多的点。另一方面,不需要对改写应用程序这种上层代码,通过在内核中增加扩展程序的这种底层代码,实现了扩展程序的复用,快速获取应用程序的执行数据。

应清楚地理解,本公开描述了如何形成和使用特定示例,但本公开的原理不限于这些示例的任何细节。相反,基于本公开公开的内容的教导,这些原理能够应用于许多其它实施例。

图3是根据另一示例性实施例示出的一种应用程序监控方法的示意图。图3示例性的说明了应用程序监控的全过程。

预先在扩展程序服务器中布置PHP扩展程序,PHP扩展程序可布置在PHP程序内部,随着PHP的程序启动而启动;

代理服务器获取应用程序的访问指令,并将所述访问指令转发至扩展程序服务器。

扩展程序服务器通过扩展程序实时监控应用程序中多个函数,当接收到访问请求后,根据预定规则抓取应用程序的执行数据,并将所述执行数据发送至数据服务器。

合并程序可位于数据服务器中,合并程序可对所述执行数据进行数据合并,生成监控数据;以及将所述监控数据发送至监控服务器。

监控服务器接收所述监控数据并展示。

根据本公开的应用程序监控方法。通过PHP扩展程序来抓取PHP应用执行过程中的详细数据,而不是在PHP应用中添加埋点代码的方式来抓取简单数据。能够不用修改PHP应用代码即可实现自动抓取PHP应用程序的全量信息。

图4是根据另一示例性实施例示出的一种应用程序监控方法的示意图。如图4所示,合并程序jd_daemon启动时创建一个jd_dameon的子进程,父进程负责监视子进程是否异常退出,如果退出则重启子进程。具体可例如通过fork方式创建子进程,fork函数是UNIX及类UNIX(UNIX-like)系统中的分叉函数。fork函数的返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。

fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程序的两个副本。

在一个实施例中,jd_daemon子进程首先加载配置文件后,可以启动三个线程:监听线程,心跳线程以及更新配置线程。通过监听线程监控双向的通信连接以获取所述执行数据,并对所述执行数据进行数据合并,生成监控数据。通过心跳线程将所述监控数据发送至监控服务器。通过更新配置线程定时更新所述合并程序的配置信息。

本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本公开提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。

此外,需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。

图5是根据一示例性实施例示出的一种应用程序监控装置的框图。应用程序监控装置50包括:抓取模块502,第一发送模块504,生成模块506,第二发送模块508。

抓取模块502,配置为通过扩展程序根据预定规则抓取应用程序的执行数据。

第一发送模块504,配置为通过所述扩展程序将所述执行数据发送至合并程序。

生成模块506,配置为通过所述合并程序对所述执行数据进行数据合并,生成监控数据。以及

第二发送模块508,配置为通过所述合并程序将所述监控数据发送至监控服务器。

根据本公开的应用程序监控方法。通过PHP扩展程序来抓取PHP应用执行过程中的详细数据,而不是在PHP应用中添加埋点代码的方式来抓取简单数据。能够不用修改PHP应用代码即可实现自动抓取PHP应用程序的全量信息

图6是根据另一示例性实施例示出的一种应用程序监控系统的框图。应用程序监控系统60包括:代理服务器602,扩展程序服务器604,数据服务器606,以及监控服务器608。

代理服务器602配置为获取应用程序的访问指令;以及将所述访问指令转发至扩展程序服务器。

扩展程序服务器604配置为通过扩展程序根据预定规则抓取应用程序的执行数据,并将所述执行数据发送至数据服务器。

数据服务器606配置为对所述执行数据进行数据合并,生成监控数据;以及将所述监控数据发送至监控服务器。

监控服务器608配置为接收所述监控数据并展示。

图7是根据一示例性实施例示出的一种电子设备的框图。

下面参照图7来描述根据本公开的这种实施方式的电子设备200。图7显示的电子设备200仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图7所示,电子设备200以通用计算设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元210执行,使得所述处理单元210执行本说明书上述电子处方流转处理方法部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元210可以执行如图2中所示的步骤。

所述存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(ROM)2203。

所述存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备200也可以与一个或多个外部设备300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述方法。

图8示意性示出本公开示例性实施例中一种计算机可读存储介质示意图。

参考图8所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品400,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:通过扩展程序实时监控应用程序中多个函数;根据预定规则通过所述扩展程序获取所述多个函数的执行参数,生成多个子监控数据;将所述多个子监控数据进行数据合并,生成监控数据;以及通过定时任务将所述监控数据发送至监控服务器。

本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施例的方法。

以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

相关技术
  • 应用程序监控方法、装置、系统、电子设备及可读介质
  • 应用程序监控方法、装置、设备及可读存储介质
技术分类

06120113023215