CN111045950B - 性能问题点确定方法、装置、数据分析系统及存储介质 - Google Patents
性能问题点确定方法、装置、数据分析系统及存储介质 Download PDFInfo
- Publication number
- CN111045950B CN111045950B CN201911290194.2A CN201911290194A CN111045950B CN 111045950 B CN111045950 B CN 111045950B CN 201911290194 A CN201911290194 A CN 201911290194A CN 111045950 B CN111045950 B CN 111045950B
- Authority
- CN
- China
- Prior art keywords
- application program
- execution
- target application
- performance problem
- node
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供一种性能问题点确定方法、装置、数据分析系统及存储介质。其中,性能问题点确定方法包括:采集目标应用程序在运行状态下的监控日志;其中,运行目标应用程序通过调用运行目标应用程序中的多个运行节点实现,所述监控日志包括所述各个运行节点的执行开始时刻和执行结束时刻;根据各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用目标应用程序的运行总时长的占比值;将占比值超过预设占比值的运行节点确定为性能问题点。本发明实现性能问题点的自动化定位,进而避免了性能问题点定位原因操作繁琐、对从业人员要求高,非资深人员很难定位问题点的问题,提高了性能问题点的定位效率。
Description
技术领域
本发明涉及软件开发技术领域,尤其涉及性能问题点确定方法、装置、数据分析系统及存储介质。
背景技术
目前,随着有线互联网与无线互联网技术的成熟及相关设备日益完善和普及,为了满足用户各种各样的需求以及提升用户体验,当前业务系统会为用户提供越来越多的业务功能。然而,在业务系统为用户提高越来越多的业务功能的同时,也为系统检测人员在业务系统出现问题时定位业务的哪个功能模块出现了问题带来了困难。例如,移动互联网APP(application,应用程序)产品后端系统由许多功能模块组成,每个功能模块提供一种或多种功能,每种功能通过接口供系统内其他模块调用,APP中的业务由多个功能模块间相关调用、协调工作来实现。功能模块可以提供一个或多个接口以供其他功能模块调用或调用其他功能模块,如果功能模块的某个接口出现问题,不仅接口出现问题的功能模块会发出告警信息,往往还会引起调用该问题接口的其他功能模块发出告警信息,影响用户的正常使用。
因此,本领域的技术人员致力于开发一种性能问题点确定方法。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是如何有效确定软件系统的性能问题点。
为实现上述目的,本发明提供了一种性能问题点确定方法,所述方法包括:采集目标应用程序在运行状态下的监控日志;其中,运行目标应用程序通过调用运行目标应用程序中的多个运行节点实现,所述监控日志包括所述各个运行节点的执行开始时刻和执行结束时刻;根据各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用目标应用程序的运行总时长的占比值;将占比值超过预设占比值的运行节点确定为性能问题点。
在本发明的较佳实施方式中,所述监控日志还包括所述各个运行节点的执行顺序和执行栈深度,所述方法还包括:根据所述各个运行节点的执行顺序和执行栈深度,确定在目标应用程序运行过程中的至少一个运行节点执行链路,所述运行节点执行链路中包括至少一个运行节点。
在本发明的较佳实施方式中,所述方法还包括:聚合所述运行节点执行链路,以确定所述目标应用程序的运行节点执行网络;展示对应于所述运行节点执行网络的可视化界面;通过预设可视化标识在所述可视化界面中标识所述运行节点执行网络中的性能问题点。
在本发明的较佳实施方式中,采集目标应用程序在运行状态下的监控日志通过监控日志采集插件实现,所述方法还包括:在接收到用户发出的性能问题点确定指令时,向所述目标应用程序中动态注入监控日志采集插件。
在本发明的较佳实施方式中,所述方法通过分布式系统执行,所述分布式系统包括分布式协调服务和至少一台服务器,所述目标应用程序安装于服务器,所述性能问题点确定指令包括用于标识目标应用程序的应用程序特征码;对应的,所述向所述目标应用程序中动态注入监控日志采集插件,包括:基于所述分布式协调服务,并根据所述应用程序特征码确定安装有所述目标应用程序的服务器的目标地址;根据所述应用程序特征码和所述目标地址,激活所述目标应用程序的服务器中预配置的跨进程通信应用程序;通过所述跨进程通信应用程序向所述目标应用程序中动态注入监控日志采集插件。
在本发明的较佳实施方式中,所述方法还包括:在接收动态注入取消指令的情况下,从所述目标应用程序中卸载所述监控日志采集插件。
在本发明的较佳实施方式中,所述方法还包括:统计所述目标应用程序中各个运行节点的执行次数;将占比值超过预设占比值的运行节点确定为性能问题点,包括:将所述占比值超过预设占比值且所述执行次数高于预设执行次数的运行节点确定为性能问题点。
为实现上述目的,本发明提供了一种性能问题点确定装置,所述装置包括:日志采集模块,用于采集目标应用程序在运行状态下的监控日志;其中,运行目标应用程序通过调用运行目标应用程序中的多个运行节点实现,所述监控日志包括所述各个运行节点的执行开始时刻和执行结束时刻;占比值确定模块,用于根据各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用目标应用程序的运行总时长的占比值;性能问题点确定模块,用于将占比值超过预设占比值的运行节点确定为性能问题点。
在本发明的较佳实施方式中,所述监控日志还包括所述各个运行节点的执行顺序和执行栈深度,所述装置还包括:链路确定模块,用于根据所述各个运行节点的执行顺序和执行栈深度,确定在目标应用程序运行过程中的至少一个运行节点执行链路,所述运行节点执行链路中包括至少一个运行节点。
在本发明的较佳实施方式中,所述装置还包括:聚合模块,用于聚合所述运行节点执行链路,以确定所述目标应用程序的运行节点执行网络;展示模块,用于展示对应于所述运行节点执行网络的可视化界面;标识模块,用于通过预设可视化标识在所述可视化界面中标识所述运行节点执行网络中的性能问题点。
在本发明的较佳实施方式中,采集目标应用程序在运行状态下的监控日志通过监控日志采集插件实现,所述装置还包括:动态注入模块,用于在接收到用户发出的性能问题点确定指令时,向所述目标应用程序中动态注入监控日志采集插件。
在本发明的较佳实施方式中,所述装置通过分布式系统执行,所述分布式系统包括分布式协调服务和至少一台服务器,所述目标应用程序安装于服务器,所述性能问题点确定指令包括用于标识目标应用程序的应用程序特征码;对应的,所述动态注入模块包括:目标地址确定单元,用于基于所述分布式协调服务,并根据所述应用程序特征码确定安装有所述目标应用程序的服务器的目标地址;激活单元,用于根据所述应用程序特征码和所述目标地址,激活所述目标应用程序的服务器中预配置的跨进程通信应用程序;动态注入单元,用于通过所述跨进程通信应用程序向所述目标应用程序中动态注入监控日志采集插件。
在本发明的较佳实施方式中,所述装置还包括:卸载模块,用于在接收动态注入取消指令的情况下,从所述目标应用程序中卸载所述监控日志采集插件。
在本发明的较佳实施方式中,所述装置还包括:统计模块,用于统计所述目标应用程序中各个运行节点的执行次数;对应的,所述性能问题点确定模块包括:性能问题点确定单元,用于将所述占比值超过预设占比值且所述执行次数高于预设执行次数的运行节点确定为性能问题点。
为实现上述目的,本发明提供了一种数据分析系统,该数据分析系统包括存储器、处理器及存储于所述存储器并可在所述处理器上执行的性能问题点确定程序,所述性能问题点确定程序被所述处理器执行时实现所述的性能问题点确定方法的步骤。
为实现上述目的,本发明提供了一种存储介质,该存储介质存储有计算机程序,所述计算机程序被执行时实现所述的性能问题点确定方法的步骤。
本发明通过采集目标应用程序在运行状态下的监控日志;其中,运行目标应用程序通过调用运行目标应用程序中的多个运行节点实现,所述监控日志包括所述各个运行节点的执行开始时刻和执行结束时刻;根据各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用目标应用程序的运行总时长的占比值;将占比值超过预设占比值的运行节点确定为性能问题点,进而实现性能问题点的自动化定位,进而避免了性能问题点定位原因操作繁琐、对从业人员要求高,非资深人员很难定位问题点的问题,提高了性能问题点的定位效率。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1为本发明的性能问题点确定方法的流程图;
图2为本发明的性能问题点确定方法的流程图;
图3为本发明的性能问题点确定装置的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
为了阐释的目的而描述了本发明的一些示例性实施例,需要理解的是,本发明可通过附图中没有具体示出的其他方式来实现。
图1为本发明的性能问题点确定方法的流程图,如图1所示,所述性能问题点确定方法包括以下步骤:
步骤S110:采集目标应用程序在运行状态下的监控日志;其中,运行目标应用程序通过调用运行目标应用程序中的多个运行节点实现,所述监控日志包括所述各个运行节点的执行开始时刻和执行结束时刻。
步骤S120:根据各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用目标应用程序的运行总时长的占比值;
步骤S130:将占比值超过预设占比值的运行节点确定为性能问题点。
本实现方式中所述的性能问题点确定方法可以用于自动定位软件程序中的性能问题点,其中,所述性能问题点可以是运行速度较慢的运行节点(或者调用函数),其可能是由于运行节点对应的代码逻辑不够简洁所致,因此,用户可以对基于性能问题点确定方法所确定的运行节点进行优化,进而提高目标应用程序运行性能。
其中,所述监控日志可以用于记录目标应用程序中运行状态的各种数据。例如,目标应用程序中的各个运行节点的执行开始时刻和执行结束时刻。
本实现方式中,所述据各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用目标应用程序的运行总时长的占比值,包括:所述据各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长和目标应用程序的运行总时长;根据各个运行节点的运行时长和目标应用程序的运行总时长,确定各个运行节点的运行时长所占用目标应用程序的运行总时长的占比值。
本实现方式中,所述预设占比值可以通过开发人员基于经验进行设定,例如,所述预设占比值可以设定为60%,当运行节点的运行时长占比值超过60%,则被定义为性能问题点。
在另外的实现方式中,在根据各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用目标应用程序的运行总时长的占比值之前,所述方法还包括:从所述监控日志中提取各个运行节点的执行开始时刻和执行结束时刻。
本发明通过采集目标应用程序在运行状态下的监控日志;其中,运行目标应用程序通过调用运行目标应用程序中的多个运行节点实现,所述监控日志包括所述各个运行节点的执行开始时刻和执行结束时刻;根据各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用目标应用程序的运行总时长的占比值;将占比值超过预设占比值的运行节点确定为性能问题点,进而实现性能问题点的自动化定位,进而避免了性能问题点定位原因操作繁琐、对从业人员要求高,非资深人员很难定位问题点的问题,提高了性能问题点的定位效率。
在本发明的较佳实施方式中,所述监控日志还包括所述各个运行节点的执行顺序和执行栈深度,所述方法还包括:根据所述各个运行节点的执行顺序和执行栈深度,确定在目标应用程序运行过程中的至少一个运行节点执行链路,所述运行节点执行链路中包括至少一个运行节点。
其中,所述执行顺序可以用于表示目标应用程序运行过程中各个函数的调用顺序,所述执行栈深度用于表示该函数距离入口方法的方法深度,所述运行节点链路(或称方法执行树)可以是目标应用程序中部分业务逻辑执行过程,也可以是目标应用程序在某一时间段内的业务逻辑执行过程。通过所述各个运行节点的执行顺序和执行栈深度,确定在目标应用程序运行过程中的至少一个运行节点执行链路,进而确定目标应用程序在某一时间段内的业务逻辑执行过程。
作为示例,本实现方式可以通过统计目标应用程序一分钟内的监控日志中的执行数据涉及多次方法执行树之间的合并。
在本发明的较佳实施方式中,所述方法还包括:聚合所述运行节点执行链路,以确定所述目标应用程序的运行节点执行网络;展示对应于所述运行节点执行网络的可视化界面;通过预设可视化标识在所述可视化界面中标识所述运行节点执行网络中的性能问题点。
其中,所述运行节点执行网络可以包括了目标应用程序中的全部节点,其通过聚合多条运行节点执行链路确定。具体的,在节点执行链路的每一层,记录有该层的栈深度、耗时及执行的顺序,对多条运行节点执行链路进行聚合时可从最上层开始向下合并,如果同一层的两个运行节点的名称相同,则这两个运行节点可以合并,并计算出这两个运行节点的平均耗时、总耗时和执行次数;而如果这两个运行节点的方法名称不同,根据栈深度和执行顺序确定前一个运行节点和当前运行节点的共同父级,并将两个运行节点同时归类为该父级的子调用,聚合完毕后得到一个新的运行节点执行链路,运行节点执行链路的每一层都记录这一层方法的平均耗时、最大耗时、执行次数,分析完毕后可以把数据存到数据库中,供后面查询使用。
作为示例,目标应用程序包括a、b、c三个运行节点,第一次运行过程中执行顺序为a调用b方法,b再调用c,其对应的运行节点执行链路可以表示为abc;第二次运行过程中,调用a之后a直接调用c方法,其对应的运行节点执行链路可以表示为aca,对上述两个运行节点执行链路那么聚合的运行节点a的下层会有两个运行节点(b和c),b下面有一个一个运行节点(c)。
本实现方式中,可以对运行节点执行网络进行可视化的展示,以是用户直观的看到目标应用程序的执行进度,通过预设可视化标识在所述可视化界面中标识所述运行节点执行网络中的性能问题点使得用户清楚的看到性能问题点在运行节点执行网络中的位置。
在本发明的较佳实施方式中,采集目标应用程序在运行状态下的监控日志通过监控日志采集插件实现,所述方法还包括:在接收到用户发出的性能问题点确定指令时,向所述目标应用程序中动态注入监控日志采集插件。
其中,所述监控日志采集插件可以修改目标应用程序中应用类的方法字节码,进而利用监控日志采集插件记录以下信息:运行节点的执行开始时刻、执行结束时刻、执行顺序和栈深度。作为示例,所述监控日志采集插件可以是Java Agent插件,通过Java Agent插件就可以实现不重启服务对单个类进行修改。
在本发明的较佳实施方式中,所述方法通过分布式系统执行,所述分布式系统包括分布式协调服务和至少一台服务器,所述目标应用程序安装于服务器,所述性能问题点确定指令包括用于标识目标应用程序的应用程序特征码;对应的,所述向所述目标应用程序中动态注入监控日志采集插件,包括:基于所述分布式协调服务,并根据所述应用程序特征码确定安装有所述目标应用程序的服务器的目标地址;根据所述应用程序特征码和所述目标地址,激活所述目标应用程序的服务器中预配置的跨进程通信应用程序;通过所述跨进程通信应用程序向所述目标应用程序中动态注入监控日志采集插件。
其中,所述目标应用程序一直处于运行状态。分布式协调服务用于管理和注册分布式系统中多个服务器和服务器中安装的应用程序,服务器通过服务器网络地址标识、应用程序通过应用程序特征码标识,分布式协调服务可以记录由服务器网络地址标识和应用程序特征码标识之间的映射关系,进而根据所述应用程序特征码确定安装有所述目标应用程序的服务器的目标地址。
作为示例,如图2所示,分布式系统中的每台服务器中预先配置有跨进程通信应用程序(例如binder),在接收到用户发出的运行性能问题点确定指令时,发出该指令的服务器可以通过分布式协调服务(例如zookeeper)确定目标应用程序的服务器中配置的跨进程通信应用程序(例如binder程序),并该binder程序发送http(HyperText TransferProtocol,超文本传输协议)请求,求参数包括目标应用程序的应用程序特征码。当binder程序收到该http请求时,可以在当前服务器上根据应用程序特征码查找筛选目标应用程序,如果找到则通过应用程序接口(例如Java Instrumentation API)技术向目标应用程序发起请求,以激活所述目标应用程序的服务器中预配置的binder程序,通过所述binder程序向所述目标应用程序中动态注入监控日志采集插件,例如agent插件。agent启动后可以修改目标应用程序中应用类的字节码,使应用方法执行时,同步往agent插件中记录以下信息:运行节点的执行开始时刻、执行结束时刻、执行顺序和栈深度等信息。
图2为本发明的性能问题点确定方法的流程图,如图2所示,所述性能问题点确定方法包括以下步骤:
1.用户在服务端选中要监控的目标应用程序A,对服务端发出要监控该目标应用程序的请求(即性能问题点确定指令);
2.服务端收到请求,从分布式协调服务(zookeeper)上获取所在的目标机器上的binder程序的网络地址端口(ip端口);
3.服务端向binder发出要监控A的请求,请求参数包裹应用名A;
4.binder收到请求,在本机上根据应用名称A查找到应用,发出请求,附着监控日志采集插件(agent);
5.监控日志采集插件(agent)采集信息,发送至分布式消息队列系统(例如kafka);
6.服务端分析kafka上采集的数据;
7.大规模数据处理(Spark)消费kafka采集的数据,聚合成调用树;
8.Spark把数据存入数据库(database);
9.服务端(server)查询数据展示。
在本发明的较佳实施方式中,所述方法还包括:在接收动态注入取消指令的情况下,从所述目标应用程序中卸载所述监控日志采集插件。
本实现方式中,所述动态注入取消指令可以是由用户输入,用于标识结束性能问题点确定过程,此时,server通过zookeeper找到agent,通过http发送注销请求到agent,agent将应用的字节码还原,并删除前面注册的zookeeper节点。
本实现方式中,可以预先部署监控日志管理集群(例如kafka集群),用来接收监控日志,具体的,agent可以周期性的将上述监控日志发送到kafka集群中。
在本发明的较佳实施方式中,所述方法还包括:统计所述目标应用程序中各个运行节点的执行次数;将占比值超过预设占比值的运行节点确定为性能问题点,包括:将所述占比值超过预设占比值且所述执行次数高于预设执行次数的运行节点确定为性能问题点。
其中,所述执行次数用于标识运行节点在目标应用程序中的执行频率,当执行次数较多,即运行节点属于高频使用的运行节点的情况下,可以将运行节点确定为性能问题点。
本发明对应性能问题点确定方法,进一步提出一种性能问题点确定装置,该性能问题点确定装置用于运行性能问题点确定方法,该性能问题点确定装置的实现方式参照上述性能问题点确定方法的实现方式。
图3为本发明的性能问题点确定装置的结构示意图。如图3所示,所述性能问题点确定装置包括日志采集模块310、占比值确定模块320和性能问题点确定模块330。
其中,日志采集模块310,用于采集目标应用程序在运行状态下的监控日志;其中,运行目标应用程序通过调用运行目标应用程序中的多个运行节点实现,所述监控日志包括所述各个运行节点的执行开始时刻和执行结束时刻;
占比值确定模块320,用于根据各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用目标应用程序的运行总时长的占比值;
性能问题点确定模块330,用于将占比值超过预设占比值的运行节点确定为性能问题点。
本发明通过采集目标应用程序在运行状态下的监控日志;其中,运行目标应用程序通过调用运行目标应用程序中的多个运行节点实现,所述监控日志包括所述各个运行节点的执行开始时刻和执行结束时刻;根据各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用目标应用程序的运行总时长的占比值;将占比值超过预设占比值的运行节点确定为性能问题点,进而实现性能问题点的自动化定位,进而避免了性能问题点定位原因操作繁琐、对从业人员要求高,非资深人员很难定位问题点的问题,提高了性能问题点的定位效率。
在本发明的较佳实施方式中,所述监控日志还包括所述各个运行节点的执行顺序和执行栈深度,所述装置还包括:链路确定模块,用于根据所述各个运行节点的执行顺序和执行栈深度,确定在目标应用程序运行过程中的至少一个运行节点执行链路,所述运行节点执行链路中包括至少一个运行节点。
在本发明的较佳实施方式中,所述装置还包括:聚合模块,用于聚合所述运行节点执行链路,以确定所述目标应用程序的运行节点执行网络;展示模块,用于展示对应于所述运行节点执行网络的可视化界面;标识模块,用于通过预设可视化标识在所述可视化界面中标识所述运行节点执行网络中的性能问题点。
在本发明的较佳实施方式中,采集目标应用程序在运行状态下的监控日志通过监控日志采集插件实现,所述装置还包括:动态注入模块,用于在接收到用户发出的性能问题点确定指令时,向所述目标应用程序中动态注入监控日志采集插件。
在本发明的较佳实施方式中,所述装置通过分布式系统执行,所述分布式系统包括分布式协调服务和至少一台服务器,所述目标应用程序安装于服务器,所述性能问题点确定指令包括用于标识目标应用程序的应用程序特征码;对应的,所述动态注入模块包括:目标地址确定单元,用于基于所述分布式协调服务,并根据所述应用程序特征码确定安装有所述目标应用程序的服务器的目标地址;激活单元,用于根据所述应用程序特征码和所述目标地址,激活所述目标应用程序的服务器中预配置的跨进程通信应用程序;动态注入单元,用于通过所述跨进程通信应用程序向所述目标应用程序中动态注入监控日志采集插件。
在本发明的较佳实施方式中,所述装置还包括:卸载模块,用于在接收动态注入取消指令的情况下,从所述目标应用程序中卸载所述监控日志采集插件。
在本发明的较佳实施方式中,所述装置还包括:统计模块,用于统计所述目标应用程序中各个运行节点的执行次数;对应的,所述性能问题点确定模块包括:性能问题点确定单元,用于将所述占比值超过预设占比值且所述执行次数高于预设执行次数的运行节点确定为性能问题点。
本发明还提出一种系统,该系统包括存储器、处理器及存储于所述存储器并可在所述处理器上执行的性能问题点确定程序,所述性能问题点确定程序被所述处理器执行时实现如下操作:采集目标应用程序在运行状态下的监控日志;其中,运行目标应用程序通过调用运行目标应用程序中的多个运行节点实现,所述监控日志包括所述各个运行节点的执行开始时刻和执行结束时刻;根据各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用目标应用程序的运行总时长的占比值;将占比值超过预设占比值的运行节点确定为性能问题点。
所述性能问题点确定程序被所述处理器执行时实现如下操作:所述监控日志还包括所述各个运行节点的执行顺序和执行栈深度,所述方法还包括:根据所述各个运行节点的执行顺序和执行栈深度,确定在目标应用程序运行过程中的至少一个运行节点执行链路,所述运行节点执行链路中包括至少一个运行节点。
所述性能问题点确定程序被所述处理器执行时实现如下操作:所述方法还包括:聚合所述运行节点执行链路,以确定所述目标应用程序的运行节点执行网络;展示对应于所述运行节点执行网络的可视化界面;通过预设可视化标识在所述可视化界面中标识所述运行节点执行网络中的性能问题点。
所述性能问题点确定程序被所述处理器执行时实现如下操作:采集目标应用程序在运行状态下的监控日志通过监控日志采集插件实现,所述方法还包括:在接收到用户发出的性能问题点确定指令时,向所述目标应用程序中动态注入监控日志采集插件。
所述性能问题点确定程序被所述处理器执行时实现如下操作:所述方法通过分布式系统执行,所述分布式系统包括分布式协调服务和至少一台服务器,所述目标应用程序安装于服务器,所述性能问题点确定指令包括用于标识目标应用程序的应用程序特征码;对应的,所述向所述目标应用程序中动态注入监控日志采集插件,包括:基于所述分布式协调服务,并根据所述应用程序特征码确定安装有所述目标应用程序的服务器的目标地址;根据所述应用程序特征码和所述目标地址,激活所述目标应用程序的服务器中预配置的跨进程通信应用程序;通过所述跨进程通信应用程序向所述目标应用程序中动态注入监控日志采集插件。
所述性能问题点确定程序被所述处理器执行时实现如下操作:所述方法还包括:在接收动态注入取消指令的情况下,从所述目标应用程序中卸载所述监控日志采集插件。
所述性能问题点确定程序被所述处理器执行时实现如下操作:所述方法还包括:统计所述目标应用程序中各个运行节点的执行次数;将占比值超过预设占比值的运行节点确定为性能问题点,包括:将所述占比值超过预设占比值且所述执行次数高于预设执行次数的运行节点确定为性能问题点。
本发明还提出一种存储介质,该存储介质存储有计算机程序,所述计算机程序被执行时实现如下步骤:采集目标应用程序在运行状态下的监控日志;其中,运行目标应用程序通过调用运行目标应用程序中的多个运行节点实现,所述监控日志包括所述各个运行节点的执行开始时刻和执行结束时刻;根据各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用目标应用程序的运行总时长的占比值;将占比值超过预设占比值的运行节点确定为性能问题点。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (11)
1.一种性能问题点确定方法,其特征在于,所述方法包括:
采集目标应用程序在运行状态下的监控日志;其中,运行所述目标应用程序通过调用运行所述目标应用程序中的多个运行节点实现,所述监控日志包括各个运行节点的执行开始时刻和执行结束时刻;
根据所述各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用所述目标应用程序的运行总时长的占比值;
将所述占比值超过预设占比值的运行节点确定为性能问题点;
所述采集目标应用程序在运行状态下的监控日志通过监控日志采集插件实现,所述方法还包括:
在接收到用户发出的性能问题点确定指令时,向所述目标应用程序中动态注入所述监控日志采集插件;
所述方法通过分布式系统执行,所述分布式系统包括分布式协调服务和至少一台服务器,所述目标应用程序安装于所述服务器,所述性能问题点确定指令包括用于标识所述目标应用程序的应用程序特征码;
所述向所述目标应用程序中动态注入所述监控日志采集插件,包括:
基于所述分布式协调服务,并根据所述应用程序特征码确定安装有所述目标应用程序的服务器的目标地址;
根据所述应用程序特征码和所述目标地址,激活所述目标应用程序的服务器中预配置的跨进程通信应用程序;
通过所述跨进程通信应用程序向所述目标应用程序中动态注入所述监控日志采集插件。
2.根据权利要求1所述的方法,其特征在于,所述监控日志还包括各个运行节点的执行顺序和执行栈深度,所述方法还包括:
根据所述各个运行节点的执行顺序和执行栈深度,确定在所述目标应用程序运行过程中的至少一个运行节点执行链路,所述运行节点执行链路中包括至少一个所述运行节点。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
聚合所述运行节点执行链路,以确定所述目标应用程序的运行节点执行网络;
展示对应于所述运行节点执行网络的可视化界面;
通过预设可视化标识在所述可视化界面中标识所述运行节点执行网络中的性能问题点。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收动态注入取消指令的情况下,从所述目标应用程序中卸载所述监控日志采集插件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
统计所述目标应用程序中各个运行节点的执行次数;
所述将占比值超过预设占比值的运行节点确定为性能问题点,包括:
将所述占比值超过预设占比值且所述执行次数高于预设执行次数的运行节点确定为性能问题点。
6.一种性能问题点确定装置,其特征在于,所述装置包括:
日志采集模块,用于采集目标应用程序在运行状态下的监控日志;其中,运行所述目标应用程序通过调用运行所述目标应用程序中的多个运行节点实现,所述监控日志包括各个运行节点的执行开始时刻和执行结束时刻;
占比值确定模块,用于根据所述各个运行节点的执行开始时刻和执行结束时刻,确定各个运行节点的运行时长所占用所述目标应用程序的运行总时长的占比值;
性能问题点确定模块,用于将所述占比值超过预设占比值的运行节点确定为性能问题点;
所述采集目标应用程序在运行状态下的监控日志通过监控日志采集插件实现,所述装置还包括:
动态注入模块,用于在接收到用户发出的性能问题点确定指令时,向所述目标应用程序中动态注入所述监控日志采集插件;
所述装置通过分布式系统执行,所述分布式系统包括分布式协调服务和至少一台服务器,所述目标应用程序安装于所述服务器,所述性能问题点确定指令包括用于标识所述目标应用程序的应用程序特征码;
其中,所述动态注入模块包括:
目标地址确定单元,用于基于所述分布式协调服务,并根据所述应用程序特征码确定安装有所述目标应用程序的服务器的目标地址;
激活单元,用于根据所述应用程序特征码和所述目标地址,激活所述目标应用程序的服务器中预配置的跨进程通信应用程序;
动态注入单元,用于通过所述跨进程通信应用程序向所述目标应用程序中动态注入所述监控日志采集插件。
7.根据权利要求6所述的装置,其特征在于,所述监控日志还包括各个运行节点的执行顺序和执行栈深度,所述装置还包括:
链路确定模块,用于根据所述各个运行节点的执行顺序和执行栈深度,确定在所述目标应用程序运行过程中的至少一个运行节点执行链路,所述运行节点执行链路中包括至少一个所述运行节点。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
聚合模块,用于聚合所述运行节点执行链路,以确定所述目标应用程序的运行节点执行网络;
展示模块,用于展示对应于所述运行节点执行网络的可视化界面;
标识模块,用于通过预设可视化标识在所述可视化界面中标识所述运行节点执行网络中的性能问题点。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
卸载模块,用于在接收动态注入取消指令的情况下,从所述目标应用程序中卸载所述监控日志采集插件。
10.一种数据分析系统,其特征在于,所述数据分析系统包括存储器、处理器及存储于所述存储器并可在所述处理器上执行的性能问题点确定程序,所述性能问题点确定程序被所述处理器执行时实现如权利要求1至5任一项所述的性能问题点确定方法的步骤。
11.一种存储介质,其特征在于,该存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求1至5任一项所述的性能问题点确定方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911290194.2A CN111045950B (zh) | 2019-12-16 | 2019-12-16 | 性能问题点确定方法、装置、数据分析系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911290194.2A CN111045950B (zh) | 2019-12-16 | 2019-12-16 | 性能问题点确定方法、装置、数据分析系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111045950A CN111045950A (zh) | 2020-04-21 |
CN111045950B true CN111045950B (zh) | 2023-06-30 |
Family
ID=70236568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911290194.2A Active CN111045950B (zh) | 2019-12-16 | 2019-12-16 | 性能问题点确定方法、装置、数据分析系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111045950B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
CN107092544A (zh) * | 2016-05-24 | 2017-08-25 | 口碑控股有限公司 | 监控方法及装置 |
CN108153587A (zh) * | 2017-12-26 | 2018-06-12 | 北京航空航天大学 | 一种针对大数据平台的慢任务原因检测方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109818823A (zh) * | 2018-12-29 | 2019-05-28 | 北京奥鹏远程教育中心有限公司 | 全链路跟踪系统 |
CN110442498B (zh) * | 2019-06-28 | 2022-11-25 | 平安科技(深圳)有限公司 | 异常数据节点的定位方法、装置、存储介质及计算机设备 |
CN110502494B (zh) * | 2019-08-30 | 2022-03-18 | 北京思维造物信息科技股份有限公司 | 日志处理方法、装置、计算机设备及存储介质 |
-
2019
- 2019-12-16 CN CN201911290194.2A patent/CN111045950B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
CN107092544A (zh) * | 2016-05-24 | 2017-08-25 | 口碑控股有限公司 | 监控方法及装置 |
CN108153587A (zh) * | 2017-12-26 | 2018-06-12 | 北京航空航天大学 | 一种针对大数据平台的慢任务原因检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111045950A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908879B (zh) | 埋点数据的上报方法、装置、终端和存储介质 | |
WO2021169268A1 (zh) | 数据处理方法、装置、设备和存储介质 | |
CN112256542B (zh) | 基于eBPF的微服务系统性能检测方法、装置和系统 | |
WO2018121442A1 (zh) | 软件信息的处理方法和装置及存储介质、电子装置 | |
CN111813573B (zh) | 管理平台与机器人软件的通信方法及其相关设备 | |
CN111367760B (zh) | 日志采集方法及装置、计算机设备、存储介质 | |
CN111538563A (zh) | 一种对Kubernetes的事件分析方法及装置 | |
CN108462598A (zh) | 一种日志生成方法、日志分析方法及装置 | |
CN109688094B (zh) | 基于网络安全的可疑ip配置方法、装置、设备及存储介质 | |
CN112506755A (zh) | 日志采集方法、装置、计算机设备和存储介质 | |
CN110928681A (zh) | 数据的处理方法和装置、存储介质及电子装置 | |
CN105553770B (zh) | 一种数据采集控制方法和装置 | |
CN109559121B (zh) | 交易路径调用异常分析方法、装置、设备及可读存储介质 | |
CN109409948B (zh) | 交易异常检测方法、装置、设备及计算机可读存储介质 | |
CN109426597A (zh) | 应用性能监控方法、装置、设备、系统及存储介质 | |
CN110851334A (zh) | 流量统计方法、电子设备、系统及介质 | |
CN109978114A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN111045950B (zh) | 性能问题点确定方法、装置、数据分析系统及存储介质 | |
CN112463549A (zh) | 云平台的审计方法、装置、设备及计算机可读存储介质 | |
CN110855525A (zh) | 流量统计方法、电子设备、系统及介质 | |
US20170223136A1 (en) | Any Web Page Reporting and Capture | |
CN111431733A (zh) | 服务告警覆盖信息的评估方法及装置 | |
CN115525392A (zh) | 容器监控方法、装置、电子设备及存储介质 | |
CN110011845A (zh) | 日志采集方法及系统 | |
WO2021179487A1 (zh) | 云主机在宿主机上的动态分配方法、电子装置及存储介质 |
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 |