CN113227971A - 实时应用错误识别和缓解 - Google Patents

实时应用错误识别和缓解 Download PDF

Info

Publication number
CN113227971A
CN113227971A CN201980085348.6A CN201980085348A CN113227971A CN 113227971 A CN113227971 A CN 113227971A CN 201980085348 A CN201980085348 A CN 201980085348A CN 113227971 A CN113227971 A CN 113227971A
Authority
CN
China
Prior art keywords
error
activity log
application
entry
log entries
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
Application number
CN201980085348.6A
Other languages
English (en)
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.)
PayPal Inc
Original Assignee
PayPal Inc
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 PayPal Inc filed Critical PayPal Inc
Publication of CN113227971A publication Critical patent/CN113227971A/zh
Pending legal-status Critical Current

Links

Images

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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0766Error or fault reporting or storing
    • G06F11/0769Readable error formats, e.g. cross-platform generic formats, human understandable formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种方法可由网络服务器执行并且包括:使用历史原始用户数据作为到在仿真环境中运行的第一应用的输入;在仿真环境中从第一应用接收活动日志条目;识别与第一应用的错误相对应的第一组活动日志条目;响应于识别出第一组活动日志条目而将错误条目保存在非易失性存储介质中,该错误条目包括第一组活动日志条目和响应于第一应用的错误而要采取的动作的标识;以及使得监视系统生成与该错误条目相对应的第一提醒。

Description

