CN112699048B - 基于人工智能的程序故障处理方法、装置、设备及存储介质 - Google Patents

基于人工智能的程序故障处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112699048B
CN112699048B CN202110040474.9A CN202110040474A CN112699048B CN 112699048 B CN112699048 B CN 112699048B CN 202110040474 A CN202110040474 A CN 202110040474A CN 112699048 B CN112699048 B CN 112699048B
Authority
CN
China
Prior art keywords
fault
operation data
candidate
program
candidate fault
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
CN202110040474.9A
Other languages
English (en)
Other versions
CN112699048A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110040474.9A priority Critical patent/CN112699048B/zh
Publication of CN112699048A publication Critical patent/CN112699048A/zh
Application granted granted Critical
Publication of CN112699048B publication Critical patent/CN112699048B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请提供了一种基于人工智能的程序故障处理方法、装置、电子设备及计算机可读存储介质;方法包括:获取程序的运行数据;对运行数据进行特征提取处理,得到运行数据的故障特征;基于运行数据的故障特征,确定在不同候选故障类型下故障特征的条件概率;基于运行数据的先验概率以及在不同候选故障类型下故障特征的条件概率进行预测处理,得到程序的故障类型。通过本申请能够准确检测程序的故障类型。

Description

基于人工智能的程序故障处理方法、装置、设备及存储介质
技术领域
本申请涉及人工智能技术,尤其涉及一种基于人工智能的程序故障处理方法、装置、电子设备及计算机可读存储介质。
背景技术
人工智能(Artificial Intelligence,AI)是计算机科学的一个综合技术,通过研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,例如自然语言处理技术以及机器学习/深度学习等几大方向,随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
相关技术中缺乏基于人工智能对程序进行故障分析的有效方案,主要依赖于人工对程序的运行数据进行分析判断,以实现程序故障检测。
发明内容
本申请实施例提供一种基于人工智能的程序故障处理方法、装置、电子设备及计算机可读存储介质,能够准确检测程序的故障类型。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种基于人工智能的程序故障处理方法,包括:
获取程序的运行数据;
对所述运行数据进行特征提取处理,得到所述运行数据的故障特征;
基于所述运行数据的故障特征,确定在不同候选故障类型下所述故障特征的条件概率;
基于所述运行数据的先验概率以及在不同候选故障类型下所述故障特征的条件概率进行预测处理,得到所述程序的故障类型。
本申请实施例提供一种程序故障处理装置,包括:
获取模块,用于获取程序的运行数据;
提取模块,用于对所述运行数据进行特征提取处理,得到所述运行数据的故障特征;
确定模块,用于基于所述运行数据的故障特征,确定在不同候选故障类型下所述故障特征的条件概率;
预测模块,用于基于所述运行数据的先验概率以及在不同候选故障类型下所述故障特征的条件概率进行预测处理,得到所述程序的故障类型。
上述技术方案中,所述提取模块还用于对所述运行数据进行非统计特征提取,得到所述运行数据的非统计特征;
对所述运行数据进行统计特征提取,得到所述运行数据的统计特征;
将所述运行数据的非统计特征和所述运行数据的统计特征的集合作为所述运行数据的故障特征;
其中,所述统计特征的类型包括以下至少之一:行为序列特征、故障关键字;所述非统计特征的类型包括以下至少之一:程序状态、版本号、运行环境、硬件信息、运行时间。
上述技术方案中,所述提取模块还用于对所述运行数据中的历史点击行为数据进行遍历处理,得到所述历史点击行为数据中每个历史点击信息的时间戳;
对所述每个历史点击信息的时间戳进行降序排序,将排序在前的部分时间戳对应的历史点击信息,确定为有效期内的历史点击信息;
将所述有效期内的历史点击信息的集合作为所述运行数据的行为序列特征。
上述技术方案中,所述提取模块还用于对所述运行数据中的日志数据进行关键字过滤处理,得到所述日志数据中的故障关键字;
将所述日志数据中的故障关键字作为所述运行数据的故障关键字。
上述技术方案中,所述确定模块还用于获取不同候选故障特征与在不同候选故障类型下所述候选故障特征的条件概率的对应关系;
基于所述运行数据的故障特征查询所述对应关系,以得到在不同候选故障类型下所述故障特征的条件概率。
上述技术方案中,所述确定模块还用于获取候选故障类型集合以及候选故障特征集合;
针对所述候选故障类型集合中的任一候选故障类型执行以下处理:
基于所述候选故障类型,对多个历史运行数据的故障特征进行遍历处理,得到在所述候选故障类型下所述候选故障特征集合中每个候选故障特征的占比,以作为在所述候选故障类型下每个候选故障特征的条件概率;
基于在多个所述候选故障类型下每个候选故障特征的条件概率,确定不同候选故障特征与在不同候选故障类型下所述候选故障特征的条件概率的对应关系。
上述技术方案中,所述确定模块还用于确定有效期内的多个历史运行数据分别包括的故障特征;
基于所述历史运行数据包括的故障特征,确定所述多个历史运行数据在多个候选故障特征的分布;
当所述多个历史运行数据在多个候选故障特征的分布不满足分布均衡条件时,对所述多个候选故障特征进行增加、删除、修改中的至少一种的调整;
将调整后的所述多个候选故障特征的集合作为所述候选故障类型集合。
上述技术方案中,所述确定模块还用于确定有效期内的多个历史运行数据分别对应的故障类型;
基于所述历史运行数据的故障类型,确定所述多个历史运行数据在多个候选故障类型的分布;
当所述多个历史运行数据在多个候选故障类型的分布不满足分布均衡条件时,对所述多个候选故障类型进行增加、删除、修改中的至少一种的调整;
将调整后的所述多个候选故障类型的集合作为所述候选故障类型集合。
上述技术方案中,所述确定模块还用于确定有效期内的多个历史运行数据分别对应的故障类型;
针对多个候选故障类型中的每个故障类型,执行以下处理:基于所述历史运行数据的故障类型,确定所述多个历史运行数据中属于所述候选故障类型的数量;
基于所述多个历史运行数据分别属于所述多个候选故障类型的数量,对所述多个候选故障类型进行增加、删除、修改中的至少一种的调整;
将调整后的所述多个候选故障类型的集合作为所述候选故障类型集合。
上述技术方案中,所述确定模块还用于当所述多个候选故障类型的数量大于类型数量阈值、且所述多个历史运行数据中属于所述候选故障类型的数量小于数量阈值时,删除所述多个候选故障类型中的所述候选故障类型;
当所述多个候选故障类型的数量小于或者等于所述类型数量阈值、且所述多个历史运行数据中属于所述候选故障类型的数量大于所述数量阈值时,将目标故障类型增加到所述多个候选故障类型中;
当所述多个候选故障类型的数量小于或者等于所述类型数量阈值、且所述多个历史运行数据中属于所述候选故障类型的数量小于或者等于所述数量阈值时,将所述候选故障类型修改为所述目标故障类型;
其中,所述目标故障类型不同于所述多个候选故障类型。
上述技术方案中,所述预测模块还用于针对任一候选故障类型执行以下处理:
确定所述运行数据在所述候选故障类型的先验概率;
对所述运行数据在所述候选故障类型的先验概率以及在所述候选故障类型下所述故障特征的条件概率进行乘积处理,将乘积处理结果作为所述运行数据在所述候选故障类型的预测概率;
在所述运行数据在多个所述候选故障类型的预测概率中,将最大预测概率所对应的候选故障类型作为所述程序的故障类型。
上述技术方案中,预测模块还用于基于所述故障特征的权重,对在所述候选故障类型下所述故障特征的条件概率进行加权处理,得到加权后的条件概率;
对所述运行数据在所述候选故障类型的先验概率以及所述加权后的条件概率进行乘积处理;
基于多个所述候选故障类型的权重,对所述运行数据在多个所述候选故障类型的预测概率进行加权处理,得到加权后的预测概率;
将最大的所述加权后的预测概率所对应的候选故障类型作为所述程序的故障类型。
上述技术方案中,所述装置还包括:
统计模块,用于基于所述不同候选故障类型,对多个历史运行数据进行遍历处理,得到所述多个历史运行数据在每个候选故障类型的占比;
将所述多个历史运行数据在每个候选故障类型的占比作为所述运行数据的先验概率。
上述技术方案中,所述装置还包括:
第一呈现模块,用于基于所述程序的历史运行数据,确定不同故障类型与不同的候选故障规律的对应关系;
基于所述程序的故障类型查询所述对应关系,将查询到的候选故障规律作为所述程序的故障规律;
其中,所述故障规律包括以下至少之一:所述故障类型所独有的故障特征;所述故障类型包括的满足故障要求的多个故障特征;
响应于所述程序的故障类型的故障查询操作,呈现所述程序的故障规律。
上述技术方案中,所述装置还包括:
第二呈现模块,用于基于所述程序的历史运行数据,确定所述程序的不同故障类型与不同的候选故障解决方案的对应关系;
基于所述程序的故障类型查询所述对应关系,将查询到的候选故障解决方案作为所述程序的故障解决方案;
响应于所述程序的故障解决方案的查询操作,呈现所述程序的故障解决方案。
本申请实施例提供一种用于程序故障处理的电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的基于人工智能的程序故障处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的基于人工智能的程序故障处理方法。
本申请实施例具有以下有益效果:
基于运行数据的故障特征,确定在不同候选故障类型下故障特征的条件概率,并基于运行数据的先验概率以及在不同候选故障类型下故障特征的条件概率进行预测,以确定程序的故障类型,以实现精准的程序故障检测过程,提高自动化故障检测的效率。
附图说明
图1是本申请实施例提供的程序故障处理系统的应用场景示意图;
图2是本申请实施例提供的用于程序故障处理的电子设备的结构示意图;
图3-图5是本申请实施例提供的基于人工智能的程序故障处理方法的流程示意图;
图6是本申请实施例提供的硬件信息的占比的界面示意图;
图7是本申请实施例提供的统计变量类型的占比的界面示意图;
图8是本申请实施例提供的统计范围类型的占比的界面示意图;
图9是本申请实施例提供的统计序列类型的界面示意图;
图10是本申请实施例提供的关键字过滤分析数据的占比的界面示意图;
图11是本申请实施例提供的崩溃可视化诊断系统的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)卷积神经网络(CNN,Convolutional Neural Networks):一类包含卷积计算且具有深度结构的前馈神经网络(FNN,Feedforward Neural Networks),是深度学习(deeplearning)的代表算法之一。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入图像进行平移不变分类(shift-invariantclassification)。
2)循环神经网络(RNN,Recurrent Neural Network):一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(Recursive Neural Network)。循环神经网络具有记忆性、参数共享并且图灵完备(Turing Completeness),因此在对序列的非线性特征进行学习时具有一定优势。
3)运行数据:程序在运行过程中的数据,例如状态、行为、系统日志、堆栈等数据。
4)故障:在程序运行过程中因为程序本身原因或者非自身原因(例如硬件设备)而造成的功能不正常、死机、数据丢失、非正常中断等现象。程序故障的表现可以是程序崩溃、假死、卡顿等,其中,程序崩溃是指由操作失误或病毒等原因导致程序无法正常运作的情况;程序假死是指用户在程序运行过程中,遇到系统提示“程序未响应”的问题,于是程序进入了假死状态,动弹不了;程序卡顿是指在程序运行的过程中,电子设备所呈现的画面滞帧。
本申请实施例提供了一种基于人工智能的程序故障处理方法、装置、电子设备及计算机可读存储介质,能够实现程序故障的自动化的准确检测。
本申请实施例所提供的基于人工智能的程序故障处理方法,可以由终端/服务器独自实现;也可以由终端和服务器协同实现,例如终端独自承担下文所述的基于人工智能的程序故障处理方法,或者,终端向服务器发送针对程序的故障查询请求(包括程序的运行数据),服务器根据接收的针对程序的故障查询请求执行基于人工智能的程序故障处理方法,响应于针对程序的故障查询请求,基于运行数据的先验概率以及在不同候选故障类型下故障特征的条件概率进行预测处理,得到程序的故障类型,从而实现程序的智能化地精准检测。
本申请实施例提供的用于程序故障处理的电子设备可以是各种类型的终端设备或服务器,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器;终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
以服务器为例,例如可以是部署在云端的服务器集群,向用户开放人工智能云服务(AI as a Service,AIaaS),AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务,这种服务模式类似于一个AI主题商城,所有的用户都可以通过应用程序编程接口的方式来接入使用AIaaS平台提供的一种或者多种人工智能服务。
例如,其中的一种人工智能云服务可以为程序故障处理服务,即云端的服务器封装有本申请实施例提供的程序故障处理的程序。用户通过终端(运行有客户端,例如故障监测客户端等)调用云服务中的程序故障处理服务,以使部署在云端的服务器调用封装的程序故障处理的程序,基于运行数据的先验概率以及在不同候选故障类型下故障特征的条件概率进行预测处理,得到程序的故障类型,从而实现程序的智能化地精准检测。例如,对于故障监测应用,故障监测客户端基于被监控程序的实时运行数据,提取运行数据的故障特征,基于运行数据的先验概率以及在不同候选故障类型下故障特征的条件概率进行预测处理,得到程序的故障类型,以实现程序故障的实时监控。
参见图1,图1是本申请实施例提供的程序故障处理系统10的应用场景示意图,终端200通过网络300连接服务器100,网络300可以是广域网或者局域网,又或者是二者的组合。
终端200(运行有客户端,例如故障监测客户端等)可以被用来获取针对程序的故障查询请求(包括程序的运行数据),例如,终端200上运行有程序,该程序需要经过程序故障处理,则终端200自动获取该程序的运行数据,并自动生成针对程序的故障查询请求。
在一些实施例中,终端中运行的客户端中可以植入有程序故障处理插件,用以在客户端本地实现基于人工智能的程序故障处理方法。例如,终端200获取针对程序的故障查询请求(包括程序的运行数据)后,调用程序故障处理插件,以实现基于人工智能的程序故障处理方法,基于运行数据的先验概率以及在不同候选故障类型下故障特征的条件概率进行预测处理,得到程序的故障类型,从而实现程序的智能化地精准检测,例如,对于故障监测应用,故障监测客户端基于被监控程序的实时运行数据,提取运行数据的故障特征,基于运行数据的先验概率以及在不同候选故障类型下故障特征的条件概率进行预测处理,得到程序的故障类型,以实现程序故障的实时监控。
在一些实施例中,终端200获取针对程序的故障查询请求(包括程序的运行数据)后,调用服务器100的程序故障处理接口(可以提供为云服务的形式,即程序故障处理服务),服务器100基于运行数据的先验概率以及在不同候选故障类型下故障特征的条件概率进行预测处理,得到程序的故障类型,并将程序的故障类型发送至终端200,例如,对于故障监测应用,终端200(运行有故障检测客户端)上运行有需要经过程序故障处理的待处理程序,终端200基于待处理程序的运行数据,自动生成针对程序的故障查询请求,并将针对程序的故障查询请求发送至服务器100,服务器100解析针对程序的故障查询请求,并提取运行数据的故障特征,基于运行数据的先验概率以及在不同候选故障类型下故障特征的条件概率进行预测处理,得到待处理程序的故障类型,并将待处理程序的故障类型发送至终端200,以响应针对程序的故障查询请求,实现程序故障的实时监控。
下面说明本申请实施例提供的用于程序故障处理的电子设备的结构,参见图2,图2是本申请实施例提供的用于程序故障处理的电子设备500的结构示意图,以电子设备500是服务器为例说明,图2所示的用于程序故障处理的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本申请实施例提供的程序故障处理装置可以采用软件方式实现,例如,可以是上文所述的终端中的程序故障处理插件,可以是上文所述的服务器中程序故障处理服务。当然,不局限于此,本申请实施例提供的程序故障处理装置可以提供为各种软件实施例,包括应用程序、软件、软件模块、脚本或代码在内的各种形式。
图2示出了存储在存储器550中的程序故障处理装置555,其可以是程序和插件等形式的软件,例如程序故障处理插件,并包括一系列的模块,包括获取模块5551、提取模块5552、确定模块5553、预测模块5554、统计模块5555、第一呈现模块5556以及第二呈现模块5557;其中,获取模块5551、提取模块5552、确定模块5553、预测模块5554、统计模块5555、第一呈现模块5556以及第二呈现模块5557用于实现本申请实施例提供的程序故障处理功能。
如前所述,本申请实施例提供的基于人工智能的程序故障处理方法可以由各种类型的电子设备实施。参见图3,图3是本申请实施例提供的基于人工智能的程序故障处理方法的流程示意图,结合图3示出的步骤进行说明。
在下面步骤中,程序的运行数据包括故障时的运行数据以及故障前的运行数据。
在步骤101中,获取程序的运行数据。
作为获取运行数据的示例,终端定期(例如,每小时、每天等)或实时自动获取需要经过程序故障处理的程序的运行数据,并自动生成针对程序的故障查询请求,并将针对程序的故障查询请求发送至服务器,服务器解析针对程序的故障查询请求,以获取程序的运行数据。
在步骤102中,对运行数据进行特征提取处理,得到运行数据的故障特征。
在获取程序的运行数据后,提取运行数据的故障特征,该故障特征用于表征可能造成故障的因素,后续基于故障特征进行故障预测,以实现自动化的故障检测。其中,程序的运行数据包括故障时的运行数据以及故障前的运行数据。
参见图4,图4是本申请实施例提供的基于人工智能的程序故障处理方法的一个可选的流程示意图,图4示出图3中的步骤102可以通过图4示出的步骤1021-步骤1023实现:在步骤1021中,对运行数据进行非统计特征提取,得到运行数据的非统计特征;在步骤1022中,对运行数据进行统计特征提取,得到运行数据的统计特征;在步骤1023中,将运行数据的非统计特征和运行数据的统计特征的集合作为运行数据的故障特征。
其中,统计特征的类型包括以下至少之一:行为序列特征、故障关键字;非统计特征的类型包括以下至少之一:程序状态、版本号、运行环境、硬件信息、运行时间。其中,统计特征可以通过离线分析获得,非统计特征可以通过实时统计获得,通过离线分析以及实时统计获取准确完整的故障特征,以便后续进行准确的故障预测。
以行为序列特征为例,对运行数据进行统计特征提取,得到运行数据的统计特征,包括:对运行数据中的历史点击行为数据进行遍历处理,得到历史点击行为数据中每个历史点击信息的时间戳;对每个历史点击信息的时间戳进行降序排序,将排序在前的部分时间戳对应的历史点击信息,确定为有效期内的历史点击信息;将有效期内的历史点击信息的集合作为运行数据的行为序列特征。
例如,程序的运行数据包括故障时的点击行为数据以及故障前的点击行为数据,即运行数据包括历史点击行为数据,基于每个历史点击信息的时间戳进行降序排序,将排序在前的部分时间戳对应的历史点击信息,确定为有效期内的历史点击信息,并将有效期内的历史点击信息的集合作为运行数据的行为序列特征。例如,历史点击信息按时间戳的降序排序顺序为按钮button1->按钮button2->按钮button3->按钮button4->按钮button5,取排序在前的3个历史点击信息按钮button1->按钮button2->按钮button3,将button1->按钮button2->按钮button3作为该运行数据的行为序列特征,其中button1->按钮button2->按钮button3的点击次序可能是造成程序故障的因素。
以故障关键字为例,对运行数据进行统计特征提取,得到运行数据的统计特征,包括:对运行数据中的日志数据进行关键字过滤处理,得到日志数据中的故障关键字;将日志数据中的故障关键字作为运行数据的故障关键字。
例如,程序的运行数据包括故障时的日志数据以及故障前的日志数据,对日志数据中的进行关键字正则匹配过滤,以得到日志数据中的故障关键字,例如,日志数据中出现3次故障关键字1、1次故障关键字2,将3次故障关键字1、1次故障关键字2作为该运行数据的故障关键字,其中故障关键字1、故障关键字2可能是造成程序故障的因素。
在步骤103中,基于运行数据的故障特征,确定在不同候选故障类型下故障特征的条件概率。
在确定运行数据的故障特征后,可以确定在不同候选故障类型下故障特征的条件概率,以便后续基于在不同候选故障类型下故障特征的条件概率进行故障预测。
在一些实施例中,基于运行数据的故障特征,确定在不同候选故障类型下故障特征的条件概率,包括:获取不同候选故障特征与在不同候选故障类型下候选故障特征的条件概率的对应关系;基于运行数据的故障特征查询对应关系,以得到在不同候选故障类型下故障特征的条件概率。
例如,在进行故障预测之前,定期通过历史运行数据确定不同候选故障特征与在不同候选故障类型下候选故障特征的条件概率的对应关系,并将不同候选故障特征与在不同候选故障类型下候选故障特征的条件概率的对应关系存储至数据库中,当需要对程序的运行数据进行故障预测时,从数据库中拉取不同候选故障特征与在不同候选故障类型下候选故障特征的条件概率的对应关系,并基于运行数据的故障特征查询该对应关系,以得到在不同候选故障类型下故障特征的条件概率。
在一些实施例中,获取不同候选故障特征与在不同候选故障类型下候选故障特征的条件概率的对应关系,包括:获取候选故障类型集合以及候选故障特征集合;针对候选故障类型集合中的任一候选故障类型执行以下处理:基于候选故障类型,对多个历史运行数据的故障特征进行遍历处理,得到在候选故障类型下候选故障特征集合中每个候选故障特征的占比,以作为在候选故障类型下每个候选故障特征的条件概率;基于在多个候选故障类型下每个候选故障特征的条件概率,确定不同候选故障特征与在不同候选故障类型下候选故障特征的条件概率的对应关系。
其中,候选故障类型集合包括多个候选故障类型,候选故障特征集合包括多个候选故障特征,在确定不同候选故障特征与在不同候选故障类型下候选故障特征的条件概率的对应关系,需要确定候选故障类型集合以及候选故障特征集合,该候选故障类型集合以及候选故障特征集合可以根据实际的应用场景动态变化。到了计算最新不同候选故障特征与在不同候选故障类型下候选故障特征的条件概率的对应关系的时机时,确定最新的候选故障类型集合以及候选故障特征集合,例如针对最新的候选故障类型集合中的候选故障类型Cj,对多个历史运行数据的故障特征进行遍历处理,得到在候选故障类型Cj下候选故障特征集合中每个候选故障特征的占比,并将在候选故障类型Cj下候选故障特征集合中每个候选故障特征的占比作为在候选故障类型Cj下每个候选故障特征的条件概率,从而确定不同候选故障特征与在不同候选故障类型下候选故障特征的条件概率的对应关系,例如确定候选故障特征Xi与在候选故障类型Cj下候选故障特征Xi的条件概率的对应关系,即已知候选故障特征Xi,即可获取在候选故障类型Cj下候选故障特征Xi的条件概率。
在一些实施例中,获取候选故障特征集合,包括:确定有效期内的多个历史运行数据分别包括的故障特征;基于历史运行数据包括的故障特征,得到多个历史运行数据在多个候选故障特征的分布;当多个历史运行数据在多个候选故障特征的分布不满足分布均衡条件时,对多个候选故障特征进行增加、删除、修改中的至少一种的调整;将调整后的多个候选故障特征的集合作为候选故障类型集合。
承接上述示例,由于候选故障特征集合是动态变化的,因此,可以根据实际的应用场景对候选故障特征集合进行动态调整,例如,当多个历史运行数据在多个候选故障特征的分布表征某一候选故障特征的抖动超过最大抖动阈值(即不满足分布均衡条件)时,说明该候选故障特征不稳定,不能明显地表征故障,则在候选故障特征集合中删除该候选故障特征,或者采用新的候选故障特征替换该候选故障特征;当多个历史运行数据在多个候选故障特征的分布表征候选故障特征的抖动低于最小抖动阈值(即不满足分布均衡条件)时,说明该候选故障特征过于稳定,过于单一地表征故障,则在候选故障特征集合中增加新的候选故障特征,其中,新的候选故障特征不同于候选故障特征集合中的候选故障特征。
在一些实施例中,获取候选故障类型集合,包括:确定有效期内的多个历史运行数据分别对应的故障类型;基于历史运行数据的故障类型,确定多个历史运行数据在多个候选故障类型的分布;当多个历史运行数据在多个候选故障类型的分布不满足分布均衡条件时,对多个候选故障类型进行增加、删除、修改中的至少一种的调整;将调整后的多个候选故障类型的集合作为候选故障类型集合。
承接上述示例,由于候选故障类型集合是动态变化的,因此,可以根据实际的应用场景对候选故障类型集合进行动态调整,例如,当多个历史运行数据在多个候选故障类型的分布表征某一候选故障类型的抖动超过最大抖动阈值(即不满足分布均衡条件)时,说明该候选故障类型不稳定,不能准确地表征程序实际出现的故障,则在候选故障类型集合中删除该候选故障类型,或者采用新的候选故障类型替换该候选故障类型;当多个历史运行数据在多个候选故障类型的分布表征候选故障类型的抖动低于最小抖动阈值(即不满足分布均衡条件)时,说明该候选故障类型过于稳定,过于单一地表征故障,则在候选故障类型集合中增加新的候选故障类型,其中,新的候选故障类型不同于候选故障类型集合中的候选故障类型。
在一些实施例中,获取候选故障类型集合,包括:确定有效期内的多个历史运行数据分别对应的故障类型;基于历史运行数据的故障类型,得到多个历史运行数据在多个候选故障类型的数量;基于多个历史运行数据在多个候选故障类型的数量,对多个候选故障类型进行增加、删除、修改中的至少一种的调整;将调整后的多个候选故障类型的集合作为候选故障类型集合。
承接上述示例,可以通过多个历史运行数据在多个候选故障类型的数量调整候选故障类型集合。例如,当多个候选故障类型的数量大于类型数量阈值、且多个历史运行数据中属于某候选故障类型的历史运行数据的数量小于数量阈值时,说明候选故障类型集合中的候选故障类型的数量过多,则删除候选故障类型集合中的该候选故障类型;当多个候选故障类型的数量小于或者等于类型数量阈值、且多个历史运行数据中属于候选故障类型的历史运行数据的数量大于数量阈值时,说明候选故障类型集合中的候选故障类型的数量过少,则将目标故障类型增加到多个候选故障类型中,其中,目标故障类型不同于多个候选故障类型;当多个候选故障类型的数量小于或者等于类型数量阈值、且多个历史运行数据中属于某候选故障类型的历史运行数据的数量小于或者等于数量阈值时,说明该候选故障类型不能明显表征故障,则将候选故障类型修改为目标故障类型。
承接上述示例,确定有效期内的多个历史运行数据分别对应的故障特征,基于历史运行数据的故障特征,得到多个历史运行数据在多个候选故障特征的数量,基于多个历史运行数据在多个候选故障特征的数量,对多个候选故障特征进行增加、删除、修改中的至少一种的调整,将调整后的多个候选故障特征的集合作为候选故障特征集合。
在步骤104中,基于运行数据的先验概率以及在不同候选故障类型下故障特征的条件概率进行预测处理,得到程序的故障类型。
在获得在不同候选故障类型下故障特征的条件概率后,基于运行数据的先验概率以及在不同候选故障类型下故障特征的条件概率进行预测处理,得到程序的故障类型,以便后续基于相应的故障解决方案解决故障,避免程序不间断地出现故障,提高程序的运行效率。
参见图5,图5是本申请实施例提供的基于人工智能的程序故障处理方法的一个可选的流程示意图,图5示出图3中的步骤104可以通过图5示出的步骤1041-步骤1043实现:在步骤1041中,针对任一候选故障类型执行以下处理:确定运行数据在候选故障类型的先验概率;在步骤1042中,对运行数据在候选故障类型的先验概率以及在候选故障类型下故障特征的条件概率进行乘积处理,将乘积处理结果作为运行数据在候选故障类型的预测概率;在步骤1043中,在运行数据在多个候选故障类型的预测概率中,将最大预测概率所对应的候选故障类型作为程序的故障类型。
例如,运行数据在候选故障类型1的预测概率为0.3、运行数据在候选故障类型2的预测概率为0.7、运行数据在候选故障类型3的预测概率为0.5,则确定该程序出现了候选故障类型2。
承接上述示例,对运行数据在候选故障类型的先验概率以及在候选故障类型下故障特征的条件概率进行乘积处理,包括:基于故障特征的权重,对在候选故障类型下故障特征的条件概率进行加权处理,得到加权后的条件概率;对运行数据在候选故障类型的先验概率以及加权后的条件概率进行乘积处理。由于每种故障特征对故障的影响不同,例如运行数据中出现某种故障特征,该故障特征对某种故障出现具有较大的贡献,则需要高度重视该故障特征,则该故障特征的权重比较大,需要考虑到故障特征的权重。
承接上述示例,在运行数据在多个候选故障类型的预测概率中,将最大预测概率所对应的候选故障类型作为程序的故障类型,包括:基于多个候选故障类型的权重,对运行数据在多个候选故障类型的预测概率进行加权处理,得到加权后的预测概率;将最大的加权后的预测概率所对应的候选故障类型作为程序的故障类型。由于每种候选故障类型的权重不同,即当程序出现某种故障,对程序造成极大的影响,需要高度重视该种故障,则该种故障的权重比较大,需要考虑到故障类型的权重。
其中,基于不同候选故障类型,对多个历史运行数据进行遍历处理,得到多个历史运行数据在每个候选故障类型的占比,将多个历史运行数据在每个候选故障类型的占比作为运行数据的先验概率。
承接上述示例,在获取程序的故障类型后,可以呈现表征该故障类型的故障规律。在确定故障规律之前,基于历史运行数据可以定期或者实时统计得到不同故障类型与不同的候选故障规律的对应关系,并将不同故障类型与不同的候选故障规律的对应关系存储至数据库中,在需要确定故障规律时,从数据库中获取不同故障类型与不同的候选故障规律的对应关系;基于程序的故障类型查询对应关系,将查询到的候选故障规律作为程序的故障规律;响应于程序的故障类型的故障查询操作,呈现程序的故障规律,以便用户查看可能造成程序故障的因素,以确定针对性的故障解决方案。
其中,故障规律包括以下至少之一:故障类型所独有的故障特征(故障类型包括的区别于其他故障类型的故障特征,即明显特征);故障类型包括的满足故障要求的多个故障特征。例如,故障类型1所独有的故障特征为版本号,其他故障类型不包括版本号这一种故障特征,则版本号为故障类型1所独有的故障特征。
其中,满足故障要求的多个故障要求可以是基于该故障类型下的故障特征的占比进行降序排序,将排序在前的多个故障特征作为故障规律,还可以是当该故障类型下的故障特征的占比大于占比阈值时,将故障特征作为故障规律。
承接上述示例,在获取程序的故障类型后,可以呈现表征该故障类型的故障解决方案。在确定故障解决方案之前,基于历史运行数据可以定期或者实时统计得到不同故障类型与不同的候选故障解决方案的对应关系,并将不同故障类型与不同的候选故障解决方案的对应关系存储至数据库中,在需要确定故障解决方案时,从数据库中获取不同故障类型与不同的候选故障解决方案的对应关系,基于程序的故障类型查询对应关系,将查询到的候选故障解决方案作为程序的故障解决方案,响应于程序的故障解决方案的查询操作,呈现程序的故障解决方案,以便用户查看故障解决方案,以通过合适的故障解决方案解决程序的故障问题。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
相关技术中,在程序发生故障后,不能快速定位问题,对于低概率出现的故障,更是难以找出诊断问题规律、复现路径。程序故障后会上报少量信息,供开发人员分析。系统上报程序故障,并尝试重建现场,但移动平台硬件特性各异,无法完全重建现场,还存在以下问题:上报信息少,很多故障问题难以分析;上报的自定义日志量大,人工无法完全统计分析,找出特征规律;对故障的信息展示不直观;无法对故障问题进行分类诊断。
为了解决上述问题,本申请实施例提供一种基于贝叶斯原理的故障可视化诊断系统针对程序上报各种类型的数据采用实时和离线的后台分析方案,提取特征,分析统计上报数据,进行分析计算后以饼图、序列、条状图、占比列表等方式直观展示;对所有特征进行贝叶斯推理,诊断故障类型以及特征集合,并可视化展示。
本申请实施例提供一种基于贝叶斯原理的故障可视化诊断系统,以程序运行时的状态、行为、系统日志等运行数据为基础,分析特征数据,基于贝叶斯推理方法建立模型(机器学习模型,例如CNN、RNN等),分析定位故障问题,并进行可视化以实现故障诊断,还可以通过其它如聚类分析、特征提取对比分析等方法来分类故障类型。故障可视化诊断系统应用统计方法分析特征占比比例,应用聚合数据关联分析算法分析程序行为序列特征,应用正则匹配技术分析日志、堆栈等关键字信息的特征,将以上特征属性进行贝叶斯推理以诊断故障并可视化展示,从而快速掌握故障上下文信息。
本申请实施例具有通用特征,适用于各种类型编程语言,各种平台运行环境,能快速分析统计大量数据并可视化展示,精准高效定位问题,提炼规律,可用于软件系统的测试和维护。
为直观展示分析结果,快速掌握故障上下文情况,将特征分析的结果以各种图表的方式展示。如图6所示,通过条状图展示硬件信息的占比,例如,故障情况下kirin710占比43%;如图7所示,通过饼图展示统计变量类型(K)的占比,例如,故障情况下运行时间为1分钟~5分钟的占比63%;如图8所示,通过饼图展示统计范围类型(I)的占比,例如,故障情况下处于登录状态的占比43%;如图9所示,通过序列展示统计序列类型(S),例如,按钮被点击事件序列,即按钮button1->按钮button2->按钮button3,即按钮被点击的顺序为button1、button2、button3;如图10所示,通过条状图展示关键字过滤分析数据的占比,例如,故障情况下关键字3占比25%。
如图11所示,故障可视化诊断系统包括4个部分,分别为上报数据模块、数据统计模块、数据诊断模块以及可视化展示,下面具体说明:
A)上报数据模块:全方位跟踪软件运行环境、运行状态、行为等;
B)数据统计模块:对上报数据进行实时、离线分析,得到特征集合;
C)数据诊断模块:对特征进行分类建立模型节点,导入数据训练分类能力。故障时的运行数据经过诊断预测该故障类型以及展示明显特征集合,还可以接受外部对数据诊断模块的管理;
D)可视化展示:以饼图、序列、条状图、占比列表等方式展示诊断结果,可视化展示内容或形式可能不同,有各种如软件、网页展示方式。
其中,上报数据模块具有以下功能:
1)跟踪数据内容:程序运行环境、程序状态、程序行为、故障堆栈、系统日志等;
2)数据上报:在故障时,所有数据变量通过键值对(Key-Value)信息组合上报。
3)数据内容分类:
1、全局变量类型(G):只记录当前的状态或最后一次行为的值;
2、统计变量类型(K):可根据Key上报Value,进行占比统计、热点分布等。
3、统计范围类型(I):可根据Key上报Value,进行范围统计。
4、统计序列类型(S):可根据Key上报Value序列,进行高频特征统计分析。
其中,数据统计模块的统计模式包括实时统计以及离线分析:
A)实时统计
将上报数据按值进行实时次数统计,得到统计结果。包括几个方面:
1)对统计变量类型(K)包括程序状态,版本号等,进行实时统计占比。
2)对统计变量类型(K)包括运行环境、硬件信息等,进行实时统计占比。
3)对统计范围类型(I)数据进行实时统计范围占比。
B)离线分析
对于上报的统计序列类型(S)和日志进行离线分析:
1)对统计序列类型(S)数据,应用FP-Growth关联分析算法、序列模式挖掘PrefixSpan算法分析得到故障前软件行为序列特征。
2)对堆栈、日志数据进行关键字正则匹配过滤分析,离线统计占比。
其中,本申请实施例的特征属性统计与相关技术的人工统计效果对比如表1所示:
表1
下面具体说明本申请实施例提供的基于贝叶斯原理的故障可视化诊断系统,根据朴素贝叶斯分类原理,基于上报故障数据提取特征集合,以建立特征集合与故障类型的映射关系,具体流程如下所示:
需要说明的是,条件概率公式为P(AB)=P(A)P(B|A)=P(B)P(A|B),则推导出贝叶斯公式为其中,先验概率P(A)表示在B事件发生之前,对A事件概率的一个判断,后验概率P(A|B)表示在B事件发生之后,对A事件概率的重新评估。
步骤1、特征集合X={x1,x2,...,xj,...,xm},每个xj为X的一个特征属性,例如是否覆盖安装、是否开启高光、启动时间范围等。
步骤2、故障类型集合C={c1,c2,...,ck,...,cn},每个类型ck的先验概率为类型ck占总故障的比率。
步骤3、将已有数据集合统计在故障发生的情况下各特征的占比作为特征的条件概率,例如故障类型c1发生时特征属性为覆盖安装的占比作为条件概率P(覆盖安装|c1)。
步骤4、故障类型预测计算推导
根据特征属性不相关的条件概率链式法则,如公式(1)所示:
根据贝叶斯原理计算后验概率,如公式(2)所示:
在公式(2)中代入公式(1),得到特征概率P(ck|X)如公式(3)所示:
由于分母全概率公式是常数且都相同,其中,X代表已统计特征集合,是一个子集,常数是一个小于1的实数,则去掉分母简化为公式(4):
计算所有故障类型的特征概率中最大的一个,即为最有可能的故障类型cmax,如公式(5)所示:
其中,P(xj|ck)≠0,P(ck)表示先验概率,即故障类型ck占总故障的比率,每个故障类型在训练样本(历史故障数据)中的出现频率,即该类型在总故障中的占比。开发阶段测试出现的故障类型录入数据时,可设定为最高占比作为该故障类型的先验概率。
其中,每个故障类型的特征条件概率P(xj|ck)表示数据统计模块输出的各特征统计占比。例如根据已知故障类型ck的所有上报记录集合,逐条统计各特征出现数量,最后得到各特征的占比,将各特征的占比作为特征条件概率。此为固定流程,可程序实现自动化获取数据并训练。
为提高准确性、时效性,故障可视化诊断系统具有评价以及人工干预功能,即关于控制台可以通过人工进行以下干预:
A)可增减故障类型集合,可增减特征属性集合,然后重新训练系统。
B)对于开发版本的新问题,数据量小,可根据实际情况人工评估先验概率以及各特征的条件概率,以此作为新类型加入到类型集合C。
C)对于数据量大的故障类型,人工调整特征属性的条件概率。
D)对单个故障类型,可按规则过滤重新训练。如只输入1.0.0.13800版本,日期9月1日后的数据作为训练输入数据。
综上,本申请实施例提供的故障可视化诊断系统输入系统日志、故障堆栈等的一种或多种组合信息,检索其包含的特征属性,经过故障诊断模块给出最可能出现的问题类型、属性中具有明显单一化特征,并进行可视化展示以及解决方法建议。对于老问题,可快速反馈出原因和解决方法;对于新问题,可快速给出特征属性,掌握故障上下文信息。从而能够提升故障问题排查效率,快速定位问题、掌握故障上下文,并给出问题的解决建议。
至此已经结合本申请实施例提供的服务器的示例性应用和实施,说明本申请实施例提供的基于人工智能的程序故障处理方法。本申请实施例还提供程序故障处理装置,实际应用中,程序故障处理装置中的各功能模块可以由电子设备(如终端设备、服务器或服务器集群)的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)、存储器协同实现。图2示出了存储在存储器550中的程序故障处理装置555,其可以是程序和插件等形式的软件,例如,软件C/C++、Java等编程语言设计的软件模块、C/C++、Java等编程语言设计的应用软件或大型软件系统中的专用软件模块、应用程序接口、插件、云服务等实现方式,下面对不同的实现方式举例说明。
示例一、程序故障处理装置是移动端应用程序及模块
本申请实施例中的程序故障处理装置555可提供为使用软件C/C++、Java等编程语言设计的软件模块,嵌入到基于Android或iOS等系统的各种移动端应用中(以可执行指令存储在移动端的存储介质中,由移动端的处理器执行),从而直接使用移动端自身的计算资源完成相关的信息推荐任务,并且定期或不定期地通过各种网络通信方式将处理结果传送给远程的服务器,或者在移动端本地保存。
示例二、程序故障处理装置是服务器应用程序及平台
本申请实施例中的程序故障处理装置555可提供为使用C/C++、Java等编程语言设计的应用软件或大型软件系统中的专用软件模块,运行于服务器端(以可执行指令的方式在服务器端的存储介质中存储,并由服务器端的处理器运行),服务器使用自身的计算资源完成相关的程序故障处理任务。
本申请实施例还可以提供为在多台服务器构成的分布式、并行计算平台上,搭载定制的、易于交互的网络(Web)界面或其他各用户界面(UI,User Interface),形成供个人、群体或单位使用的程序故障处理平台等。
示例三、程序故障处理装置是服务器端应用程序接口(API,Application ProgramInterface)及插件
本申请实施例中的程序故障处理装置555可提供为服务器端的API或插件,以供用户调用,以执行本申请实施例的基于人工智能的程序故障处理方法,并嵌入到各类应用程序中。
示例四、程序故障处理装置是移动设备客户端API及插件
本申请实施例中的程序故障处理装置555可提供为移动设备端的API或插件,以供用户调用,以执行本申请实施例的基于人工智能的程序故障处理方法。
示例五、程序故障处理装置是云端开放服务
本申请实施例中的程序故障处理装置555可提供为向用户开发的程序故障处理云服务,供个人、群体或单位获取故障类型。
其中,程序故障处理装置555包括一系列的模块,包括获取模块5551、提取模块5552、确定模块5553、预测模块5554、统计模块5555、第一呈现模块5556以及第二呈现模块5557。下面继续说明本申请实施例提供的程序故障处理装置555中各个模块配合实现程序故障处理方案。
获取模块5551,用于获取程序的运行数据;提取模块5552,用于对所述运行数据进行特征提取处理,得到所述运行数据的故障特征;确定模块5553,用于基于所述运行数据的故障特征,确定在不同候选故障类型下所述故障特征的条件概率;预测模块5554,用于基于所述运行数据的先验概率以及在不同候选故障类型下所述故障特征的条件概率进行预测处理,得到所述程序的故障类型。
在一些实施例中,所述提取模块5552还用于对所述运行数据进行非统计特征提取,得到所述运行数据的非统计特征;对所述运行数据进行统计特征提取,得到所述运行数据的统计特征;将所述运行数据的非统计特征和所述运行数据的统计特征的集合作为所述运行数据的故障特征;其中,所述统计特征的类型包括以下至少之一:行为序列特征、故障关键字;所述非统计特征的类型包括以下至少之一:程序状态、版本号、运行环境、硬件信息、运行时间。
在一些实施例中,所述提取模块5552还用于对所述运行数据中的历史点击行为数据进行遍历处理,得到所述历史点击行为数据中每个历史点击信息的时间戳;对所述每个历史点击信息的时间戳进行降序排序,将排序在前的部分时间戳对应的历史点击信息,确定为有效期内的历史点击信息;将所述有效期内的历史点击信息的集合作为所述运行数据的行为序列特征。
在一些实施例中,所述提取模块5552还用于对所述运行数据中的日志数据进行关键字过滤处理,得到所述日志数据中的故障关键字;将所述日志数据中的故障关键字作为所述运行数据的故障关键字。
在一些实施例中,所述确定模块5553还用于获取不同候选故障特征与在不同候选故障类型下所述候选故障特征的条件概率的对应关系;基于所述运行数据的故障特征查询所述对应关系,以得到在不同候选故障类型下所述故障特征的条件概率。
在一些实施例中,所述确定模块5553还用于获取候选故障类型集合以及候选故障特征集合;针对所述候选故障类型集合中的任一候选故障类型执行以下处理:基于所述候选故障类型,对多个历史运行数据的故障特征进行遍历处理,得到在所述候选故障类型下所述候选故障特征集合中每个候选故障特征的占比,以作为在所述候选故障类型下每个候选故障特征的条件概率;基于在多个所述候选故障类型下每个候选故障特征的条件概率,确定不同候选故障特征与在不同候选故障类型下所述候选故障特征的条件概率的对应关系。
在一些实施例中,所述确定模块5553还用于确定有效期内的多个历史运行数据分别包括的故障特征;基于所述历史运行数据包括的故障特征,确定所述多个历史运行数据在多个候选故障特征的分布;当所述多个历史运行数据在多个候选故障特征的分布不满足分布均衡条件时,对所述多个候选故障特征进行增加、删除、修改中的至少一种的调整;将调整后的所述多个候选故障特征的集合作为所述候选故障类型集合。
在一些实施例中,所述确定模块5553还用于确定有效期内的多个历史运行数据分别对应的故障类型;基于所述历史运行数据的故障类型,确定所述多个历史运行数据在多个候选故障类型的分布;当所述多个历史运行数据在多个候选故障类型的分布不满足分布均衡条件时,对所述多个候选故障类型进行增加、删除、修改中的至少一种的调整;将调整后的所述多个候选故障类型的集合作为所述候选故障类型集合。
在一些实施例中,所述确定模块5553还用于确定有效期内的多个历史运行数据分别对应的故障类型;针对多个候选故障类型中的每个故障类型,执行以下处理:基于所述历史运行数据的故障类型,确定所述多个历史运行数据中属于所述候选故障类型的数量;
基于所述多个历史运行数据分别属于所述多个候选故障类型的数量,对所述多个候选故障类型进行增加、删除、修改中的至少一种的调整;将调整后的所述多个候选故障类型的集合作为所述候选故障类型集合。
在一些实施例中,所述确定模块5553还用于当所述多个候选故障类型的数量大于类型数量阈值、且所述多个历史运行数据中属于所述候选故障类型的数量小于数量阈值时,删除所述多个候选故障类型中的所述候选故障类型;当所述多个候选故障类型的数量小于或者等于所述类型数量阈值、且所述多个历史运行数据中属于所述候选故障类型的数量大于所述数量阈值时,将目标故障类型增加到所述多个候选故障类型中;当所述多个候选故障类型的数量小于或者等于所述类型数量阈值、且所述多个历史运行数据中属于所述候选故障类型的数量小于或者等于所述数量阈值时,将所述候选故障类型修改为所述目标故障类型;其中,所述目标故障类型不同于所述多个候选故障类型。
在一些实施例中,所述预测模块5554还用于针对任一候选故障类型执行以下处理:确定所述运行数据在所述候选故障类型的先验概率;对所述运行数据在所述候选故障类型的先验概率以及在所述候选故障类型下所述故障特征的条件概率进行乘积处理,将乘积处理结果作为所述运行数据在所述候选故障类型的预测概率;在所述运行数据在多个所述候选故障类型的预测概率中,将最大预测概率所对应的候选故障类型作为所述程序的故障类型。
在一些实施例中,预测模块5554还用于基于所述故障特征的权重,对在所述候选故障类型下所述故障特征的条件概率进行加权处理,得到加权后的条件概率;对所述运行数据在所述候选故障类型的先验概率以及所述加权后的条件概率进行乘积处理;基于多个所述候选故障类型的权重,对所述运行数据在多个所述候选故障类型的预测概率进行加权处理,得到加权后的预测概率;将最大的所述加权后的预测概率所对应的候选故障类型作为所述程序的故障类型。
在一些实施例中,所述程序故障处理装置555还包括:统计模块5555,用于基于所述不同候选故障类型,对多个历史运行数据进行遍历处理,得到所述多个历史运行数据在每个候选故障类型的占比;将所述多个历史运行数据在每个候选故障类型的占比作为所述运行数据的先验概率。
在一些实施例中,所述程序故障处理装置555还包括:第一呈现模块5556,用于基于所述程序的历史运行数据,确定不同故障类型与不同的候选故障规律的对应关系;基于所述程序的故障类型查询所述对应关系,将查询到的候选故障规律作为所述程序的故障规律;其中,所述故障规律包括以下至少之一:所述故障类型所独有的故障特征;所述故障类型包括的满足故障要求的多个故障特征;响应于所述程序的故障类型的故障查询操作,呈现所述程序的故障规律。
在一些实施例中,所述程序故障处理装置555还包括:第二呈现模块5557,用于基于所述程序的历史运行数据,确定所述程序的不同故障类型与不同的候选故障解决方案的对应关系;基于所述程序的故障类型查询所述对应关系,将查询到的候选故障解决方案作为所述程序的故障解决方案;响应于所述程序的故障解决方案的查询操作,呈现所述程序的故障解决方案。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的基于人工智能的程序故障处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的基于人工智能的程序故障处理方法,例如,如图3-5示出的基于人工智能的程序故障处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (16)

