CN114691505A - 程序问题的定位方法、电子设备及存储介质 - Google Patents
程序问题的定位方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114691505A CN114691505A CN202210321758.XA CN202210321758A CN114691505A CN 114691505 A CN114691505 A CN 114691505A CN 202210321758 A CN202210321758 A CN 202210321758A CN 114691505 A CN114691505 A CN 114691505A
- Authority
- CN
- China
- Prior art keywords
- program
- classification
- keywords
- keyword
- rule
- 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.)
- Pending
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/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/041—Abduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种程序问题的定位方法、电子设备及存储介质。该程序问题的定位方法,包括:获取应用程序的错误报告数据,所述错误报告数据包括错误堆栈、日志记录和元信息,所述元信息包括设备信息、环境信息、问题场景标记信息中的至少一种;处理所述错误报告数据,收集并收集多个关键词;对所述多个关键词进行分类,获取每个分类下所述多个关键词中的每个关键词占比;根据所述分类及所述每个关键词占比获得所述程序问题的定位结论。这样的程序质量问题定位解决方案能够自动定位程序质量问题、提升定位质量问题的效率、大幅减少维护人员定位应用程序问题时的时间消耗。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种程序问题的定位方法、装置、电子设备和存储介质。
背景技术
随着计算机技术、尤其是智能移动终端技术的发展,出现了大量的应用程序。这样的应用程序在交付后可能会产生各种不同的问题。当问题发生时,应用程序的维护人员需要查看问题发生时采集的日志数据,寻找问题复现路径,从而获得问题解决方案。因此,传统的问题归因依赖于维护人员经验,并且可能会大量耗费维护人员的工时。甚至,维护人员在面临较为复杂问题时难以确定问题产生的原因,进而也增加了提出问题解决方案的难度。
因此,希望提供一种程序质量问题定位的解决方案,它能够提升定位问题的效率、大幅减少出现应用程序问题时进行人工维护的时间消耗。
本背景技术描述的内容仅为了便于了解本领域的相关技术,不视作对现有技术的承认。
发明内容
基于此,有必要针对上述技术问题,提供一种程序问题的定位方法、装置、计算机设备和存储介质,其能够高效、自动化地定位应用程序问题,减少出现应用程序问题时进行人工维护的时间消耗。
在第一方面,提供一种程序问题的定位方法,其包括:
获取应用程序的错误报告数据,所述错误报告数据包括错误堆栈、日志记录和元信息,所述元信息包括设备信息、环境信息、问题场景标记信息中的至少一种;
处理所述错误报告数据,并收集多个关键词;
对所述多个关键词进行分类,获取每个分类下所述多个关键词中的每个关键词占比;
根据所述分类及所述每个关键词占比获得所述程序问题的定位结论。
在第二方面,提供一种程序问题的定位方法,其包括:
获取应用程序的错误报告数据,所述错误报告数据包括错误堆栈、日志记录和元信息,所述元信息包括设备信息、环境信息、问题场景标记信息中的至少一种;
提供复合规则集,所述复合规则集包括清洗规则、分类规则、推理规则;
依次应用所述复合规则集的清洗规则、分类规则、推理规则处理所述错误报告数据,以生成所述程序问题的定位结论,其中所述清洗规则用于收集多个关键词,所述分类规则用于对所述多个关键词进行分类并获取每个分类下所述多个关键词中的每个关键词占比,所述推理规则用于根据所述分类和所述每个关键词占比获得所述程序问题的定位结论。
在第三方面,提供一种程序问题定位装置,其包括:
获取单元,配置成获取应用程序的错误报告数据,所述错误报告数据包括错误堆栈、日志记录和元信息,所述元信息包括设备信息、环境信息、问题场景标记信息中的至少一种;
收集单元,配置成处理所述错误报告数据,并收集多个关键词;
分类单元,配置成对所述多个关键词进行分类,获取每个分类下所述多个关键词中的每个关键词占比;
定位单元,配置成根据所述分类及所述每个关键词占比获得所述程序问题的定位结论。
在第四方面,提供一种程序问题定位装置,其包括:
获取单元,配置成获取应用程序的错误报告数据,所述错误报告数据包括错误堆栈、日志记录和元信息,所述元信息包括设备信息、环境信息、问题场景标记信息中的至少一种;
提供单元,配置成提供复合规则集,所述复合规则集包括清洗规则、分类规则、推理规则,所述清洗规则用于从所述错误报告数据收集多个关键词,所述分类规则用于对所述多个关键词进行分类并获取每个分类下所述多个关键词中的每个关键词占比,所述推理规则用于根据所述分类和所述每个关键词占比获得所述程序问题的定位结论;
生成单元,配置成依次应用所述复合规则集的清洗规则、分类规则、推理规则处理所述错误报告数据,以生成所述程序问题的定位结论。
在第五方面,提供一种电子设备,其包括:处理器和存储有计算机程序的存储器,所述处理器被配置成运行所述计算器程序时实现本申请任一实施例所述的方法。
在第六方面,提供一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序配置成被运行时实现本申请任一实施例所述的方法。
在本申请实施例中,通过获取应用程序的错误报告数据;处理所述错误报告数据,并收集多个关键词;对所述多个关键词进行分类,获取每个分类下所述多个关键词中的每个关键词占比;根据所述分类及所述每个关键词占比获得所述程序问题的定位结论,能够实现自动化地定位程序质量问题,从而提升质量问题定位效率,并且大幅减少出现应用程序问题时进行人工维护的时间消耗。由此,本申请实施例的方案进一步提高了应用程序的可维护性和安全性。
本发明内容是为了以简化形式介绍一些概念,这些概念将在下面的描述中进一步描述,本发明内容不打算标识所要求保护技术方案的必要特征。此外,要求保护的技术方案不限于解决在本文任何部分中指出的所有缺点的实施方式。
本发明实施例的其他可选特征和技术效果一部分在下文描述,一部分可通过阅读本文而明白。
附图说明
以下,结合附图来详细说明本发明的实施例,所示出的元件不受附图所显示的比例限制,附图中相同或相似的附图标记表示相同或类似的元件,其中:
图1示出了应用程序的错误堆栈示意图;
图2A示出了应用程序的元信息示意图;
图2B示出了应用程序的经处理的元信息示意图;
图3A示出了本发明实施例的方法的示例性流程图;
图3B示出了本发明实施例的方法的进程图;
图4示出了本发明实施例的方法的清洗过程的进程图;
图5A示出了本发明实施例的方法的数据推理的示例性流程图;
图5B示出了本发明实施例的方法的数据推理的进程图;
图6示出了本发明实施例的方法的数据推理的另一示例性流程图;
图7示出了本发明实施例的方法的数据推理的另一示例性流程图;
图8示出了根据本发明实施例的方法的另一示例性流程图;
图9A示出了本发明实施例的装置的结构示意图;
图9B示出了本发明实施例的装置的另一示例性结构示意图;
图10示出了能实施本发明实施例的方法的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合具体实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
本申请实施例所述的应用程序可以具有本领域技术人员理解的正常含义,有时也可以称作软件或软件应用。本申请实施例所述的应用程序可以是各种类型的应用程序,包括但不限于社交应用、专门支持子应用的专用应用、文件管理应用、邮件应用、购物应用或者游戏应用等。社交应用包括即时通信应用、SNS(Social Network Service,社交网站)应用或者直播应用等。
本申请实施例所述的应用程序可以在终端或者说客户端安装,而本申请实施例所述的方案可以部分或全部地在远离终端或客户端的一个或多个设备、如服务端中实施或实现。
本申请实施例所述的应用程序可以由各种不同的语言编写而成,包括但不限于C、C++、C#、Phyton、Java、JavaScript、Swift、Objective-C、Go(Golang)等,且本领域技术人员将明白,通过使用与编写应用程序相同或不相同的语言实现根据本申请实施例所述的方案。在本文中,将以其中的一个或多个语言为例呈现一些示例性例子,但本领域技术人员将可以在本发明的教导下以其他语言实现本发明实施例,这落入本发明的范围内。
本申请实施例所述的错误(Error)具有本领域的正常含义,涵盖应用程序的各种缺陷和故障,包括应用程序运行过程中因为错误造成异常、功能不正常、非正常中断、数据丢失、闪退、卡顿、掉帧等。
本申请实施例所述的程序问题的定位具有本领域的正常含义,涉及确定导致应用程序出现错误的问题原因。在本申请的某些实施例中,也可将程序问题的定位描述为程序问题的归因。
本申请实施例所述的堆栈具有本领域的正常含义,涉及暂时存放数据和地址的存储区。
如前所述,当应用程序交付后产生各种不同的问题时,当前的一种方式是应用程序的维护人员查看问题发生时采集的日志数据以及错误堆栈,寻找问题复现路径,从而获得问题解决方案。一种示例性的错误堆栈如图1所示。由于错误堆栈和日志数据中的信息繁杂,维护人员需要仔细阅读收集到的错误堆栈和日志数据,寻找共性,寻找可疑关键词,以最终锁定并修复问题。由此,这种问题归因手段严重依赖于维护人员经验,可能会大量耗费维护人员的工时。甚至,维护人员在面临较为复杂问题时难以确定问题产生的原因,也增加解决问题的难度。另外,对于不同维护人员而言前述的关键词可能理解不同,造成了协同处理问题的难度。
在一些改进手段中,会提出进一步采集应用程序的元信息,包括应用程序运行的场景信息、应用程序运行的设备信息等。如图2A示出了示例性的元信息页面。这些元信息可以辅助维护人员更有针对性地分析程序质量问题,或者辅助维护人员构建相同的问题场景。
再进一步地,如图2B示出了经处理的元信息的示意图。在此,元信息被加工,从而以更加结构化的方式呈现给维护人员,方便维护人员针对性地分析程序质量问题。
然而,以上三种方案中,均高度依赖于维护人员的专家经验。无论是否结合了元信息,由于信息内容冗杂,维护人员面对冗杂的信息,不仅难以提取可疑关键词,而且难以构建相似的问题场景,从而不能很好地定位程序问题。此外,面对相对大型的应用程序或程序模块出现错误时,还可能产生协调性问题。由此,以上的方案均可能造成定位程序问题的效率低下,无法做到自动化地定位程序问题。
对此,本申请实施例提供了用于应用程序的程序问题的定位方法和装置、电子设备和计算机可读介质,以实现程序质量问题定位自动化,从而提升定位效率,大幅减少当出现应用程序问题时人工维护的时间消耗,并且进一步提高应用程序的可维护性和安全性。
下面将参照附图,对本申请的具体实施例进行详细说明。
例如图3A示出了根据本申请一个实施例的程序问题的定位方法。该程序问题的定位方法可包括步骤S310至S340:
S310:获取应用程序的错误报告数据。
在本申请实施例中,错误报告数据可以包括错误堆栈、日志记录和元信息。
在一个具体实施例中,该步骤S310包括:响应于应用程序发生错误,收集应用程序的错误堆栈、日志记录和元信息。
在本申请实施例中,错误报告数据可以是响应式采集的。例如,可以在安装有应用程序的终端/客户端,例如移动终端中安装用于收集错误报告数据的收集模块,在应用程序出现错误时,该收集模块开始工作以收集日志记录、错误堆栈和元信息。更具体地,收集模块可以集成在应用程序中。
在一些实施例中,可以监测应用程序错误的发生,例如通过应用程序集成的一个或多个监测单元、模块和/或函数进行监测,从而在监测到错误时,例如监测到闪退、卡顿、掉帧等时,获取或收集错误报告数据。在另一些实施例中,可以基于用户报告确定应用程序错误的发生。例如,可以在接收到用户报告应用程序错误时,获取或收集该错误报告数据。在另一些实施例中,确定应用程序错误的发生可以涵盖以上两种情形。
在本申请实施例中,当收集模块收集了错误报告数据后,可以将其发送到服务器或服务端,例如可以通过HTTP协议进行发送,但具体的发送协议或通讯方式在此不作限制。在另外的实施例中,可以通过单独的发送模块或发送功能来发送错误报告数据。在一个具体实施例中,当服务器或服务端与各个用户的终端可以通过网络通信时,服务器或服务端可以通过网络直接接收各个用户的终端发送的错误报告数据。在另外的实施例中,计算机设备也可以不与各个用户的终端直接通信,各个用户的终端可以将操作日志统一发送至对应的中转设备,那么服务器或服务端可以直接从该中转设备获取到预设时间段内和/或预设用户的错误报告数据集合。
通常,错误堆栈涉及用于帮助定位报错位置的堆栈。在本申请实施例中,可以通过多种手段实现错误堆栈的获取,尤其是可以在应用程序中集成调取错误堆栈的一个或多个单元、模块和/或函数,当发生程序错误时,相应的工具、单元、模块和/或函数可以将与错误有关的数据和/或地址推送到堆栈(存储区)的顶部,堆栈的数据存放可以按照先进先出或后进先出实施。作为举例而非限制地,当使用JavaScript语言时,可以通过抛出(Throw)错误(Error)对象和/或堆栈跟踪(Stack Traces)模块来采集错误堆栈。如前所述地,对于不同的语言编写环境下,可以利用不同的单元、模块和/或函数来获取错误堆栈。
在本申请实施例中,日志(Log)记录也可以称为操作日志,涉及应用程序在使用过程中产生的操作记录。在本申请实施例中,可以通过多种方式获取日志记录,例如可以通过应用程序集成的单元、模块和/或函数来获取日志。在本申请实施例中,日志记录可以包括应用程序的日志记录。在本申请的另一些实施例中,日志记录可以进一步包括系统的日志记录,其例如可以通过系统自带的或者经修改的用于日志记录的工具、单元、模块和/或函数获取。作为举例而非限制地,当使用JavaScript语言时,例如可以通过调用相应的日志函数如console.log()获取应用程序的日志记录。在本申请实施例中,日志记录可包括在错误发生前后一段时间内的操作日志。
在本申请实施例中,元信息(Meta Information)涉及应用程序的固有信息和/或运行应用程序的电子设备的固有信息,包括但不限于应用程序和/或电子设备的设备信息、环境信息、问题场景标记信息等,例如应用程序版本、语言环境、语言版本、电子设备品牌、电子设备型号、电子设备唯一识别码、电子设备系统类型、系统版本等。元信息的一些示例也可以参考图2A和图2B具体列出的那些。
S320:处理所述错误报告数据,并收集多个关键词。
结合参考图3B和图4,可以提供包括多个清洗规则的清洗规则库。
在获取的错误报告数据中,例如错误堆栈、日志记录以及元信息中,通常含有大量无效信息。以图1所示堆栈为例,与错误有关的信息可能仅存在于某一行或某些行。为此,可以如图4所示地,在获取错误报告数据后,在加载清洗规则库的情况,依次将错误报告数据发送给清洗规则库中的每条清洗规则进行判断;针对每条规则,经判断后输出被收集的关键词,或者没有输出;直至清洗规则库的所有清洗规则均已判断完毕;并可选地收集这些关键词形成关键词库。此外,程序问题往往不是孤立的,某用户可能多次发生同一种程序问题;也可能多次发生不同种类的质量问题,这些问题之间有一定关联性;还可能的是,多位用户遇到同一种质量问题。由此,可以通过清洗规则收集可供进一步处理的关键词。
在一些实施例中,根据清洗规则的规定,收集的关键词可以是精简的关键词。例如,可以基于相应的清洗规则定位至错误报告数据的一行或多行后,例如图1所示的错误堆栈的第10行,收集该行中具有代表性的关键词,如java:693。
在一些实施例中,收集的关键词可以是上述精简关键词被处理和/或经变换的关键词。例如,收集的关键词可以是上述示例性精简的关键词中去掉冒号“:”的关键词,如java693,或者经各种变换,如经数值变换后的关键词,这种经变换的关键词可能有利于后续的数据推理。
在一些实施例中,根据清洗规则的规定,收集的关键词可以是统计关键词。例如,可以基于相应的清洗规则,判断某个或若干个术语出现的次数,将该次数或者术语+该次数作为关键词。
在一些实施例中,根据清洗规则的规定,收集的关键词可以是前述精简的关键词和统计关键词的组合。
在一些实施例中,根据清洗规则的规定,收集的关键词可以是对错误报告数据的不同文件,如同时针对错误堆栈和元信息收集的关键词。例如,可以基于相应的清洗规则,元信息符合预定要求的情况下,收集错误堆栈中的某个关键词。
S330:对所述多个关键词进行分类,获取每个分类下所述多个关键词中的每个关键词占比。
经过数据清洗后可以得到信息经简化的关键词库。关键词库虽然有可能帮助维护人员节省部分分析原始记录的时间,但仍无法形成有效的结论,高度依赖维护人员的专家经验进行人工推理。为此,本申请实施例进一步基于所收集的关键词进行处理。
具体地,在本申请实施例中,可以对收集的关键词进行分类。在本申请实施例中,所述分类是基于问题进行分类的。但可以想到,可以基于问题并且附加其他因素进行分类。
在本申请进一步实施例中,可以确定对应各问题的各分类下的每个关键词的占比。在一些实施例中,就分类而言,关键词是专属的,即同样的关键词仅能属于同一分类;在一些实施例中,同样的关键词可以属于若干个分类;在一些实施例中,可以包括上述的组合,即一些关键词是专属的,另一些关键词属于若干个分类。
在本申请实施例中,如图5B所示,对关键词进行分类并确定每个分类下的关键词的每个关键词的占比可以视作关键词预处理。由此,经预处理后的关键词可以用于后续处理、例如数据推理以便获取程序问题的定位结论。
S340:根据所述分类及所述每个关键词占比获得程序问题的定位结论。
在一个优选实施例中,程序问题的定位结论可以基于数据推理规则实现。
例如,步骤S340可包括:根据分类和每个关键词占比应用多个数据推理规则处理关键词,以获得程序问题的定位结论。
在一个具体实施例中,如图5A所示,步骤S340可包括步骤S341至S342:
S341:基于分类,在推理规则库中选择数据推理规则,其中被选择的数据推理规则对应关键词的分类。
在一些实施例中,可以基于关键词的分类在推理规则库中选择对应的数据推理规则。同样地,某些数据推理规则可能适用于一个分类,某些可能适用于多个分类。
在一些实施例中,还可以基于预设标准,选择部分分类对应的数据推理规则。例如,预设标准可以是基于关键词数量或次数阈值,例如若某分类下关键词数量或关键词出现次数小于预设阈值时,或者基于关键词占比,例如若某分类下关键词占比低于预设阈值时,不选择该分类对应的数据推理规则。
S342:应用被选择的数据推理规则处理对应分类的关键词,以根据所述每个关键词占比生成程序问题的定位结论。
结合参考图5A和图5B,在载入关键词库或经分类的关键词后,在加载推理规则库或经选择的数据推理规则情况下,将各分类的关键词分别发送给经选择的数据推理规则进行判断;经每条数据推理规则判断后输出一个程序问题的定位(或归因)结论或没有结论。
在一些实施例中,步骤S342中关键词的输入和/或数据推理规则的判断可以是分类的。例如某分类下的关键词仅利用对应分类的数据推理规则进行判断。在另一些实施例中,可以在步骤S341中获取对应分类的数据推理规则,但在步骤S342中的关键词输入和/或数据推理规则的判断时可以不分类,例如,可以将全部关键词分别输入经步骤S341获得的数据推理规则进行判断。
在本申请实施例中,步骤S342中的数据推理规则的处理可以是基于各分类的关键词占比,例如当针对某分类下的关键词应用一个或多个对应的数据推理规则时,该数据推理规则将根据该分类下的关键词占比判断是否该输出程序问题的定位结论。在一些实施例中,在步骤S342中,可选地仅当关键词占比大于预定阈值的关键词被用于进行数据推理。
在一个优选实施例中,可以利用聚类算法实现步骤S340所述的定位结论的获取。在一个具体实施例中,如图6所示,步骤S340可包括步骤S341’至S342’:
S341’:生成经分类的关键词的一个或多个聚类图,每个聚类图与一个或多个预定定位结论相关联。
在本申请实施例中,可以针对每个分类,例如每个问题对应的分类,生成一个聚类图。
如前所述地,每个聚类图可以与一个或多个预定定位结论相关联。例如,每个分类的聚类图可以分类对应的问题的一个或多个预定定位结论,优选多个定位结论相关联。
在一些实施例中,在各聚类图中,各预定定位结论可以对应各自的基准点或“重心”。由此,针对各聚类图,分类的关键词可以作为各个散点,并通过各种合适的聚类算法或模型来确定各散点所属的聚类。
作为前述实施例的补充或替代,可以提供已有的“基准”聚类图,其中该已有的基准聚类图中的各聚类可以对应于各自的预定定位(归因)结论,而且各聚类的散点可以是已确定问题定位(归因)的先验历史数据中的定位结论对应的关键词。在此,可以将当前的经分类的关键词作为散点加入到该基准聚类图中,并通过各种合适的聚类算法,确定当前的经分类的关键词是否属于基准聚类图中的聚类以及属于哪个聚类。
在本申请一些实施例中,根据本申请实施例所确定的聚类图可以用作未来数据推理的先验历史数据,从而用于调整前述的基准点或“重心”和/或为前述的“基准”聚类图的各聚类增加散点。
在本申请实施例中,聚类算法可以采用任何合适的聚类算法,包括但不限于划分式聚类,基于密度的聚类,层次化聚类。优选地,聚类算法为K-means聚类算法。
S342’:基于每个关键词占比,由一个或多个聚类图确定程序问题的定位结论。
更具体地,可以基于每个关键词占比确定一个或多个聚类图的聚类积聚程度,以确定程序问题的定位结论。
在本申请实施例中,可以基于各分类中的每个关键词的占比确定聚类的积聚程度,由此由前述步骤S341’所确定的聚类图,可以根据聚类的积聚程度,更具体地基于分类的关键词作为散点的聚类积聚程度来确定该程序问题的定位结论。例如,当预定定位结论对应的由基于分类的关键词构成的聚类的散点数量或散点密度超过预设阈值时,该预定定位结论可以作为经确定的程序质量问题的定位结论。
在图6所示的实施例中,基于分类的聚类图同样可以结合图5A和图5B所示的分类阈值,例如对于在预定阈值之上的分类才生成聚类图,从而由此可以获得快速,但仍然准确的结论。
在另一个优选实施例中,可以利用相似度计算实现步骤S340所述的定位结论的获取。在一个具体实施例中,如图7所示,步骤S340可以包括步骤S341”至S343”:
S341”:确定各分类对应的一个或多个预定定位结论,每个预定定位结论具有各自的参考关键词组合。
在此,各分类具有对应的一个或多个预定定位结论。而每个预定定位结论具有各自的参考关键词组合,这可以视作该预定定位(归因)结论的“标准”关键词组合。在一些实施例中,该关键词组合可以包括该组合中每个关键词的占比,例如该关键词组合中可以包括N个关键词A。
S342”:基于每个关键词占比,计算经分类的关键词与该分类对应的预定定位结论的参考关键词组合的相似度。
在本申请实施例中,可以基于多种不同方法来进行相似度计算,包括但不限于欧式距离、曼哈顿距离、余弦距离、切比雪夫距离、汉明距离等。
在本申请实施例中,在进行相似度计算时,可以基于各分类的每个关键词占比和参考关键词组合的关键词占比进行相似度计算。
S343”:基于所计算的相似度,确定程序问题的定位结论。
在此,可以提供预设的相似度阈值,对于相似度大于预设阈值的预定定位结论可以输出作为程序问题的定位结论。
在图7所示的实施例中,基于分类的相似度计算同样可以结合图5A和图5B所示的分类阈值,例如对于在预定阈值之上的分类才进行相似度计算,从而由此可以获得快速,但仍然准确的结论。
在另一个优选实施例中,可以利用合并算法实现步骤S340所述的数据推理,其方法类似于聚类算法,在此不赘述。
本领域技术人员将明白,在本申请多个实施例中可以根据需要对某些特征,例如关键词和/或关键词占比进行数值转换或特征化且可选地进一步处理,例如在如图6至图7的实施例中,可以根据需要将关键词(及相应的参考关键词等)和/或关键词占比特征化以转换成参数或特征向量,如一维向量或多维向量(矩阵),且可选地基于关键词占比设定权重和/或参数矩阵的参数值,并可选地进行数值处理,例如归一化等,这落入发明的范围内且不赘述。
可选地,如图3A所示,该程序问题的定位方法还可包括S350:
S350:由所述定位结论生成程序质量分析报告。
在此,可以将前述多个实施例中获得的程序问题的定位结论进行汇总,以得到程序质量分析报告。
作为图3A所示实施例的另一替代实施例,还可以将清洗模块以及数据推理模块进行合并,并且相应地合并清洗规则库和推理规则库。相应地,可以在清洗规则和数据推理规则之间插入分类规则,以便实现关键词的归类,并且可选地还可确定关键词的占比。例如,图8示出了根据本发明另一实施例的一种程序问题的定位方法,定位方法可包括S810至S830:
S810:获取应用程序的错误报告数据。在本申请实施例中,所述错误报告数据包括错误堆栈、日志记录和元信息,所述元信息包括设备信息、环境信息、问题场景标记信息中的至少一种。
S820:提供复合规则集,所述复合规则集包括清洗规则、分类规则、推理规则。
在本申请实施例中,所述清洗规则用于从所述错误报告数据收集多个关键词。在本申请实施例中,所述分类规则用于对所述多个关键词进行分类并获取每个分类下所述多个关键词中的每个关键词占比。在本申请实施例中,所述推理规则用于根据所述分类和所述每个关键词占比获得所述程序问题的定位结论。
S830:依次应用所述复合规则集的清洗规则、分类规则、推理规则处理所述错误报告数据,以生成程序问题的定位结论。
可选地,如图8所示,该程序问题的定位方法还可包括S840:
S840:由所述程序问题的定位结论生成程序质量分析报告。
在此实施例中,能够提供精简的模型实现了程序质量问题的定位。
如图9A示出了根据本发明一个实施例的程序问题的定位装置900。该程序问题的定位装置900可包括获取单元910、收集单元920、分类单元930和定位单元940。该获取单元910配置成获取应用程序的错误报告数据,所述错误报告数据包括错误堆栈、日志记录和元信息,所述元信息包括设备信息、环境信息、问题场景标记信息中的至少一种。该收集单元920配置成处理所述错误报告数据,并收集多个关键词。该分类单元930配置成对所述多个关键词进行分类,获取每个分类下所述多个关键词中的每个关键词占比。该定位单元940配置成根据所述分类及所述每个关键词占比获得所述程序问题的定位结论
在一些实施例中,获取单元910可包括安装在服务端上的接收模块。在一些实施例中,获取单元910还可包括安装在应用程序或安装应用程序的客户端上的采集/上报模块。在一些实施例中,该收集单元920、分类单元930和定位单元940可安装在服务端上。
如图9B示出了根据本发明一个实施例的程序问题的定位装置900’。该程序问题的定位装置900’可包括获取单元910’、提供单元920’和生成单元930’。该获取单元910’配置成获取应用程序的错误报告数据,所述错误报告数据包括错误堆栈、日志记录和元信息。该提供单元920’配置成提供复合规则集,所述复合规则集包括清洗规则、分类规则、推理规则。该生成单元930’配置成依次应用所述复合规则集的清洗规则、分类规则、推理规则处理所述错误报告数据,以生成程序问题的定位结论。
在一些实施例中,获取单元910’可包括安装在服务端上的接收模块。在一些实施例中,获取单元910’还可包括安装在应用程序或安装应用程序的客户端上的采集/上报模块。在一些实施例中,该提供单元920’和生成单元930’可安装在服务端上。
在本发明的教导下,方法实施例的特征可以以不矛盾的方式结合到装置、设备或存储介质实施例或其他方法实施例中以获得新的实施例,装置实施例的特征也可以以不矛盾的方式结合方法、设备或存储介质实施例或其他装置实施例中以获得新的实施例,这落入本发明的范围中。
在一些实施例中,提供了一种电子设备,其可包括处理器和存储有计算机程序的存储器,所述处理器被配置为在运行计算机程序时执行本申请任一实施例的方法。
图10示出了一种可以实施本申请实施例的方法的示例性电子设备1000的示意图,在一些实施例中可以包括比图示更多或更少的电子设备。在一些实施例中,可以利用单个或多个电子设备实施。在一些实施例中,可以利用云端或分布式的电子设备实施。
如图10所示,电子设备1000包括处理器1001,其可以根据存储在只读存储器(ROM)1002中的程序和/或数据或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序和/或数据而执行各种适当的操作和处理。处理器1001可以为单核或多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1001可以包括通用的主处理器(如CPU)以及一个或多个特殊的协处理器,例如图形处理器(GPU)、神经网络处理器(NPU)、数字信号处理器(DSP)或其他通用或专用集成电路等。在RAM1003中,还存储有电子设备1000操作所需的各种程序和数据。处理器1001、ROM1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
上述处理器与存储器共同用于执行存储在存储器中的程序,所述程序被计算机执行时能够实现上述各实施例描述的模型生成方法、识别方法的步骤或功能。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如显示器以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
图10仅示意性示出示意性的电子设备,但根据本申请实施例的电子设备可以包括比图10所示电子设备更多或更少的组件或者具有与图10所示实施例设备相同、部分相同或不相同的架构。
尽管未示出,在一些实施例中还提供一种计算机可读存储介质,存储有计算机程序,计算机程序配置成被运行时执行任一本申请实施例的方法。该计算机程序包含组成根据本申请实施例的装置的各个程序模块/单元,各个程序模块/单元构成的计算机程序被执行时能够实现与上述实施例中描述的方法中的各个步骤所对应的功能。该计算机程序还可在如本申请实施例所述的电子设备上运行。
在本申请的实施例的存储介质包括非易失性和/或易失性的可以由任何方法或技术来实现信息存储的物品。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域技术人员应明白,本说明书的实施例可以以方法、系统或计算机程序产品等多种形式实施。因此,本领域技术人员可想到,上述实施例阐明的功能模块/单元或控制器以及相关方法步骤的实现,可以用软件、硬件和软/硬件结合的方式实现。
除非明确指出,根据本申请实施例记载的方法、程序的动作或步骤并不必须按照特定的顺序来执行并且仍然可以实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本文中,针对多个实施例进行了描述,但为简明起见,各实施例的描述并不是详尽的,各个实施例之间相同或相似的特征或部分可能会被省略。在本文中,“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”意指适用于根据本申请的至少一个实施例或示例中,而非所有实施例。上述术语并不必然意味着指代相同的实施例或示例。在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
已参考上述实施例具体示出并描述了本申请的示例性系统及方法,其仅为实施本系统及方法的最佳模式的示例。本领域的技术人员可以理解的是可以在实施本系统及/或方法时对这里描述的系统及方法的实施例做各种改变而不脱离界定在所附权利要求中的本发明的精神及范围。
Claims (11)
1.一种程序问题的定位方法,其特征在于,包括:
获取应用程序的错误报告数据,所述错误报告数据包括错误堆栈、日志记录和元信息,所述元信息包括设备信息、环境信息、问题场景标记信息中的至少一种;
处理所述错误报告数据,并收集多个关键词;
对所述多个关键词进行分类,获取每个分类下所述多个关键词中的每个关键词占比;
根据所述分类及所述每个关键词占比获得所述程序问题的定位结论。
2.根据权利要求1所述的程序问题的定位方法,其特征在于,还包括:
由所述定位结论生成程序质量分析报告。
3.根据权利要求1所述的程序问题的定位方法,其特征在于,所述获取应用程序的错误报告数据,包括:
响应于应用程序发生错误,收集应用程序的错误堆栈、日志记录和元信息。
4.根据权利要求1所述的程序问题的定位方法,其特征在于,根据所述分类及所述每个关键词占比获得所述程序问题的定位结论,包括:
根据所述分类和所述每个关键词占比应用多个数据推理规则处理关键词,以获得所述程序问题的定位结论。
5.根据权利要求4所述的程序问题的定位方法,其特征在于,根据所述分类和所述每个关键词占比应用多个数据推理规则处理关键词,以获得所述程序问题的定位结论,包括:
基于所述分类,在推理规则库中选择数据推理规则,其中被选择的数据推理规则对应所述关键词的分类;
应用被选择的数据推理规则处理对应分类的关键词,以根据所述每个关键词占比生成所述程序问题的定位结论。
6.根据权利要求1所述的程序问题的定位方法,其特征在于,根据所述分类及所述每个关键词占比获得所述程序问题的定位结论,包括:
生成经分类的关键词的一个或多个聚类图,每个聚类图与一个或多个预定定位结论相关联;
基于每个关键词占比,由所述一个或多个聚类图确定所述所述程序问题的定位结论。
7.根据权利要求1所述的程序问题的定位方法,其特征在于,根据所述分类及所述每个关键词占比获得所述程序问题的定位结论,包括:
确定各分类对应的一个或多个预定定位结论,每个预定定位结论具有各自的参考关键词组合;
基于每个关键词占比,计算经分类的关键词与该分类对应的预定定位结论的参考关键词组合的相似度;
基于所计算的相似度,确定所述程序问题的定位结论。
8.一种程序问题的定位方法,其特征在于,包括:
获取应用程序的错误报告数据,所述错误报告数据包括错误堆栈、日志记录和元信息,所述元信息包括设备信息、环境信息、问题场景标记信息中的至少一种;
提供复合规则集,所述复合规则集包括清洗规则、分类规则、推理规则,所述清洗规则用于从所述错误报告数据收集多个关键词,所述分类规则用于对所述多个关键词进行分类并获取每个分类下所述多个关键词中的每个关键词占比,所述推理规则用于根据所述分类和所述每个关键词占比获得所述程序问题的定位结论;
依次应用所述复合规则集的清洗规则、分类规则、推理规则处理所述错误报告数据,以生成所述程序问题的定位结论。
9.根据权利要求8所述的程序问题的定位方法,其特征在于,还包括:
由所述程序问题的定位结论生成程序质量分析报告。
10.一种电子设备,其特征在于,包括:处理器和存储有计算机程序的存储器,所述处理器被配置成运行所述计算器程序时实现根据权利要求1至9中任一项所述的方法。
11.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序配置成被运行时实现根据权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210321758.XA CN114691505A (zh) | 2022-03-25 | 2022-03-25 | 程序问题的定位方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210321758.XA CN114691505A (zh) | 2022-03-25 | 2022-03-25 | 程序问题的定位方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114691505A true CN114691505A (zh) | 2022-07-01 |
Family
ID=82140582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210321758.XA Pending CN114691505A (zh) | 2022-03-25 | 2022-03-25 | 程序问题的定位方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114691505A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880247A (zh) * | 2022-07-04 | 2022-08-09 | 成都行远捷科技有限公司 | 分布式条件下基于日志引导系统的bug分析方法 |
-
2022
- 2022-03-25 CN CN202210321758.XA patent/CN114691505A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880247A (zh) * | 2022-07-04 | 2022-08-09 | 成都行远捷科技有限公司 | 分布式条件下基于日志引导系统的bug分析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111027615B (zh) | 基于机器学习的中间件故障预警方法和系统 | |
Zhou et al. | Resolution recommendation for event tickets in service management | |
CN113254255B (zh) | 一种云平台日志的分析方法、系统、设备及介质 | |
CN106164896B (zh) | 用于发现对手方关系的多维递归方法及系统 | |
US11822578B2 (en) | Matching machine generated data entries to pattern clusters | |
CN112685324B (zh) | 一种生成测试方案的方法及系统 | |
CN111078513A (zh) | 日志处理方法、装置、设备、存储介质及日志告警系统 | |
WO2021174699A1 (zh) | 用户筛选方法、装置、设备及存储介质 | |
CN115174231B (zh) | 一种基于AI Knowledge Base的网络欺诈分析方法及服务器 | |
CN117221087A (zh) | 告警根因定位方法、装置及介质 | |
CN116126807A (zh) | 一种日志分析方法及相关装置 | |
CN114691505A (zh) | 程序问题的定位方法、电子设备及存储介质 | |
CN109711849B (zh) | 以太坊地址画像生成方法、装置、电子设备及存储介质 | |
CN117709691A (zh) | 一种基于云服务的智能分包管理方法及系统 | |
CN116452212B (zh) | 一种智能客服商品知识库信息管理方法及系统 | |
CN111241821B (zh) | 确定用户的行为特征的方法和装置 | |
CN113517998B (zh) | 预警配置数据的处理方法、装置、设备及存储介质 | |
CN113569879B (zh) | 异常识别模型的训练方法、异常账号识别方法及相关装置 | |
CN114896955A (zh) | 数据报表加工方法、装置、计算机设备及存储介质 | |
CN115409104A (zh) | 用于识别对象类型的方法、装置、设备、介质和程序产品 | |
CN114756401A (zh) | 基于日志的异常节点检测方法、装置、设备及介质 | |
CN113535458A (zh) | 异常误报的处理方法及装置、存储介质、终端 | |
CN112417007A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN111475380A (zh) | 一种日志分析方法和装置 | |
CN116719942B (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 |