实时应用错误识别和缓解
技术领域
本公开总体涉及应用错误检测,并且更具体地,涉及软件应用错误识别和补救动作。
背景技术
可通过web访问的应用正变得无处不在,并且复杂性每年都在增大。例如,在过去的几年里,设立金融账户可能要求消费者走进实体银行分行。然而,今天,消费者可利用金融机构或支付服务提供商的web应用来设立金融账户。
一些行业,例如金融服务,可能会受到严格的政府监管,而且对web应用停机的容忍度也很低,在这里web应用停机可转化为收入损失。因此,针对这种行业的web应用可包括大量的高级特征,其中许多这些高级特征可直接与公司的收入相关联,并且被设计为符合法律标准。因此,这种行业在公开提供应用之前可执行广泛的测试,并且可能有负责解决web应用中的错误的开发人员。
用于测试web应用和解决web应用中的错误的当前系统可能是不够的。例如,一些web应用可利用专门为测试而设计的数据来进行测试,尽管该数据可能指示或不指示真实世界的使用情况,并且也可能不全面反映可能经历的错误。此外,在web应用的用户经历错误和开发者团队被提醒出现错误的时间之间可能有一个时间滞差。该延迟在某些情况下可能是数小时、数日或者甚至数星期。
将会希望有一种技术解决方案,其可提供技术来在测试期间识别更多的错误并且提高响应于在实况应用中识别的错误的补救动作的速度和效率。
附图说明
图1是根据实施例的适合用于应用错误检测和补救的联网系统的框图。
图2是根据一个实施例的示例日志序列的图示。
图3是根据一个实施例的图1的知识库中的示例错误条目的图示。
图4是根据一个实施例的在仿真环境中实现系统分析器和预测器的架构的图示。
图5是根据一个实施例的在实况环境中实现预测器和知识库的架构的图示。
图6是根据一个实施例的用于创建知识库并且采取补救动作的示例方法的图示。
图7是根据一个实施例的适用于实现图1中的一个或多个组件的计算机系统的框图。
通过参考接下来的具体实施方式来最好地理解本公开的各实施例及其优点。应当理解,相似的附图标记被用于识别一幅或多幅附图中图示的相似元素,其中的展示是为了图示本公开的实施例,而不是为了对其进行限制。
具体实施方式
各种实施例提供了用于在实况环境中的应用的测试阶段期间以及该应用的操作期间识别错误的技术。各种实施例还可提供响应于对错误的检测的高效动作和提醒。
在一个示例中,应用在实况环境的仿真中运行,即,仿真环境。在这个示例中,仿真环境可被结构化,以便开发者能够访问仿真环境,但应用不是实况的或者以其他方式呈现给终端用户的。另外,在这个示例中,到仿真环境中的应用的输入包括历史原始用户数据。历史原始用户数据的示例可包括由真实的终端用户为该应用的先前版本或其他类似的应用而输入的数据。例如,历史原始用户数据可包括由终端用户在填写在线应用中的字段时输入的姓名、地址、个人和财务信息,等等。此外,历史原始用户数据的数据库可能相当大,从而它可能代表预期会导致错误的大量终端用户访问。
例如,在一个示例中,可预期在线应用每10,000次真实世界用户访问就会崩溃一次。相比之下,历史原始用户数据的数据库可包括足够的用户数据,以代表比这至少大一个数量级(例如,大三个数量级或者1000万真实世界用户访问)。当然,历史原始用户数据的数据库可以是任何适当的大小或范围,并且不限于这些示例。
继续该示例,仿真环境可使用该历史原始用户数据作为到应用的输入,并且应用在其运行时生成活动日志条目。此示例中的日志条目为由应用执行的每个动作提供了记录。一些日志条目可指示出不同严重程度的异常。例如,一些严重程度较低的异常可在其各自的日志条目中被标记为“调试”,而严重程度较高的异常可在其各自的日志条目中被标记为“错误”或“致命”。当然,这些只是错误类别的示例,而各种实施例可使用任何适当的错误类别集合来描述日志条目所指示的异常。
另外,在这个示例中,系统分析器可检查日志条目以识别应用错误,例如,web应用、移动应用、桌面应用、后端服务等等中的错误。例如,系统分析器可被设置为检查与严重程度较高的异常(例如,“错误”或更严重)相关联的日志条目,并且识别这些活动日志条目中的独特错误。例如,在检查日志条目时,系统分析器可能会遇到1000个错误,但其中500个错误实际上可能代表重复发生的同一独特错误。系统分析器可解析日志条目,并且然后使用经解析的信息来关联与相同错误相对应的日志条目的群组。
继续该示例,系统分析器可与包括大量错误条目的知识库或数据库进行通信。对于由系统分析器识别的每一个独特的错误,系统分析器检查知识库中那些已经在知识库中识别出的错误之一。对于那些已经知道的错误,系统分析器可简单地丢弃它们,因为它们已经被包括在知识库中。对于每个新的错误,系统分析器可在知识库中创建新的条目,其中该条目包括与各个错误相对应的一组活动日志条目,以及错误的标识,以及与针对该错误的补救动作相关的信息。
仿真环境还可包括错误预测器,它能够访问知识库。当错误预测器进行操作时,它访问知识库,并且基于识别出的那些错误来采取适当的动作。例如,它可使得监视系统为每个错误条目来生成提醒,其中监视系统与开发者团队进行通信,以提醒开发者团队注意这些错误。然后,开发者团队可审查提醒,并且在在面向用户的实况环境中运行应用之前适当地纠正错误。
各种实施例允许使用错误预测器的输出,来不仅修复仿真环境中的应用的代码中的错误,而且修复其他应用(这些应用可能正在开发中,也可能是实况运行的)的代码中的错误。例如,该开发者团队的许多应用可使用相同或相似的代码部分,从而,影响仿真环境中的应用的代码的一部分的错误预期会影响使用相同代码部分的另一个应用。开发者团队在修复其他应用中的这些错误时,也可考虑到这一点。
应当注意,在该示例中,开发者团队可能会决定通过修复代码的一部分来修复一些错误,而其他的错误可能会被以不同的方式进行处理。例如,当应用无法访问特定的数据库时,可能出现已知的错误。知识库中的错误条目中所指示的补救动作于是可指导开发者团队在看到该错误时重新启动数据库。然而,开发者团队可能没有针对该特定错误的代码修复。在任何情况下,随着应用在实况环境中操作,可预期一些错误会不时地出现。
因此,错误预测器也可在实况环境中操作,并且在其被实时呈现给终端用户时监视来自一个或多个应用的活动日志。当错误预测器操作时,它对照知识库中的条目来检查实况应用的活动日志条目,并且当错误预测器遇到错误时,它根据知识库中的相应条目来采取动作(例如,向开发者团队发送提醒)。
各种实施例可提供一个或多个优点。例如,各种实施例可识别独特的错误,并且将它们保存到知识库中,带着指示要采取的动作的注释,例如提醒开发者团队或自动修复错误。那些独特的错误可通过利用历史原始用户数据的大型数据库的仿真来识别。虽然预期没有任何测试方案能够识别出真实世界使用中可能出现的100%的可能错误,但数据库的大小和历史原始用户数据的性质在可识别的独特错误的数目上可能更全面。
此外,知识库的创建本身提供了记录这些已知的错误以及要采取的动作的各优点。错误预测器随后可与知识库通信操作,以从仿真和实况操作中识别错误并且采取适当的动作。错误预测器与知识库相结合,可提供比在更手动的过程中所预期的更快的反馈,在更手动的过程中,开发者团队可以通过反应系统或者从基于人类终端用户反馈的系统被告知错误。下文就各种用例来进一步描述其他优势。
图1是根据实施例的适合用于错误检测和纠正的联网系统的框图。联网系统100可包括或实现多个服务器和/或软件组件,它们进行操作以执行各种服务。示例性服务器可包括,例如,独立的和企业级的服务器,其操作服务器OS,例如
Figure BDA0003125426110000051
OS、
Figure BDA0003125426110000052
OS、
Figure BDA0003125426110000053
OS或者其他适当的基于服务器的OS。可以理解,图1中图示的服务器可以以其他方式部署,并且对于给定的实现方式,由这种服务器执行的操作和/或提供的服务可被组合或分离,并且可由更多或更少数目的服务器来执行。一个或多个服务器可由相同或不同的实体进行操作和/或维护。
系统100可包括仿真环境130和实况环境140,这两者都可由一个或多个服务器运行或托管,或者是一个或多个服务器的一部分。系统100还包括开发者设备120和用户设备110,并且不同环境/服务器130、140和设备110、120中的每一者都与网络160进行通信。例如,用户设备可通过网络160来访问服务141,并且开发者设备120也可通过网络160来访问实况环境140和仿真环境130。
服务器可各自包括一个或多个处理器、存储器和其他适当的组件,用于执行存储在一个或多个计算机可读介质上的指令(例如,程序代码)和/或数据,以实现本文描述的各种应用、数据和步骤。例如,这种指令可被存储在一个或多个计算机可读介质中,例如位于系统100的各种组件内部和/或外部的存储器或数据存储设备,和/或是通过网络160可访问的。
网络160可被实现为单个网络或者多个网络的组合。例如,在各种实施例中,网络160可包括互联网或者一个或多个内联网、陆线网络、无线网络和/或其他适当类型的网络。
设备110和120分别与用户和开发者相关联。在各种实施例中,用户是人类终端用户,其可在实况环境140中访问服务141,执行各种动作中的任何一种,例如创建账户、更新账户、转移资金、进行购买,等等。在各种实施例中,开发者也可以是人类用户,但是开发者可以是负责维护各种应用(或服务)的人,包括为应用编写和编辑代码。
用户设备110和开发者设备120可利用如下任何适当的硬件和软件来实现:这些硬件和软件被配置为通过网络160进行有线和/或无线通信。例如,在一个实施例中,设备110、120中的每一者可实现为个人计算机(PC),智能手表,智能电话,具有额外硬件(例如,NFC芯片、BLE硬件等等)的智能电话,具有类似硬件配置的可穿戴设备(例如,游戏设备,虚拟现实头盔),或者与具有独特硬件配置并且运行适当软件的智能电话进行交谈,膝上型计算机,和/或能够发送和/或接收数据的其他类型的计算设备,例如来自AppleTM的iPadTM
关于仿真环境130,上面介绍了它是一个或多个服务器的一部分或者是由一个或多个服务器运行/托管的。在一些实施例中,仿真环境130可包括被布置为映射化简(mapreduce)系统的一组服务器,其中映射化简系统的示例包括来自Apache软件基金会的HadoopTM。例如,仿真服务131、系统分析器132、预测器133和知识库134可在多个分布式服务器和分布式存储装置上实现,以利用分布式算法来处理和生成大数据集。当然,仿真环境130可根据情况利用任何数目的计算设备来实现,并且不限于映射化简系统,也不限于大数据集。
继续该示例,仿真环境130包括仿真服务131,它是在仿真环境130中运行的服务。例如,仿真服务131可包括在仿真环境内执行并且使用来自情境数据数据库136的历史原始用户数据作为其输入的应用。仿真环境130不对外暴露,从而用户设备110不能访问仿真环境130。与之对比,在该示例中,开发者设备120可通过网络160与仿真环境130交互,以监督各种服务的仿真以及系统分析器132、预测器133和监视器135的操作。
情境数据数据库136可包括来自过去终端用户在实况环境140中的交互的用户数据。在一个示例中,服务可在实况环境中运行并且面向用户,从而使得众多终端用户(例如,与用户设备110相关联)可与服务交互,以设立账户、进行购买、转移资金、更新个人信息或偏好,等等。随着时间的推移并且通过多个服务与数千或数百万个用户的交互,由用户输入的数据可被保存到情境数据数据库136。
一个示例用例包括具有请求用户地址的交互字段的实况应用。随着时间的推移,用户可与之交互并输入其地址信息。在数据输入成功的情况下,该示例应用可将这些地址保存到数据库(未示出)中。然而,如果用户输入了不正确的地址并且回去修改,则一些示例系统可能会删除不正确的数据,并且用纠正后的数据来替换它,而不保存不正确数据的记录。与之对比,本公开的各种实施例在用户交互期间将数据保存到情境数据数据库136中,而不管数据后来是否被修改。因此,情境数据数据库136可包括代表正确和不正确条目两者的数据。
在一个示例中,预期大多数用户会有单个地址,而其他用户可能有两个或三个地址,他们会将这些地址输入到系统中。然而,在数以千计的可能与应用交互的用户中,可能有一个用户有100个地址,并且通过输入这100个地址而导致应用崩溃。例如,地址信息的量可能会使用应用在其上运行的服务器的基本上所有处理和存储器资源,从而导致web应用冻结或关闭。继续这个示例,情境数据数据库136可保存那些由用户输入的地址,即使这100个地址可能没有被成功输入到应用中。
在另一示例中,用户可能正在填写一个请求提供地址或姓名信息的表格,并且可能输入一个应用无法识别的字符。例如,阿拉伯语地址中包括的ASCII字符可能不被应用所接纳,从而,当用户输入该字符时,它会导致应用经历故障,并且也许会崩溃。再次,即使该地址可能不会被存储在打算用于商业目的的数据库中,该非法的、不可识别的或不符合要求的字符的输入仍然可作为历史原始用户数据被保存在情境数据数据库136中。因此,情境数据数据库136中的历史原始用户数据可包括如下数据:这些数据指示普通用户交互,以及预期在现实生活应用中会导致错误的用户交互的更极端示例。
继续该示例,仿真环境130利用历史原始用户数据作为输入,执行仿真服务131。仿真服务131的示例可包括现有应用的新版本,新的应用,或者可能正在开发的任何应用。在这个示例中,仿真服务131代表正被测试的应用,测试的目的是在它在实况环境140中上线之前可以发现和纠正其错误中的至少一些。
在各种实施例中,随着仿真服务131执行,它生成了大量的活动日志条目。活动日志的示例包括利用复合应用日志(Composite Application Logging,CAL)技术生成的日志。参考图2更详细地论述活动日志条目。系统分析器132接收这些活动日志条目并且检查它们是否有错误。如上所述,活动日志条目可指示错误类别,其中一些类别比其他类别更严重。开发者可将系统分析器配置为省略对错误类别较少的那些活动日志条目的考虑,以便减少被识别并保存到知识库134的错误的数目。例如,开发者可确定省略对没有“错误”或“致命”那么严重的异常的考虑,以便只有最严重的异常会利用提醒或其他动作通过系统来解决。这可能是由开发者作出的价值判断,他们可能有有限的资源,并且可能确定至少针对本系统的目的而言,程度较轻的异常(例如,“调试”)可被忽略。当然,其他开发者可能会将错误类别的阈值设置得更低,以便对异常过度包容,因为他们拥有更多的资源或者认为特定应用的重要性很高。
图2示出了根据一个实施例的示例日志序列200。日志序列200可随着仿真服务131在仿真环境130中执行而由仿真服务131生成。例如,日志序列200包括八个活动日志条目,每个有其自己的时间戳210。每个活动日志条目还提供线程的指示220。每个进程可具有多个线程,并且指示220指示出特定的线程id。关于进程本身,进程信息可通过例如使用日志的位置来识别产生该日志的服务/进程来获得。进程信息本身可通过其他方式获得。例如,在一些情况下,可从日志的位置和名称中识别服务或进程。在每个活动日志序列中还指示出错误类别230。如上所述,可能有许多不同的错误类别,每一个都有不同的严重水平。在一些示例中,类别可包括致命、错误、警告、信息和调试。序列200中的活动日志条目都指示“错误”,并且可理解的是,序列200是一个示例,而由仿真服务131生成的日志条目的其他序列可能与无错误类别(在没有异常的情况下)或者除了“错误”以外的类别相关联。
序列200中的每个活动日志条目还包括与该动作相关联的代码点240的指示。在给定的活动日志条目可能与异常相关联的情况下,那么代码点也可能与该异常相关联。项目250是对异常的简短描述。
回到图1,仿真服务131生成活动日志条目,这些活动日志条目被系统分析器132接收。系统分析器132检查活动日志条目的错误。在一个示例中,系统分析器132对活动日志条目执行相关分析以寻找具有超过阈值(例如,“错误”)的错误类别的那些活动日志条目。相关分析可确定不同的活动日志条目之间的相似性,并且基于相似性将它们一起分组为独特的错误。在图2的示例中,由于那些日志条目具有相同的错误类别230并且与相同的线程220和相关代码点240以及时间上接近的时间戳210相关联,日志序列已被相关算法分组。以这种方式,系统分析器132将与日志序列200相关联的异常识别为独特错误。
在给定的仿真会话中,仿真服务131可多次经历相同的异常,使得图2的日志序列200可能在仿真会话期间生成的全部日志条目内被重复多次(但带有不同的时间戳)。在这个示例中,系统分析器132识别出日志的相似序列中的相同活动、错误类别、代码点和异常描述的模式,并且识别出那些其他日志序列与相同的独特错误相关联。系统分析器132可对全部活动日志执行这种分析,以根据独特错误对不同的日志序列进行分组。
当然,其他实施例可以用不同的方式来执行该相关。例如,其他实施例可生成具有不同于图2中在210-250处图示的项目的活动日志。在这种情况下,那些其他实施例可以按类似的方式来执行相关操作--即,通过识别出条目群组可重复基本相同的内容,但时间不同。此外,如上所述,相关操作可从该过程中省略那些具有低于设置的阈值(例如,“错误”)的错误类别的活动日志条目,以便仅对那些处于或高于阈值的活动日志条目来执行模式识别。
此外,相关算法可考虑在活动日志中呈现的全部数目,或少于全部数目的项目,以适合给定系统。作为上面的一个示例,已经注意到相关算法可为了识别在不同时间发生的相同错误而折算时间戳。然而,其他实施例可在预期错误可能与特定时间(例如,数据库正在被备份并且可能不可用的时间,等等)相关联的示例中考虑到时间戳。另外,相关算法可对活动日志条目中的不同项目赋予不同的权重。例如,一些系统可在错误描述250上赋予较少的权重,以便具有相似项目220-240但在错误描述250中具有差异的日志序列仍然可被分组为一个独特的错误。当然,错误描述250只是可被加权的条目的一部分的一个示例,并且应当注意,各种实施例可对任何日志条目部分加权,以适合给定系统。
对于每个独特的错误,系统分析器132可通过使用项目220-250中的任何一者作为搜索索引,通过存储在知识库134中的活动日志条目来查询知识库134。通过执行搜索,系统分析器132可确定所识别的来自日志序列200的错误是已经记录在知识库134内的错误条目中的已知错误。在这种情况下,系统分析器132于是可拒绝用知识库134来保存该特定日志序列,并且转到下一个日志序列。
然而,在系统分析器132在知识库134中搜索保存的活动日志条目并且没有找到已经存储在知识库134内的相同或相似日志条目的情况下,那么系统分析器132识别出新的独特错误。继续该示例,系统分析器可使得监视器135为开发者生成用于输入的提醒。开发者在开发者设备120处接收到提醒,并且开发者可审查日志序列,并且使用其专业知识来确定补救动作(例如,提醒开发者、自动修复、不采取动作,等等),并且使得系统分析器132将日志序列作为错误保存在知识库条目中。当然,各种实施例可通过为与已经存储在知识库134中的那些相似的错误自动在知识库中生成相似错误条目来寻求最大限度地减少开发者的人工监督。例如,一些实施例可以有预编程的模板,这些模板可被访问并应用于所发现的独特错误。在预期数据库不可用会导致具有可识别的错误描述(例如,图2的错误描述250)的错误的示例中,系统分析器可被编程为识别错误描述250(或者活动日志条目的其他部分),并且响应于识别活动日志条目的特定部分而应用预编程的模板之一。
图3是根据一个实施例的示例知识库条目300的图示。知识库条目300是知识库134中的一个示例条目的图示,并且可理解的是,在各种实施例中,知识库134可包括类似于示例知识库条目300的数百、数千或数百万个条目,每个条目指示一独特错误。知识库134可被存储在仿真环境130中或其他地方的非易失性存储器中。另外,知识库134可被组织为数据库或一些其他结构,例如,文件的集合。
知识库条目300包括日志序列310。日志序列的示例包括图2的日志序列200。换句话说,每个知识库条目包括至少一个活动日志条目。知识库条目300还包括错误类型320的指示。错误类型320可包括任何适当的指示,无论是体现为普通语言还是从不同类型的菜单中选择。在一个示例中,错误类型320可包括与图2的错误描述250相同或相似的信息。在一些示例中,错误类型320可由开发者输入,作为对来自系统分析器132的提醒的响应。
此外,示例知识库条目300还可包括代码部分标识符330。如上所述,日志序列也可包括代码部分的指示(例如,图2的项目240)。知识库条目300中的代码部分标识符330可包括进一步的信息,例如特定代码部分的标识符,因为它可在代码库或开源资源中被参考(例如,它在GitHubTM中的参考标识符)。代码部分标识符330可由开发者手动输入或者由系统分析器自动输入,假设系统分析器在图2的代码部分标识符240和另一个代码库参考之间有交叉参考。
知识库条目300还可包括用于指示补救动作的片段340。例如,知识库条目300在片段340内可包括对于什么导致了该特定错误、如何从错误中恢复(如果可能的话)以及要采取的具体动作(如果有的话)的指示。在一个示例中,如果与知识库条目300相关联的特定错误是由数据库对于应用而言不可用造成的,那么片段340可存储如下信息:该信息指出该错误是由数据库不可用造成的,以及指示出数据库可被重新启动以纠正该错误。此外,片段340还可包括指令,以使得监视器135生成提醒给负责的开发者团队,其中该提醒可包括来自片段340的部分或全部信息。换句话说,该提醒可包括对于错误的原因、如何从错误中恢复以及要采取的具体动作的指示。片段340中的信息可由开发者在创建错误条目时手动输入,或者由系统分析器132自动输入。
其他示例可包括由特定代码部分引起的错误,并且提醒可利用来自代码部分标识符330的信息,向负责的开发者团队通报引起该错误的特定代码点。其他示例动作可作为提醒的一部分被建议,其中包括重新启动服务。此外,在一些实施例中,来自片段340的补救动作可通过预测器133自动实现。例如,诸如重新启动数据库、重新启动应用或者甚至对特定代码部分应用修复之类的动作在一些情况下可由预测器133自动应用。然而,一些开发者团队可能更喜欢至少有一些动作先经过人类过滤,以便人类判断力可确定是否采取特定动作。
转到预测器133,在这个示例中,它也在仿真环境130内运行(它也在实况环境140内运行,如下文更详细描述的)。如上所述,系统分析器132分析活动日志条目,识别条目内的独特错误,并且将新的独特错误作为错误条目存储在知识库中。相比之下,预测器133对照知识库134中的错误条目来分析活动日志条目,并且响应于从知识库134中识别出错误而采取特定的动作。
预测器133可与仿真服务131进行通信,并且从其接收活动日志条目。在一些实施例中,预测器133可在系统分析器132为知识库134创建了新的错误条目之后运行,以便预测器133可对照更多经更新的知识库条目集合来参考活动日志条目。在其他实施例中,预测器133可在系统分析器132运行的同时运行。在任何情况下,预测器133可从仿真服务131接收活动日志条目,并且将活动日志中的条目与知识库134中的错误条目关联起来。例如,如上所述,知识库条目可包括与已知错误相关联的日志序列。预测器133可将接收到的活动日志条目与知识库中存储的活动日志条目进行比较。当它执行比较时,预测器133可识别来自仿真服务131的活动日志条目和存储在各种知识库条目中的日志序列之间的相似性。
例如,关于图2,可预期相似的错误会生成相似的活动日志条目,例如像项目220-250中所示。在一些情况下,预测器133可使用来自接收到的活动日志的项目220-250,并且将它们与错误条目中的日志序列中的活动日志进行比较。如果预测器133识别出与存储在知识库的错误条目中的条目相同或相似的活动日志条目,那么它可确定该活动日志条目是该错误条目的已知错误的指示符。预测器随后可解析该错误条目,以确定要采取的补救动作。如上所述,补救动作可包括向负责的开发者团队成员发送提醒和自动修复错误。
现在来看实况环境140,它可包括一个或多个服务器,例如Web服务器,这些服务器向公众展示服务141,并且公众可与服务141交互。服务141可与仿真服务131相同,也可与之不同。然而,在许多实施例中,在将特定的服务转移到实况环境140之前,开发者团队将使用从预测器133识别出的错误来仿真和改进特定的服务。在实况环境140中值得注意的是,与使用情境信息进行仿真的仿真环境相比,对服务141的输入可包括实际的实况输入。换句话说,在实况环境中,服务141可与实际的终端用户交互,例如用户设备110处的用户。
实况环境140还包括预测器142。预测器142可与预测器133类似地操作。具体而言,随着服务141在实况环境中运行,它生成活动日志条目,并且预测器142接收这些活动日志条目。预测器142将这些活动日志条目与存储在知识库144的错误条目中的活动日志条目进行比较,并且可识别出活动日志条目之一何时与存储在知识库144中的错误相对应。预测器142随后可解析特定的知识库条目,以确定补救动作,并且然后根据补救动作采取动作,例如,通过使得监视器145向开发者团队发送提醒或者自己纠正错误。
在这个示例中,知识库144被示出在实况环境140中,而知识库134被示出在仿真环境130中。然而,实施例的范围可包括仿真环境130和实况环境140两者共享同一个知识库。监视器135和145也是如此,其中它们可被复制在仿真环境130和实况环境140中,或者可在这些环境130、140之间共享。
图4是根据一个实施例的用于图1的仿真环境130的架构400的图示。在仿真环境中,情境数据(包括历史原始用户数据)被输入到仿真服务131。仿真服务131生成活动日志,活动日志被系统分析器132分析。如上文参考图1所描述的,系统分析器132识别活动日志内的独特错误,并且当它发现尚未在知识库134内表示的独特错误时,系统分析器132为该新错误向知识库134保存新的错误条目。随着时间的推移,系统分析器132构建已知错误的集合,每个已知错误与知识库134中的一错误条目相关联。
继续图4的示例,预测器133也可分析活动日志并且将活动日志条目与保存在知识库中的错误条目中的活动日志条目相匹配来在仿真环境内操作。当预测器133在活动日志条目与错误条目中的日志序列之间发现匹配时,预测器133于是对错误条目进行解析,以确定响应于该错误而要采取的适当动作。例如,预测器133可以使监视器向负责的开发者团队发送提醒,或者可自己采取动作。
在一个示例中,预测器133可识别活动日志中的错误,并且根据相应错误条目中指示的补救动作,可向开发者团队发送提醒,识别错误条目中指示的代码部分。此外,预测器133在一些示例中可响应于在相应错误条目中指示的补救动作而修改代码。例如,预测器可修改被仿真的服务中的代码。此外,该特定的代码部分可能在某个库中被引用,并且可能在多个应用中被使用。在这种情况下,预测器也可发送提醒,通知负责的开发者团队那些其他应用中的错误,并且在一些情况下,也可自动修改那些其他应用中的代码。从而,示例架构400示出了通过基于观察到的错误采取动作来提供反馈的预测器133。
图5是根据一个实施例的用于图1的实况环境140的架构500的图示。与仿真环境形成对比,实况环境包括实况用户数据作为到服务141的输入。随着其操作,服务141生成活动日志。预测器142进行与预测器133类似的操作,它将活动日志与知识库144中的错误进行匹配,并且采取由知识库144中的相应错误条目指示的动作。
在一个示例用例中,预测器142可识别活动日志中的错误,并且根据相应的错误条目中指示的补救动作,可向开发者团队发送提醒或者自动自己采取其他动作,例如修改代码。在一些情况下,预测器142可从错误条目确定应当向开发者团队发送提醒。因此,这可在终端用户经历错误之后立即发生,并且甚至可被开发者团队感知为是实时的。因此,与依赖于来自报告错误的终端用户的手动反馈的系统相比,一些实施例可提供更迅速地将提醒发送给负责的开发者团队的优点。另外,当错误与其他应用中使用的一部分代码相关联时,提醒可刺激开发者团队修改这些其他应用中的代码,在一些情况下,如果在知识库144中的补救动作中指示出,则预测器142可自己修改这些其他应用中的代码。因此,示例架构500示出了通过基于实况环境中观察到的错误采取动作来提供反馈的预测器142。
图6是根据一个实施例的用于识别应用错误的示例方法600的图示。方法600可由一服务器(或者多个服务器,如在仿真环境130中)执行,具体而言,由一个或多个处理器在其执行计算机代码以提供本文描述的功能时执行。
在动作602,在仿真环境中运行第一应用。例如,动作602可包括使用历史原始用户数据作为到仿真环境中的第一应用的输入。在一些示例中,如上文参考图1所描述的,历史原始用户数据可包括与数千、或数百万、或数十亿用户交互相对应的大量数据。因此,在一些示例中,仿真环境可包括为用于大数据而特别设计的分布式系统,例如映射化简系统。然而,各种实施例甚至可以用单个服务器或者介于单个服务器和更大的映射化简系统之间的某种东西来执行仿真。动作602可进一步包括第一应用在其操作时生成活动日志条目,其中这些活动日志条目中的一些可具有错误类别的指示(例如,致命、错误,等等)。
动作604可包括接收第一应用的活动日志条目。在图1和图4的示例中,系统分析器132从仿真服务131接收活动日志条目。系统分析器132随后在动作606处对活动日志条目执行分析。
在动作606,第一组活动日志条目被识别为对应于第一应用的错误。作为示例,图1和图4的系统分析器132可分析活动日志条目并且确定一组活动日志条目的成员指示出等于或大于错误类别的阈值水平(例如,至少与“错误”一样严重)的错误类别。响应于此,系统分析器可确定该组活动日志条目与由第一活动日志生成的第二组活动日志条目相匹配。例如,系统分析器可识别每组活动日志条目之间关于这些活动日志条目内的项目的相似性,例如进程的标识或者代码片段的标识。基于该匹配,系统分析器可确定这两组活动日志条目都对应于单个独特错误。在该独特错误是新的错误或者在知识库中没有表示的情况下,那么系统分析器可转到动作608。
在动作608,系统分析器将错误条目保存在非易失性存储介质中,例如硬盘驱动器或固态驱动器,并且以适当的格式保存,例如数据库。上面参考图3描述了示例错误条目。
方法600还可包括动作610,其包括使得监视系统生成第一提醒。例如,在仿真环境内运行的预测器可响应于知识库中指定应当生成提醒的错误条目而生成提醒。
实施例的范围不限于图6中描绘的特定系列动作。更确切地说,各种实施例可添加、省略、重新布置或者修改这些动作。例如,各种实施例可包括仿真环境中的预测器的额外动作。在一个示例中,仿真环境中的预测器可分析与仿真环境中的活动日志中的错误相对应的错误条目。预测器可自动执行动作(例如,修改代码、重新启动应用、重新启动为应用提供数据的数据库、重新启动另一资源),或者可向负责的开发者团队发送提醒。
实施例的范围可进一步包括预测器用来识别错误的过程,无论是在实况环境还是在仿真环境中。例如,预测器可将活动日志条目与知识库中的错误条目相关联。相关可包括将活动日志条目与一组活动日志条目(例如,日志序列)进行比较,确定该活动日志条目与该组活动日志条目中的至少一个活动日志条目之间的相似性(例如,错误类别、进程、代码部分,等等),并且然后响应于该比较而识别出该活动日志条目与错误相对应。
各种实施例可提供相对于现有系统的益处。例如,随着时间的推移,知识库可扩展到包括各种各样的已知错误,并且历史原始用户数据可全面地表示已知的麻烦交互。因此,使用历史原始用户数据和知识库来识别仿真应用中的错误的仿真可能更值得信赖。具体而言,可预期仿真会比现有系统识别出更多的错误,从而允许负责的开发者团队修改代码。这可使得应用可以经受住审计,例如金融机构所受到的严格审计。该知识库可在公司内部甚至公司之间共享,以帮助在开发期间识别各种应用中的错误。
各种实施例也可使用预测器来提醒开发者团队注意错误,甚至在一些情况下修复错误。如上文参考图4和图5所示,预测器可被布置在反馈环路中,以便一旦预测器发现错误,就向负责的开发者团队提供反馈。这可能在真实世界系统中提供优势。在一个用例示例中,应用的代码中的缺陷可能会提供一个漏洞,恶意用户可能会利用该漏洞来输入不正确的信息或者以其他方式通过风险过滤器。如果该缺陷在使用相同代码部分的另一应用中被发现,那么预测器就可提醒开发者团队注意该问题,也许在恶意用户发现该缺陷之前。
与其他现有系统相比,预测器可更迅速地将反馈提供给负责的开发者团队。例如,现有系统可依赖于用户反馈(例如,用户投诉),来通过手动渠道反馈给开发者团队。与之相比,预测器可实时注意到一个错误,并且在此后立即提醒负责的开发者团队。在一些示例中,预测器甚至可通过重新启动数据库、重新启动应用或者修改代码(如果适当的话)来自行采取动作。
图7是计算机系统700的示例实施例的图示,该系统适合于实现例如上面论述的图1的仿真环境130和实况环境140中的计算设备110、120和服务器。应当理解,在上面论述的系统中利用的其他设备可以以如下方式实现为计算机系统700。
根据本公开的各种实施例,计算机系统700(例如,智能电话、计算机和/或网络服务器)包括总线702或者用于传输信息的其他通信机制,其互连子系统和组件,例如处理组件712(例如,处理器、微控制器、数字信号处理器(DSP),等等)、系统存储器组件714(例如,RAM)、存储驱动组件717(例如,固态、硬盘驱动器或者光驱)、网络接口组件706(例如,无线卡、调制解调器或者以太网卡)、显示组件711(例如,触摸屏、CRT或者LCD)、输入/输出组件704(例如,键盘、小键盘、触摸屏)、光标控制组件713(例如,鼠标、指示器或者轨迹球)和/或位置确定组件705(例如,如图所示的全球定位系统(Global Positioning System,GPS)设备、蜂窝塔三角测量设备和/或本领域中已知的各种其他位置确定设备)。在一个实现方式中,存储驱动组件717可包括具有一个或多个存储驱动组件的数据库。
根据本公开的实施例,计算机系统700通过处理器712执行存储器组件714中包含的指令的一个或多个序列来执行特定操作,例如本文参考上述的图1-图6描述的。这种指令可被从另一计算机可读介质(例如,存储驱动717)读取到系统存储器组件714中。在其他实施例中,硬连线电路可取代软件指令或者与软件指令相结合用于实现本公开。
逻辑可被编码在计算机可读介质中,计算机可读介质可以指代参与向处理器712提供指令以供执行的任何有形且非暂态的介质。这种介质可采取许多形式,包括但不限于非易失性介质和易失性介质。在各种实现方式中,非易失性介质包括硬盘驱动器或固态驱动器,例如存储驱动组件717,并且易失性介质包括动态存储器,例如系统存储器组件714。计算机可读介质的一些常见形式例如包括软盘、柔性盘、硬盘、磁带、任何其他磁介质、CD-ROM、任何其他光介质、穿孔卡、纸带、任何其他具有孔图案的物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其他存储器芯片或卡匣或者计算机适合于读取的任何其他介质。
在本公开的各种实施例中,实现本公开的指令序列的执行可由计算机系统700来执行。在本公开的各种其他实施例中,通过通信链路718耦合到网络160(例如,LAN、WLAN、PTSN和/或各种其他有线或无线网络,包括电信、移动和蜂窝电话网络)的多个计算机系统700可执行指令序列来与彼此协调地实现本公开。
计算机系统700可通过通信链路718和网络接口组件706来发送和接收消息、数据、信息和指令,包括一个或多个程序(即,应用代码)。网络接口组件706可包括分开的或者集成的天线,来使能经由通信链路718的发送和接收。接收到的程序代码可在接收时被处理器712执行和/或被存储在存储驱动组件717或者某种其他非易失性存储组件中以供执行。
本公开可利用硬件、软件或者硬件和软件的组合来实现。另外,在适用的情况下,本文记载的各种硬件组件和/或软件组件可被组合为包括软件、硬件和/或两者的复合组件,而不脱离本公开的范围。在适用的情况下,本文记载的各种硬件组件和/或软件组件可被分离为包括软件、硬件和/或两者的子组件,而不脱离本公开的范围。此外,在适用的情况下,设想了软件组件可被实现为硬件组件,反之亦然。
根据本公开的软件,例如程序代码和/或数据,可被存储在一个或多个计算机可读介质上。还设想到了本文识别的软件可利用联网的和/或没有联网的一个或多个通用或专用计算机和/或计算机系统来实现。在适用的情况下,本文描述的各种步骤的排序可被改变、被组合为复合步骤和/或被分离为子步骤以提供本文描述的特征。
前述公开内容并不打算将本公开限制到公开的确切形式或者特定使用领域。因此,设想到了对本公开的各种替换实施例和/或修改,无论是本文明确描述的还是暗示的,根据本公开都是可能的。
在这样描述了本公开的实施例后,本领域普通技术人员将会认识到在不脱离本公开的范围的情况下可做出形式和细节上的改变。从而,本公开仅受权利要求限制。

