基于Java平台的Web应用系统业务性能监测方法
【技术领域】
[0001]本发明涉及一种软件系统业务性能监测方法,尤其涉及一种基于Java平台的Web应用系统业务性能监测方法。
【背景技术】
[0002]随着日益激增的IT应用复杂性,企业同时面临业务需求更快的变化,用户期望持续攀升,需要更高的性价比等方面的影响,在这些因素的影响下,IT应用在运行过程中发生诸如性能下降或者服务不可用等故障的可能性大大增加,从而影响业务服务的正常运行。
[0003]很遗憾的是,长期以来企业IT运维停留在“以资源为中心”的管理模式,关注的是IT资源的可用性和相关技术性能指标,对IT用户行为和业务性能(体验状况)却是一无所知。例如用户来自哪里,做了什么操作,遇到哪些错误,业务处理消耗多少时间,业务性能耗时在网络,还是服务器(程序逻辑及SQL逻辑)...等,所以这些用户体验显得尤为重要。因此有效地管理这些应用,提升用户体验,需要在系统性能、使用效能、可用性监测等多个方面进行保障与提升,是业务发展的迫切需要。
[0004]对于大型的应用系统,业务功能模块至少几十个,每一个功能模块根据业务实际情况,性能呈现存在差异,如何有效对业务模块性能进行自动化监测与分析管理,了解真实用户体验,对用户体验不好业务缺乏问题精定位与分析,主要分如下三种方式来执行:
[0005]I)用户报障方式:依赖于用户报障,如用户在使用某项功能或执行某项操作响应变慢,执行时间较正常时超出许多。由用户报障给业务维护部门,维护人员通知开发人员及数据库人员对性能问题业务进行跟进处理。
[0006]2)日志记录方式:在应用系统设计、开发阶段,或者是在新增业务正式上线前,设计人员、开发人员等凭借设定好的标准日志格式,记录对业务功能点每一个步骤耗时,通过日志记录方式监测与分析业务处理性能;在系统正式运行过程中,当发现业务功能较慢时,通过人工分析日志方式被动分析业务性能较差的原因,优点可获取用户真实体验数据。
[0007]3)主动模拟方式:主动模拟是通过定期执行预定义脚本模拟用户访问应用系统来获取事务可用性和响应时间,一般需要在靠近用户端位置部署主动模拟装置,优点是能够7x24小时持续不间断地对应用进行监控和能够早于用户发现问题,维护人员凭借个人经验手工分析业务每一个步骤耗时情况,如判定业务逻辑设计不合理,导致性能较差,通知开发人员修改业务逻辑及后台SQL。
[0008]现有技术存在的主要缺点如下:
[0009]I)通过用户报障,这时业务已经受到影响,是个别用户性能问题,还是普遍性较差,无法统一进行判断,这时业务性能分析是采取被动方式进行端到端分析过程,往往问题真正得到解决需要花费大量时间,对业务造成不可估量的影响。
[0010]2)日志记录方式,虽然能够很好记录系统业务功能每个步骤性能情况,但取决于系统设计之初有良好日志记录方式,如果没有相应标准日志记录方式,则需要花费大量人力及财力,对系统进行改造,效果并不理想。
[0011]3)主动模拟方式,现实中常常只用于对关键业务性能进行探测分析,如果覆盖全业务功能,大规模探测会干扰系统整体性能,并且获取的不是真实用户体验数据缺乏业务分析价值。
[0012]4)当系统业务整体性能出现缓慢现象时,数据库人员、开发人员、中间件人员各自所负责技术进行性能排查,属于大海捞针的做法,需要花费大量人力物力去定位与分析,缺乏有效手断去定位是哪一个请求及后台SQL存在性能问题影响到业务整体性能情况,所于事后排查,效果并不明显。
[0013]由上可见,现有技术方案虽然有事前及事后两种应急处理方式,但是都存在缺陷,无法精准对业务性能进行监测(真实用户体验信息),业务性能定位与分析需要花费大量人力、时间来进行处理,存在一定的被动性及肓目性。目前大量的运维实践经验表明,即使在后端资源监控比较完善的情况下,仍有相当多比例的问题依然是由用户首先发现和报告的,不仅降低用户的满意度,也使IT运维工作相当被动,因此有必要寻找一种合适技术手段对业务性能进行直接监控,以弥补现有IT资源监控工具的不足和缺陷,帮助企业全面掌握IT终端用户的行为和体验状况,促进IT运维面向业务和面向用户体验。
【发明内容】
[0014]本发明所要解决的技术问题是提供一种基于Java平台的Web应用系统业务性能监测方法,能够主动对用户真实体验数据进行采集,对业务性能进行提前预警,并快速定位业务逻辑及sql问题,大大提升存在性能问题的业务处理效率。
[0015]本发明为解决上述技术问题而采用的技术方案是提供一种基于Java平台的Web应用系统业务性能监测方法,包括如下步骤:a)先对Web应用系统业务性能数据采用网络旁路方式进行实时采集;b)预设业务指标告警类型及告警阀值,发现有超过告警阀值的业务,进行异常情况告警;c)采用纵向分层和横向分域的方法对采集的业务性能数据进行分类统计。
[0016]上述的基于Java平台的Web应用系统业务性能监测方法,其中,所述步骤a)包括如下过程:al)采用应用服务器交换机将Web应用服务器端口进行镜像到另外一个端口 ;a2)将镜像的端口与旁路侦听设备服务器连接;a3)利用旁路侦听设备服务器自动收集应用服务器交换机的所有报文信息,并将信息入库到系统数据库。
[0017]上述的基于Java平台的Web应用系统业务性能监测方法,其中,所述报文信息包括用户访问的应用功能模块、cookie/sess1n-1cUGET/POST参数、客户端IP、服务器IP、访问量、浏览器类型、服务器响应码、服务器响应时间和网络传输时间。
[0018]上述的基于Java平台的Web应用系统业务性能监测方法,其中,所述步骤b)基于系统监测维度定义业务指标告警类型,所述业务指标告警类型包括应用性能杀手排名、最慢的页面排名、系统资源开销排名以及应用大对象排名。
[0019]上述的基于Java平台的Web应用系统业务性能监测方法,其中,所述步骤b)基于地市运营维度定义业务指标告警类型,所述业务指标告警类型包括实时系统整体满意度、地市整体满意度、实时系统整体出错率、用户访问区域分布、发生错误的页面错误分类及比例。
[0020]上述的基于Java平台的Web应用系统业务性能监测方法,其中,所述步骤b)基于用户感知维度定义业务指标告警类型,所述业务指标告警类型包括业务响应时间、接口处理时间、业务稳定性和业务可操作性,并通过比较相应SQL语句耗时是否超出告警阀值,进行异常情况告警。
[0021]上述的基于Java平台的Web应用系统业务性能监测方法,其中,所述步骤c)中的纵向分层包括硬件层、平台层与应用层,所述横向分域包括查询域、接口域、流程域、展现域、架构域和需求域。
[0022]上述的基于Java平台的Web应用系统业务性能监测方法,其中,还包括通过对用户请求的URL进行识别定义业务关系,统计业务代码涉及函数或方法的响应时间、SQL语句耗时,快速识别与追溯业务性能瓶颈,并对收集的业务性能瓶颈进行过滤,最后形成封闭的业务流程进行后续优化处理。
[0023]本发明对比现有技术有如下的有益效果:本发明提供的基于Java平台的Web应用系统业务性能监测方法,通过采用网络旁路方式实时采集业务性能数据;预设业务指标告警类型及告警阀值进行异常处理;采用纵向分层和横向分域的方法对采集的业务性能数据进行统计分析,从而能够主动对用户真实体验数据进行采集,对业务性能进行提前预警,并快速定位业务逻辑及sql问题,大大提升存在性能问题的业务处理效率。
【附图说明】
[0024]图1为本发明基于Java平台的Web应用系统业务性能监测流程示意图
[0025]图2为本发明基于Java平台的Web应用系统业务性能监测系统分层示意图;
[0026]图3为本发明采用网络旁路方式实时采集相关业务性能数据的连接示意图;
[0027]图4为本发明采用分层分域的方法对采集的业务性能数据进行分类统计示意图。
【具体实施方式】
[0028]下面结合附图和实施例对本发明作进一步的描述。
[0029]图1为本发明基于Java平台的Web应用系统业务性能监测流程示意图;图2为本发明基于Java平台的Web应用系统业务性能监测系统分层示意图。
[0030]请参见图1和图2,本发明提供的基于Java平台的Web应用系统业务性能监测方法包括如下步骤:
[0031]步骤S1:先对Web应用系统业务性能数据采用网络旁路方式进行实时采集;
[0032]步骤S2:预设业务指标告警类型及告警阀值,发现有超过告警阀值的业务,进行异常情况告警;
[0033]步骤S3:采用纵向分层和横向分域的方法对采集的业务性能数据进行分类统计;所述纵向分层包括硬件层、平台层与应用层,所述横向分域包括查询域、接口域、流程域、展现域、架构域和需求域。
[0034]本发明提供的基于Java平台的Web应用系统业务性能监测方法,主要分为三层来实现,各层具体实现及功能如下:
[0035]I)采集层:
[0036]此模块负责对系统整体及关键业务的相关性能数据进行实时采集,针对大型业务系统,业务本身访问比较繁忙,频繁采集所有业务模块性能数据,势必干扰业务正常使用,可以利用网络旁路侦听技术进行采集可很好解决此类问题。
[0037]网络旁路侦听技术主要是通过SPAN模式(交换机端口镜像)或TAP模式(网络分流器复制)将需监控应用系统网络流量(包括上行和下行流量)接入专门负责报文解析的旁路侦听设备中,在基于B/S架构应用中,当用户访问应用时,用户请求会通过网路传递给WEB服务器,然后WEB服务器对用户请求进行处理,并将处理结果返回给客户端,如图3所示,本发明采用网络旁路方式进行实时采集包括如下过程:
[0038]al)采用应用服务器交换机将W