掌桥专利:专业的专利平台
掌桥专利
首页

应用程序故障检测方法、装置、计算机设备及存储介质

文献发布时间:2023-06-19 16:08:01



技术领域

本发明涉及应用程序故障处理技术领域,具体而言,本发明涉及一种应用程序故障检测方法、装置、计算机设备及存储介质。

背景技术

近年来,随着计算机及网络技术的蓬勃发展,可供使用的计算机类型越来越多,在计算机上运行的应用程序也越来越多。同时,随着用户使用需要的不断变化,应用程序也在以更快速的方式进行功能更新和技术迭代,导致应用程序可能会出现各种各样的故障情况。

通常,在应用程序运行出现异常时,一般会由现场运维人员采集应用程序的故障信息、日志信息等必要的错误数据,基于错误数据去排查异常和推测源头,并根据应用程序的上下游调用关系以此追溯异常根源。如果调用的应用程序较少,这种故障检测方式可能可以直接在上层应用程序的日志信息里就能找到错误原因,但一旦异常根源涉及到多个应用程序的调用时,这种故障检测方式的效率则较低。

发明内容

本发明的主要目的为提供一种应用程序故障检测方法、装置、计算机设备及存储介质,以提高应用程序的故障检测效率。

为了实现上述发明目的,本发明提供一种应用程序故障检测方法,其包括:

接收用户请求,构建所述用户请求对应的调用链路;其中,所述调用链路包括所述用户请求调用的应用程序、各个所述应用程序对应的标识和各个所述应用程序之间的调用关系;

根据各个所述应用程序对应的标识和各个所述应用程序之间的调用关系构建链路图;

在执行所述调用链路的过程中,根据所述链路图监控所述调用链路中的各个所述应用程序;

在监测到异常应用程序时,收集所述异常应用程序对应的异常日志信息,将所述异常日志信息发送给检测人员所在终端。

优选地,所述收集所述异常应用程序对应的异常日志信息,包括:

开启针对所述异常应用程序的日志信息收集模式,并开启对所述异常应用程序的异常情况的监测模式;

在监测到所述异常情况在预设时间段内再次出现后,关闭所述异常应用程序的日志信息收集模式,将收集到的日志信息作为所述异常应用程序对应的异常日志信息。

优选地,所述将所述异常日志信息发送给检测人员所在终端,包括:

根据所述异常情况对所述异常日志信息进行筛选,得到目标异常日志信息;其中,所述目标异常日志信息仅保留与所述异常情况相关的内容;

将所述目标异常日志信息发送给检测人员所在终端。

优选地,所述根据所述链路图监控所述调用链路中的各个所述应用程序,包括:

根据所述链路图依次接收所述调用链路中各个所述应用程序的执行时间;

判断是否存在执行时间大于预设执行时间的应用程序;

若是,将执行时间大于预设执行时间的应用程序作为异常应用程序。

优选地,所述根据各个所述应用程序对应的标识和各个所述应用程序之间的调用关系构建链路图,包括:

根据各个所述应用程序对应的标识和各个所述应用程序之间的调用关系,将各个所述应用程序进行串联,绘制得到链路图。

进一步地,所述将所述异常日志信息发送给检测人员所在终端之后,还包括:

确定所述异常日志信息对应的应对策略;

将所述应对策略发送给检测人员所在终端。

优选地,所述确定所述异常日志信息对应的应对策略,包括:

对所述异常应用程序的所述异常日志信息进行分析,得到所述异常日志信息相应的错误类型;

根据所述错误类型查询对应的应对策略。

本发明还提供一种应用程序故障检测装置,其包括:

接收模块,用于接收用户请求,构建所述用户请求对应的调用链路;其中,所述调用链路包括所述用户请求调用的应用程序、各个所述应用程序对应的标识和各个所述应用程序之间的调用关系;

构建模块,用于根据各个所述应用程序对应的标识和各个所述应用程序之间的调用关系构建链路图;

监控模块,用于在执行所述调用链路的过程中,根据所述链路图监控所述调用链路中的各个所述应用程序;

收集模块,用于在监测到异常应用程序时,收集所述异常应用程序对应的异常日志信息,将所述异常日志信息发送给检测人员所在终端。

