监控web应用程序性能的方法、系统和web服务器的制作方法

文档序号:7611372阅读:177来源:国知局
专利名称:监控web应用程序性能的方法、系统和web服务器的制作方法
技术领域
本申请涉及一种监控技木,尤其涉及一种监控web应用程序性能的方法、系统和web服务器。
背景技术
一般HTTP (HyperText Markup Language,超文本置标语言)请求响应的耗时包括三部分1、发送请求时在网络上消耗的时间;2、web程序处理http请求所消耗的时间;3、网络传输响应内容的时间。当用户反馈系统响应速度较慢的时候,一般维护人员都先检查系统的各项指标以及应用的日志。但是在采用集群方式部署的环境下,维护人员很难定位用户反映的有性能问题的请求是由哪台服务器处理的,这样就无法去检查服务器的各项监控指标。即使维护人员定位到了处理请求的服务器,但是由于系统在高并发的环境下一段时间内会产生大量相同URL的请求日志,这样也将无法使维护人员准确的定位到出现性能问题的请求日志。目前业界为了定位和分析web应用程序性能通用的手段是为系统添加各种监控,主要使用的监控方案有两种方案一服务器端性能日志该方案的主要方式是在服务器端的日志中记录处理每个请求的耗时以便日后从日志中分析问题。一种实现方式如下在Apache配置类似如下日志格式LogFormat;/ % h % u % t\'r % r\'r %> s % h\ ,r % {User-Agent} i \ " %D" combined以上日志格式的含义请參考http://httpd. apache, org/docs/2. 0/mod/mod_log_conf ig. html#customlog其中最重要的是D”这个表示处理此次请求所用的时间,単位微秒。收集各台服务器上的访问日志,查找耗时较多的URL为后续性能优化提供依据。方案ニ 模拟客户端请求监控该方案是使用程序模拟浏览器向系统发送请求,并记录响应时间以便跟踪分析问题。实现方式如下使用wget或httpclient等工具访问某些URL,记录服务器的响应时间。分析记录的日志,查找耗时较多的URL为后续性能优化提供依据。因为方案一是在服务器端记录请求的响应时间,在集群部署的情况下用户的请求是随机发送到集群中的某台服务器上去处理。这样就有ー个缺陷是无法定位到用户请求发送到哪台服务器上,这种情况下当在用户反映系统响应慢的时候,系统维护人员无法定位到具体的服务器,此外除了定位具体机器有困难,在一台机器上,对用户短时间的类似操作也较难定位哪一条日志,因此也就难以有效监控web应用程序性能。因为方案ニ是在客户端模拟用户请求的方式来监控web应用程序性能,因此监控效果不佳,具体表现为I、这个监控的客户端部署在哪里?如果用户是分布在全国各地的,全国各地的网络状况都是不一样的。这样的监控即使是多处布点也不能完全反映代表各地的网络情況。2、这种监控程序往往不能完全模拟用户对系统的操作。首先,一个系统可能对用户开放几个到几十上百的功能,监控程序很难将每个功能都模拟一遍。其次,很多功能这种监控程序无法模拟,比如电子商务中的在线下订单、在线支付等应用服务。现有技术中,难以有效监控web应用程序性能或者监控效果不佳,对于该问题,目前尚未提出有效解决方案。