1.一种基于人工智能的程序故障处理方法,其特征在于,包括:
获取程序的运行数据,其中,所述运行数据包括故障时的运行数据以及故障前的运行数据;
对所述运行数据进行特征提取处理,得到所述运行数据的故障特征,其中,所述故障特征包括统计特征和非统计特征;
获取不同候选故障特征与在不同候选故障类型下所述候选故障特征的条件概率的对应关系;
基于所述运行数据的故障特征查询所述对应关系,以得到在不同候选故障类型下所述故障特征的条件概率;
基于所述不同候选故障类型,对多个历史运行数据进行遍历处理,得到所述多个历史运行数据在每个候选故障类型的占比;
将所述多个历史运行数据在每个候选故障类型的占比作为所述运行数据的先验概率;
基于所述运行数据的先验概率、以及在不同候选故障类型下所述故障特征的条件概率进行预测处理,得到所述程序的故障类型。
2.根据权利要求1所述的方法,其特征在于,所述对所述运行数据进行特征提取处理,得到所述运行数据的故障特征,包括:
对所述运行数据进行非统计特征提取,得到所述运行数据的非统计特征;
对所述运行数据进行统计特征提取,得到所述运行数据的统计特征;
将所述运行数据的非统计特征和所述运行数据的统计特征的集合作为所述运行数据的故障特征;
其中,所述统计特征的类型包括以下至少之一:行为序列特征、故障关键字;所述非统计特征的类型包括以下至少之一:程序状态、版本号、运行环境、硬件信息、运行时间。
3.根据权利要求2所述的方法,其特征在于,所述对所述运行数据进行统计特征提取,得到所述运行数据的统计特征,包括:
对所述运行数据中的历史点击行为数据进行遍历处理,得到所述历史点击行为数据中每个历史点击信息的时间戳;
对所述每个历史点击信息的时间戳进行降序排序,将排序在前的部分时间戳对应的历史点击信息,确定为有效期内的历史点击信息;
将所述有效期内的历史点击信息的集合作为所述运行数据的行为序列特征。
4.根据权利要求2所述的方法,其特征在于,所述对所述运行数据进行统计特征提取,得到所述运行数据的统计特征,包括:
对所述运行数据中的日志数据进行关键字过滤处理,得到所述日志数据中的故障关键字;
将所述日志数据中的故障关键字作为所述运行数据的故障关键字。
5.根据权利要求1所述的方法,其特征在于,所述获取不同候选故障特征与在不同候选故障类型下所述候选故障特征的条件概率的对应关系,包括:
获取候选故障类型集合以及候选故障特征集合;
针对所述候选故障类型集合中的任一候选故障类型执行以下处理:
基于所述候选故障类型,对多个历史运行数据的故障特征进行遍历处理,得到在所述候选故障类型下所述候选故障特征集合中每个候选故障特征的占比,以作为在所述候选故障类型下每个候选故障特征的条件概率;
基于在多个所述候选故障类型下每个候选故障特征的条件概率,确定不同候选故障特征与在不同候选故障类型下所述候选故障特征的条件概率的对应关系。
6.根据权利要求5所述的方法,其特征在于,所述获取候选故障特征集合,包括:
确定有效期内的多个历史运行数据分别包括的故障特征;
基于所述历史运行数据包括的故障特征,确定所述多个历史运行数据在多个候选故障特征的分布;
当所述多个历史运行数据在多个候选故障特征的分布不满足分布均衡条件时,对所述多个候选故障特征进行增加、删除、修改中的至少一种的调整;
将调整后的所述多个候选故障特征的集合作为所述候选故障类型集合。
7.根据权利要求5所述的方法,其特征在于,所述获取候选故障类型集合,包括:
确定有效期内的多个历史运行数据分别对应的故障类型;
基于所述历史运行数据的故障类型,确定所述多个历史运行数据在多个候选故障类型的分布;
当所述多个历史运行数据在多个候选故障类型的分布不满足分布均衡条件时,对所述多个候选故障类型进行增加、删除、修改中的至少一种的调整;
将调整后的所述多个候选故障类型的集合作为所述候选故障类型集合。
8.根据权利要求5所述的方法,其特征在于,所述获取候选故障类型集合,包括:
确定有效期内的多个历史运行数据分别对应的故障类型;
针对多个候选故障类型中的每个故障类型,执行以下处理:基于所述历史运行数据的故障类型,确定所述多个历史运行数据中属于所述候选故障类型的数量;
基于所述多个历史运行数据分别属于所述多个候选故障类型的数量,对所述多个候选故障类型进行增加、删除、修改中的至少一种的调整;
将调整后的所述多个候选故障类型的集合作为所述候选故障类型集合。
9.根据权利要求8所述的方法,其特征在于,所述基于所述多个历史运行数据分别属于所述多个候选故障类型的数量,对所述多个候选故障类型进行增加、删除、修改中的至少一种的调整,包括:
当所述多个候选故障类型的数量大于类型数量阈值、且所述多个历史运行数据中属于所述候选故障类型的数量小于数量阈值时,删除所述多个候选故障类型中的所述候选故障类型;
当所述多个候选故障类型的数量小于或者等于所述类型数量阈值、且所述多个历史运行数据中属于所述候选故障类型的数量大于所述数量阈值时,将目标故障类型增加到所述多个候选故障类型中;
当所述多个候选故障类型的数量小于或者等于所述类型数量阈值、且所述多个历史运行数据中属于所述候选故障类型的数量小于或者等于所述数量阈值时,将所述候选故障类型修改为所述目标故障类型;
其中,所述目标故障类型不同于所述多个候选故障类型。
10.根据权利要求1所述的方法,其特征在于,所述基于所述运行数据的先验概率、以及在不同候选故障类型下所述故障特征的条件概率进行预测处理,得到所述程序的故障类型,包括:
针对任一候选故障类型执行以下处理:
确定所述运行数据在所述候选故障类型的先验概率;
对所述运行数据在所述候选故障类型的先验概率以及在所述候选故障类型下所述故障特征的条件概率进行乘积处理,将乘积处理结果作为所述运行数据在所述候选故障类型的预测概率;
在所述运行数据在多个所述候选故障类型的预测概率中,将最大预测概率所对应的候选故障类型作为所述程序的故障类型。
11.根据权利要求10所述的方法,其特征在于,
所述对所述运行数据在所述候选故障类型的先验概率以及在所述候选故障类型下所述故障特征的条件概率进行乘积处理,包括:
基于所述故障特征的权重,对在所述候选故障类型下所述故障特征的条件概率进行加权处理,得到加权后的条件概率;
对所述运行数据在所述候选故障类型的先验概率以及所述加权后的条件概率进行乘积处理;
所述在所述运行数据在多个所述候选故障类型的预测概率中,将最大预测概率所对应的候选故障类型作为所述程序的故障类型,包括:
基于多个所述候选故障类型的权重,对所述运行数据在多个所述候选故障类型的预测概率进行加权处理,得到加权后的预测概率;
将最大的所述加权后的预测概率所对应的候选故障类型作为所述程序的故障类型。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述程序的历史运行数据,确定不同故障类型与不同的候选故障规律的对应关系;
基于所述程序的故障类型查询所述对应关系,将查询到的候选故障规律作为所述程序的故障规律;
其中,所述故障规律包括以下至少之一:所述故障类型所独有的故障特征;所述故障类型包括的满足故障要求的多个故障特征;
响应于所述程序的故障类型的故障查询操作,呈现所述程序的故障规律。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述程序的历史运行数据,确定所述程序的不同故障类型与不同的候选故障解决方案的对应关系;
基于所述程序的故障类型查询所述对应关系,将查询到的候选故障解决方案作为所述程序的故障解决方案;
响应于所述程序的故障解决方案的查询操作,呈现所述程序的故障解决方案。
14.一种程序故障处理装置,其特征在于,所述装置包括:
获取模块,用于获取程序的运行数据,其中,所述运行数据包括故障时的运行数据以及故障前的运行数据;
提取模块,用于对所述运行数据进行特征提取处理,得到所述运行数据的故障特征,其中,所述故障特征包括统计特征和非统计特征;
确定模块,用于获取不同候选故障特征与在不同候选故障类型下所述候选故障特征的条件概率的对应关系;基于所述运行数据的故障特征查询所述对应关系,以得到在不同候选故障类型下所述故障特征的条件概率;基于所述不同候选故障类型,对多个历史运行数据进行遍历处理,得到所述多个历史运行数据在每个候选故障类型的占比;将所述多个历史运行数据在每个候选故障类型的占比作为所述运行数据的先验概率;
预测模块,用于基于所述运行数据的先验概率、以及在不同候选故障类型下所述故障特征的条件概率进行预测处理,得到所述程序的故障类型。
15.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至13任一项所述的基于人工智能的程序故障处理方法。
16.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时实现权利要求1至13任一项所述的基于人工智能的程序故障处理方法。
CN202110040474.9A 2021-01-13 2021-01-13 基于人工智能的程序故障处理方法、装置、设备及存储介质 Active CN112699048B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110040474.9A CN112699048B (zh) 2021-01-13 2021-01-13 基于人工智能的程序故障处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110040474.9A CN112699048B (zh) 2021-01-13 2021-01-13 基于人工智能的程序故障处理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112699048A CN112699048A (zh) 2021-04-23
CN112699048B true CN112699048B (zh) 2023-11-17