本发明还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述方法的步骤。

本发明所提供的一种应用程序故障检测方法、装置、计算机设备及存储介质,接收用户请求,构建用户请求对应的调用链路,根据各个应用程序对应的标识和各个应用程序之间的调用关系构建链路图,在执行调用链路的过程中,根据链路图监控调用链路中的各个应用程序,在监测到异常应用程序时,收集异常应用程序对应的异常日志信息,将异常日志信息发送给检测人员所在终端,以经过链路图的方式将各个应用程序之间调用关系进行呈现,同时将各个应用程序进行串联,以在出现异常应用程序时,可快速定位到异常应用程序的异常根因,将异常日志信息发送给检测人员所在终端,提高应用程序的故障检测效率。

附图说明

图1为本发明一实施例的应用程序故障检测方法的流程示意图;

图2为本发明又一实施例的应用程序故障检测方法的流程示意图;

图3为本发明又一实施例的应用程序故障检测方法的流程示意图;

图4为本发明另一实施例的应用程序故障检测方法的流程示意图;

图5为本发明又一实施例的应用程序故障检测方法的流程示意图;

图6为本发明另一实施例的应用程序故障检测方法的流程示意图;

图7为本发明又一实施例的应用程序故障检测方法的流程示意图;

图8为本发明一实施例的应用程序故障检测装置的结构示意框图;

图9为本发明一实施例的计算机设备的结构示意框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提出一种应用程序故障检测方法,本发明实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。

人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

本发明提出的一种应用程序故障检测方法,以服务器为执行主体,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。

该应用程序故障检测方法用于解决在遇到异常根源涉及到多个应用程序的调用时,当前的故障检测方式的效率较低的技术问题。参考图1,其中一个实施例中,该应用程序故障检测方法包括以下步骤S11-S14:

S11、接收用户请求,构建所述用户请求对应的调用链路;其中,所述调用链路包括所述用户请求调用的应用程序、各个所述应用程序对应的标识和各个所述应用程序之间的调用关系;

S12、根据各个所述应用程序对应的标识和各个所述应用程序之间的调用关系构建链路图;

S13、在执行所述调用链路的过程中,根据所述链路图监控所述调用链路中的各个所述应用程序;

S14、在监测到异常应用程序时,收集所述异常应用程序对应的异常日志信息,将所述异常日志信息发送给检测人员所在终端。

如上述步骤S11所述,用户请求可以是用户点击界面上的任一功能按钮发起,例如,在线上服务的任务领取奖励活动,用户可以访问该活动,在该活动界面,会有多个功能按钮,如获取活动信息、查看奖品、分享、查看中奖记录等,用户可以点击任一功能按钮,即可生成用户请求,其中,用户请求一般是URL(Uniform Resource Locator,统一资源定位系统)请求。

用户的用户请求一般会涉及多个应用程序的调用过程,因此需要构建用户请求对应的调用链路,调用链路包括了用户请求调用的应用程序、各个应用程序之间存在调用和被调用的调用关系,以及预先为每个应用程序设置的标识,可通过该调用链路协助执行完成用户请求。

如上述步骤S12所述,本实施例根据各个应用程序对应的标识和各个应用程序之间的调用关系构建链路图,该链路图可以直观地展现用户请求需要调用到的应用程序,以及调用的先后次序。需要说明的是,各个应用程序在链路图中可以抽象为节点,通过二叉树形式的数据结构,并基于各个应用程序的调用关系,在各个节点之间形成调用链路,生成链路图。

如上述步骤S13-S14所述,在执行调用链路的过程中,每执行一个节点对应的应用程序后,判断该节点是否属于异常节点,即判断该应用程序是否属于异常应用程序,当出现异常应用程序时,获取异常应用程序对应的异常日志信息,将异常日志信息发送给检测人员所在终端,检测人员根据异常日志信息对异常应用程序进行修复。

