用于软件分发的异常分析制造技术

技术编号:16934721 阅读:24 留言:0更新日期:2018-01-03 05:06
设备群提供遥测数据并接收软件更改或更新。各个事件的事件桶被找到。事件桶具有事件实例的计数,其中每个事件实例是被设备报告为遥测的相应事件的发生。软件更改的记录被提供,每个更改记录表示相应设备上的软件更改。事件桶被分析以标识哪个事件桶指示异常。基于更改记录和经标识的事件桶,找到软件更改与经标识的事件桶之间的相关性。

Exception analysis for software distribution

The device group provides telemetry data and receives software changes or updates. The barrel of events of each event was found. The event bucket has the count of the event instances, in which each event instance is the occurrence of a corresponding event reported by the device as a telemetry. The record of the software changes is provided, and each change record represents the software changes on the corresponding device. The event bucket is analyzed to identify which event bucket indicates an exception. Based on the change record and the identified event bucket, the correlation between the software change and the identified event bucket is found.

【技术实现步骤摘要】
【国外来华专利技术】用于软件分发的异常分析背景运行软件的设备通常需要随时间更新。对软件更新的需要可能由许多因素驱动,诸如修复错误、添加新功能、提高性能、维护与其他软件的兼容性等。虽然许多技术已被用于更新软件,但更新通常涉及更改程序的源代码、编译程序、以及将程序分发到将在其上执行该经更新的程序的设备。程序被编译以用于多种类型的设备和操作系统变得越来越常见。从相同源代码文件编译的可执行代码可能最终会在具有不同类型的处理器、不同类型或版本的操作系统的设备上执行。对此类跨平台程序的更新可能是难以评估的。此外,设备的网络连接的增加导致了软件开发者以更高速率更新,以及更频繁地由设备报告性能相关数据(遥测)。在短时间段内,设备可能会接收许多软件更新,并且可能会向各种遥测收集器传送许多遥测报告。软件分发系统可能会向许多不同的设备快速发布许多不同的软件更新。由于设备几乎在同一时间提供关于性能、崩溃、堆栈转储、执行踪迹等反馈遥测,设备上的许多软件组件可能正在更改。因此,软件开发者使用遥测反馈来决定特定软件更新是创建了还是修复了任何问题是困难的。如果某些设备上发生了异常,则确定是否任何特定的软件更新被牵涉、确定更新可能被链接到异常的任何情况、或确定软件更新中哪些具体代码级改变被牵涉是困难的。简而言之,高速率的软件更新和遥测报告可能由具有不同架构和操作系统的设备处理,这使得很难找到软件更新(或源代码更改)与遥测反馈中出现的异常之间的相关性。以下讨论关于在遥测数据中寻找异常和找到异常与软件更新之间的相关性的技术。概述包括以下概述仅仅是为了介绍在以下详细描述中讨论的一些概念。该概述不是完整性的并且不意图划定所要求保护的主题的范围,所述范围由结尾处呈现的权利要求书提出。设备群提供遥测数据并接收软件更改或更新。各个事件的事件桶被找到。事件桶具有事件实例的计数,其中每个事件实例是被设备报告为遥测的相应事件的发生。软件更改的记录被提供,每个更改记录表示相应设备上的软件更改。事件桶被分析以标识哪个事件桶指示异常。基于更改记录和经标识的事件桶,找到软件更改与经标识的事件桶之间的相关性。许多附带特征将随着参考下面的详细描述并结合附图进行解释。附图简述从结合附图阅读的以下详细描述将更好地理解本专利技术的描述,其中相同的附图标记用户指示所附描述中相同的部分。图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)、AppleA4或A5(TM)、Snapdragon(TM)、或其他处理器。表示设备104的图形的底纹指示了不同操作系统的类型或版本,例如Ubuntu(TM)、AppleiOS(TM)、AppleOSX(TM)、MicrosoftWindows(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的存本文档来自技高网...
用于软件分发的异常分析

【技术保护点】
一种将软件更新与设备上发生异常的指示相关的方法,所述设备中的至少一些具有所述软件更新,所述方法包括:访问指示哪些设备具有哪些更新的更新安装信息;访问遥测数据源,所述遥测数据源包括在所述设备上相同事件的发生的指示,所述发生的指示经由数据网络接收自所述设备,每个发生的指示都指示了何时在哪个相应设备上发生了哪个事件;标识所述遥测数据源中的异常;确定所述异常中的哪一些与所述更新中的哪一些相关;以及对每个异常,存储被确定为与所述异常相关的任何更新的指示。

【技术特征摘要】
【国外来华专利技术】2015.04.01 US 14/676,2141.一种将软件更新与设备上发生异常的指示相关的方法,所述设备中的至少一些具有所述软件更新,所述方法包括:访问指示哪些设备具有哪些更新的更新安装信息;访问遥测数据源,所述遥测数据源包括在所述设备上相同事件的发生的指示,所述发生的指示经由数据网络接收自所述设备,每个发生的指示都指示了何时在哪个相应设备上发生了哪个事件;标识所述遥测数据源中的异常;确定所述异常中的哪一些与所述更新中的哪一些相关;以及对每个异常,存储被确定为与所述异常相关的任何更新的指示。2.如权利要求1所述的方法,其特征在于,进一步包括访问源代码更改数据并基于其与所述更新的关联标识源代码更改,并寻找所述源代码更改与所述异常之间的相关性。3.如权利要求1所述的方法,其特征在于,确定所述异常中的哪一些与所述更新中的哪一些相关包括应用计算相关性分数或更新和异常的配对概率的试探法。4.一种由一个或多个计算设备执行的方法,所述方法包括:访问多种类型的遥测数据源,每个遥测数据源包括接收自设备的不同类型的软件性能反馈;根据相应遥测数据源中的每一个形成多个数据集,每个数据集包括所述设备上的软件事件示例的计数,所述计数被作为来自相应遥测数据源的时间的函数;以及分析每个数据集以确定所述数据集是否包括异常;计算所述设备的软件更新与被确定为包括相应异常的所述数据集的相关性,其中在与所述数据集的时间跨度至少部分重叠的时间跨度期间将多个软件更新应用于所述设备;以及自动地基于所述更新中的一个或...

【专利技术属性】
技术研发人员:A·坦加马尼B·尼塔C·戴D·沙哈N·阿加瓦尔
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1