Claims (20)

1.一种由网络服务器执行的方法,该方法包括:
使用历史原始用户数据作为到在仿真环境中运行的第一应用的输入;
在所述仿真环境中从所述第一应用接收活动日志条目;
识别与所述第一应用的错误相对应的第一组活动日志条目;
响应于识别出所述第一组活动日志条目而将错误条目保存在非易失性存储介质中,所述错误条目包括所述第一组活动日志条目和响应于所述第一应用的错误而要采取的动作的标识;以及
使得监视系统生成与所述错误条目相对应的第一提醒。
2.如权利要求1所述的方法,还包括:
接收实况用户数据作为到在实况环境中运行的第二应用的输入;
在所述实况环境中从所述第二应用接收活动日志条目;
将来自所述第二应用的第一活动日志条目与非易失性存储介质中的所述错误条目相关;以及
使得所述监视系统生成与所述错误条目相对应的第二提醒。
3.如权利要求2所述的方法,其中,将所述第一活动日志条目相关包括:
将所述第一活动日志条目与所述非易失性存储介质中的所述第一组活动日志条目进行比较;
基于所述比较来确定在所述第一活动日志条目与所述第一组活动日志条目的成员之间存在相似性;以及
基于确定所述第一活动日志条目与所述第一组活动日志条目的成员之间的相似性而识别出所述第一活动日志条目对应于所述错误。
4.如权利要求2所述的方法,其中,所述错误条目还包括与所述第一应用的错误相关联的代码点的标识,并且其中,所述第二提醒包括对所述代码点和所述要采取的动作的指示,所述方法还包括:
响应于所述第二提醒而向所述第二应用的相应代码点应用所述要采取的动作。
5.如权利要求1所述的方法,其中,所述错误条目还包括与所述第一应用的错误相关联的代码点的标识,并且其中,所述第一提醒包括对所述代码点的指示,所述方法还包括:
响应于所述第一提醒而修改所述第一应用中与所述代码点相关联的代码。
6.如权利要求1所述的方法,其中,所述错误条目还包括与所述第一应用的错误相关联的代码点的标识,并且其中,所述第一提醒包括对所述代码点的指示,所述方法还包括:
响应于所述第一提醒而修改第二应用中与所述代码点相关联的代码。
7.如权利要求1所述的方法,其中,识别所述第一组活动日志条目包括:
确定所述第一组活动日志条目的第一成员包括错误类别;以及
确定所述第一组活动日志条目与所述仿真环境中来自所述第一应用的第二组活动日志条目相匹配。
8.如权利要求7所述的方法,其中,所述第一组活动日志条目的每个活动日志条目包括正在运行的进程的标识和代码片段的标识,并且其中,确定所述第一组活动日志条目与所述第二组活动日志条目相匹配包括:
识别所述第一组活动日志条目和所述第二组活动日志条目之间关于所述正在运行的进程的标识和所述代码片段的标识的相似性。
9.如权利要求1所述的方法,其中,所述历史原始用户数据包括用户输入数据,所述用户输入数据来自实况环境中与第二应用进行的多个过去用户交互。
10.一种非暂态机器可读介质,其上存储有机器可读指令,所述指令可执行以使得机器执行操作,所述操作包括:
对第一应用进行仿真,包括使用历史原始用户数据作为到所述第一应用的输入并且生成与所述第一应用的动作相对应的活动日志条目;
在第一组活动日志条目内识别所述第一应用的错误;
响应于识别出所述错误而在数据库中创建错误条目,所述错误条目包括所述第一组活动日志条目和响应于所述第一应用的错误而要采取的动作的标识;以及
生成与所述错误条目相对应的第一提醒。
11.如权利要求10所述的非暂态机器可读介质,其中,所述错误条目还包括与所述第一应用的错误相关联的代码点的标识,并且其中,所述第一提醒包括对所述代码点的指示,所述操作还包括:
响应于所述第一提醒而修改所述第一应用中与所述代码点相关联的代码。
12.如权利要求10所述的非暂态机器可读介质,其中,所述错误条目还包括与所述第一应用的错误相关联的代码点的标识,并且其中,所述第一提醒包括对所述代码点的指示,所述操作还包括:
响应于所述第一提醒而修改第二应用中与所述代码点相关联的代码。
13.如权利要求10所述的非暂态机器可读介质,其中,识别所述第一应用的错误包括:
确定所述第一组活动日志条目的第一成员包括错误类别;以及
确定所述第一组活动日志条目与来自所述第一应用的第二组活动日志条目相匹配。
14.如权利要求13所述的非暂态机器可读介质,其中,所述第一组活动日志条目的每个活动日志条目包括正在运行的进程的标识和代码片段的标识,并且其中,确定所述第一组活动日志条目与所述第二组活动日志条目相匹配包括:
识别所述第一组活动日志条目和所述第二组活动日志条目之间关于所述正在运行的进程的标识和所述代码片段的标识的相似性。
15.如权利要求10所述的非暂态机器可读介质,其中,识别所述第一应用的错误包括:确定所述第一组活动日志条目指示出与阈值错误类别相同或者超过阈值错误类别的错误类别。
16.一种系统,包括:
非暂态存储器;以及
一个或多个硬件处理器,所述一个或多个硬件处理器耦合到所述非暂态存储器并且被配置为从所述非暂态存储器读取指令以使得所述系统执行操作,所述操作包括:
通过在仿真环境中将历史原始用户数据输入到第一应用来生成活动日志条目;
在第一组活动日志条目中识别所述第一应用的错误;
响应于识别出所述错误而记录错误条目,所述错误条目包括所述第一组活动日志条目和响应于所述第一应用的错误而要采取的动作的标识;以及
使得监视系统生成与所述错误条目相对应的第一提醒。
17.如权利要求16所述的系统,其中,所述操作还包括:
在实况环境中从第二应用接收活动日志条目;
将来自所述第二应用的第一活动日志条目与所述错误条目相关;以及
使得所述监视系统生成与所述错误条目相对应的第二提醒。
18.如权利要求17所述的系统,其中,将所述第一活动日志条目相关包括:
将所述第一活动日志条目与所述第一组活动日志条目进行比较;
基于所述比较来确定在所述第一活动日志条目与所述第一组活动日志条目的成员之间存在相似性;以及
基于确定所述第一活动日志条目与所述第一组活动日志条目的成员之间的相似性而识别出所述第一活动日志条目对应于所述错误。
19.如权利要求17所述的系统,其中,所述错误条目还包括与所述第一应用的错误相关联的代码点的标识,并且其中,所述第二提醒包括对所述代码点和所述要采取的动作的指示,所述操作还包括:
响应于所述第二提醒而向所述第二应用的相应代码点应用所述要采取的动作。
20.如权利要求16所述的系统,其中,识别所述第一应用的错误包括:
确定所述第一组活动日志条目的第一成员包括错误类别;以及
确定所述第一组活动日志条目与所述仿真环境中来自所述第一应用的第二组活动日志条目相匹配。
CN201980085348.6A 2018-12-20 2019-12-20 实时应用错误识别和缓解 Pending CN113227971A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/227,729 US10977162B2 (en) 2018-12-20 2018-12-20 Real time application error identification and mitigation
US16/227,729 2018-12-20
PCT/US2019/068129 WO2020132620A1 (en) 2018-12-20 2019-12-20 Real time application error identification and mitigation