本发明所提供的一种应用程序故障检测方法,接收用户请求,构建用户请求对应的调用链路,根据各个应用程序对应的标识和各个应用程序之间的调用关系构建链路图,在执行调用链路的过程中,根据链路图监控调用链路中的各个应用程序,在监测到异常应用程序时,收集异常应用程序对应的异常日志信息,将异常日志信息发送给检测人员所在终端,以经过链路图的方式将各个应用程序之间调用关系进行呈现,同时将各个应用程序进行串联,以在出现异常应用程序时,可快速定位到异常应用程序的异常根因,将异常日志信息发送给检测人员所在终端,提高应用程序的故障检测效率。

在一实施例中,参考图2所示,所述收集所述异常应用程序对应的异常日志信息,可具体包括以下步骤S21-S22:

S21、开启针对所述异常应用程序的日志信息收集模式,并开启对所述异常应用程序的异常情况的监测模式;

S22、在监测到所述异常情况在预设时间段内再次出现后,关闭所述异常应用程序的日志信息收集模式,将收集到的日志信息作为所述异常应用程序对应的异常日志信息。

在本实施例中,在监测到异常应用程序时,开启针对该异常应用程序的日志信息收集模式,并开启对该异常应用程序的异常情况的监测模式。其中,所述异常应用程序的异常情况可以有多种表现形式。例如,可以是应用程序卡顿、应用程序崩溃等异常情况。启动过程可以是自动完成的,例如,一旦异常应用程序出现异常情况,服务器立即自行启动针对该异常应用程序的日志信息收集模式和对该异常应用程序的异常情况的监测模式。日志信息收集模式定义了需要采集日志信息的异常应用程序以及采集时间限定,异常情况的监测模式定义了需要采集的异常情况的类型以及采集时间限定。

在一实施例中,该启动过程也可以是在用户的操作指令下完成的,例如,在监测到异常应用程序时,用户可以通过操作界面上的功能键实现启动针对该异常应用程序的异常日志信息收集模式和对该异常应用程序的异常情况的监测模式。

需要说明的是,启动针对该异常应用程序的日志信息收集模式和启动对该异常应用程序的异常情况的监测模式可以是同时启动的,也可以是先启动针对异常应用程序的日志信息收集模式,然后再启动针对该异常应用程序的异常情况的监测模式,还可以是先启动针对该异常应用程序的异常情况的监测模式,然后再启动针对异常应用程序的日志信息收集模式。

在监测到异常情况在预设时间段内再次出现后,关闭异常应用程序的日志信息收集模式,将收集到的日志信息作为异常应用程序对应的异常日志信息,以得到在一个周期内的异常应用程序对应的异常日志信息,在确保异常日志信息的完整性的同时,减少后续重复对相同的异常日志信息的分析工作。

在一实施例中,参考图3所示,所述将所述异常日志信息发送给检测人员所在终端,可具体包括以下步骤S31-S32:

S31、根据所述异常情况对所述异常日志信息进行筛选,得到目标异常日志信息;其中,所述目标异常日志信息仅保留与所述异常情况相关的内容;

S32、将所述目标异常日志信息发送给检测人员所在终端。

在本实施例中,由于在启动对异常应用程序的异常情况的监测模式后,直到监测到异常情况在预设时间段内再次出现之前,这段时间内收集到的日志信息会包含正常的日志信息,如果将这些正常的日志信息也发送给检测人员所在终端,这不仅造成了网络传输资源的浪费,而且由于检测人员还需要查看这些正常的日志信息,影响检测人员对异常日志信息的分析进度。因此,在异常日志信息之后,可以根据所出现的异常情况对所得到的异常日志信息的内容进行筛选,仅保留与异常情况相关的内容,即将收集到的正常的日志信息进行删除,仅保留与异常情况直接相关的内容,以得到目标异常日志信息,将目标异常日志信息发送给检测人员所在终端,不需要检测人员从全部日志信息中查找出异常日志信息,方便了检测人员对应用程序的异常情况进行分析和处理,提高检测人员对异常日志信息的分析进度。

在一实施例中,参考图4所示,所述根据所述链路图监控所述调用链路中的各个所述应用程序,可具体包括以下步骤S41-S43:

S41、根据所述链路图依次接收所述调用链路中各个所述应用程序的执行时间;

S42、判断是否存在执行时间大于预设执行时间的应用程序;

S43、若是,将执行时间大于预设执行时间的应用程序作为异常应用程序。

