CN107533504A - 用于软件分发的异常分析 - Google Patents

用于软件分发的异常分析 Download PDF

Info

Publication number
CN107533504A
CN107533504A CN201680020978.1A CN201680020978A CN107533504A CN 107533504 A CN107533504 A CN 107533504A CN 201680020978 A CN201680020978 A CN 201680020978A CN 107533504 A CN107533504 A CN 107533504A
Authority
CN
China
Prior art keywords
renewal
event
equipment
software
bucket
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.)
Withdrawn
Application number
CN201680020978.1A
Other languages
English (en)
Inventor
A·坦加马尼
B·尼塔
C·戴
D·沙哈
N·阿加瓦尔
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107533504A publication Critical patent/CN107533504A/zh
Withdrawn legal-status Critical Current

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/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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • 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/079Root cause analysis, i.e. error or fault diagnosis
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3616Software analysis for verifying properties of programs using software metrics
    • 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/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/064Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • 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/3409Recording 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 for performance assessment
    • G06F11/3419Recording 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 for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

设备群提供遥测数据并接收软件更改或更新。各个事件的事件桶被找到。事件桶具有事件实例的计数,其中每个事件实例是被设备报告为遥测的相应事件的发生。软件更改的记录被提供,每个更改记录表示相应设备上的软件更改。事件桶被分析以标识哪个事件桶指示异常。基于更改记录和经标识的事件桶,找到软件更改与经标识的事件桶之间的相关性。

Description