Publications (1)

Publication Number Publication Date
CN113227971A true CN113227971A (zh) 2021-08-06

Family

ID=71097084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980085348.6A Pending CN113227971A (zh) 2018-12-20 2019-12-20 实时应用错误识别和缓解

Country Status (5)

Country Link
US (2) US10977162B2 (zh)
EP (1) EP3899717A4 (zh)
CN (1) CN113227971A (zh)
AU (1) AU2019403474A1 (zh)
WO (1) WO2020132620A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10977162B2 (en) * 2018-12-20 2021-04-13 Paypal, Inc. Real time application error identification and mitigation
US11294748B2 (en) * 2019-11-18 2022-04-05 International Business Machines Corporation Identification of constituent events in an event storm in operations management
US11544158B1 (en) 2020-03-30 2023-01-03 Rapid7, Inc. Selective change tracking of log statements to manage alerts
US11409590B2 (en) * 2020-04-01 2022-08-09 Paypal, Inc. Proactive outreach platform for error resolution based on user intent in server-driven communication channels
US11210160B1 (en) * 2020-08-13 2021-12-28 Servicenow, Inc. Computer information technology alert remediation selection based on alert similarity
US11188405B1 (en) 2020-08-25 2021-11-30 Servicenow, Inc. Similar alert identification based on application fingerprints
US20230032678A1 (en) * 2021-07-29 2023-02-02 Micro Focus Llc Abnormality detection in log entry collection
US20230047978A1 (en) * 2021-08-16 2023-02-16 Datawire, Inc. System and Method for Real-Time Configuration Analysis
CN113515464B (zh) * 2021-09-14 2021-11-19 广州锦行网络科技有限公司 基于linux系统的蜜罐测试方法及装置
US11829230B2 (en) * 2021-09-23 2023-11-28 International Business Machines Corporation Globally unique error codes for knowledge document indexing in software systems
US20230385267A1 (en) * 2022-05-31 2023-11-30 Oracle International Corporation System and methods for asynchronous log processing and enriching
CN116662206B (zh) * 2023-07-24 2024-02-13 泰山学院 计算机软件在线实时可视化调试方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150355998A1 (en) * 2013-01-31 2015-12-10 Hewlett-Packard Development Company, L.P. Error developer association
US20160011960A1 (en) * 2014-07-10 2016-01-14 International Business Machines Corporation Extraction of problem diagnostic knowledge from test cases
US20160274997A1 (en) * 2014-01-29 2016-09-22 Hewlett Packard Enterprise Development Lp End user monitoring to automate issue tracking
US9798607B1 (en) * 2015-06-30 2017-10-24 EMC IP Holding Company LLC System and method for smart error handling mechanism for an application

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760903B1 (en) * 1996-08-27 2004-07-06 Compuware Corporation Coordinated application monitoring in a distributed computing environment
US7359831B2 (en) * 2004-05-21 2008-04-15 Bea Systems, Inc. Diagnostic context
US20060200450A1 (en) * 2005-03-04 2006-09-07 Microsoft Corporation Monitoring health of actively executing computer applications
US8347269B2 (en) * 2007-09-28 2013-01-01 International Business Machines Corporation Method, system and computer program for debugging software applications in a web environment
US8407673B2 (en) 2007-11-27 2013-03-26 International Business Machines Corporation Trace log rule parsing
US8306934B2 (en) * 2009-03-30 2012-11-06 International Business Machines Corporation Demo verification provisioning
US8510719B2 (en) * 2009-11-05 2013-08-13 International Business Machines Corporation Real-time user configurable debugging framework
US8813039B2 (en) 2010-04-14 2014-08-19 International Business Machines Corporation Method and system for software defect reporting
US9251033B2 (en) 2011-07-07 2016-02-02 Vce Company, Llc Automatic monitoring and just-in-time resource provisioning system
CN103246602B (zh) * 2012-02-14 2017-03-01 阿里巴巴集团控股有限公司 代码覆盖率确定方法及系统、代码覆盖检测方法及系统
GB2504496A (en) * 2012-07-31 2014-02-05 Ibm Removing code instrumentation based on the comparison between collected performance data and a threshold
US9866466B2 (en) * 2013-01-21 2018-01-09 Entit Software Llc Simulating real user issues in support environments
US9158656B1 (en) * 2014-07-15 2015-10-13 American Express Travel Related Services Company, Inc. Systems and methods for progressively launching websites
US9465722B2 (en) * 2014-07-21 2016-10-11 Bank Of America Corporation Error assessment tool
US9823996B2 (en) * 2015-03-12 2017-11-21 Landis+Gyr Innovations, Inc. Debugging code for controlling intelligent devices using log data from executed object code
US9600393B2 (en) * 2015-03-23 2017-03-21 Facebook, Inc. Testing of application service versions on live data
US11283900B2 (en) * 2016-02-08 2022-03-22 Microstrategy Incorporated Enterprise performance and capacity testing
US10338990B2 (en) * 2016-06-23 2019-07-02 Vmware, Inc. Culprit module detection and signature back trace generation
US9898385B1 (en) * 2016-10-11 2018-02-20 Green Hills Software, Inc. Systems, methods, and devices for vertically integrated instrumentation and trace reconstruction
EP3535665B1 (en) * 2016-12-08 2023-09-13 Zhejiang Dahua Technology Co., Ltd Methods and systems for processing log data
US10733079B2 (en) * 2017-05-31 2020-08-04 Oracle International Corporation Systems and methods for end-to-end testing of applications using dynamically simulated data
US10705948B2 (en) * 2017-10-30 2020-07-07 Bank Of America Corporation Robotic process automation simulation of environment access for application migration
US20190141383A1 (en) * 2017-11-09 2019-05-09 Rovi Guides, Inc. Systems and methods for simulating a sports event based on availability of sports statistics
US10977162B2 (en) 2018-12-20 2021-04-13 Paypal, Inc. Real time application error identification and mitigation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150355998A1 (en) * 2013-01-31 2015-12-10 Hewlett-Packard Development Company, L.P. Error developer association
US20160274997A1 (en) * 2014-01-29 2016-09-22 Hewlett Packard Enterprise Development Lp End user monitoring to automate issue tracking
US20160011960A1 (en) * 2014-07-10 2016-01-14 International Business Machines Corporation Extraction of problem diagnostic knowledge from test cases
US20170132113A1 (en) * 2014-07-10 2017-05-11 International Business Machines Corporation Extraction of problem diagnostic knowledge from test cases
US9798607B1 (en) * 2015-06-30 2017-10-24 EMC IP Holding Company LLC System and method for smart error handling mechanism for an application