发明内容
本申请的主要目的是提供一种监控web应用程序性能的方法、系统和web服务器,以解决现有技术中难以有效监控web应用程序性能或者监控效果不佳的问题。 为了实现上述目的,根据本申请的ー个方面,提供了一种监控web应用程序性能的方法。本申请的监控web应用程序性能的方法包括web服务器在向应用服务器转发客户端请求后,接收应用服务器执行应用程序逻辑后返回给所述客户端的响应内容,并为所述客户端请求分配客户端请求标识,然后,将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中,将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端,接收所述客户端对应地提交的所述标识和通过所述页面获取的web应用程序性能反馈信息,然后将所述标识和所述web应用程序性能反馈信息对应地保存在数据库中;分析装置接收所述web应用程序性能反馈页面获取的反馈信息,在所述数据库中搜索该反馈信息对应的客户端请求标识,在所述日志中查询该客户端请求标识对应的响应时间,并在该响应时间大于预设值的情况下输出该响应时间对应的应用服务器的网络地址或输出报m样自
目 I R ノ K、ο进ー步地,将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端包括在作为所述响应内容的HTML代码中记录所述标识以及所述代码,再将所述HTML代码发送给所述客户端。进ー步地,所述web应用程序性能反馈页面中包含用于接收web应用程序性能反馈信息的表単。进ー步地,将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中之后,所述方法还包括从所述日志中查找大于预设时间值的所述响应时间,确定查找到的所述响应时间对应的应用服务器的网络地址然后输出该网络地址。为了实现上述目的,根据本申请的另一方面,提供了ー种web服务器。本申请的web服务器包括第一接收模块,用于接收应用服务器对客户端请求的响应;分配模块,用于为所述客户端请求分配客户端请求标识;保存模块,用于将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中;第一发送模块,用于将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端;第二接收模块,用于接收所述客户端通过所述页面获取并发送的web应用程序性能反馈信息以及对应该反馈信息发送的客户端请求标识;第二发送模块,用于将所述反馈信息和所述标识对应地发送至数据库。为了实现上述目的,根据本申请的又一方面,提供了一种监控web应用程序性能的系统。本申请的监控web应用程序性能的系统包括web服务器和分析装置,其中web服务器,用于在向应用服务器转发客户端请求后,接收应用服务器执行应用程序逻辑后返回给所述客户端的响应内容,并为所述客户端请求分配客户端请求标识,然后,将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中,将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端,接收所述客户端通过所述页面获取的web应用程序性能反馈信息,然后将所述标识和所述web应用程序性能反馈信息对应地保存在数据库中;分析装置,用于接收所述web应用程序性能反馈页面获取的反馈信息,在所述数据库中搜索该反馈信息对应的客户端请求标识,在所述日志中查询该客户端请求标识对应的响应时间,并在该响应时间大于预设值的情况下输出该响应时间对应的应用服务器的网络地址或输出报警信息。进ー步地,所述web服务器包括第一接收模块,用于接收应用服务器对客户端请求的响应;分配模块,用于为所述客户端请求分配客户端请求标识;保存模块,用于将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中;第一发送模块,用于将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端;第二接收模块,用于接收所述客户端通过所述页面获取的web应用程序性能反馈信息以及对应该反馈信息发送的客户端请求标识;第二发送模块,用于将所述反馈信息和所述标识对应地发送给数据库。进ー步地,所述第一发送模块还用于在作为所述响应内容的HTML代码中记录所述标识以及所述代码,再将所述HTML代码发送给所述客户端。进ー步地,所述分析装置包括接收模块,用于接收所述web应用程序性能反馈页面获取的反馈信息;捜索模块,用于在所述数据库中搜索该反馈信息对应的客户端请求标识;查询模块,用于在所述日志中查询所述搜索模块搜索到的客户端请求标识对应的响应时间;分析输出模块,用于在所述查询模块查询到的响应时间大于预设值的情况下输出该响应时间对应的应用服务器的网络地址。进ー步地,所述分析装置包括查找模块,用于从所述日志中查找大于预设时间值的所述响应时间,并且确定该响应时间所对应的应用服务器的网络地址;提示模块,用于输出所述查找模块确定的网络地址。根据本申请的技术方案,为每个发往服务器的请求都设置ー个唯一的标识,这个标识在服务器端会记录到日志、数据库等介质中。同时发往客户端的响应中在HTML内容或者HTTP头信息(HTTP Headers)中会添加此唯一的标识,这样就将用户的请求和服务器端 的日志记录进行了一一对应。当用户需要反馈系统的性能问题的时候,用户提交的反馈表单会将用户发出的对应操作的唯一标识发送给服务器并记录到数据库中。系统的维护人员可以根据用户反馈的唯一的标识搜索服务器的上的日志从而定位到有问题的服务器。采用本申请实施例的技术方案后用户的每个请求都会被设置ー个唯一的标识。用户所有的操作的响应时间都会被记录到日志中。这样就解决了如何全面监控用户请求的问题。另外,本申请实施例的技术方案完全是在用户进行系统的真实操作时进行监控。这样可以真实记录系统的响应时间,从而能分析出系统的性能问题是否是因为用户当地网络问题导致,解决了如何真实反映用户所处的网络环境的问题。因此,采用本申请实施例的技术方案,能够有效监控web应用程序性能,获得较佳的监控效果。