用于软件分发的异常分析
背景
运行软件的设备通常需要随时间更新。对软件更新的需要可能由许多因素驱动,诸如修复错误、添加新功能、提高性能、维护与其他软件的兼容性等。虽然许多技术已被用于更新软件,但更新通常涉及更改程序的源代码、编译程序、以及将程序分发到将在其上执行该经更新的程序的设备。
程序被编译以用于多种类型的设备和操作系统变得越来越常见。从相同源代码文件编译的可执行代码可能最终会在具有不同类型的处理器、不同类型或版本的操作系统的设备上执行。对此类跨平台程序的更新可能是难以评估的。
此外,设备的网络连接的增加导致了软件开发者以更高速率更新,以及更频繁地由设备报告性能相关数据(遥测)。在短时间段内,设备可能会接收许多软件更新,并且可能会向各种遥测收集器传送许多遥测报告。软件分发系统可能会向许多不同的设备快速发布许多不同的软件更新。由于设备几乎在同一时间提供关于性能、崩溃、堆栈转储、执行踪迹等反馈遥测,设备上的许多软件组件可能正在更改。因此,软件开发者使用遥测反馈来决定特定软件更新是创建了还是修复了任何问题是困难的。如果某些设备上发生了异常,则确定是否任何特定的软件更新被牵涉、确定更新可能被链接到异常的任何情况、或确定软件更新中哪些具体代码级改变被牵涉是困难的。简而言之,高速率的软件更新和遥测报告可能由具有不同架构和操作系统的设备处理,这使得很难找到软件更新(或源代码更改)与遥测反馈中出现的异常之间的相关性。
以下讨论关于在遥测数据中寻找异常和找到异常与软件更新之间的相关性的技术。
概述
包括以下概述仅仅是为了介绍在以下详细描述中讨论的一些概念。该概述不是完整性的并且不意图划定所要求保护的主题的范围,所述范围由结尾处呈现的权利要求书提出。
设备群提供遥测数据并接收软件更改或更新。各个事件的事件桶被找到。事件桶具有事件实例的计数,其中每个事件实例是被设备报告为遥测的相应事件的发生。软件更改的记录被提供,每个更改记录表示相应设备上的软件更改。事件桶被分析以标识哪个事件桶指示异常。基于更改记录和经标识的事件桶,找到软件更改与经标识的事件桶之间的相关性。
许多附带特征将随着参考下面的详细描述并结合附图进行解释。
附图简述
从结合附图阅读的以下详细描述将更好地理解本发明的描述,其中相同的附图标记用户指示所附描述中相同的部分。
图1示出了软件生态系统的示例。
图2示出了接收更新和传送遥测报告的设备。
图3示出了例示针对设备群随时间的更新和遥测反馈的全局视图的图表。
图4示出了寻找更新和异常之间的相关性的一般过程。
图5示出了一个图表。
图6示出了更新存储的示例。
图7示出了遥测存储的示例。
图8示出了示例相关性引擎。
图9示出了源代码文件和崩溃桶之间的关联的示例。
图10示出了可被用于为各个遥测源实现多个相关性引擎的软件架构。
图11示出了允许用户提供反馈和显示并导航分析数据库中所捕捉的分析输出的客户端应用。
图12示出了异常概括用户界面的示例。
图13示出了计算设备的示例。
详细描述
图1示出了软件生态系统的示例。更新服务100向设备104提供软件更新102。遥测收集服务106经由网络110从设备104处收集遥测报告108。表示设备104的图形的形状描绘了不同类型的处理器,诸如ARM、x86、PowerPC(TM)、Apple A4或A5(TM)、Snapdragon(TM)、或其他处理器。表示设备104的图形的底纹指示了不同操作系统的类型或版本,例如Ubuntu(TM)、Apple iOS(TM)、Apple OS X(TM)、Microsoft Windows(TM)、以及Android(TM)。可更新设备104可以是具有通信能力、处理硬件和与其一起工作的存储硬件的任何类型的设备。游戏控制台、蜂窝电话、联网电器、笔记本、服务器计算机、机顶盒、自主传感器、平板、或具有通信和计算能力的其他类型的设备都是本文所称的设备104的示例。
更新102可以各种方式来实现。更新102可以是被配置或格式化以由在设备104上运行的安装程序或服务来解析和应用的数据包。更新102可以是被复制到设备104上的适当的文件系统位置的一个或多个文件,从而可能取代先前的版本。更新102可以是在设备104上重新配置软件的脚本或命令,而不必改变设备104上的可执行代码。例如,更新102可以是被设备104上的相应软件使用的配置文件或其他静态对象。更新102可以是更改可执行文件或应用的任何事物。通常,更新102将涉及替换、添加、或移除设备104上的至少一些可执行代码。
在其最简单的形式中,更新服务100向设备104提供软件更新102。例如,以及更新服务100可以是对文件下载请求进行服务的HTTP(超文本传输协议)服务器。更新服务100可能更复杂,例如,应用开发者用来传播更新的所谓的软件商店或市场。更新服务100还可以是与客户端组件紧密合作的后端服务以用于透明地选择、传送和应用更新。在一个实施例中,更新服务100是对等服务,其中对等体彼此共享更新。在另一实施例中,更新服务100是在一组服务器上运行的网络应用或服务,例如云服务,其通过传送软件更新102来响应来自设备104的请求。任何已知的技术可被用来实现更新服务100。此外,如图1所示,可能存在可能由不同的实体或固件操作的多个更新服务100。
在一个实施例中,更新服务100包括更新分发器112和更新数据库114。更新数据库114可具有针对各个更新102的记录。每个更新记录标识相应的更新102、关于更新102的信息(诸如预期目标(例如,目标操作系统、目标硬件、软件版本等))、更新102的位置以及其他相关数据,如在下文中进一步讨论的。更新分配器112与更新数据库114协作以确定哪些更新将对任何特定设备104可用,或被转移到任何特定设备104。如将在下文中进一步描述的,可通过哪些跟踪特定设备104上已安装了哪些特定更新102来促成找到更新和异常之间的相关性。可在更新数据库114或其他地方进行跟踪。出于这个目的,在一个实施例中,每当向特定设备104提供特定更新102时,标识特定更新、特定设备104、以及更新102的更新实例记录被存储。在一些实施例中,此信息可能是在更新已经被应用了很久后才间接获得的(例如从接收自设备104的日志处获得)。
遥测报告108是被推入设备104或从设备104拉出的任何通信。遥测报告108指示设备104上的各个发生,并且由遥测收集器116收集,并然后被存储在遥测数据库118中。可被使用的遥测报告108的类型的示例包括:操作系统崩溃转储(可能包括堆栈跟踪)、应用崩溃转储、系统日志文件、应用日志文件、执行跟踪文件、修补日志、性能度量(例如CPU负载、内存使用、缓存冲突、网络性能统计等)或可被绑定到设备104上的软件行为的任何其他信息。如下文进一步详细讨论的,在一个实施例中,在因特网上发布的文本通信作为遥测源来被挖掘。如将变得显而易见的,本文描述的实施例可参考更新来改进提供有关一般系统健康的信息或不特定于或限于任何特定应用或软件的信息的遥测源的诊断价值。通过大量使用此类遥测源,找到在单个设备基础上可能无法发现的整个的相关性。
无论遥测数据的类型如何,遥测收集服务106通常将具有一些收集机制,(例如遥测收集器116)以及整理和存储传入遥测报告108的存储或数据库(例如遥测数据库118)。由于潜在的大量原始遥测数据,在一些实施例中,可从传入遥测报告108提取数据的关键项,并在处理原始遥测数据之前将其存储在遥测数据库118中。
图2示出了接收更新102和传送遥测报告108的设备104。如上文所描述的,现代设备通常具有在短时间段(例如,几分钟、几小时、甚至几天)内频繁通信的能力。设备可因此具有通过网络110的传入软件更新102和传出遥测报告108的稳定流。更新102可被一个或多个更新元件140接收和处理。更新元件140可以是应用、系统服务、文件系统、或可推入或拉出更新102的任何其他软件元件。一些更新元件140还可具有通过解包文件、安装二进制文件、设置配置数据、注册软件等来应用更新102的逻辑。更新元件140可简单地是以脚本的形式自动执行传入更新102的存储位置。总之,更新元件140可以是用于启用软件更新102的任何已知的工具或过程。
设备104还可具有一个或多个遥测报告元件142。如上文所描述的,可在遥测报告108中发射任何类型的遥测数据。可使用任何可用的报告框架,例如Crashlytics(TM)、TestFlight(TM)、Dr.Watson(TM)、OS X Crash Reporter(TM)、BugSplat(TM)、ApplicationCrash Report for Android Tool(用于安卓工具的应用崩溃报告)等。报告元件142还可以是任何已知的工具或框架(诸如OS X的诊断和日志服务、Microsoft Windows检测工具),其将转发由应用或其他软件等生成的事件和错误。报告元件142还可以是应用或其他软件单元,当应用或软件单元遇到诸如性能故障、重复错误或故障或其他事件之类的诊断相关信息时其自身发送消息或其他通信。换言之,软件可自报告。来自报告元件142的遥测报告108可转到多个相应的收集服务106,或者它们可转到相同的收集服务106。
来自设备104的遥测报告108有时会传达在设备上发生的事件的指示。遥测报告108的流可一起充当信号,该信号包括与设备上的事件或发生相对应的特征。如上文所讨论的,这些事件或异常实例可以是对评估软件性能有潜在帮助的任何类型的信息,诸如操作系统或应用崩溃、由软件自报告或由设备的操作系统处理的错误、过多或尖峰(spikey)的存储,处理器或网络使用、重新启动、修补故障、重复的用户动作(例如,重复尝试安装更新、重复重新启动应用程序等)。
图3示出了例示针对设备104群随时间的更新和遥测反馈的全局视图的图表160。随着时间的推移,在设备104上应用的更新数量和在遥测报告中传达的事件实例的数量随时间而变化。如本文所使用的,更新(update)指代应用于许多设备104的相同改变。更新实例(update instance)指代特定设备104上的特定更新的应用。如本文所使用的,事件实例(event instance)是在不同设备104上发生并且可由该设备上的遥测记录或反映的事物。如本文所使用的,当不同设备104上的事件实例相同时(例如,相同的程序崩溃、相同的功能生成错误、相同的性能测量过多、在日志文件中输入相同的项等),那些相同的事件实例是相同的事件的每个实例。如将在下文中描述的,在某些情况下,可通过分析和过滤事件实例来发现事件。在某些情况下,进一步的分析可能指示某事件为异常,这是统计上意外的或不寻常的或感兴趣的事件。如图表160所示,对于并发更新和遥测“信号”的混合而言,在遥测数据中寻找特定更新和特定异常之间的潜在因果关系可能是困难的。下文所讨论的滞后、噪声以及其他因素可能会掩盖关系。
图4示出了寻找更新和异常之间的相关性的一般过程。该过程假定适当的数据/记录可用,而不考虑该记录是如何被收集、存储、或访问的。可以以各种方式触发该过程。例如,该过程可以是尝试标识有问题的更新的周期性过程的一部分,或该过程可被手动启动,可能利用作为用户输入分析的目标的特定用户选择更新。该过程也可连续地运行,在其变得可用时迭代处理新数据。
在任何情况下,该过程在步骤108通过形成事件桶开始。每个事件桶是对应于相同事件的各事件实例的集合。例如,事件桶可由一组事件实例组成,每个事件实例表示系统崩溃、或相同的性能特征(例如,差的网络吞吐量)、或由相同的二进制可执行代码(或相同的功能,或编译自相同的源代码文件的二进制代码)生成的错误、或诸如存储器违规之类的特定类型的错误等。
事件桶可以例如通过以下以各种方式被形成:指定事件实例记录的一个或多个属性、形成相似事件实例记录的群集的群集算法、选择与所选择的事件记录有某些共同的属性的事件实例记录和搜索与所选择的事件记录有某些共同的属性的事件实例记录,等等。事件实例记录通常被注有日期(术语“日期”和“时间”在本文中可互换地使用,并且指代日期、或日期和时间、或时间段等)。因此,每个桶都是各事件实例的时序,并且可针对相应的规则时间间隔获得那些事件实例的计数。
如稍后将描述的,适用于桶中的遥测数据类型的一个或多个过滤器可被应用以移除将被认为是噪声或其他不被需要的事件实例记录。例如,可按日期、操作系统类型或版本、处理器、设备上或堆栈跟踪中特定文件的存在、和/或任何其他条件来过滤记录。
在步骤182,对每个事件桶进行统计分析以标识哪些桶指示异常,或者更具体而言,以标识每个桶中的任何异常。可使用各种类型的分析。例如,可以使用回归分析。在一个实施例中,使用具有受监督的机器学习的经修改的累积分布函数(CDF)来标识异常。标准CDF确定在一系列数字S中找到数字X的概率。例如,X可以是时间段Z(诸如一天)的事件实例的计数,而系列S是(例如前几天0到Z-1的)事件的数量。附加地,如果某些时间段被独立地确定为真阳性异常(例如,它们可能已被开发者标识),则可从系列S中移除该某些时间段。为了标识异常,异常阈值被设置(例如为95%或100%);如果候选异常(X)(不在系列S中)的概率超过了异常阈值,则该异常被标识出。图5示出了一个图表200。图表200比较随时间推移的给定遥测点和给定CDF的事件数量。图表200还示出了开发者的反馈以及被受监督的学习修改的CDF的结果。如所提及的,可使用其他类型的相关性分析,例如[示例]。
返回到图4,在步骤184,对于一个或多个更新,相应的更新实例记录集被找到。即,可能通过日期、操作系统、或更新内容(例如,更新是否对应于特定源代码文件)来选择更新,并且找到相应的更新实例记录,其中每个更新实例记录表示在特定时间或时间跨度处对特定设备进行特定更新的应用。更新实例记录还可包括指示更新被回滚、取代、或以其他方式相对于相应设备变得没有意义的记录。对于一些设备,更新实例记录可指示相应更新的间歇性存在(例如,更新可再次被应用、移除以及应用)。
在步骤186,在更新和具有异常的事件桶之间找到相关性。各种试探法中的任意一种可被用于寻找相关性或相关性的概率。即,一个或多个试探法可被用于确定特定异常归因于或与特定软件更新相关联的概率。在可被使用的试探法中,一些示例是:确定软件更新中特定二进制(或其他软件元件)是遥测点源的概率;确定异常与软件更新的发布一致的程度;找到更新部署模式和异常模式之间的偏差;确定在部署更新后异常是否持续存在(可能无需干预)。在一个实施例中,每个适用的试探法可被给予一个权重。当被报告的异常被用户标识成(i)真阳性或(ii)假阳性时,经由反馈回路调整权重。这些试探法和权重可被组合以计算每个相应异常和软件更新对的概率或百分比。以此方式,可对照许多并发异常来评估许多可能的更新,并且可标识出最可能的原因。对于运行时优化而言,一旦软件更新到达重要的部署而没有出现问题,或者在更新旨在解决问题的情况下确定相应的问题已被解决时,软件更新就可被排除在计算之外。
在寻找更新和异常之间的链接的概念中,图4中算法的许多变型可被使用。此外,图4中的步骤可以以不同的顺序并异步地执行。在一个实施例中,可最初例如由对更新感兴趣的开发者选择更新,并且使用更新的身份从已应用该更新的设备中选择事件实例记录。在另一实施例中,桶可被独立地形成并分析以标识异常。例如由开发者或测试者选择异常。基于与异常的一些关系(例如,在时间方面一致,更新元件存在于跟踪日志、堆栈跟踪、或崩溃文件中等)来选择更新实例记录。然后使用上文所提到的任何试探法来计算异常和相应更新之间的相关性。
如参考图1所讨论的,更新的应用和遥测报告被收集并存储。在一个实施例中,原始遥测数据和更新记录被访问,并且寻找更新-异常相关性所需的信息被提取、归一化、并存储在另一数据存储或数据库中。图6示出了更新存储220的示例。图7示出了遥测存储240的示例。
更新存储220包括存储更新记录的更新表222、存储哪些更新何时被应用于哪些设备的记录的更新实例表224、以及存储与更新相关联的更改记录的更改表226。更新实例记录和更改记录链接回相关的更新记录。更新记录存储关于更新的信息,并且该更新记录可在更新被发行时创建,或者在需要分析更新时由用户发起。更新记录可存储有关更新的任何信息,诸如版本、发行日期、位,文件,数据包的位置、有关目标操作系统或架构的信息等。更新实例记录存储有关应用于设备的更新的任何信息,诸如更新的时间、由应用更新而生成的任何错误等等。
更改表226存储指示哪些资产被哪些更新更改的记录。资产是设备上的任何对象,诸如可执行程序、共享库、配置文件、设备驱动器等。在一个实施例中,更改表226由爬行器或其他工具自动地填充,该爬行器或其他工具查找新的更新记录、打开相关数据包、标识任何受影响的资产、并如实记录在更改表226中。如果清单可用,则也可从清单获取更改。在一个实施例中,源代码控制系统被访问以获得更新中关于资产的信息。如果可执行文件在更新中,则可执行文件的身份(例如,文件名和版本)被传递给源代码控制系统。源代码控制系统返回关于自上次编译可执行文件起被更改的任何源代码文件的信息。换言之,源代码控制系统提供关于与更新相关的任何源代码更改的信息。如将在下文进一步描述的,这可有助于将相关性分析扩展到特定源代码文件,或甚至源代码的函数或行。
返回到图7,遥测存储240包括每种类型的遥测源的表格。例如,日志遥测源242提供存储在日志表244中的日志或跟踪数据。在一个实施例中,日志或跟踪文件可被解析以提取被填充到日志表244中的相关信息。崩溃遥测源246提供应用和/或操作系统崩溃转储。崩溃解析引擎分析崩溃并提取相关信息,诸如堆栈跟踪数据(例如,崩溃期间哪些功能或文件是活动的)、在崩溃发生时存储器的关键内容、崩溃的具体原因、以及其他信息。崩溃信息被存储在崩溃表248中。在另一实施例中,到崩溃转储文件的链接被保存在崩溃表248中,并且在需要时解析崩溃转储。如上文所提及的,可类似地管理其他类型的遥测数据。例如,性能遥测数据、用户发起的反馈、自定义诊断或其他。
可注意到,在应用崩溃遥测源具有堆栈跟踪的情况下,为了帮助管理遥测数据的规模,可使用二进制列表、其版本、以及边界日期来寻找在其各自的堆栈跟踪中具有二进制中的一个的边界日期内的所有故障(事件实例)。
在一个实施例中,可通过监视公共评论来提供遥测源。用户反馈通过针对提到遭受更新或可能受更新影响的软件的文本或多媒体内容爬行因特网网页、访问公共资源(例如,Twitter(TM)消息)来获得。对于给定的更新,在内容中搜索一组静态和动态关键字以标识相关的内容。静态关键字是人们讨论软件问题时常用的任何单词,例如“安装”、“重启”、“崩溃”、“挂起”、“卸载”等。根据更新生成动态关键字,例如,更新的名称或标识符、受更新影响的文件的名称、更新的发布者、操作系统的名称等。当关键字充分匹配用户编写的内容的项时,创建指示内容的时间、相关的更新(如果有的话)、也许是发现(使用已知的文本分析技术)内容是正面还是负面评论的记录,或可指示某人更新有困难或是更新成功的其他信息。具有日期的所标识的用户反馈实例的计数可然后充当可与更新有关的遥测桶的另一个源。
图8示出了用于将遥测数据与更新和可能的源代码元件相关的示例相关性引擎260。异常检测器262可首先从遥测存储器240中选择任何遥测事件实例记录,例如任何新的遥测事件实例记录或在分析日期之后或在发布一个或多个更新的日期之后发生的记录。遥测桶被形成,并计算每个桶在时间间隔上的计数。然后执行过滤和异常检测。过滤桶通常会移除记录以使桶聚焦于更相关的集合。在遥测桶表示事件的第一次发生的情况下,可基于基本条件来过滤桶,诸如桶中的最小记录数量、桶中表示的独特设备的最小数量、在其期间发生相应事件实例的最小天数、或可能与遥测数据类型相关的其他条件。对于与应用崩溃相关的遥测源,若干过滤条件可能是有帮助的:该故障是否在更新的发布日期之后首次被观察到(阳性过滤器);移除其当前操作系统版本没有足够的部署(例如,小于70%)的桶记录;以及移除相关二进制分布不足(例如,小于70%)的桶记录。
在遥测桶具有表示在更新日期之前发生的事件的项的情况下,先前的事件实例可被用于确定桶中的最近的事件实例是正常的还是不正常的。例如,常规事件尖峰可能指示最近的事件尖峰不是异常。事件实例的基线历史速率也可充当对桶进行过滤的基础,例如使用历史速率的标准偏差。
如上文所提及的,桶中的尖峰(例如,随着时间的推移发生快速增加)可充当潜在地指示异常的特征。可以各种方式来检测尖峰。在应用崩溃遥测的情况下,应用崩溃和事件桶之间通常会存在多对多的关系。因此,针对给定的崩溃或失败,找到相关的桶。然后,桶被迭代以寻找该桶的更新中故障或崩溃的分布。命中计数是从发布日期返回到先前的日期(例如,60天)中获得的。针对崩溃或失败的分布来调整命中计数,并相应地对崩溃/失败的命中计数进行调整。然后,在相应的更新发布日期上枢转,计算更新之前的命中计数均值和方差。这些被用于确定更新发布后的命中计数的累积概率。没有足够高命中概率(例如95%)的桶被过滤掉。
当桶已经被过滤时,一个或多个试探法(诸如统计回归)被应用以确定是否有任何桶指示异常已经发生。对潜在的回归条件的分析可被优先化。例如,按以下顺序:发生崩溃时更新出现次数的百分比;尖峰(潜在的异常)不会周期性地发生并且尖峰与安装重新启动无关的概率;崩溃桶中的崩溃导致了总体二进制崩溃上升的可能性;崩溃尖峰与操作系统更新相关,而不与第三方软件相关的可能性;尖峰是一致的而不是暂时的概率;在较长的时间(例如,几个月)上尖峰为最大值的概率。如上所述,异常分析还可取决于与桶相对应的事件是新的事件还是先前已经发生的事件。被确定为具有异常的桶被传递到更新相关器264。
更新相关器264接收异常桶并访问更新数据,诸如更新存储220。可基于用于选择遥测桶的标准、基于枢转日期、基于用户选择,或可被选择的任何新的更新来选择更新。然后使用任何已知的统计相关性技术(包括本文别处讨论那些相关技术)来计算更新和异常遥测桶之间的相关性。
如上所述,如果有详细的更新信息可用(参见更改表226),则根据该信息的粒度,可找到与异常之间更具体的相关性。源代码相关器266可被提供以接收更新和异常之间的相关性。源代码相关器266确定每个软件更新的源代码更改与其相关的遥测异常桶的相关性。源代码更改与异常之间的每个相关性都基于源代码更改与在异常桶中发射遥测点的源代码之间的匹配级别而被赋予排序。如果没有找到直接匹配,则执行对发射遥测的源代码和经更改的源代码列表的调用图(或类似的源代码分析)的搜索,以获得可能导致异常的源代码更改的经排定优先级的列表。图9示出了源代码文件280和崩溃桶282之间的关联的示例。因为源代码文件280具有被牵涉在崩溃桶282中的功能,所以构成崩溃桶282的遥测事件实例可被用于寻找源代码文件280和崩溃桶282之间的相关性的可能性。此外,如图9所示,如果崩溃桶282具有关于特定功能(或甚至代码偏移的行号)的信息,则也可计算与该功能的相关性。
返回到图8,相关性引擎260的输出(诸如异常存储桶的记录、更新-异常相关性的记录、以及源代码-异常相关性的记录)被存储在分析数据库268中。工具、客户端、自动化处理等可访问分析数据库268。例如,更新监视器270监视分析数据库268以标识新的异常及与其相关联的更新。更新监视器270可使用该信息来向更新控制器272发送指令。更新控制器272控制更新的各方面,诸如撤回将被传送到设备的可用更新或约束更新的可用范围(例如,到特定区域、平台、语言、操作系统)。因为相关性引擎260可以近似实时地分析关于更新的遥测反馈,所以即使更新仍被滚出到设备,异常-更新相关性也可被标识。这可允许更新在发布后立即被撤销或扼制,以潜在地避免问题发生在尚未接收更新的设备上。此外,对于不同操作系统或处理器架构具有不同二进制的更新,可能会发现异常。换句话说,相关性引擎可使用来自异构设备的遥测和对异构设备的更新来找到相关性。
更新监视器270还可被用于评估被标记为补丁的更新的有效性。可将预先存在的事件(桶)链接到更新,并可以利用由更新监视器270的用户界面提供的反馈来评估更新的有效性。如果相关联的事件/异常下降到阈值发生率以下,则更新可被认为是有效的。
更新监视器270还可被实现为具有用户界面的客户端,开发者利用该用户界面来查找可能与被开发者标识的更新有关的问题。或者,用户可选择异常并查看哪些更新、源代码文件等与异常相关联。在一个实施例中,提供了一种仪表板类型的用户界面,其可显示由分析数据库268中的异常所反映的设备的总体健康状况。异常可通过其规模(地理位置、设备类型等)、其增加速率等被评估。当更新被确定会导致异常时,仪表板可显示警报。在更新被标记为旨在补救异常的补丁的情况下,仪表板可提供更新成功的指示。
多个相关性引擎260可使用相同的更新数据。遥测数据类型的差异必然导致部分不同的实现。例如,一个相关性引擎260使用的过滤器298可不同于在另一相关性引擎260中使用的那些过滤器。尽管如此,异常检测和相关性算法中的一些可被任何相关性引擎260所使用。通用异常检测功能(诸如CDF)可被包括在异常检测库300中。类似地,诸如用于确定异常归因于给定软件更新的概率的回归算法之类的通用算法可由更新概率库302提供。用于寻找给定软件更新的遥测异常与源代码更改之间的相关性的功能可以由源代码相关性库304提供,源代码相关性库304可被可利用其的任何相关性引擎260访问。更新概率库302和源代码相关性库304还可提供对更新数据和源代码改变数据的经抽象的访问。
在一个实施例中,相关性引擎作为在线算法运行,处理遥测数据并在其变得可用时更新数据。一旦相关性引擎260确定了当前时间的所有异常,则其将相关信息馈送到上述报告仪表板中(经由分析数据库268)。更新监视器270或其他工具可包括排序逻辑以排序与更新相关的异常。可为异常类型、更新、源代码文件等分配权重以帮助优先排序。其他标准可被使用,诸如异常的量级或速率、异常的持续时间、与相同更新相关的异常的数量等等。异常和/或更新可以按其优先排序的顺序显示,以帮助开发者和其他人员快速标识需要解决的最重要的问题。
反馈可告知上文所讨论的受监督的学习。客户端应用320显示用户界面322。用户界面322可显示上文所描述的信息,诸如按优先级排序的异常的标记、有问题的更新等。在一个实施例中,异常检测/相关性分析可作为网络反馈服务324被提供,该网络反馈服务324对负责被应用于设备的更新中的一些的任何实体可用。操作系统供应商可操作遥测基础设施。任何第三方开发者都被给予了仅与已发布更新的第三方软件相关的异常/更新分析的访问权。应当注意,本文所描述的软件设计部分地是出于方便的结果。实际上,不同的组件可被分发给各个责任方。
异常汇总用户界面322可包括:异常的名称或标识符;摘要信息,诸如异常被标识的日期、异常的类型(例如尖锋)、以及异常的范围(例如,受影响的操作系统或处理器);异常的特征,像异常检测是正确的概率、以及异常的测量;相关更新及其发生率的列表;显示了随时间变化的异常实例的计数的遥测图;以及遥测统计数据,诸如日平均计数、升级前和后的计数、报告事件的独特机器等。
计算设备350可以是具有处理硬件352(例如,CPU和/或GPU)、具有能够被处理硬件读取或写入处理硬件的存储硬件354、可能具有输入设备356(诸鼠标、相机、麦克风、触敏表面、传感器等)、并还可能具有任何已知类型的显示器358的任何类型的设备。计算设备350中的一个或多个实现与遥测、更新、以及其合成相关的上文所描述的软件组件。
上文所描述的实施例和特征也可以以被存储在易失性或非易失性计算机或设备可读硬件中的信息的形式来实现。认为至少包括诸如光学存储(例如,紧致盘只读存储器(CD-ROM))、磁存储器、闪存只读存储器(ROM)之类的硬件,或存储数字信息的任何当前或未来的装置。所存储的信息的形式可以是机器可执行指令(例如,已编译的可执行二进制码)、源代码、字节码、或者可用于启用或配置计算设备以执行以上讨论的各种实施例的任何其他信息。在执行实施例的程序的执行期间,还认为至少包括诸如随机存取存储器(RAM)之类的易失性存储器、和/或存储诸如中央处理单元(CPU)指令之类的信息的虚拟存储器、以及存储允许加载和执行程序或可执行文件的信息的非易失性介质。各实施例和特征可在任何类型的计算设备上执行,包括便携式设备、工作站、服务器、移动无线设备等。