Also Published As

Publication number Publication date
US10977162B2 (en) 2021-04-13
EP3899717A4 (en) 2022-02-16
US20200201744A1 (en) 2020-06-25
WO2020132620A1 (en) 2020-06-25
AU2019403474A1 (en) 2021-07-08
US20210279164A1 (en) 2021-09-09
US11640349B2 (en) 2023-05-02
EP3899717A1 (en) 2021-10-27

Similar Documents

Publication Publication Date Title
US11640349B2 (en) Real time application error identification and mitigation
US11449379B2 (en) Root cause and predictive analyses for technical issues of a computing environment
US10346282B2 (en) Multi-data analysis based proactive defect detection and resolution
CN110046087B (zh) 非接触式测试平台
US10565077B2 (en) Using cognitive technologies to identify and resolve issues in a distributed infrastructure
US20200273570A1 (en) Predictive analysis platform
US11036615B2 (en) Automatically performing and evaluating pilot testing of software
US8453027B2 (en) Similarity detection for error reports
US11562315B2 (en) Detecting an issue related to a report
US20150347923A1 (en) Error classification in a computing system
US11403208B2 (en) Generating a virtualized stub service using deep learning for testing a software module
US20200348995A1 (en) Fault analysis and prediction using empirical architecture analytics
US20210241273A1 (en) Smart contract platform
CN114616560A (zh) 用于机器学习(ml)的自适应和上下文感知自动化服务组成的技术
US9852232B2 (en) Automating event trees using analytics
CN111507086A (zh) 本地化应用程序中翻译文本位置的自动发现
US9329979B2 (en) Derivation of generalized test cases
US10346294B2 (en) Comparing software projects having been analyzed using different criteria
US10423514B1 (en) Automated classification of mobile app battery consumption using simulation
WO2023177442A1 (en) Data traffic characterization prioritization
US10176087B1 (en) Autogenic test framework
US20210224245A1 (en) Data configuration, management, and testing
EP3131014B1 (en) Multi-data analysis based proactive defect detection and resolution
CN110008098B (zh) 评估业务流程中的节点的运行状况的方法和装置
Sharon Machine Learning Based Bug Triaging for Severity Identification

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