在本实施例中,服务器可获取链路图上该用户请求依次需要调用的各个应用程序的执行时间,将各个应用程序的执行时间分别与预设执行时间进行比较,判断是否存在执行时间大于预设执行时间的应用程序,其中,该预设执行时间可自定义设置,如设置为1分钟。当存在执行时间大于预设执行时间的应用程序时,则确定监测到异常应用程序,将执行时间大于预设执行时间的应用程序作为异常应用程序。

在一实施例中,参考图5所示,所述根据各个所述应用程序对应的标识和各个所述应用程序之间的调用关系构建链路图,可具体包括以下步骤S51:

S51、根据各个所述应用程序对应的标识和各个所述应用程序之间的调用关系,将各个所述应用程序进行串联,绘制得到链路图。

在本实施例中,服务器根据各个应用程序对应的标识和各个应用程序之间的调用关系构建链路图,该链路图可以直观地展现用户请求需要调用到的应用程序,以及调用的先后次序。需要说明的是,各个应用程序在链路图中可以抽象为节点,通过二叉树形式的数据结构,并基于各个应用程序的调用关系,将各个应用程序进行串联后,绘制得到链路图。

在一实施例中,参考图6所示,所述将所述异常日志信息发送给检测人员所在终端之后,还可包括以下步骤S61-S62:

S61、确定所述异常日志信息对应的应对策略;

S62、将所述应对策略发送给检测人员所在终端。

本实施例中,服务器可预先构建对照表,对照表中的每个字段信息关联有异常日志信息与应对策略的对应关系。例如,当确定字段信息后,从字段信息关联的对应关系中确定异常日志信息对应的应对策略。

其中,该字段信息关联的异常日志信息包括:无法加载数据,应用程序闪退等。应对策略包括:无法加载数据对应的应对策略为对该应用程序进行升级或重装。应用程序闪退对应的应对策略包括:清理内存,并在权限管理终禁止自动启动一些不常用的其他应用程序,或确定异常应用程序的当前版本,如果当前版本为旧版本,对版本进行更新操作。如果当前版本为新版本,卸载后重新安装。

在确定异常日志信息对应的应对策略后,将所述应对策略发送给检测人员所在终端,以使检测人员根据该应对策略对异常应用程序进行修复,提高修复效率。

在一实施例中,参考图7所示,所述确定所述异常日志信息对应的应对策略,可具体包括以下步骤S71-S72:

S71、对所述异常应用程序的所述异常日志信息进行分析,得到所述异常日志信息相应的错误类型;

S72、根据所述错误类型查询对应的应对策略。

本实施例可以针对异常应用程序的异常日志信息进行分析,以得到所述异常日志信息对应的错误类型,并依据所述错误类型确定对应的应对策略,调用该应对策略对所述错误类型的异常应用程序进行修复处理,以提高异常应用程序的修复效率和修复准确率,而且能够节省用户时间和精力。

具体的,可以首先检测异常应用程序出现的错误,并在检测到异常应用程序出现的错误时,针对异常应用程序出现的错误进行分析,以得到对应的错误类型。例如,检测当前应用程序的本地是否存在错误记录,如果检测到当前应用程序存在错误记录,则可以从该错误记录中查找得到对应的错误。该错误记录具体可以包括错误日志。错误日志中可用于存储当前应用程序在运行过程中的错误信息及对应的诊断信息。其中,错误类型可以与错误对象、错误原因、错误结果等错误因素相关。

例如,操作日志中可以记录有用户操作当前应用程序的所有细节操作信息,通过分析操作日志中的细节操作信息可以确定当前应用程序中是否存在异常操作信息,当存在异常操作信息时,可以根据异常操作信息获得当前应用程序的错误,因此可以对异常操作信息进行分析,以得到对应的错误类型。

此外,异常日志信息能够存储于区块链中,以使服务器需要使用时对区块链进行广播。该区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

参照图8,本发明实施例中还提供一种应用程序故障检测装置,所述装置包括:

接收模块11,用于接收用户请求,构建所述用户请求对应的调用链路;其中,所述调用链路包括所述用户请求调用的应用程序、各个所述应用程序对应的标识和各个所述应用程序之间的调用关系;

构建模块12,用于根据各个所述应用程序对应的标识和各个所述应用程序之间的调用关系构建链路图;