Claims (10)

1.一种将软件更新与设备上发生异常的指示相关的方法,所述设备中的至少一些具有所述软件更新,所述方法包括:
访问指示哪些设备具有哪些更新的更新安装信息;
访问遥测数据源,所述遥测数据源包括在所述设备上相同事件的发生的指示,所述发生的指示经由数据网络接收自所述设备,每个发生的指示都指示了何时在哪个相应设备上发生了哪个事件;
标识所述遥测数据源中的异常;
确定所述异常中的哪一些与所述更新中的哪一些相关;以及
对每个异常,存储被确定为与所述异常相关的任何更新的指示。
2.如权利要求1所述的方法,其特征在于,进一步包括访问源代码更改数据并基于其与所述更新的关联标识源代码更改,并寻找所述源代码更改与所述异常之间的相关性。
3.如权利要求1所述的方法,其特征在于,确定所述异常中的哪一些与所述更新中的哪一些相关包括应用计算相关性分数或更新和异常的配对概率的试探法。
4.一种由一个或多个计算设备执行的方法,所述方法包括:
访问多种类型的遥测数据源,每个遥测数据源包括接收自设备的不同类型的软件性能反馈;
根据相应遥测数据源中的每一个形成多个数据集,每个数据集包括所述设备上的软件事件示例的计数,所述计数被作为来自相应遥测数据源的时间的函数;以及
分析每个数据集以确定所述数据集是否包括异常;
计算所述设备的软件更新与被确定为包括相应异常的所述数据集的相关性,其中在与所述数据集的时间跨度至少部分重叠的时间跨度期间将多个软件更新应用于所述设备;以及
自动地基于所述更新中的一个或多个与被确定为包括异常的一个或多个数据集足够相关来控制所述更新中的所述一个或多个的分发、应用或可用性。
5.如权利要求4所述的方法,其特征在于,进一步包括计算所述设备的软件更新与被确定为包括相应异常的所述数据集的相关性。
6.如权利要求4所述的方法,其特征在于,所述分析进一步包括,针对被确定为具有异常的数据集,确定报告与所述异常对应的遥测数据的设备的地理区域的范围。
7.如权利要求4所述的方法,其特征在于,进一步包括基于事件实例的先前计数来过滤所述数据集。
8.一种由一个或多个计算设备执行的方法,所述方法包括:
寻找各个事件的事件桶,每个事件桶包括各个时间段上的事件实例的计数,每个事件实例包括在设备上的相应事件的发生,所述发生是所述设备经由遥测反馈系统来报告的;
寻找更改记录,每个更改记录表示相应设备的软件更改的更改实例,每个更改记录指示哪个相应设备被更改并且指示对应于所表示的更改实例的时间,所述更改记录表示多个软件更改的改变实例;以及
分析所述事件桶以标识所述事件桶中的哪一些包括异常;以及
基于所述改变记录和经标识的事件桶,确定所述软件更改中的哪一些与所述经标识的事件桶中的哪一些相关,以及显示或存储指示所述软件更改中的哪一些被确定为与所述经标识的事件桶中的哪一些相关的相关性信息。
9.如权利要求8所述的方法,其特征在于,进一步包括寻找所述经标识的事件桶和与所述经标识的事件桶相关联的源代码文件之间的相关性。
10.如权利要求9所述的方法,其特征在于,进一步包括基于与所述软件更改中的一个或多个相关联地更改的所述源代码文件来标识所述源代码文件。
CN201680020978.1A 2015-04-01 2016-03-21 用于软件分发的异常分析 Withdrawn CN107533504A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/676,214 US9626277B2 (en) 2015-04-01 2015-04-01 Anomaly analysis for software distribution
US14/676,214 2015-04-01
PCT/US2016/023337 WO2016160381A1 (en) 2015-04-01 2016-03-21 Anomaly analysis for software distribution