Family

ID=75514264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110040474.9A Active CN112699048B (zh) 2021-01-13 2021-01-13 基于人工智能的程序故障处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112699048B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114997539B (zh) * 2022-08-03 2022-12-02 上海叁零肆零科技有限公司 一种燃气压力调节器故障预测方法与系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108074045A (zh) * 2018-01-30 2018-05-25 上海交通大学 风电机组整机脆弱性分析与故障排序方法及电子终端
CN112035286A (zh) * 2020-08-25 2020-12-04 海尔优家智能科技(北京)有限公司 故障原因的确定方法及装置、存储介质、电子装置
US10891219B1 (en) * 2017-08-07 2021-01-12 Electronic Arts Inc. Code failure prediction system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4711077B2 (ja) * 2006-06-09 2011-06-29 富士ゼロックス株式会社 故障診断システム、画像形成装置および故障診断プログラム
JP6365233B2 (ja) * 2014-10-24 2018-08-01 富士ゼロックス株式会社 障害予測装置、障害予測システム、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10891219B1 (en) * 2017-08-07 2021-01-12 Electronic Arts Inc. Code failure prediction system
CN108074045A (zh) * 2018-01-30 2018-05-25 上海交通大学 风电机组整机脆弱性分析与故障排序方法及电子终端
CN112035286A (zh) * 2020-08-25 2020-12-04 海尔优家智能科技(北京)有限公司 故障原因的确定方法及装置、存储介质、电子装置