说明书附图用来提供对本申请的进一歩理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中图I是与本申请实施例有关的ー种网络结构的示意图;图2是根据本申请实施例的监控web应用程序性能的方法在web服务器上执行的流程示意图;
图3是根据本申请实施例的监控web应用程序性能的方法在客户端执行的流程示意图;图4是根据本申请实施例的监控web应用程序性能的方法的整体流程的示意图;图5是根据本申请实施例的网络维护人员进行系统分析的主要流程的示意图;图6是根据本申请实施例的监控web应用程序性能的装置的示意图;图7是根据本申请实施例的监控web应用程序性能的另ー种装置的示意图;图8是根据本申请实施例的监控web应用程序性能的系统的示意图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将參考附图并结合实施例来详细说明本申请。图I是与本申请实施例有关的ー种网络结构的示意图。如图I所示,多个客户端11通过Internet网络12和防火墙13与负载均衡设备14连接,多个应用服务器15也通过web服务器16与负载均衡设备14连接。应用服务器15和web服务器16可以部署在同一台计算机中。基于类似于图I所示的网络,用户通过互联网访问部署在某个IDC(互联网数据中心)机房的web服务。由于全国甚至是全球范围内各地的网络环境千差万別,这就导致网络本身会严重影响用户在使用web应用时的体验。在网络层面应用用户体验的主要因素是网速。从图I也可以看出除了互联网本身的结构非常复杂外,应用程序的部署也有一定的复杂性。一般中大規模的企业应用都会采用集群方式部署。关于此处的“集群”,简单解释如下參考图1,用户的请求先由客户端11经由Internet网络12、防火墙13发送到负载均衡设备14,由负载均衡设备14通过一定的算法将请求转发到应用服务器集群中的某一台应用服务器15上,由这台应用服务器15来响应用户的请求,并将处理结果返回给客户端11 ;处在集群里的每台应用服务器15都是对等的关系,每台应用服务器15都是互为备份,任何一台或者几台服务器出现故障都不会影响整个集群为用户正常提供服务。当web应用出现性能问题时最直接的表现就是打开网页的速度很慢,当出现这种问题时对于系统的维护或开发人员来说首先需要定位出现此问题是否是由于应用程序的性能问题导致的。“打开网页的速度很慢”也就是系统响应的速度慢。一般HTTP请求响应的时间包括两部分I、web程序处理http请求所消耗的时间。当程序存在缺陷或者设计方案不合理的时候就有可能导致程序在处理用户请求的时候会有较大的时间消耗。还有ー种可能是集群中的某些服务器由于硬件故障或者访问压力的増加也可能导致用户请求处理耗时较大。2、网络传输请求和响应内容时消耗的时间。由于用户使用的网络的带宽等因素的影响不同网络条件下的用户对同一程序的同一功能的使用感受会有很大的区别。对于这个原因引起的系统响应慢的问题,一般可以通过改善网络条件解決。从以上的分析可以看出,当系统的维护人员接到用户关于性能问题的反馈时,首先需要定位问题出现在哪里,这里需要考虑两方面的问题,首先,需要定位导致响应慢的问题是由于用户的网络环境问题还是程序本身的性能问题;其次,如果是程序的问题需要定 位当时处理用户请求的那台服务器,然后再结合一些硬件的监控以及程序的日志再来分析和解决程序的性能问题。图2是根据本申请实施例的监控web应用程序性能的方法在web服务器上执行的流程示意图。如图2所示,web服务器在将客户端的客户端请求转发至应用服务器,并由后者处理该请求之后,web服务器主要执行以下步骤步骤S21 :接收应用服务器对客户端请求的响应。步骤S22 :为客户端请求分配客户端请求标识。步骤S221 :将应用服务器的网络地址、应用服务器对客户端请求的响应时间、以及客户端请求标识三者相对应地保存在日志中。步骤S222 :将所述响应、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给提出客户端请求的客户端设备。步骤S221和步骤S222可以同步进行,也可以先执行步骤S222,再执行步骤S221。客户端在收到上述的用于呈现web应用程序性能反馈页面的代码后,运行该代码即在输出装置例如显示器上呈现上述页面,其中包含性能反馈表单,该表单中提示用户填写对于页面性能反馈的评价,包括页面打开的速度,以及页面的其他表现。步骤S23 :接收客户端提交的信息。这里的信息包括步骤S22中的客户端请求标识,以及web应用程序性能反馈页面获取的反馈信息,并且由客户端对应地一井保存在数据库中。在步骤S23之后由分析装置(所述分析装置可以是内置于web服务器中的功能模块,也可以是独立于web服务器,具有分析功能的独立服务器或其他计算装置)继续执行以下步骤步骤S24:在数据库中捜索该反馈信息对应的客户端请求标识,在日志中查询该客户端请求标识对应的响应时间。步骤S25 :判断步骤S24中查询得到的响应时间是否大于预设值,若是,则进入步骤S26,否则返回步骤S24。步骤S26 :输出步骤S24中查询得到的响应时间对应的应用服务器的网络地址或输出报警信息。在步骤S26之后,网络管理人员能够获得响应较慢(大于预设值)的应用服务器的网络地址,网络管理人员可以调取该应用服务器的所有响应时间以进行分析;另外在步骤S26中也可以同时输出步骤S24中查询得到的响应时间供网络管理人员參考。另一方面,根据步骤S23中收到的客户端提交的信息,可以得知用户认为哪些服务响应较慢。通过对比用户指出的服务响应速度和应用服务器的实际响应时间,就能够确定是应用服务器本身响应较慢还是用户使用的网络的性能不佳。图3是根据本申请实施例的监控web应用程序性能的方法在客户端执行的流程示意图,主要包括如下步骤
步骤S31 :向web服务器发送客户端请求。步骤S33 :接收web服务器对所述客户端请求的响应。本步骤的响应中包含客户端请求的标识和用于呈现web应用程序性能反馈页面的代码。步骤S35 :根据所述响应呈现所述反馈页面。在本步骤中,反馈页面是否呈现也可以由用户决定,用户需要提交性能反馈时候可以通过页面的按钮或者快捷键触发从而打开反馈页面。步骤S37 :通过呈现的反馈页面获取web应用程序性能反馈信息。步骤S39 :将所述请求标识和获取的反馈信息对应地发送给提供web应用的应用服务器。将图2和图3所示的流程结合,可以得到图4所示的流程,图4是根据本申请实施例的监控web应用程序性能的方法的整体流程的示意图。步骤S23中的数据库可以和分析装置设置在同一计算机中,图4示出了这种情形。在实际的网络系统中,可以将web服务器和应用服务器部署在同一台计算机内,也可以分别部署在不同计算机内,这些计算机可以共享同一个数据库,该数据库在这里主要用于存储图2和图3中涉及的数据,例如应用服务器的网络地址、应用服务器对客户端请求的响应时间、以及客户端请求标识等。根据图4所示的流程,用户从客户端发送的HTTP请求通过web服务器的转发后到达应用服务器。应用服务器处理完成HTTP请求,将响应内容发送回客户端。返回的响应内容会经过web服务器的过滤。在过滤过程中可在返回的HTML代码中添加<meta/>标签,在<meta/>标签中会添加请求唯一标识(以下用UNIQUE_REQUEST_ID表示)的值。针对返回内容不是HTML代码的AJAX调用,可以在HTTP Header中将UNIQUE_REQUEST_ID添加到新响应头信息中。web服务器在响应内容处理完成后记录日志。每一条日志至少包括应用服务器的网络地址,例如URL的内容;UNIQUE_REQUEST_ID ;处理请求的服务器耗吋。web服务器在响应内容中加入UNIQUE_REQUEST_ID的同时还可以加入额外的js脚本。在提交反馈的时候可以触发这个js脚本里的功能打开反馈页面,在反馈页面中询问用户对网络的响应速度是否满意,用户根据自己对于网络服务功能的使用体验进行判断,在判断结果为“是”,即用户满意本次网络服务的情况下流程结束,否则用户填写反馈表单。用户提交表单以后,web服务器将UNIQUE_REQUEST_ID和反馈信息ー并保存在上述的数据库中。在具有上述数据库的情况下,可以由网络维护人员按照图5所示的流程进行系统分析。图5是根据本申请实施例的网络维护人员进行系统分析的主要流程的示意图。在图5所示的流程中,根据与用户反馈信息一并提交的UNIQUE_REQUEST_ID查找服务器上记录的请求响应耗时日志;根据日志所在的服务器或者日志中记录的信息可以确定当时处理用户请求的具体服务器;根据日志中记录的处理请求的耗时可以定位导致性能问题的原因是出自网络原因还是程序自身问题。这里程序自身的性能即体现了应用服务器的性能。图6是根据本申请实施例的监控web应用程序性能的装置的示意图。该装置可以安装在作为web服务器和应用服务器的计算机中。如图6所示,监控web应用程序性能的装置60主要包括以下模块第一接收模块61,用于接收应用服务器对客户端请求的响应;分配模块62,用于为所述客户端请求分配客户端请求标识;保存模块63,用于将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存; 发送模块64,用于将所述响应和所述标识对应地发送给所述客户端;第二接收模块65,用于接收到包含有客户端请求标识的查询指令;客户端反馈接收模块66,用于接收客户端提交的带有请求标识的性能反馈信息并保存;输出模块67,用于根据所述查询指令中的所述标识确定并输出该标识对应的应用服务器的网络地址和应用服务器对客户端请求的响应时间。发送模块还可以用于将所述标识添加到所述响应的HTTP消息头中然后将所述响应发送给所述客户端,还可以用于在所述响应的HTML代码中记录所述标识以及所述用于呈现web应用程序性能反馈页面的代码,再将所述HTML代码发送给所述客户端。图7是根据本申请实施例的监控web应用程序性能的另ー种装置的示意图。该装置可安装在客户端计算机中。如图7所示,监控web应用程序性能的装置70主要包括以下模块请求模块71,用于向web服务器发送客户端请求;接收模块72,用于接收所述web服务器对所述客户端请求的响应,所述响应中包含所述客户端请求的标识和用于呈现web应用程序性能反馈页面的代码;呈现模块73,用于根据所述响应呈现所述反馈页面;获取模块74,用于通过呈现的反馈页面获取web应用程序性能反馈信息;提交模块75,用于将所述请求标识和反馈信息对应地发送给提供所述web应用的应用服务器。图8是根据本申请实施例的监控web应用程序性能的系统的示意图。如图8所示,监控web应用程序性能的系统80主要包括web服务器81和分析装置82。其中web服务器81用于在向应用服务器转发客户端请求后,接收应用服务器执行应用程序逻辑后返回给所述客户端的响应内容,并为所述客户端请求分配客户端请求标识,然后,将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中,将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端,接收所述客户端通过所述页面获取的web应用程序性能反馈信息,然后将所述标识和所述web应用程序性能反馈信息对应地保存在数据库中;分析装置82用于接收所述web应用程序性能反馈页面获取的反馈信息,在所述数据库中搜索该反馈信息对应的客户端请求标识,在所述日志中查询该客户端请求标识对应的响应时间,并在该响应时间大于预设值的情况下输出该响应时间对应的应用服务器的网络地址或输出报警信息。分析装置82的一种可选结构是包括接收模块,用于接收所述web应用程序性能反馈页面获取的反馈信息;捜索模块,用于在所述数据库中搜索该反馈信息对应的客户端请求标识;查询模块,用于在所述日志中查询所述搜索模块搜索到的客户端请求标识对应的响应时间;分析输出模块,用于在所述查询模块查询到的响应时间大于预设值的情况下输出该响应时间对应的应用服务器的网络地址。分析装置82的另ー种可选结构是包括查找模块和提示模块,其中查找模块用于从日志中查找大于预设时间值的所述响应时间,并且确定该响应时间所对应的应用服务器的网络地址;提示模块用于输出查找模块确定的网络地址。提示模块也可以将查找模块查找到的响应时间和应用服务器的网络地址ー并输出。本申请实施例的技术方案可采用Apache作为web服务器来完成(当然不仅限于Apache,其他的web服务器如Nginx等也都可以实现)。可以在Apache上安装mod_unique_idso为姆个web请求生产卩隹一标识并记录到apache访问日志中。然后,开发ー个module作为Apache的Filter,实现修改HTML代码的功能。a.在head部分添加<meta/>标签记 录请求的卩隹ー标识;b.在head部分添加额外的js文件,新增的js文件主要功能是用户可以通过事先设定的快捷键展现用户问题反馈页面,并对系统问题提供反馈功能。接下来当用户需要反馈性能问题时触发快捷键,填写反馈表単。提交后系统会收集到用户的反馈信息,其中包括UNIQUE_REQUEST_ID。这样系统维护人员就可以通过这个唯一标识去分析事先记录的Apache访问日志以定位性能问题出在程序本身还是网络传输问题。上述具体方案能够在解決“定位系统性能问题”这ー难题的前提下同时做到对应用程序的代码无侵入,不需要修改或添加任何业务代码即可实现此功能。根据本申请实施例的技术方案,为每个发往服务器的请求都设置ー个唯一的标识,这个标识在服务器端会记录到日志、数据库等介质中。同时发往客户端的响应中在HTML内容或者HTTP头信息(HTTP Headers)中会添加此唯一的标识这样就将用户的请求和服务器端的日志记录进行了一一对应。当用户需要反馈系统的性能问题的时候,用户提交的反馈表单会将用户发出的对应操作的唯一标识发送给服务器并记录到数据库中。系统的维护人员可能根据用户反馈的唯一的标识搜索服务器的上的日志从而定位到有问题的服务器。采用本申请实施例的技术方案后用户的每个请求都会被设置ー个唯一的标识。用户所有的操作的响应时间都会被记录到日志中。这种就解决了如何全面监控用户请求的问题。另外,本申请实施例的技术方案完全是在用户进行系统的真实操作时进行监控。这样可以真实记录系统的响应时间,从而能分析出系统的性能问题是否是因为用户当地网络问题导致,解决了如何真实反映用户所处的网络环境的问题。因此,采用本申请实施例的技术方案,能够有效监控web应用程序性能,获得较佳的监控效果。显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者根据它们分别制作集成电路模块,或者根据它们中的多个模块或步骤制作成单个集成电路模块。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技 术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
权利要求
1.一种监控web应用程序性能的方法,其特征在于,包括 web服务器在向应用服务器转发客户端请求后,接收应用服务器执行应用程序逻辑后返回给所述客户端的响应内容,并为所述客户端请求分配客户端请求标识,然后, 将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中, 将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端, 接收所述客户端对应地提交的所述标识和通过所述页面获取的web应用程序性能反馈信息,然后将所述标识和所述web应用程序性能反馈信息对应地保存在数据库中; 分析装置接收所述web应用程序性能反馈页面获取的反馈信息,在所述数据库中搜索该反馈信息对应的客户端请求标识,在所述日志中查询该客户端请求标识对应的响应时间,并在该响应时间大于预设值的情况下输出该响应时间对应的应用服务器的网络地址或输出报警信息。
2.根据权利要求I所述的方法,其特征在于,将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端包括在作为所述响应内容的HTML代码中记录所述标识以及所述代码,再将所述HTML代码发送给所述客户端。
3.根据权利要求I所述的方法,其特征在于,所述web应用程序性能反馈页面中包含用于接收web应用程序性能反馈信息的表单。
4.根据权利要求I所述的方法,其特征在于,将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中之后,所述方法还包括 从所述日志中查找大于预设时间值的所述响应时间,确定查找到的所述响应时间对应的应用服务器的网络地址然后输出该网络地址。
5.—种web服务器,其特征在于,包括 第一接收模块,用于接收应用服务器对客户端请求的响应; 分配模块,用于为所述客户端请求分配客户端请求标识; 保存模块,用于将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中; 第一发送模块,用于将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端; 第二接收模块,用于接收所述客户端通过所述页面获取并发送的web应用程序性能反馈信息以及对应该反馈信息发送的客户端请求标识; 第二发送模块,用于将所述反馈信息和所述标识对应地发送至数据库。
6.一种监控web应用程序性能的系统,其特征在于,包括web服务器和分析装置,其中web服务器,用干 在向应用服务器转发客户端请求后,接收应用服务器执行应用程序逻辑后返回给所述客户端的响应内容,并为所述客户端请求分配客户端请求标识,然后, 将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中,将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端, 接收所述客户端通过所述页面获取的web应用程序性能反馈信息,然后将所述标识和所述web应用程序性能反馈信息对应地保存在数据库中; 分析装置,用干 接收所述web应用程序性能反馈页面获取的反馈信息,在所述数据库中搜索该反馈信息对应的客户端请求标识,在所述日志中查询该客户端请求标识对应的响应时间,并在该响应时间大于预设值的情况下输出该响应时间对应的应用服务器的网络地址或输出报警信息。
7.根据权利要求6所述的系统,其特征在于,所述web服务器包括 第一接收模块,用于接收应用服务器对客户端请求的响应; 分配模块,用于为所述客户端请求分配客户端请求标识; 保存模块,用于将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中; 第一发送模块,用于将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端; 第二接收模块,用于接收所述客户端通过所述页面获取的web应用程序性能反馈信息以及对应该反馈信息发送的客户端请求标识; 第二发送模块,用于将所述反馈信息和所述标识对应地发送给数据库。
8.根据权利要求7所述的系统,其特征在于,所述第一发送模块还用于在作为所述响应内容的HTML代码中记录所述标识以及所述代码,再将所述HTML代码发送给所述客户端。
9 根据权利要求6所述的系统,其特征在于,所述分析装置包括 接收模块,用于接收所述web应用程序性能反馈页面获取的反馈信息; 捜索模块,用于在所述数据库中搜索该反馈信息对应的客户端请求标识; 查询模块,用于在所述日志中查询所述搜索模块搜索到的客户端请求标识对应的响应时间; 分析输出模块,用于在所述查询模块查询到的响应时间大于预设值的情况下输出该响应时间对应的应用服务器的网络地址。
10.根据权利要求6所述的系统,其特征在于,所述分析装置包括 查找模块,用于从所述日志中查找大于预设时间值的所述响应时间,并且确定该响应时间所对应的应用服务器的网络地址; 提示模块,用于输出所述查找模块确定的网络地址。
全文摘要
本申请提供了一种监控web应用程序性能的方法、系统和web服务器,以解决现有技术中难以有效监控web应用程序性能或者监控效果不佳的问题。该方法包括web服务器在向应用服务器转发客户端请求后,接收应用服务器的响应内容,并为客户端请求分配客户端请求标识,然后将应用服务器的网络地址、应用服务器对客户端请求的响应时间、以及客户端请求标识三者相对应地保存在日志中,将响应内容、标识和用于呈现web应用程序性能反馈页面的代码对应地发送给客户端,接收客户端对应地提交的标识和通过页面获取的web应用程序性能反馈信息,然后将标识和web应用程序性能反馈信息对应地保存在数据库中;分析装置对保存的数据以及日志进行分析以确定应用程序的性能。
文档编号H04L29/08GK102684934SQ201110064820
公开日2012年9月19日 申请日期2011年3月17日 优先权日2011年3月17日
发明者何进, 余金波 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1