监控模块13,用于在执行所述调用链路的过程中,根据所述链路图监控所述调用链路中的各个所述应用程序;

收集模块14,用于在监测到异常应用程序时,收集所述异常应用程序对应的异常日志信息,将所述异常日志信息发送给检测人员所在终端。

在本实施例中,用户请求可以是用户点击界面上的任一功能按钮发起,例如,在线上服务的任务领取奖励活动,用户可以访问该活动,在该活动界面,会有多个功能按钮,如获取活动信息、查看奖品、分享、查看中奖记录等,用户可以点击任一功能按钮,即可生成用户请求,其中,用户请求一般是URL(Uniform Resource Locator,统一资源定位系统)请求。

用户的用户请求一般会涉及多个应用程序的调用过程,因此需要构建用户请求对应的调用链路,调用链路包括了用户请求调用的应用程序、各个应用程序之间存在调用和被调用的调用关系,以及预先为每个应用程序设置的标识,可通过该调用链路协助执行完成用户请求。

本实施例可根据各个应用程序对应的标识和各个应用程序之间的调用关系构建链路图,该链路图可以直观地展现用户请求需要调用到的应用程序,以及调用的先后次序。需要说明的是,各个应用程序在链路图中可以抽象为节点,通过二叉树形式的数据结构,并基于各个应用程序的调用关系,在各个节点之间形成调用链路,生成链路图。

在执行调用链路的过程中,每执行一个节点对应的应用程序后,判断该节点是否属于异常节点,即判断该应用程序是否属于异常应用程序,当出现异常应用程序时,获取异常应用程序对应的异常日志信息,将异常日志信息发送给检测人员所在终端,检测人员根据异常日志信息对异常应用程序进行修复。

如上所述,可以理解地,本发明中提出的所述应用程序故障检测装置的各组成部分可以实现如上所述应用程序故障检测方法任一项的功能,具体结构不再赘述。

参照图9,本发明实施例中还提供一种计算机设备,其内部结构可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括计算机可读存储介质、内存储器。该计算机可读存储介质存储有操作系统、计算机程序和数据库。该内存器为计算机可读存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储所述应用程序故障检测方法的相关数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用程序故障检测方法。

上述处理器执行上述的应用程序故障检测方法,包括:

接收用户请求,构建所述用户请求对应的调用链路;其中,所述调用链路包括所述用户请求调用的应用程序、各个所述应用程序对应的标识和各个所述应用程序之间的调用关系;

根据各个所述应用程序对应的标识和各个所述应用程序之间的调用关系构建链路图;

在执行所述调用链路的过程中,根据所述链路图监控所述调用链路中的各个所述应用程序;

在监测到异常应用程序时,收集所述异常应用程序对应的异常日志信息,将所述异常日志信息发送给检测人员所在终端。

本发明一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种应用程序故障检测方法,包括步骤:

接收用户请求,构建所述用户请求对应的调用链路;其中,所述调用链路包括所述用户请求调用的应用程序、各个所述应用程序对应的标识和各个所述应用程序之间的调用关系;

根据各个所述应用程序对应的标识和各个所述应用程序之间的调用关系构建链路图;

在执行所述调用链路的过程中,根据所述链路图监控所述调用链路中的各个所述应用程序;

在监测到异常应用程序时,收集所述异常应用程序对应的异常日志信息,将所述异常日志信息发送给检测人员所在终端。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

综上所述,本发明的最大有益效果在于:

本发明所提供的一种应用程序故障检测方法、装置、计算机设备及存储介质,接收用户请求,构建用户请求对应的调用链路,根据各个应用程序对应的标识和各个应用程序之间的调用关系构建链路图,在执行调用链路的过程中,根据链路图监控调用链路中的各个应用程序,在监测到异常应用程序时,收集异常应用程序对应的异常日志信息,将异常日志信息发送给检测人员所在终端,以经过链路图的方式将各个应用程序之间调用关系进行呈现,同时将各个应用程序进行串联,以在出现异常应用程序时,可快速定位到异常应用程序的异常根因,将异常日志信息发送给检测人员所在终端,提高应用程序的故障检测效率。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

技术分类

06120114710114