Publications (1)

Publication Number Publication Date
CN107533504A true CN107533504A (zh) 2018-01-02

Family

ID=55752711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680020978.1A Withdrawn CN107533504A (zh) 2015-04-01 2016-03-21 用于软件分发的异常分析

Country Status (4)

Country Link
US (2) US9626277B2 (zh)
EP (1) EP3278223A1 (zh)
CN (1) CN107533504A (zh)
WO (1) WO2016160381A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582485A (zh) * 2018-10-26 2019-04-05 阿里巴巴集团控股有限公司 一种配置变更异常检测方法及装置
CN110879714A (zh) * 2018-09-05 2020-03-13 现代自动车株式会社 用于提供车辆的更新的装置和计算机可读存储介质
CN113557499A (zh) * 2019-03-12 2021-10-26 微软技术许可有限责任公司 动态监控基于云的应用服务

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9172591B2 (en) * 2012-02-06 2015-10-27 Deepfield Networks System and method for management of cloud-based systems
US10133614B2 (en) * 2015-03-24 2018-11-20 Ca, Inc. Anomaly classification, analytics and resolution based on annotated event logs
US9626277B2 (en) * 2015-04-01 2017-04-18 Microsoft Technology Licensing, Llc Anomaly analysis for software distribution
US10380339B1 (en) * 2015-06-01 2019-08-13 Amazon Technologies, Inc. Reactively identifying software products exhibiting anomalous behavior
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10140171B2 (en) * 2016-04-14 2018-11-27 International Business Machines Corporation Method and apparatus for downsizing the diagnosis scope for change-inducing errors
US10191800B2 (en) * 2016-04-29 2019-01-29 Cisco Technology, Inc. Metric payload ingestion and replay
US10685292B1 (en) * 2016-05-31 2020-06-16 EMC IP Holding Company LLC Similarity-based retrieval of software investigation log sets for accelerated software deployment
US10338990B2 (en) 2016-06-23 2019-07-02 Vmware, Inc. Culprit module detection and signature back trace generation
US10331508B2 (en) 2016-06-23 2019-06-25 Vmware, Inc. Computer crash risk assessment
US10268563B2 (en) * 2016-06-23 2019-04-23 Vmware, Inc. Monitoring of an automated end-to-end crash analysis system
US10365959B2 (en) 2016-06-23 2019-07-30 Vmware, Inc. Graphical user interface for software crash analysis data
US10191837B2 (en) 2016-06-23 2019-01-29 Vmware, Inc. Automated end-to-end analysis of customer service requests
US10372434B1 (en) * 2016-07-22 2019-08-06 Amdocs Development Limited Apparatus, computer program, and method for communicating an update to a subset of devices
US20180032905A1 (en) * 2016-07-29 2018-02-01 Appdynamics Llc Adaptive Anomaly Grouping
US10521590B2 (en) * 2016-09-01 2019-12-31 Microsoft Technology Licensing Llc Detection dictionary system supporting anomaly detection across multiple operating environments
US10387899B2 (en) * 2016-10-26 2019-08-20 New Relic, Inc. Systems and methods for monitoring and analyzing computer and network activity
US10409367B2 (en) 2016-12-21 2019-09-10 Ca, Inc. Predictive graph selection
US10346762B2 (en) 2016-12-21 2019-07-09 Ca, Inc. Collaborative data analytics application
US10289526B2 (en) 2017-02-06 2019-05-14 Microsoft Technology Licensing, Llc Object oriented data tracking on client and remote server
US10747520B2 (en) 2017-04-14 2020-08-18 Microsoft Technology Licensing, Llc Resource deployment using device analytics
US11176464B1 (en) 2017-04-25 2021-11-16 EMC IP Holding Company LLC Machine learning-based recommendation system for root cause analysis of service issues
WO2019021064A1 (en) 2017-07-25 2019-01-31 Aurora Labs Ltd CONSTRUCTION OF SOFTWARE DELTA UPDATES FOR VEHICLE ECU SOFTWARE AND TOOL-BASED ANOMALY DETECTION
US10891219B1 (en) 2017-08-07 2021-01-12 Electronic Arts Inc. Code failure prediction system
US10372438B2 (en) 2017-11-17 2019-08-06 International Business Machines Corporation Cognitive installation of software updates based on user context
CN107885433B (zh) * 2017-11-23 2021-07-27 Oppo广东移动通信有限公司 终端设备的控制方法、装置、终端、服务器以及存储介质
US10963330B2 (en) * 2017-11-24 2021-03-30 Microsoft Technology Licensing, Llc Correlating failures with performance in application telemetry data
US11023218B1 (en) * 2017-12-31 2021-06-01 Wells Fargo Bank, N.A. Metadata driven product configuration management
US10929217B2 (en) 2018-03-22 2021-02-23 Microsoft Technology Licensing, Llc Multi-variant anomaly detection from application telemetry
US20190334759A1 (en) * 2018-04-26 2019-10-31 Microsoft Technology Licensing, Llc Unsupervised anomaly detection for identifying anomalies in data
US11651272B2 (en) * 2018-07-06 2023-05-16 Sap Se Machine-learning-facilitated conversion of database systems
US10956307B2 (en) 2018-09-12 2021-03-23 Microsoft Technology Licensing, Llc Detection of code defects via analysis of telemetry data across internal validation rings
TWI727213B (zh) * 2018-10-08 2021-05-11 安碁資訊股份有限公司 偵測作業系統的異常操作的異常偵測的方法及裝置
US11204755B2 (en) * 2018-11-13 2021-12-21 Split Software, Inc. Systems and methods for providing event attribution in software application
US11010282B2 (en) 2019-01-24 2021-05-18 International Business Machines Corporation Fault detection and localization using combinatorial test design techniques while adhering to architectural restrictions
US11263116B2 (en) 2019-01-24 2022-03-01 International Business Machines Corporation Champion test case generation
US11099975B2 (en) 2019-01-24 2021-08-24 International Business Machines Corporation Test space analysis across multiple combinatoric models
US11106567B2 (en) 2019-01-24 2021-08-31 International Business Machines Corporation Combinatoric set completion through unique test case generation
US10922210B2 (en) * 2019-02-25 2021-02-16 Microsoft Technology Licensing, Llc Automatic software behavior identification using execution record
US11720461B2 (en) 2019-03-12 2023-08-08 Microsoft Technology Licensing, Llc Automated detection of code regressions from time-series data
US11625315B2 (en) * 2019-05-29 2023-04-11 Microsoft Technology Licensing, Llc Software regression recovery via automated detection of problem change lists
US11232020B2 (en) 2019-06-13 2022-01-25 International Business Machines Corporation Fault detection using breakpoint value-based fingerprints of failing regression test cases
US10963366B2 (en) 2019-06-13 2021-03-30 International Business Machines Corporation Regression test fingerprints based on breakpoint values
US10970197B2 (en) * 2019-06-13 2021-04-06 International Business Machines Corporation Breakpoint value-based version control
US10970195B2 (en) 2019-06-13 2021-04-06 International Business Machines Corporation Reduction of test infrastructure
US11422924B2 (en) 2019-06-13 2022-08-23 International Business Machines Corporation Customizable test set selection using code flow trees
US10891128B1 (en) * 2019-08-07 2021-01-12 Microsoft Technology Licensing, Llc Software regression detection in computing systems
US11244012B2 (en) 2019-11-06 2022-02-08 Kyndryl, Inc. Compliance by clustering assets according to deviations
US11294804B2 (en) * 2020-03-23 2022-04-05 International Business Machines Corporation Test case failure with root cause isolation
US11179644B2 (en) 2020-03-30 2021-11-23 Electronic Arts Inc. Videogame telemetry data and game asset tracker for session recordings
JP7073438B2 (ja) * 2020-04-14 2022-05-23 日本電子株式会社 自動分析装置および自動分析装置の制御方法
US11446570B2 (en) 2020-05-08 2022-09-20 Electronic Arts Inc. Automated test multiplexing system
US20210406150A1 (en) * 2020-06-25 2021-12-30 Segment.io, Inc. Application instrumentation and event tracking
US11550925B2 (en) 2021-03-24 2023-01-10 Bank Of America Corporation Information security system for identifying potential security threats in software package deployment
US20240069999A1 (en) * 2022-08-31 2024-02-29 Microsoft Technology Licensing, Llc Detecting and mitigating cross-layer impact of change events on a cloud computing system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080195369A1 (en) * 2007-02-13 2008-08-14 Duyanovich Linda M Diagnostic system and method
US20140337608A1 (en) * 2005-09-27 2014-11-13 Samsung Electronics Co., Ltd. Method and system for booting and automatically updating software, and recovering from update error, and computer readable recording medium storing method
CN105190548A (zh) * 2013-03-14 2015-12-23 微软技术许可有限责任公司 软件的自动风险分析

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141683A (en) 1998-01-30 2000-10-31 Lucent Technologies, Inc. Method for remotely and reliably updating of the software on a computer with provision for roll back
US6650932B1 (en) 2000-05-15 2003-11-18 Boston Medical Technologies, Inc. Medical testing telemetry system
US7409593B2 (en) 2003-06-30 2008-08-05 At&T Delaware Intellectual Property, Inc. Automated diagnosis for computer networks
US20050097199A1 (en) 2003-10-10 2005-05-05 Keith Woodard Method and system for scanning network devices
US20050132351A1 (en) 2003-12-12 2005-06-16 Randall Roderick K. Updating electronic device software employing rollback
US8719809B2 (en) 2006-12-22 2014-05-06 Commvault Systems, Inc. Point in time rollback and un-installation of software
US20080201705A1 (en) 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
US8745703B2 (en) * 2008-06-24 2014-06-03 Microsoft Corporation Identifying exploitation of vulnerabilities using error report
US8561179B2 (en) * 2008-07-21 2013-10-15 Palo Alto Research Center Incorporated Method for identifying undesirable features among computing nodes
US9152530B2 (en) 2009-05-14 2015-10-06 Oracle America, Inc. Telemetry data analysis using multivariate sequential probability ratio test
US20110314138A1 (en) 2010-06-21 2011-12-22 Hitachi, Ltd. Method and apparatus for cause analysis configuration change
US20110321007A1 (en) 2010-06-29 2011-12-29 International Business Machines Corporation Targeting code sections for correcting computer program product defects using records of a defect tracking system
US9766962B2 (en) 2012-06-07 2017-09-19 Vmware, Inc. Correlating performance degradation of applications to specific changes made to applications
WO2013188883A2 (en) 2012-06-15 2013-12-19 Alderman Ian Method and system for automatically detecting and resolving infrastructure faults in cloud infrastructure
US20140033174A1 (en) 2012-07-29 2014-01-30 International Business Machines Corporation Software bug predicting
US8984331B2 (en) * 2012-09-06 2015-03-17 Triumfant, Inc. Systems and methods for automated memory and thread execution anomaly detection in a computer network
US9632858B2 (en) * 2013-07-28 2017-04-25 OpsClarity Inc. Organizing network performance metrics into historical anomaly dependency data
US9378079B2 (en) * 2014-09-02 2016-06-28 Microsoft Technology Licensing, Llc Detection of anomalies in error signals of cloud based service
US9904584B2 (en) * 2014-11-26 2018-02-27 Microsoft Technology Licensing, Llc Performance anomaly diagnosis
US10133614B2 (en) * 2015-03-24 2018-11-20 Ca, Inc. Anomaly classification, analytics and resolution based on annotated event logs
US9626277B2 (en) * 2015-04-01 2017-04-18 Microsoft Technology Licensing, Llc Anomaly analysis for software distribution

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140337608A1 (en) * 2005-09-27 2014-11-13 Samsung Electronics Co., Ltd. Method and system for booting and automatically updating software, and recovering from update error, and computer readable recording medium storing method
US20080195369A1 (en) * 2007-02-13 2008-08-14 Duyanovich Linda M Diagnostic system and method
CN105190548A (zh) * 2013-03-14 2015-12-23 微软技术许可有限责任公司 软件的自动风险分析

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110879714A (zh) * 2018-09-05 2020-03-13 现代自动车株式会社 用于提供车辆的更新的装置和计算机可读存储介质
CN110879714B (zh) * 2018-09-05 2024-03-22 现代自动车株式会社 用于提供车辆的更新的装置和计算机可读存储介质
CN109582485A (zh) * 2018-10-26 2019-04-05 阿里巴巴集团控股有限公司 一种配置变更异常检测方法及装置
CN109582485B (zh) * 2018-10-26 2022-05-03 创新先进技术有限公司 一种配置变更异常检测方法及装置
CN113557499A (zh) * 2019-03-12 2021-10-26 微软技术许可有限责任公司 动态监控基于云的应用服务