Also Published As

Publication number Publication date
CN112699048A (zh) 2021-04-23

Similar Documents

Publication Publication Date Title
Li et al. Multivariate time series anomaly detection and interpretation using hierarchical inter-metric and temporal embedding
Li et al. Towards just-in-time suggestions for log changes
US11314576B2 (en) System and method for automating fault detection in multi-tenant environments
JP6457489B2 (ja) Javaヒープ使用量の季節的傾向把握、予想、異常検出、エンドポイント予測
Sipos et al. Log-based predictive maintenance
Kim et al. Which crashes should i fix first?: Predicting top crashes at an early stage to prioritize debugging efforts
Lou et al. Software analytics for incident management of online services: An experience report
Su et al. Detecting outlier machine instances through gaussian mixture variational autoencoder with one dimensional cnn
US11449798B2 (en) Automated problem detection for machine learning models
Lou et al. Experience report on applying software analytics in incident management of online service
EP3183622A2 (en) Population-based learning with deep belief networks
Dou et al. Pc 2 a: predicting collective contextual anomalies via lstm with deep generative model
US9489379B1 (en) Predicting data unavailability and data loss events in large database systems
Cai et al. A real-time trace-level root-cause diagnosis system in alibaba datacenters
Zhong et al. Study on network failure prediction based on alarm logs
CN115705501A (zh) 机器学习数据处理管道的超参数空间优化
CN112699048B (zh) 基于人工智能的程序故障处理方法、装置、设备及存储介质
Bielefeld Online performance anomaly detection for large-scale software systems
Zeng et al. Traceark: Towards actionable performance anomaly alerting for online service systems
Lomio et al. Rare: a labeled dataset for cloud-native memory anomalies
CN116991615A (zh) 一种基于在线学习的云原生系统故障自愈方法及装置
CN116343974A (zh) 用于检测临床数据集成期间的数据差异的机器学习方法
Watanabe et al. Failure prediction for cloud datacenter by hybrid message pattern learning
JP2020135739A (ja) 障害予兆検知システム
CN117081666B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40042021

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant