CN102684934B - 监控web应用程序性能的方法、系统和web服务器 - Google Patents

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

Info

Publication number
CN102684934B
CN102684934B CN201110064820.3A CN201110064820A CN102684934B CN 102684934 B CN102684934 B CN 102684934B CN 201110064820 A CN201110064820 A CN 201110064820A CN 102684934 B CN102684934 B CN 102684934B
Authority
CN
China
Prior art keywords
client
requested
mark
weblication
application server
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.)
Active
Application number
CN201110064820.3A
Other languages
English (en)
Other versions
CN102684934A (zh
Inventor
何进
余金波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201110064820.3A priority Critical patent/CN102684934B/zh
Publication of CN102684934A publication Critical patent/CN102684934A/zh
Priority to HK12110643.6A priority patent/HK1170089A1/zh
Application granted granted Critical
Publication of CN102684934B publication Critical patent/CN102684934B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种监控web应用程序性能的方法、系统和web服务器,以解决现有技术中难以有效监控web应用程序性能或者监控效果不佳的问题。该方法包括:web服务器在向应用服务器转发客户端请求后,接收应用服务器的响应内容,并为客户端请求分配客户端请求标识,然后将应用服务器的网络地址、应用服务器对客户端请求的响应时间、以及客户端请求标识三者相对应地保存在日志中,将响应内容、标识和用于呈现web应用程序性能反馈页面的代码对应地发送给客户端,接收客户端对应地提交的标识和通过页面获取的web应用程序性能反馈信息,然后将标识和web应用程序性能反馈信息对应地保存在数据库中;分析装置对保存的数据以及日志进行分析以确定应用程序的性能。

Description

监控web应用程序性能的方法、系统和web服务器
技术领域
本申请涉及一种监控技术,尤其涉及一种监控web应用程序性能的方法、系统和web服务器。
背景技术
一般HTTP(HyperText Markup Language,超文本置标语言)请求响应的耗时包括三部分:1、发送请求时在网络上消耗的时间;2、web程序处理http请求所消耗的时间;3、网络传输响应内容的时间。当用户反馈系统响应速度较慢的时候,一般维护人员都先检查系统的各项指标以及应用的日志。但是在采用集群方式部署的环境下,维护人员很难定位用户反映的有性能问题的请求是由哪台服务器处理的,这样就无法去检查服务器的各项监控指标。即使维护人员定位到了处理请求的服务器,但是由于系统在高并发的环境下一段时间内会产生大量相同URL的请求日志,这样也将无法使维护人员准确的定位到出现性能问题的请求日志。
目前业界为了定位和分析web应用程序性能通用的手段是为系统添加各种监控,主要使用的监控方案有两种:
方案一:服务器端性能日志:该方案的主要方式是在服务器端的日志中记录处理每个请求的耗时以便日后从日志中分析问题。一种实现方式如下:
在Apache配置类似如下日志格式:
LogFormat″%h %u %t\″%r\″%>s%b\″%{User-Agent}i\″%D″combined
以上日志格式的含义请参考:
http://httpd.apache.org/docs/2.0/mod/mod_log_config.html#customlog
其中最重要的是“%D”这个表示处理此次请求所用的时间,单位:微秒。
收集各台服务器上的访问日志,查找耗时较多的URL为后续性能优化提供依据。
方案二:模拟客户端请求监控:该方案是使用程序模拟浏览器向系统发送请求,并记录响应时间以便跟踪分析问题。实现方式如下:
使用wget或httpclient等工具访问某些URL,记录服务器的响应时间。
分析记录的日志,查找耗时较多的URL为后续性能优化提供依据。
因为方案一是在服务器端记录请求的响应时间,在集群部署的情况下用户的请求是随机发送到集群中的某台服务器上去处理。这样就有一个缺陷是无法定位到用户请求发送到哪台服务器上,这种情况下当在用户反映系统响应慢的时候,系统维护人员无法定位到具体的服务器,此外除了定位具体机器有困难,在一台机器上,对用户短时间的类似操作也较难定位哪一条日志,因此也就难以有效监控web应用程序性能。
因为方案二是在客户端模拟用户请求的方式来监控web应用程序性能,因此监控效果不佳,具体表现为:
1、这个监控的客户端部署在哪里?如果用户是分布在全国各地的,全国各地的网络状况都是不一样的。这样的监控即使是多处布点也不能完全反映代表各地的网络情况。
2、这种监控程序往往不能完全模拟用户对系统的操作。首先,一个系统可能对用户开放几个到几十上百的功能,监控程序很难将每个功能都模拟一遍。其次,很多功能这种监控程序无法模拟,比如电子商务中的在线下订单、在线支付等应用服务。
现有技术中,难以有效监控web应用程序性能或者监控效果不佳,对于该问题,目前尚未提出有效解决方案。
发明内容
本申请的主要目的是提供一种监控web应用程序性能的方法、系统和web服务器,以解决现有技术中难以有效监控web应用程序性能或者监控效果不佳的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种监控web应用程序性能的方法。
本申请的监控web应用程序性能的方法包括:web服务器在向应用服务器转发客户端请求后,接收应用服务器执行应用程序逻辑后返回给所述客户端的响应内容,并为所述客户端请求分配客户端请求标识,然后,将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中,将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端,接收所述客户端对应地提交的所述标识和通过所述页面获取的web应用程序性能反馈信息,然后将所述标识和所述web应用程序性能反馈信息对应地保存在数据库中;分析装置接收所述web应用程序性能反馈页面获取的反馈信息,在所述数据库中搜索该反馈信息对应的客户端请求标识,在所述日志中查询该客户端请求标识对应的响应时间,并在该响应时间大于预设值的情况下输出该响应时间对应的应用服务器的网络地址或输出报警信息。
进一步地,将所述响应内容、所述标识和用于呈现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应用程序性能,获得较佳的监控效果。
附图说明
说明书附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是与本申请实施例有关的一种网络结构的示意图;
图2是根据本申请实施例的监控web应用程序性能的方法在web服务器上执行的流程示意图;
图3是根据本申请实施例的监控web应用程序性能的方法在客户端执行的流程示意图;
图4是根据本申请实施例的监控web应用程序性能的方法的整体流程的示意图;
图5是根据本申请实施例的网络维护人员进行系统分析的主要流程的示意图;
图6是根据本申请实施例的监控web应用程序性能的装置的示意图;
图7是根据本申请实施例的监控web应用程序性能的另一种装置的示意图;
图8是根据本申请实施例的监控web应用程序性能的系统的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1是与本申请实施例有关的一种网络结构的示意图。如图1所示,多个客户端11通过Internet网络12和防火墙13与负载均衡设备14连接,多个应用服务器15也通过web服务器16与负载均衡设备14连接。应用服务器15和web服务器16可以部署在同一台计算机中。基于类似于图1所示的网络,用户通过互联网访问部署在某个IDC(互联网数据中心)机房的web服务。由于全国甚至是全球范围内各地的网络环境千差万别,这就导致网络本身会严重影响用户在使用web应用时的体验。在网络层面应用用户体验的主要因素是网速。从图1也可以看出除了互联网本身的结构非常复杂外,应用程序的部署也有一定的复杂性。一般中大规模的企业应用都会采用集群方式部署。关于此处的“集群”,简单解释如下:参考图1,用户的请求先由客户端11经由Internet网络12、防火墙13发送到负载均衡设备14,由负载均衡设备14通过一定的算法将请求转发到应用服务器集群中的某一台应用服务器15上,由这台应用服务器15来响应用户的请求,并将处理结果返回给客户端11;处在集群里的每台应用服务器15都是对等的关系,每台应用服务器15都是互为备份,任何一台或者几台服务器出现故障都不会影响整个集群为用户正常提供服务。
当web应用出现性能问题时最直接的表现就是打开网页的速度很慢,当出现这种问题时对于系统的维护或开发人员来说首先需要定位出现此问题是否是由于应用程序的性能问题导致的。“打开网页的速度很慢”也就是系统响应的速度慢。一般HTTP请求响应的时间包括两部分:
1、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应用程序性能,获得较佳的监控效果。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者根据它们分别制作集成电路模块,或者根据它们中的多个模块或步骤制作成单个集成电路模块。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种监控web应用程序性能的方法,其特征在于,包括:
web服务器在向应用服务器转发客户端请求后,接收应用服务器执行应用程序逻辑后返回给所述客户端的响应内容,并为所述客户端请求分配客户端请求标识,然后,
将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中,
将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端,
接收所述客户端对应地提交的所述标识和通过所述页面获取的web应用程序性能反馈信息,然后将所述标识和所述web应用程序性能反馈信息对应地保存在数据库中;
分析装置接收所述web应用程序性能反馈页面获取的反馈信息,在所述数据库中搜索该反馈信息对应的客户端请求标识,在所述日志中查询该客户端请求标识对应的响应时间,并在该响应时间大于预设值的情况下输出该响应时间对应的应用服务器的网络地址或输出报警信息。
2.根据权利要求1所述的方法,其特征在于,将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端包括:在作为所述响应内容的HTML代码中记录所述标识以及所述用于呈现web应用程序性能反馈页面的代码,再将所述HTML代码发送给所述客户端。
3.根据权利要求1所述的方法,其特征在于,所述web应用程序性能反馈页面中包含用于接收web应用程序性能反馈信息的表单。
4.根据权利要求1所述的方法,其特征在于,将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中之后,所述方法还包括:
从所述日志中查找大于预设时间值的所述响应时间,确定查找到的所述响应时间对应的应用服务器的网络地址然后输出该网络地址。
5.一种web服务器,其特征在于,包括:
第一接收模块,用于接收应用服务器对客户端请求的响应;
分配模块,用于为所述客户端请求分配客户端请求标识;
保存模块,用于将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中;
第一发送模块,用于将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端;
第二接收模块,用于接收所述客户端通过所述页面获取并发送的web应用程序性能反馈信息以及对应该反馈信息发送的客户端请求标识;
第二发送模块,用于将所述反馈信息和所述标识对应地发送至数据库。
6.一种监控web应用程序性能的系统,其特征在于,包括web服务器和分析装置,其中:web服务器,用于:
在向应用服务器转发客户端请求后,接收应用服务器执行应用程序逻辑后返回给所述客户端的响应内容,并为所述客户端请求分配客户端请求标识,然后,将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中,
将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端,
接收所述客户端通过所述页面获取的web应用程序性能反馈信息,然后将所述标识和所述web应用程序性能反馈信息对应地保存在数据库中;
分析装置,用于:
接收所述web应用程序性能反馈页面获取的反馈信息,在所述数据库中搜索该反馈信息对应的客户端请求标识,在所述日志中查询该客户端请求标识对应的响应时间,并在该响应时间大于预设值的情况下输出该响应时间对应的应用服务器的网络地址或输出报警信息。
7.根据权利要求6所述的系统,其特征在于,所述web服务器包括:
第一接收模块,用于接收应用服务器对客户端请求的响应;
分配模块,用于为所述客户端请求分配客户端请求标识;
保存模块,用于将所述应用服务器的网络地址、所述应用服务器对所述客户端请求的响应时间、以及所述客户端请求标识三者相对应地保存在日志中;
第一发送模块,用于将所述响应内容、所述标识和用于呈现web应用程序性能反馈页面的代码对应地发送给所述客户端;
第二接收模块,用于接收所述客户端通过所述页面获取的web应用程序性能反馈信息以及对应该反馈信息发送的客户端请求标识;
第二发送模块,用于将所述反馈信息和所述标识对应地发送给数据库。
8.根据权利要求7所述的系统,其特征在于,所述第一发送模块还用于:在作为所述响应内容的HTML代码中记录所述标识以及所述用于呈现web应用程序性能反馈页面的代码,再将所述HTML代码发送给所述客户端。
9.根据权利要求6所述的系统,其特征在于,所述分析装置包括:
接收模块,用于接收所述web应用程序性能反馈页面获取的反馈信息;
搜索模块,用于在所述数据库中搜索该反馈信息对应的客户端请求标识;
查询模块,用于在所述日志中查询所述搜索模块搜索到的客户端请求标识对应的响应时间;
分析输出模块,用于在所述查询模块查询到的响应时间大于预设值的情况下输出该响应时间对应的应用服务器的网络地址。
10.根据权利要求6所述的系统,其特征在于,所述分析装置包括:
查找模块,用于从所述日志中查找大于预设时间值的所述响应时间,并且确定该响应时间所对应的应用服务器的网络地址;
提示模块,用于输出所述查找模块确定的网络地址。
CN201110064820.3A 2011-03-17 2011-03-17 监控web应用程序性能的方法、系统和web服务器 Active CN102684934B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110064820.3A CN102684934B (zh) 2011-03-17 2011-03-17 监控web应用程序性能的方法、系统和web服务器
HK12110643.6A HK1170089A1 (zh) 2011-03-17 2012-10-25 監控 應用程序性能的方法、系統和 服務器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110064820.3A CN102684934B (zh) 2011-03-17 2011-03-17 监控web应用程序性能的方法、系统和web服务器

Publications (2)

Publication Number Publication Date
CN102684934A CN102684934A (zh) 2012-09-19
CN102684934B true CN102684934B (zh) 2015-02-04

Family

ID=46816329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110064820.3A Active CN102684934B (zh) 2011-03-17 2011-03-17 监控web应用程序性能的方法、系统和web服务器

Country Status (2)

Country Link
CN (1) CN102684934B (zh)
HK (1) HK1170089A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981943B (zh) * 2012-10-29 2016-05-11 新浪技术(中国)有限公司 监控应用日志的方法及系统
CN103795762B (zh) * 2012-11-01 2019-07-02 百度在线网络技术(北京)有限公司 一种反向代理的测试方法及系统
CN104580127B (zh) * 2013-10-29 2019-07-02 腾讯科技(北京)有限公司 业务处理方法、服务器及客户端
CN105183629B (zh) * 2014-05-29 2018-06-22 北京基调网络系统有限公司 分析php应用软件性能的诊断系统及其方法和性能管理平台
CN104394201A (zh) * 2014-11-12 2015-03-04 国云科技股份有限公司 分布式web应用监控方法
CN104683180B (zh) * 2015-02-12 2019-05-03 北京蓝海讯通科技有限公司 一种性能监控方法、系统及应用服务器
CN104899278B (zh) * 2015-05-29 2019-05-03 北京京东尚科信息技术有限公司 一种Hbase数据库数据操作日志的生成方法及装置
CN106878041B (zh) * 2015-12-11 2020-11-20 阿里巴巴(中国)有限公司 日志信息处理方法、装置及系统
CN107133240B (zh) * 2016-02-29 2020-09-11 阿里巴巴集团控股有限公司 页面监控方法、装置及系统
CN105978723A (zh) * 2016-05-11 2016-09-28 广州唯品会信息科技有限公司 网络信息管理方法及装置
CN106407078B (zh) * 2016-09-26 2019-06-25 中国工商银行股份有限公司 基于信息交互的客户端性能监控装置及方法
CN108108231A (zh) * 2016-11-24 2018-06-01 阿里巴巴集团控股有限公司 用户请求的生成、处理方法、装置、系统及电子设备
CN109389271B (zh) * 2017-08-10 2020-11-24 中国电信股份有限公司 应用性能管理方法及系统
CN107483294B (zh) * 2017-09-15 2020-06-19 北京奇艺世纪科技有限公司 监控网络请求的方法及装置
CN107819623A (zh) * 2017-11-08 2018-03-20 平安科技(深圳)有限公司 应用性能分析方法及装置
CN110213312B (zh) * 2018-04-03 2021-10-29 腾讯科技(深圳)有限公司 一种用户现场展示的方法、相关装置及系统
CN110049268B (zh) * 2019-04-19 2021-07-09 视联动力信息技术股份有限公司 一种可视电话连接方法及装置
CN110177153A (zh) * 2019-06-14 2019-08-27 郑州悉知信息科技股份有限公司 一种日志收集系统
CN110413421B (zh) * 2019-06-28 2024-01-30 创新先进技术有限公司 业务数据处理方法和装置、交易数据处理方法和装置
CN111752906B (zh) * 2019-12-30 2023-12-05 北京沃东天骏信息技术有限公司 请求响应方法、装置和系统、计算机系统和可读存储介质
CN112685253A (zh) * 2020-12-29 2021-04-20 平安普惠企业管理有限公司 前端报错日志采集方法、装置、设备及存储介质
CN112887410B (zh) * 2021-01-28 2022-12-20 郑州市景安网络科技股份有限公司 一种web服务程序的运行方法、装置、设备及存储介质
CN114640567A (zh) * 2022-02-23 2022-06-17 中银金融科技有限公司 Apache日志的分析方法及装置
CN114745415B (zh) * 2022-03-17 2024-03-26 中汽创智科技有限公司 一种车辆业务通信数据处理方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1588871A (zh) * 2004-09-29 2005-03-02 友信互动(北京)文化传媒有限公司 数据传输中实现信息反馈的方法
CN201499180U (zh) * 2009-07-01 2010-06-02 中国工商银行股份有限公司 一种实现银企互联通信的装置

Also Published As

Publication number Publication date
CN102684934A (zh) 2012-09-19
HK1170089A1 (zh) 2013-02-15

Similar Documents

Publication Publication Date Title
CN102684934B (zh) 监控web应用程序性能的方法、系统和web服务器
US8782200B2 (en) System and method for optimizing website visitor actions
US8775603B2 (en) Method and system for testing variations of website content
US9268547B2 (en) Conditional logic for delivering computer-executable program instructions and content
US8352318B2 (en) Exclusivity in internet marketing campaigns system and method
US8996986B2 (en) Enhanced delivery of content and program instructions
CN103905258B (zh) 一种客户端数据上传功能的测试方法及装置
CN109586999A (zh) 一种容器云平台状态监控预警系统、方法及电子设备
US20080177600A1 (en) Methods and systems for measuring online chat performance
US9058252B2 (en) Request-based server health modeling
Wu et al. Monitoring and evaluating the quality of Web Map Service resources for optimizing map composition over the internet to support decision making
CN104067274A (zh) 用于改进对搜索结果的访问的系统和方法
US20080091775A1 (en) Method and apparatus for parallel operations on a plurality of network servers
CN104427627A (zh) 测试数据获取方法、客户端与服务器
CN111163150A (zh) 一种分布式调用追踪系统
JPH10207838A (ja) 対話型ハイパーテキスト情報参照システムにおける情報参照回数計数装置及び方法並びに情報参照回数計数プログラムを記録した媒体
CN104270443B (zh) 一种能够动态解析Web应用的云计算系统及方法
CN102684925B (zh) 互联网访问来源信息的获取方法和装置
CN103139004A (zh) 利用网络限速工具模拟网络带宽的方法及系统
Han et al. Investigating metrics of geospatial web services: The case of a CEOS federated catalog service for earth observation data
CN107368399A (zh) 一种线上网页监控方法及系统
KR102463404B1 (ko) 정보 매칭을 기반으로 한 대시보드 시스템
Janani et al. Evaluation of cloud based performance testing for online shopping websites
CN115330407A (zh) 农业生产溯源管理系统
CN114371969A (zh) 一种页面性能测试方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1170089

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1170089

Country of ref document: HK