Also Published As

Publication number Publication date
US20170177468A1 (en) 2017-06-22
US20160292065A1 (en) 2016-10-06
EP3278223A1 (en) 2018-02-07
US9626277B2 (en) 2017-04-18
WO2016160381A1 (en) 2016-10-06

Similar Documents

Publication Publication Date Title
CN107533504A (zh) 用于软件分发的异常分析
US11354219B2 (en) Machine defect prediction based on a signature
US11449379B2 (en) Root cause and predictive analyses for technical issues of a computing environment
US9298525B2 (en) Adaptive fault diagnosis
US10303539B2 (en) Automatic troubleshooting from computer system monitoring data based on analyzing sequences of changes
US20190317754A1 (en) Continuous software deployment
US8826077B2 (en) Defining a computer recovery process that matches the scope of outage including determining a root cause and performing escalated recovery operations
CN115190035B (zh) 用于提供移动设备支持服务的系统、方法、装置和介质
EP3616066B1 (en) Human-readable, language-independent stack trace summary generation
US8453027B2 (en) Similarity detection for error reports
Lou et al. Software analytics for incident management of online services: An experience report
US11157471B2 (en) Generic autonomous database tuning as a service for managing backing services in cloud
US20080183855A1 (en) System and method for performance problem localization
US8055945B2 (en) Systems, methods and computer program products for remote error resolution reporting
US20090172687A1 (en) Management of computer events in a computer environment
Zhao et al. Identifying bad software changes via multimodal anomaly detection for online service systems
US11625315B2 (en) Software regression recovery via automated detection of problem change lists
US10223185B2 (en) Automated defect diagnosis from machine diagnostic data
Lou et al. Experience report on applying software analytics in incident management of online service
US11422880B1 (en) Methods and systems for determining crash similarity based on stack traces and user action sequence information
US20150326446A1 (en) Automatic alert generation
CN114661319A (zh) 软件升级稳定性推荐
CN114595127A (zh) 日志异常处理方法、装置、设备和存储介质
US11537391B2 (en) Software change analysis and automated remediation
CN111523921B (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20180102

WW01 Invention patent application withdrawn after publication