CN108255659A - 一种应用程序性能监控方法及其*** - Google Patents
一种应用程序性能监控方法及其*** Download PDFInfo
- Publication number
- CN108255659A CN108255659A CN201611236538.8A CN201611236538A CN108255659A CN 108255659 A CN108255659 A CN 108255659A CN 201611236538 A CN201611236538 A CN 201611236538A CN 108255659 A CN108255659 A CN 108255659A
- Authority
- CN
- China
- Prior art keywords
- time
- function module
- server
- default
- information
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种应用程序性能监控方法及其***,监控方法包括:获取处理业务请求的功能模块,各功能模块对应一组设置于客户端上的若干预设第一埋点以及一组设置于服务器上的若干预设第二埋点;根据一组预设第一埋点获取的第一时间信息;根据一组预设第二埋点获取第二时间信息;根据第一时间信息获取用于表示处理业务请求的总耗时的第一处理时间,判断第一处理时间是否超过了预设处理时间;若超过了预设处理时间,根据第一时间信息和第二时间信息按照预设规则分析是否存在网络问题或者客户端问题或者服务器问题;并根据存在的问题提供优化建议。本发明通过上述方法实现了实时监控应用程序的运行进而达到及时分析和反馈问题的效果。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用程序性能监控方法及其***。
背景技术
随着智能电子设备变为了用户生活的必需品,越来越丰富的应用给用户的生活带来了极大的改变的同时,用户面对同一类应用程序拥有更多的选择。一般而言,用户将选择应用程序体验效果好的,因此监控应用程序的性能是开发过程中重要步骤。现有监控应用程序性能的方法中,应用程序运行时,一般是出现了问题再去查原因,无法随应用程序运行时同步监控并及时反馈和分析问题。
发明内容
本发明实施例提供一种应用程序性能监控方法及其***,可以监控应用程序运行并及时反馈和分析问题。
第一方面,本发明实施例提供了一种应用程序性能监控方法,所述方法包括:
若客户端接收到业务请求,获取处理业务请求的功能模块,各功能模块对应一组设置于客户端上的若干预设第一埋点以及一组设置于服务器上的若干预设第二埋点,一组预设第一埋点包括功能模块接收请求时、功能模块发送请求给服务器时、接收服务器的数据时以及功能模块完成请求时;一组预设第二埋点包括服务器接收请求时以及服务器发送数据给功能模块时;根据一组预设第一埋点获取用于表示预设第一埋点的执行时间的第一时间信息;根据一组预设第二埋点获取用于表示预设第二埋点的执行时间的第二时间信息;根据第一时间信息获取用于表示功能模块处理业务请求的总耗时的第一处理时间,判断第一处理时间是否超过了预设处理时间;若超过了预设处理时间,根据第一时间信息和第二时间信息按照预设规则分析是否存在网络问题或者客户端问题或者服务器问题;若存在网络问题或者客户端问题或者服务器问题,根据存在的问题提供优化建议。
另一方面,本发明实施例提供了一种***,***包括:识别单元、第一获取单元、第二获取单元、计算单元、判断单元、分析单元以及优化单元,其中识别单元用于若客户端接收到业务请求,获取处理业务请求的功能模块,各功能模块对应一组设置于客户端上的若干预设第一埋点以及一组设置于服务器上的若干预设第二埋点,一组预设第一埋点包括功能模块接收请求时、功能模块发送请求给服务器时、接收服务器的数据时以及功能模块完成请求时;一组预设第二埋点包括服务器接收请求时以及服务器发送数据给功能模块时;第一获取单元用于根据功能模块相对应的一组预设第一埋点获取用于表示预设第一埋点的执行时间的第一时间信息;第二获取单元用于根据功能模块对应的一组预设第二埋点获取用于表示预设第二埋点的执行时间的第二时间信息;计算单元用于根据第一时间信息获取用于表示功能模块处理业务请求的总耗时的第一处理时间,判断单元用于判断第一处理时间是否超过了预设处理时间;分析单元用于若判断单元判断出第一处理时间超过了预设处理时间,根据第一时间信息和第二时间信息按照预设规则分析是否存在网络问题或者客户端问题或者服务器问题;优化单元用于若存在网络问题或者客户端问题或者服务器问题,根据分析单元得到的问题提供优化建议。
本发明实施例所公开的一种应用程序性能监控方法通过功能模块相对应的一组预设第一埋点以及一组预设第二埋点获取到第一时间信息和第二时间信息,再根据第一时间信息获取到第一处理时间并判断第一处理时间是否超过预设处理时间来判断是否存在问题,若存在问题再根据第一时间信息和第二时间信息分析是网络问题或者客户端问题或者服务器问题,再根据存在的问题提供优化建议。通过预设第一埋点和预设第二埋点实现了实时监控应用程序运行,进而通过进一步的分析及时反馈和分析问题。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种应用程序性能监控方法的示意性流程图;
图2是本发明实施例提供的一种在应用程序运行中预设第一埋点和预设第二埋点的执行时间的示意图;
图3是图1中的子流程示意图;
图4是本发明实施例提供的一种应用程序运行***的示意性框图;
图5是本发明实施例提供的一种应用程序性能监控***的示意性框图;
图6是本发明实施例提供的一种优化单元示意性框图;
图7是本发明实施例提供的一种分析单元示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或若干个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
本发明实施例提供的一种应用程序性能监控方法运行于监控***,监控***用于监控应用程序在应用程序运行***中的运行情况,应用程序运行***包括客户端以及与客户端通讯的服务器,应用程序运行于客户端,用于接收业务请求,并向服务器请求相关数据来完成所述业务。本发明实施例不具体限定应用程序是何种功能的应用程序,可以包括但是不限制为购物应用、社交应用、地图应用等。
请参看图1,是本发明实施方式提供的一种应用程序性能监控方法的示意性流程图,如图所示,该监控方法包括步骤S101~S107:
步骤S101,若客户端接收到业务请求,获取处理业务请求的功能模块,各功能模块对应一组设置于客户端上的若干预设第一埋点以及一组设置于服务器上的若干预设第二埋点。
需要说明的是,一个业务请求可以是一个功能模块处理,还可以是多个功能模块协同处理。例如登陆请求时,处理登陆请求包括登陆的功能模块以及个人信息获取的功能模块。本发明实施例中所述的功能模块是具有处理能力的模块,是根据具体功能进行划分模块。
步骤S102,根据一组预设第一埋点获取用于表示预设第一埋点的执行时间的第一时间信息。
具体的,本实施例中优选一组预设第一埋点包括:功能模块接收业务请求时、功能模块发送请求给服务器时、功能模块接收服务器数据时、功能模块处理完成业务请求时。一组预设第一埋点中还包括功能模块在客户端处理业务过程中数据解析埋点、UI渲染埋点。优选一组预设第二埋点包括:服务器接收功能模块发送请求时以及服务器发送数据给功能模块时,在其它可行的实施例中,预设第一埋点和预设第二埋点包括上述埋点,但是不仅限制于上述埋点,可以根据性能分析的需求设置更多埋点。需要说明的是,预设第一埋点和预设第二埋点是用于记录埋点的执行时间,例如预设第一埋点中功能模块接收业务请求时的埋点是用于记录功能模块接业务请求的时间。本发明实施例中优选通过代码埋点技术实现埋点,但是其他可行的实施例中可选用其他方式。
还需要说明的是,由于第一时间信息是用于表示预设第一埋点的执行时间,因此,本实施例中第一时间信息包括功能模块接收业务请求时的第一时间t1、功能模块发送请求给服务器时的第二时间t2、功能模块接收服务器数据时的第五时间t5、功能模块处理完业务请求时的第六时间t6以及解析时间t7和渲染时间t8。
步骤S103,根据一组预设第二埋点获取用于表示预设第二埋点的执行时间的第二时间信息。
具体的,请看图2,由于预设第二埋点包括服务器接收请求时以及服务器发送数据给功能模块时,因此本实施例中第二时间信息包括服务器接收功能模块发送请求时的第三时间t3以及服务器发送数据给功能模块时的第四时间t4。应当理解,根据第二时间信息中的第三时间t3和第四时间t4可以获取到用于表示与功能模块相对应的在服务器上处理业务请求的总耗时的第三处理时间T3,其与第三时间t3和第四时间t4的关系为:T3=t4-t3。应当理解,S102和S103中获取的第一时间信息和第二时间信息是针对同一个功能模块而言的。
步骤S104,根据第一时间信息获取用于表示功能模块处理业务请求的总耗时的第一处理时间。
具体的,第一处理时间用于表示功能模块接收业务请求后,功能模块完成业务请求的总耗时,其包括在客户端以及服务器上的耗时。请看图2,由于第一时间信息包括功能模块接收业务请求时的第一时间t1、功能模块发送请求给服务器时的第二时间t2、功能模块接收服务器数据时的第五时间t5、功能模块处理完业务请求时的第六时间t6以及解析时间t7和渲染时间t8。因此根据第一时间信息中的第六时间t6和第一时间t1可以获取到用于表示功能模块处理业务请求的总耗时的第一处理时间T1,T1=t6-61;根据第一时间信息中的第一时间t1、第二时间t2、第五时间t5以及第六时间t6,可以获取到用于表示功能模块在客户端上处理业务请求的总耗时的第二处理时间T2,T2=(t2-t1)+(t6-t5)。应当理解,若一个业务请求对应若干功能模块,每个功能模块对应有一个第一处理时间、第二处理时间以及第三处理时间,不同功能模块的第一处理时间相互独立、不同功能模块的第二处理时间相互独立,不同功能模块的第三处理时间相互独立。
步骤S105,判断第一处理时间是否超过了预设处理时间,若超过了预设处理时间,执行步骤S106;若没有超过预设处理时间,流程结束。
具体的,由于第一处理时间T1表示处理完成业务请求的总耗时,因此若第一处理时间T1过长,则表示该应用程序有可能需要优化。预设处理时间是根据有限次实验得到的临界时间,其表示第一处理时间T1超过该临界时间时有可能需要优化应用程序,进而需要进一步地分析。
步骤S106,根据第一时间信息和第二时间信息按照预设规则分析是否存在网络问题或者客户端问题或者服务器问题。
具体的,本发明实施例中处理业务请求需要客户端和服务器协同完成,客户端与服务器之间通过网络通讯连接,因此若处理业务请求的第一处理时间T1过长,则表示有可能出现问题为网络问题、客户端问题或者服务器问题。
需要说明的是,预设规则是根据第一时间信息和第二时间信息计算出与网络问题相匹配的网络传输时间、与客户端问题相匹配的处理时间以及与服务器问题相匹配的处理时间,并分别与相对应的标准时间比较来判断是否有相对应的网络问题或者客户端问题或者服务器问题。
步骤S107,若存在网络问题或者客户端问题或者服务器问题,根据存在的问题提供优化建议。
需要说明的是,为了使开发人员通过本发明实施例提供的监控方法得到更加准确的性能分析的数据,本实施例中优选每次处理业务请求时记录存在的问题,并将所有记录的问题进行汇总统计,因此步骤S107中若存在网络问题或者客户端问题或者服务器问题,根据存在的问题提供优化建议,具体包括:
根据每次处理该业务请求时功能模块相对应存在的问题生成反馈信息,反馈信息包括功能模块对应的网络问题、客户端问题、服务器问题的发生频率;
根据反馈信息生成功能模块中各类问题的优化优先级,其中,在网络问题、客户端问题和服务器问题的发生频率越高的问题优先级越高;
根据功能模块对应的各类问题的优先级高低依次提供优化建议。
具体的,功能模块对应的网络问题、客户端问题、服务器问题的发生频率的高低表示了各类问题的严重性的轻重,发生频率越高的问题,表示越加需要提前处理,因此根据发生频率的高低设置各类问题的优化优先级可以节省功耗以及提高优化效率。另一方面,为了防止浪费工效,并不是每次出现了问题都需要优化,本实施例中提供各类问题的发送频率可以供开发人员判断发生频率高于预设频率时再行优化。
提供优化建议包括但是不限制于提供待优化的问题、根据预存的优化方案提供与待优化问题相匹配的优化方案,在其他可行的实施例中,还可以根据待优化的问题从预存的优化方案中选择相匹配的优化方案来自动优化应用程序。
为了鉴别出是否存在网络问题,步骤S106中根据第一时间信息和第二时间信息按照预设规则分析是否存在网络问题或者客户端问题或者服务器问题,具体包括:
根据第一时间信息和第二时间信息获取网络传输时间以及判断网络传输时间是否超过了预设传输时间,若超过了预设传输时间,记录功能模块存在网络问题;若未超过预设传输时间,再判断是否存在客户端问题或者服务器问题。
由于根据第二时间信息中的第三时间t3和第四时间t4可以获取到用于表示在服务器上处理业务请求的总耗时的第三处理时间T3,而根据第一时间信息中的第六时间t6和第一时间t1可以获取到用于表示处理业务请求的总耗时的第一处理时间T1;根据第一时间信息中的第一时间t1、第二时间t2、第五时间t5以及第六时间t6,可以获取到用于表示功能模块在客户端上处理业务请求的总耗时的第二处理时间T2,故根据第一处理时间T1、第二处理时间T2以及第三处理时间T3获取到客户端与服务器之间的网络传输时间△T1,△T1=T1-T2-T3,或者根据第一时间信息中的第二时间、第五时间以及根据第二时间信息中的第三时间和第四时间获取网络传输时间△T1=(t5-t2)-(t4-t3)。
其中预设传输时间是根据有限次数的实验数据得到的,表示网络传输的临界值,一般而言,超过网络传输的临界值则表示存在网络问题,而非应用程序问题。
本实施例中所述的客户端问题包括解析问题和渲染问题,为了鉴别出是否是客户端问题,预设第一埋点还包括了数据解析埋点以及UI渲染埋点,数据解析埋点用于记录解析的起始时间和结束时间,UI渲染埋点用于获取渲染的起始时间和结束时间,相对应的第一时间信息还包括解析时间t7和渲染时间t8。在其他可行的实施例中,还可以设置更多的埋点以获取在客户端上更加详细的数据来分析是否存在其他问题。请看图3,本实施例中,步骤S106中根据第一时间信息和第二时间信息按照预设规则分析是否存在网络问题或者客户端问题或者服务器问题,具体包括:
S301,判断第六时间和第五时间的差值是否超过了预设分析时间,若超过了预设分析时间,执行S302,若未超过,执行S306;
S302,判断解析时间是否超过了预设解析时间,若超过了预设解析时间,执行S303;若未超过预设解析时间,执行S304;
S303,记录功能模块存在解析问题;
S304,判断渲染时间是否超过了预设渲染时间,若超过了预设渲染时间,执行S305;若未超过预设渲染时间,执行S306;
S305,记录功能模块存在渲染问题。
S306,检测是否存在网络问题或者服务器问题。
还需要说明的是,若存在解析问题或者存在渲染问题,步骤S107中根据存在的问题提供优化建议,具体包括:
若存在解析问题,提供优化报文数据的优化建议;若存在渲染问题,提供分页渲染或者分段渲染的优化建议来提高渲染速度。
需要说明的是预设解析时间和预设渲染时间是经过有限次数实验而得到的,用于表示解析和渲染的临界时间,即若解析时间超过预设解析时间则存在解析过慢等解析问题;若渲染时间超过预设渲染时间则存在渲染过慢等渲染问题。
在其他可行的实施例中,客户端问题可以仅包括渲染问题,为了鉴别出是否是客户端问题,预设第一埋点还包括了UI渲染埋点,UI渲染埋点用于获取渲染的起始时间和结束时间,相对应的第一时间信息还包括渲染时间t8,步骤S106中根据第一时间信息和第二时间信息按照预设规则分析是否存在网络问题或者客户端问题或者服务器问题,具体包括:
判断第六时间和第五时间的差值是否超过了预设分析时间,若超过了预设分析时间,判断渲染时间是否超过了预设渲染时间;
若超过了预设渲染时间,记录功能模块存在渲染问题;
若渲染时间未超过预设渲染时间或者若第六时间和第五时间的差值未超过预设分析时间,检测是否存在网络问题或者服务器问题。
另一方面,若存在渲染问题,步骤S107中根据存在的问题提供优化建议,具体包括:
若存在渲染问题,提供分页渲染或者分段渲染的优化建议来提高渲染速度。
在其他可行的实施例中,客户端的问题还可以仅包括解析问题。从上述可知,客户端可以存在解析问题或者渲染问题或者他们的任意组合,本发明实施例对此不进行具体的限定。
为了鉴别出是否存在服务器问题,步骤S106中根据第一时间信息和第二时间信息按照预设规则分析是否存在网络问题或者客户端问题或者服务器问题,具体包括:
根据第二时间信息获取用于表示与功能模块相对应的在服务器上处理业务请求的总耗时的第三处理时间;
判断第三处理时间是否超过了预设响应时间,若超过了预设响应时间,记录功能模块相对应在服务器端存在服务器问题;若未超过预设响应时间,检测是否存在网络问题或者客户端问题。
预设响应时间是经过有限次数实验数据而获取到的,表示服务器处理请求的临界时间,表示若超过该预设响应时间,即存在服务器响应过慢等服务器问题。还需要说明的是,若存在服务器问题,可根据预存的若干优化方案提供相匹配的优化方案来优化或者提供存在的服务器问题给开发人员进行优化。
若想进一步分析服务器问题,可以在服务器上设置更多的埋点,以获取服务器上处理该请求时各操作的执行的时间,以此分析更详细的问题。
相较于上述方案,进一步地,由于一个业务请求可以对应若干功能模块,为了使开发人员通过本发明实施例提供的监控方法得到更加准确的性能分析的数据,监控方法还包括:
记录当前处理业务请求时若干功能模块中第一处理时间超过了预设处理时间的功能模块;
根据每次处理业务请求时记录的功能模块生成业务的统计信息,统计信息包括每个功能模块的第一处理时间超过了预设处理时间的发生频率;
根据业务的统计信息提供优化建议,优化建议包括若干功能模块的优化优先级,优先级越高的功能模块的第一处理时间超过预设处理时间的发生频率越高。
具体的,每个功能模块对应设置唯一标识,用于区别其他功能模块。若同一业务由多个功能模块协同完成,统计处理同一业务的功能模块的性能对于提高业务处理效率实有必要,因此功能模块的第一处理时间超过预设处理时间的发生频率越高,表示该功能模块越加急需优化。
请看图4,是本发明实施例提供的一种应用程序运行***的示意性框图。如图所示,应用程序运行***包括客户端以及与客户端通信的服务器。客户端上安装有应用程序APP,应用程序APP中包括若干功能模块用于接收用户的业务请求并向服务器请求数据来完成业务以实现应用程序的功能。
请看图5,是本发明实施例提供的一种应用程序性能监控***的示意性框图。监控***用于监控应用程序运行***的运行情况。在一些实施例中,监控***属于应用程序运行***的一部分,在另一些可行的实施例中,监控***独立于应用程序运行***,不属于应用程序运行***的一部分。如图所示,监控***500包括:识别单元501、第一获取单元502、第二获取单元503、计算单元504、判断单元505、分析单元506以及优化单元507。
其中,识别单元501,用于若客户端接收到业务请求,获取处理业务请求的功能模块,各功能模块对应一组设置于客户端上的若干预设第一埋点以及一组设置于服务器上的若干预设第二埋点。具体的,一个业务请求可以是一个功能模块处理,还可以是多个功能模块协同处理。
第一获取单元502,用于根据一组预设第一埋点获取用于表示预设第一埋点的执行时间的第一时间信息。
具体的,本实施例中优选一组预设第一埋点包括:功能模块接收业务请求时、功能模块发送请求给服务器时、功能模块接收服务器数据时、功能模块处理完成业务请求时。一组预设第一埋点中还包括功能模块在客户端处理业务过程中数据解析埋点、UI渲染埋点。优选一组预设第二埋点包括:服务器接收功能模块发送请求时以及服务器发送数据给功能模块时。
需要说明的是,由于第一时间信息是用于表示预设第一埋点的执行时间,因此,本实施例中第一时间信息包括功能模块接收业务请求时的第一时间t1、功能模块发送请求给服务器时的第二时间t2、功能模块接收服务器数据时的第五时间t5、功能模块处理完业务请求时的第六时间t6以及解析时间t7和渲染时间t8。
第二获取单元503,用于根据一组预设第二埋点获取用于表示预设第二埋点的执行时间的第二时间信息。
具体的,由于预设第二埋点包括服务器接收请求时以及服务器发送数据给功能模块时,因此本实施例中第二时间信息包括服务器接收功能模块发送请求时的第三时间t3以及服务器发送数据给功能模块时的第四时间t4。应当理解,根据第二时间信息中的第三时间t3和第四时间t4可以获取到用于表示与功能模块相对应的在服务器上处理业务请求的总耗时的第三处理时间T3,其与第三时间t3和第四时间t4的关系为:T3=t4-t3。
计算单元504,用于根据第一时间信息获取用于表示处理业务请求的总耗时的第一处理时间。
具体的,由于第一时间信息包括功能模块接收业务请求时的第一时间t1、功能模块发送请求给服务器时的第二时间t2、功能模块接收服务器数据时的第五时间t5、功能模块处理完业务请求时的第六时间t6以及解析时间t7和渲染时间t8。因此根据第一时间信息中的第六时间t6和第一时间t1可以获取到用于表示处理业务请求的总耗时的第一处理时间T1,T1=t6-61;根据第一时间信息中的第一时间t1、第二时间t2、第五时间t5以及第六时间t6可获取到用于表示功能模块在客户端上处理业务请求的总耗时的第二处理时间T2,T2=(t2-t1)+(t6-t5)。
判断单元505,用于判断第一处理时间是否超过了预设处理时间。
分析单元506,用于若判断单元505判断出第一处理时间超过了预设处理时间,根据第一时间信息和第二时间信息按照预设规则分析是否存在网络问题或者客户端问题或者服务器问题。
具体的,本发明实施例中处理业务请求需要客户端和服务器协同完成,客户端与服务器之间通过网络通讯连接,因此若处理业务请求的第一处理时间T1过长,则表示有可能出现问题为网络问题、客户端问题或者服务器问题。需要说明的是,预设规则是根据第一时间信息和第二时间信息计算出与网络问题相匹配的网络传输时间、与客户端问题相匹配的处理时间以及与服务器问题相匹配的处理时间,并分别与相对应的标准时间比较来判断是否有相对应的网络问题或者客户端问题或者服务器问题。
优化单元507,用于若存在网络问题或者客户端问题或者服务器问题,根据分析单元506得到的问题提供优化建议。
需要说明的是,为了使开发人员通过本发明实施例提供的监控方法得到更加准确的性能分析的数据,本实施例中优选每次处理业务请求时记录存在的问题,并将所有记录的问题进行汇总统计,请看图6,优化单元507包括第一生成单601和第二生成单元602以及建议单元603。
其中第一生成单元601,用于根据每次处理该业务请求时功能模块存在的问题生成反馈信息,反馈信息包括功能模块对应的网络问题、客户端问题、服务器问题的发生频率。
第二生成单元602,用于根据反馈信息生成功能模块中各类问题的优化优先级,其中,在网络问题、客户端问题和服务器问题的发生频率越高的问题优先级越高。
建议单元603,用于根据功能模块对应的各类问题的优先级高低依次提供优化建议。
具体的,功能模块对应的网络问题、客户端问题、服务器问题的发生频率的高低表示了各类问题的严重性的轻重,发生频率越高的问题,表示越加需要提前处理,因此根据发生频率的高低设置各类问题的优化优先级可以节省功耗以及提高优化效率。另一方面,为了防止浪费工效,并不是每次出现了问题都需要优化,本实施例中提供各类问题的发送频率可以供开发人员判断发生频率高于预设频率时再行优化。提供优化建议包括但是不限制于提供待优化的问题、根据预存的优化方案提供与待优化问题相匹配的优化方案,在其他可行的实施例中,还可以根据待优化的问题从预存的优化方案中选择相匹配的优化方案来自动优化应用程序。
为了鉴别出是否存在网络问题或者客户端问题或者服务器问题,请看图7,分析单元506包括运算单元701、判定单元702以及记录单元703。
若为了鉴别出是否存在网络问题,运算单元701,用于根据第一时间信息和第二时间信息获取网络传输时间。
判定单元702,用于判断网络传输时间是否超过了预设传输时间,若未超过预设传输时间,分析单元506再判断是否存在客户端问题或者服务器问题。
记录单元703,用于若判定单元702判断出网络传输时间超过了预设传输时间,记录功能模块存在网络问题。
由于根据第二时间信息中的第三时间t3和第四时间t4可以获取到用于表示在服务器上处理业务请求的总耗时的第三处理时间T3,而根据第一时间信息中的第六时间t6和第一时间t1可以获取到用于表示处理业务请求的总耗时的第一处理时间T1;根据第一时间信息中的第一时间t1、第二时间t2、第五时间t5以及第六时间t6可以获取到用于表示功能模块在客户端上处理业务请求的总耗时的第二处理时间T2,故根据第一处理时间T1、第二处理时间T2以及第三处理时间T3获取到客户端与服务器之间的网络传输时间△T1,△T1=T1-T2-T3,或者根据第一时间信息中的第二时间、第五时间以及根据第二时间信息中的第三时间和第四时间获取网络传输时间△T1=(t5-t2)-(t4-t3)。
本实施例中所述的客户端问题包括解析问题和渲染问题,为了鉴别出是否是客户端问题,预设第一埋点还包括了数据解析埋点以及UI渲染埋点,数据解析埋点用于记录解析的起始时间和结束时间,UI渲染埋点用于获取渲染的起始时间和结束时间,相对应的第一时间信息还包括解析时间t7和渲染时间t8。
运算单元701,用于计算第六时间和第五时间的差值。
判定单元702,用于判断第六时间和第五时间的差值是否超过了预设分析时间;以及还用于若第六时间和第五时间的差值超过了预设分析时间,判断解析时间是否超过了预设解析时间;以及还用于判断渲染时间是否超过了预设渲染时间。
记录单元703,用于若解析时间超过了预设解析时间,记录功能模块存在解析问题;以及还用于若渲染时间超过了预设渲染时间,记录功能模块存在渲染问题。
分析单元506还用于检测是否存在网络问题或者服务器问题。
还需要说明的是,若存在解析问题,优化单元507用于提供优化报文数据的优化建议;若存在渲染问题,优化单元507用于提供分页渲染或者分段渲染的优化建议来提高渲染速度。
还需要说明的是,在本实施例中,客户端同时存在上述解析问题以及渲染问题;在其他可行的实施例中,客户端还可以是单独存在的解析问题或者渲染问题,本发明实施例对此不进行具体的限定。当若客户端单独存在渲染问题时:
运算单元701,用于计算第六时间和第五时间的差值;
判定单元702,用于判断第六时间和第五时间的差值是否超过了预设分析时间;以及若超过了预设分析时间,还用于判断渲染时间是否超过了预设渲染时间;
记录单元703,用于若渲染时间超过了预设渲染时间,记录功能模块存在渲染问题;
分析单元506还用于检测是否存在网络问题或者服务器问题;以及
若存在渲染问题,优化单元507用于提供分页渲染或者分段渲染的优化建议来提高渲染速度。
为了鉴别出是否存在服务器问题,运算单元701,用于根据第二时间信息获取用于表示在服务器上处理业务请求的总耗时的第三处理时间。
判定单元702,用于判断第三处理时间是否超过了预设响应时间。
记录单元703,用于若判定单元702判断出第三处理时间超过了预设响应时间,记录功能模块相对应在服务器端存在服务器问题。
分析单元506还用于不存在服务器问题时,检测是否存在网络问题或者客户端问题。
请继续看图5,相较于上述方案,进一步地,由于一个业务请求可以对应若干功能模块,为了使开发人员通过本发明实施例提供的监控***得到更加准确的性能分析的数据,监控***还包括:记载单元508和统计单元509。
其中记载单元508,用于记录当前处理业务请求时若干功能模块中第一处理时间超过了预设处理时间的功能模块。
统计单元509,用于根据每次处理业务请求时记录的功能模块生成业务的统计信息,统计信息包括每个功能模块的第一处理时间超过了预设处理时间的发生频率。
优化单元507,还用于根据业务的统计信息提供优化建议,优化建议包括若干功能模块的优化优先级,优先级越高的功能模块的第一处理时间超过预设处理时间的发生频率越高。具体的,每个功能模块对应设置唯一标识,用于区别其他功能模块。若同一业务由多个功能模块协同完成,统计处理同一业务的功能模块的性能对于提高业务处理效率实有必要,因此功能模块的第一处理时间超过预设处理时间的发生频率越高,表示该功能模块越加急需优化。
需要说明的是,本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例***中的单元可以根据实际需要进行合并、划分和删减。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的***和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的***和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如若干个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
另外,在本发明各个实施例中的各功能单元可以集成在一个第一处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种应用程序性能监控方法,其特征在于,包括:
若客户端接收到业务请求,获取处理所述业务请求的功能模块,各所述功能模块对应一组设置于所述客户端上的若干预设第一埋点以及一组设置于服务器上的若干预设第二埋点,所述一组预设第一埋点包括功能模块接收请求时、功能模块发送请求给服务器时、接收服务器的数据时以及功能模块完成请求时;所述一组预设第二埋点包括服务器接收请求时以及服务器发送数据给功能模块时;
根据所述一组预设第一埋点获取用于表示预设第一埋点的执行时间的第一时间信息;
根据所述一组预设第二埋点获取用于表示预设第二埋点的执行时间的第二时间信息;
根据第一时间信息获取用于表示所述功能模块处理业务请求的总耗时的第一处理时间,
判断所述第一处理时间是否超过了预设处理时间;
若超过了预设处理时间,根据所述第一时间信息和所述第二时间信息按照预设规则分析是否存在网络问题或者客户端问题或者服务器问题;
若存在所述网络问题或者所述客户端问题或者所述服务器问题,根据存在的问题提供优化建议。
2.根据权利要求1所述方法,其特征在于,若所述业务请求对应若干功能模块,所述方法还包括:
记录当前处理所述业务请求时所述若干功能模块中所述第一处理时间超过了预设处理时间的功能模块,
根据每次处理所述业务请求时记录的功能模块生成所述业务的统计信息,所述统计信息包括每个功能模块的第一处理时间超过了预设处理时间的发生频率;
根据所述业务的统计信息提供优化建议,优化建议包括所述若干功能模块的优化优先级,优先级越高的功能模块的所述第一处理时间超过预设处理时间的发生频率越高。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一时间信息和所述第二时间信息按照预设规则分析是否存在网络问题或者客户端问题或者服务器问题,具体包括:
根据第一时间信息和第二时间信息获取网络传输时间;
判断所述网络传输时间是否超过了预设传输时间;
若超过了预设传输时间,记录所述功能模块存在网络问题。
4.根据权利要求1所述的方法,其特征在于,所述客户端的问题包括渲染问题,一组所述预设第一埋点包括UI渲染埋点,所述第一时间信息还包括:所述功能模块接收服务器数据时的第五时间、所述功能模块处理完所述业务请求时的第六时间以及渲染时间;
所述根据所述第一时间信息和所述第二时间信息按照预设规则分析是否存在网络问题或者客户端问题或者服务器问题,具体包括:
判断所述第六时间和所述第五时间的差值是否超过了预设分析时间;
若超过了预设分析时间,判断渲染时间是否超过了预设渲染时间;
若渲染时间超过了预设渲染时间,记录所述功能模块存在渲染问题;
所述根据存在的问题提供优化建议,具体包括:
若存在所述渲染问题,提供分页渲染或分段渲染的优化建议来提高渲染速度。
5.根据权利要求1所述的方法,其特征在于,所述根据存在的问题提供优化建议,具体包括:
根据每次处理所述业务请求时所述功能模块相对应存在的问题生成反馈信息,所述反馈信息包括所述功能模块对应的所述网络问题、所述客户端问题以及所述服务器问题的发生频率,
根据所述反馈信息生成所述功能模块中各类问题优化优先级,其中,在所述网络问题、所述客户端问题和所述服务器问题中发生频率越高的一类问题的优先级越高;
按照所述功能模块对应的各类问题的优先级高低依次提供优化建议。
6.一种应用程序的监控***,其特征在于,所述监控***包括:
识别单元,用于若客户端接收到业务请求,获取处理所述业务请求的功能模块,各所述功能模块对应一组设置于所述客户端上的若干预设第一埋点以及一组设置于服务器上的若干预设第二埋点,所述一组预设第一埋点包括功能模块接收请求时、功能模块发送请求给服务器时、接收服务器的数据时以及功能模块完成请求时;所述一组预设第二埋点包括服务器接收请求时以及服务器发送数据给功能模块时;
第一获取单元,用于根据所述一组预设第一埋点获取用于表示预设第一埋点的执行时间的第一时间信息;
第二获取单元,用于根据所述一组预设第二埋点获取用于表示预设第二埋点的执行时间的第二时间信息;
计算单元,用于根据第一时间信息获取用于表示所述功能模块处理业务请求的总耗时的第一处理时间,
判断单元,用于判断所述第一处理时间是否超过了预设处理时间;
分析单元,用于若所述判断单元判断出所述第一处理时间超过了预设处理时间,根据所述第一时间信息和所述第二时间信息按照预设规则分析是否存在网络问题或者客户端问题或者服务器问题;
优化单元,用于若存在所述网络问题或者所述客户端问题或者所述服务器问题,根据所述分析单元得到的问题提供优化建议。
7.根据权利要求6所述的***,其特征在于,若所述业务请求对应若干功能模块,所述***还包括记载单元和统计单元,
所述记载单元,用于记录当前处理所述业务请求时所述若干功能模块中所述第一处理时间超过了预设处理时间的功能模块,
所述统计单元,用于根据每次处理所述业务请求时记录的功能模块生成所述业务的统计信息,所述统计信息包括每个功能模块的第一处理时间超过了预设处理时间的发生频率;
所述优化单元,还用于根据所述业务的统计信息提供优化建议,优化建议包括所述若干功能模块的优化优先级,优先级越高的功能模块的所述第一处理时间超过预设处理时间的发生频率越高。
8.根据权利要求6所述的***,其特征在于,所述分析单元包括:
运算单元,用于根据第一时间信息和第二时间信息获取网络传输时间;
判定单元,用于判断所述网络传输时间是否超过了预设传输时间;
记录单元,用于若所述判定单元判断出所述网络传输时间超过了预设传输时间,记录所述功能模块存在网络问题。
9.根据权利要求6所述的***,其特征在于,所述客户端的问题包括渲染问题,一组所述预设第一埋点包括UI渲染埋点,所述第一时间信息还包括:所述功能模块接收服务器数据时的第五时间、所述功能模块处理完所述业务请求时的第六时间以及渲染时间,所述分析单元包括:判定单元和记录单元,
所述判定单元,用于判断所述第六时间和所述第五时间的差值是否超过了预设分析时间;
所述判定单元,还用于若所述第六时间和所述第五时间的差值超过了预设分析时间,判断渲染时间是否超过了预设渲染时间;
所述记录单元,用于若渲染时间超过了预设渲染时间,记录所述功能模块存在渲染问题;
所述优化单元,用于若存在所述渲染问题,提供分页渲染或分段渲染的优化建议来提高渲染速度。
10.根据权利要求6所述的***,其特征在于,所述优化单元包括:
第一生成单元,用于根据每次处理所述业务请求时所述功能模块相对应存在的问题生成反馈信息,所述反馈信息包括所述功能模块对应的所述网络问题、所述客户端问题以及所述服务器问题的发生频率,
第二生成单元,用于根据所述反馈信息生成所述功能模块中各类问题优化优先级,其中,在所述网络问题、所述客户端问题和所述服务器问题中发生频率越高的一类问题的优先级越高;
建议单元,用于按照所述功能模块对应的各类问题的优先级高低依次提供优化建议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611236538.8A CN108255659B (zh) | 2016-12-28 | 2016-12-28 | 一种应用程序性能监控方法及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611236538.8A CN108255659B (zh) | 2016-12-28 | 2016-12-28 | 一种应用程序性能监控方法及其*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108255659A true CN108255659A (zh) | 2018-07-06 |
CN108255659B CN108255659B (zh) | 2021-06-29 |
Family
ID=62720282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611236538.8A Active CN108255659B (zh) | 2016-12-28 | 2016-12-28 | 一种应用程序性能监控方法及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108255659B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039819A (zh) * | 2018-08-16 | 2018-12-18 | 深圳华锐金融技术股份有限公司 | 时延统计方法、装置、***及存储介质 |
CN110837368A (zh) * | 2018-08-17 | 2020-02-25 | 阿里巴巴集团控股有限公司 | 一种数据处理的方法、装置及电子设备 |
CN111506475A (zh) * | 2020-04-15 | 2020-08-07 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、***、可读介质及电子设备 |
CN112689112A (zh) * | 2020-12-15 | 2021-04-20 | 平安普惠企业管理有限公司 | 视频交流***的耗时分析及优化方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788536B1 (en) * | 2004-12-21 | 2010-08-31 | Zenprise, Inc. | Automated detection of problems in software application deployments |
CN104915296A (zh) * | 2015-06-29 | 2015-09-16 | 北京金山安全软件有限公司 | 埋点测试方法、数据的查询方法及装置 |
CN105138460A (zh) * | 2015-09-18 | 2015-12-09 | 北京恒华伟业科技股份有限公司 | 一种软件测试方法及*** |
CN105389202A (zh) * | 2015-11-25 | 2016-03-09 | 福建天晴数码有限公司 | 处理应用程序响应的方法及*** |
CN105808441A (zh) * | 2016-03-31 | 2016-07-27 | 浪潮通用软件有限公司 | 一种多维度性能诊断分析方法 |
CN105868256A (zh) * | 2015-12-28 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 处理用户行为数据的方法和*** |
-
2016
- 2016-12-28 CN CN201611236538.8A patent/CN108255659B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788536B1 (en) * | 2004-12-21 | 2010-08-31 | Zenprise, Inc. | Automated detection of problems in software application deployments |
CN104915296A (zh) * | 2015-06-29 | 2015-09-16 | 北京金山安全软件有限公司 | 埋点测试方法、数据的查询方法及装置 |
CN105138460A (zh) * | 2015-09-18 | 2015-12-09 | 北京恒华伟业科技股份有限公司 | 一种软件测试方法及*** |
CN105389202A (zh) * | 2015-11-25 | 2016-03-09 | 福建天晴数码有限公司 | 处理应用程序响应的方法及*** |
CN105868256A (zh) * | 2015-12-28 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 处理用户行为数据的方法和*** |
CN105808441A (zh) * | 2016-03-31 | 2016-07-27 | 浪潮通用软件有限公司 | 一种多维度性能诊断分析方法 |
Non-Patent Citations (1)
Title |
---|
王懿: "Web页面加载性能监测平台的设计与实现", 《万方期刊/论文》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039819A (zh) * | 2018-08-16 | 2018-12-18 | 深圳华锐金融技术股份有限公司 | 时延统计方法、装置、***及存储介质 |
CN110837368A (zh) * | 2018-08-17 | 2020-02-25 | 阿里巴巴集团控股有限公司 | 一种数据处理的方法、装置及电子设备 |
CN110837368B (zh) * | 2018-08-17 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 一种数据处理的方法、装置及电子设备 |
CN111506475A (zh) * | 2020-04-15 | 2020-08-07 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、***、可读介质及电子设备 |
CN112689112A (zh) * | 2020-12-15 | 2021-04-20 | 平安普惠企业管理有限公司 | 视频交流***的耗时分析及优化方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108255659B (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103795580B (zh) | 一种数据监控方法、***及相关设备 | |
CN108255659A (zh) | 一种应用程序性能监控方法及其*** | |
CN102916854B (zh) | 流量统计方法、装置及代理服务器 | |
CN103023693B (zh) | 一种行为日志数据管理***及方法 | |
CN108132868A (zh) | 一种数据监控方法、装置、计算设备及存储介质 | |
CN103544095A (zh) | 服务器程序的监控方法及其*** | |
CN108134745A (zh) | 分布式数据采集方法及装置 | |
CN112416557B (zh) | 调用关系的确定方法和装置、存储介质及电子装置 | |
CN203492034U (zh) | 数据中心的服务器、资产管理***及服务器管理装置 | |
CN109921920A (zh) | 一种故障信息处理方法与相关装置 | |
CN102986151A (zh) | 监视***及数据传输装置和方法 | |
CN111913861A (zh) | 物联网***的性能测试方法、装置、设备及介质 | |
CN110532153A (zh) | 一种业务层级用户操作体验可视化*** | |
CN106708445A (zh) | 链路选择方法及装置 | |
CN111064637B (zh) | NetFlow数据去重方法及装置 | |
CN109831335A (zh) | 一种数据监控方法、监控终端、存储介质及数据监控*** | |
CN109656945A (zh) | 一种信息处理方法 | |
CN107566216A (zh) | 一种监控方法、装置及业务*** | |
CN106933718B (zh) | 性能监控方法及装置 | |
CN113872930A (zh) | 一种电力物联网通信管理平台*** | |
US8448028B2 (en) | System monitoring method and system monitoring device | |
CN114416560A (zh) | 程序崩溃分析聚合方法和*** | |
CN115242685B (zh) | 基于关联矩阵的回放测试方法、装置、设备及存储介质 | |
CN106817426A (zh) | 一种提示方法、数据传输方法及设备 | |
CN108449343B (zh) | Ssh协议文本数据采集方法、采集器及计算机设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |