使用搜索技术的计算机性能预测的制作方法

文档序号:10663589阅读:224来源:国知局
使用搜索技术的计算机性能预测的制作方法
【专利摘要】计算机监控系统可通过比较当前时间序列数据的片段与之前观测到的时间序列片段来寻找匹配片段来预测短期和长期的性能。根据匹配的片段,可以通过检查时间序列中的稍后的观测来作出性能预测。每个时间序列元素可包括大量参数,并且一种用于比较片段的机制可将这些元素作为多维向量来处理并使用余弦相似性来找出显著匹配。部署机制可将时间序列片段存储在一个可搜索的数据库中,并用新观测到的时间序列片段来搜索数据库以找出匹配。
【专利说明】使用搜索技术的计算机性能预测
[0001]相关申请的交叉引用
[0002]本申请要求题为“Computer Performance Predict1n Using SearchTechnologies”(使用搜索技术的计算机性能预测)的美国专利申请序列号61/930,923、题为“Event Predict1n Using Historical Time Series Observat1ns of a ComputerApplicat1n”(使用计算机应用的历史时间系列观测的事件预测)的美国专利申请序列号6 I/930,926、题为 “V i sua I i zat i on of Behav1r Clustering of ComputerApplicat1ns”(计算机应用的表现聚合的可视化)的美国专利申请序列号61/930 ,928、以及题为“Behav1r Clustering Analysis and Alerting System for ComputerApplicat1ns”(计算机应用的行为聚合分析和提醒系统)的美国专利申请序列号61/930,929的优先权和权益,所有这些申请被通过引用所有它们公开和教示的内容而明确合并与此。
[0003]背景
[0004]计算机监控是一个宽泛的领域,其可包括任何类型的状态报告、提醒、或可帮助维护生产计算机系统的其它管理工具。计算机监控可包括硬件状态和性能、网络监控、软件性能分析、和许多其它组件。
[0005]传统的监控系统可实时或近实时地评估数据并将那些数据与阈值、限值、或其它度量作比较以确定是否可能存在错误或提醒条件。当警报被触发时,可向管理人员发出一些讯息,该管理人员可采取纠正动作。这样的系统往往是反应性的,并且能够检测到何时已发生问题。
[0006]概述
[0007]计算机监控系统可通过比较当前时间序列数据的片段与之前观测到的时间序列片段来寻找匹配片段来预测短期和长期的性能。根据匹配的片段,可以通过检查时间序列中的稍后的观测来作出性能预测。每个时间序列元素可包括大量参数,并且一种用于比较片段的机制可将这些元素作为多维向量来处理并使用余弦相似性来找出显著匹配。部署机制可将时间序列片段存储在一个可搜索的数据库中,并用新观测到的时间序列片段来搜索数据库以找出匹配。
[0008]监控系统可以将当前观测到的时间序列片段与可能是事件的前兆的之前标识的时间序列片段作比较。当观测到时间序列片段之间的相关性时,事件可被预测。事件可由观测人员来标识,该观测人员可标识事件或对事件进行分类。在一些情况下,可通过观测异常表现并自动标识该表现来标识事件。监控系统可以从相同或不同的执行平台上的相同的应用程序的多次运行、相同或不同的执行平台上的类似应用、类似或不同用户、或相同或不同的执行平台上的任何其它应用中聚合观测到的时间序列。被标识的事件可被组织为一组可被应用于新的应用来基于对其它应用的观测来预测事件的事件。
[0009]可以针对计算机应用的性能观测的时间序列来执行降维(诸如主要成分分析)。结果的可视化表示可以一维、二维、或三维来显示,并且常常示出操作表现的聚类。表示可能被动画化以示出观测的序列以及应用的表现可如何从一个操作聚类改变为另一个。表示可被进一步应用以同时示出观测的历史视图以及新的观测。时间序列可包含性能和操作数据,以及从计算机应用中观测到的元数据。
[0010]降维(诸如主要成分分析)可被用于至少部分地生成计算机应用的时间序列观测的模型。该模型可被应用于当前和预测的观测。可以通过针对该模型分析那些观测来从当前或预测的观测中标识反常值,并且统计上相关的反常值可生成警报或要采取的纠正或其它动作。可通过搜索可能之前观测到过的类似的反常值、并且基于过去的类似观测来预测任何将来的事件来分析反常值。
[0011]提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本
【发明内容】
并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
[0012]附图简述
[0013]在附图中,
[0014]图1是示出用于通过对历史时间序列的分析来预测事件的方法的实施例的图示。
[0015]图2是示出具有可在被跟踪应用中预测性能和事件的设备的网络环境的实施例的图示。
[0016]图3是示出具有多个跟踪点的散布式应用的实施例的图示。
[0017]图4是示出用于收集跟踪器数据的方法的实施例的时间线图。
[0018]图5是示出用于预测时间序列和事件的方法的实施例的时间线图。
[0019]图6是示出用于预测时间序列的方法的实施例的流程图示。
[0020]图7是示出用于生成给定事件的前兆时间序列片段的方法的实施例的图示。
[0021]图8是示出用于标识事件的前兆的方法的实施例的流程图示。
[0022]图9是示出用于使用前兆来预测事件的方法的实施例的流程图示。
[0023]图10是示出用于对跟踪器数据进行主要成分分析的方法的实施例的图示。
[0024]图11是示出用于对跟踪器数据应用主要成分分析的方法的实施例的流程图示。
[0025]图12是示出用于使用主要成分分析来检测异常和反常值的方法的实施例的流程图示。
[0026]详细描述
[0027]使用对历史观察的搜索的预测监控系统。
[0028]计算机监控系统可以根据可搜索的之前观测的数据库来作出对于应用的表现的统计上有效的预测。观测可包含的性能和操作观测,其可以是时间序列的形式。可通过选择当前观测,随后在观测的数据库中搜索匹配的观测,找到匹配,以及寻找该匹配的历史观测下游的事件或其它异常来作出预测。
[0029]预测可仅仅是性能或操作估计,或者可能标识可能是有趣的事件或异常。性能或操作估计可预测将来可能被观测到的观测。这样的预测可以各种可视化来显示,用于负载管理或其它用途。预测的事件或异常可被用来导致在事件之前采取的纠正动作。
[0030]观测的数据库可包括时间序列数据,其中每个观测可以是一系列观测的一部分。观测可包括应用的操作和性能数据。操作数据可包括如函数可能已被调用的次数或者操作可能已被执行的次数之类的项。性能数据可包括诸如存储器或其它资源消耗的量或对于输入的响应时间之类的项。
[0031]观测可作为一个整体反映应用或设备的操作,其中到应用或设备的输入及其对那些输入的响应可被观测和存储。在一些情况下,观测可包括应用或设备的更细粒度的视图,其中应用或设备内的各个单个功能或操作可被观测。在又一些情况下,单一的观测可反映一组设备的操作和性能,这组设备可以是多个同构或异构的设备。
[0032]存储在数据库中的观测可以是各个观测的聚合。例如,数据库可包含针对一个特定的时间间隔的聚合的观测,诸如在一段时间内的采取的观测的数量、平均值、中位数、或其它概要。时间段可以是任意间隔,从纳秒、毫秒、微秒、秒、分钟、小时、到天或更长。
[0033]观测可被视为参数的向量。该向量可具有许多参数,并且一些情况下每个测量可具有三个、五个、十个、甚至数百个受观测的参数。参数集可能在一组观测与另一组观测之间不同,并且在一个观测到另一个观测之间不同。在这种情况下,数据库可以是稀疏填充的数据库,其对于时间序列上的每个观测具有许多参数。可使用余弦相似性或其它数学比较来作出观测到的时间序列和历史观测之间的比较。
[0034]时间序列数据库可包括来自一个或多个设备的观测。该数据库可包括来自相同的执行平台上的相同应用、以及在不同执行平台上的相同应用和相同或不同执行平台上的类似或不同应用的历史观测。这样的观测可以被搜索以标识一组类似的观测,这些观测可能有一定的预测价值。
[0035]预测可以根据其它应用或设备的观察来作出。在许多情况下,两个不同的执行平台或应用之间的类似表现可能仍然会给出有意义的预测,即使系统之间可能存在差异。这样的相似性可允许不熟悉的或具有很少历史数据的系统仍然使得有意义的并且有用的预测被作出。在一某些情况下,许多不同且不类似的应用、硬件平台、软件配置、或其它组件的数据库可提供对之前未知的系统的表现的有意义的预测。
[0036]使用计算机应用的历史时间序列观测的事件预测。
[0037]可通过搜索时间序列数据库以找到可能类似于当前观测到的时间序列片段的类似的历史时间序列片段来生成预测。根据所选择的历史时间序列,可根据历史数据估计预期的一组的性能结果。在许多情况下,多个结果可以被组合以产生预测的一组性能结果。预测可以是可能要发生的事件的形式。在许多情况下,事件可以是要为其采取某个动作的情形,诸如例如不想要的失败。
[0038]预测机制可获取当前观测到的时间序列片段,并在历史或观测到的时间序列的数据库中搜索类似片段。搜索引擎可返回一组类似的观测到的时间序列,并且在许多情况下,搜索引擎可包括相关或相似性的数值。
[0039]对于每一个相似的观测到的时间序列,分析引擎可基于数据库中的下游观测来生成预测,以及显式应用在该相似的观测到的时间序列之后的表现。下游观测可包括事件和历史性能数据。观测可以被组合并且部分地按照相关值来加权以生成预测。
[0040]预测系统可具有可收集当前观测的跟踪器或其它数据收集机制。当前的观测可被传递给搜索引擎,搜索引擎可尝试在历史观测的数据库中找到相似的时间序列片段。分析引擎可分析搜索结果以确定预测结果。当标识出某些事件时,可以触发警报或其它响应动作。
[0041]一些系统可使用时间序列片段来在历史数据内进行搜索。时间序列片段可以是观测的序列。在一些情况下,序列可以是两个、三个、或更多个观测。序列可以是五个、十个、二十个、或一百个或更多个观测。随着观测数量的增长,系统可具有更强的相关性和更有意义的结果,但可能具有从第一个观测到预测结果的更长的延迟。
[0042]预测系统可以持续地对历史数据库进行搜索。这样的系统可不断收集观测并发送观测序列给搜索和分析系统。历史数据库可包含来自相同或不同应用的数据,以及从相同或不同用户和执行环境收集的数据。
[0043]事件预测系统可标识历史数据中的事件,随后标识导致该事件的时间序列顺序。所标识的时间序列顺序可与当前观测的时间序列片段进行比较以确定事件是否可发生。
[0044]事件预测系统可具有自动或手动的事件标识。手动事件标识可具有用户界面,用户可在该用户界面中标识事件。一旦标识了一个事件,分析引擎就可标识可能发生在该事件之前的前兆时间序列顺序。在自动事件标识系统中,可通过分析历史数据来自动检测事件随后将该事件传递给分析引擎。
[0045]前兆时间序列观测可被存储在事件数据库中,并与最近观测到的时间序列进行比较以确定即将发生的事件。这样的系统与其中完整的历史数据库可能被搜索以寻找匹配的系统相比可消耗更少的处理开销。
[0046]计算机应用的表现聚类的可视化。
[0047]计算机应用表现可以通过主要成分分析或性能观测的其它降维来可视化。
[0048]主要成分分析或其它降维分析可生成应用表现的聚类。这些聚类可被显示在可视化中。可视化可被动画化以示出随时间推移的观测序列。在一些情况下,颜色、阴影、或其它视觉增强可被应用以示出最近的观测或者甚至预测的观测。
[0049]降维可以是一组通用机制,该机制可帮助解释和理解高维数据。主要成分分析可以是使用正交转换来将可能相关的变量集转变为线性不相关变量且正交的变量集(被称为主要成分)的统计过程。第一主要成分可具有最大的可能方差。其它降维机制可包括非线性和线性降维机制。
[0050]降维分析可针对计算机应用的性能的一组时间序列观测来进行。时间序列可包括各个单独函数的参数、应用程序编程接口调用、库组件、网络调用、存储器操作、以及许多其它的观测。在许多情况下,时间序列数据还可包括性能指标,诸如处理时间、存储器等待时间、存储器消耗、外设操作、以及其它信息。每一个时间序列观测可被视为一个具有许多参数的向量,有时多达十个、二十个、甚至一百个或更多个参数。
[0051]术语“降维”可以指将多参数数据转换成成分列表的任何转换,并且主要成分分析是这类转换的子集。降维分析是一个笼统术语,旨在包括许多不同的算法。主要成分分析范围内的其它转换包括Karhunen-Loeve转换、Hotel Iing转换、适当的正交分解、奇异值分解、特征值分解、因素分析、Eckart-Young定理、Schmidt-Misrky定理、经验正交函数、经验本征函数分解、经验成分分析、准谐模式、谱分解、经验模态分析、因素分析、典型相关分析、以及其它变体。一些转换可能比其它转换更复杂,但所有的都被认为是在总括术语“降维”之下。
[0052]用于使用降维分析来分析和显示观测的系统可收集与执行中的计算机应用有关的观测,将数据处理成时间序列向量,将数据集分析成主要成分以创建转换函数,随后呈现转换函数所转换的数据的可视化。转换函数可以使用历史数据来计算,并且随后被用于显示新的观测。
[0053]转换函数可以在一些系统中周期性地重新计算。当应用的表现从一个模式改变到下一个时,可能适用于一种操作模式的转换函数可能不能完全代表应用在第二种模式下中的表现。这可能是业务线应用的情况,业务线应用可能在工作日期间非常活跃,但可能在夜间进入备份或维护模式。在白天期间,应用可能会表现得与夜间相当不同,并且转换函数也可改变。
[0054]一个完整的转换函数可通过随时间推移重新计算转换函数并且检测函数中的变化程度来生成。当额外的数据被添加到时间序列并且降维分析转换被重新计算时,该转换可收敛到可代表所有观测的单个转换函数。
[0055]从降维分析转换中可以呈现可视化。一旦计算了转换,各个时间序列观测可转换为该转换所转换的观测的一维、二维、或三维图绘。由于每个观测被绘制为一个点,因此观测的聚类可变得在图绘中可见。
[0056]计算机应用的观测的聚类的程度可能会受到各观测之间的时间周期的影响。随着各观测之间的时间周期变得越大,聚类的定义可能变得更不明确,特别是当时间序列观测可以是在时间间隔期间收集的数据的概要。
[0057]在这样的示例中,跟踪器可观测应用的行为,并可能聚合每一个时间段的观测。聚合的观测可包括函数的多个执行以及分配给该函数的总的处理器时间。数据可不包括函数的每个单独实例的处理器时间,但可能只包括分配给该函数的所有处理器时间的总和。
[0058]计算机应用的表现聚类分析与警报系统。
[0059]降维分析转换函数可被用作为用于监控计算机应用的警报机制。降维分析转换函数可以定义应用在“正常”操作期间可运行的模式,而偏离的“正常”操作的新收集的观测可能是统计上显著的标志符,其标志计算机应用可能正以异常方式表现。
[0060]降维分析转换可被用作为用于训练警报系统的机器学习技术。定义计算机应用的基准表现的一组观测可被用来生成降维分析转换。转换可被应用于原始的一组观测以创建一组观测聚类。
[0061]可通过转换新的观测并将其与之前的观测作比较来将新接收到的观测与新的基准观测作比较。一个这样的比较方法可以是余弦相似性,其中经转换的观测和最接近的之前的观测之间的余弦相似性可被确定。
[0062]新接收的观测可通过应用降维分析转换,随后将经转换的观测与之前观测到的表现的任何聚类作比较来分析。当新的观测是在之前观测到的表现附近或之内时,则新的观测可被认为是常规的。当新的观测是在之前观测到的聚类之外时,该新的观测可指示异常。在这一示例中,观测可与的聚类作比较以找出最接近的聚类,随后到聚类的中心的距离可被确定。
[0063]之前两个示例仅仅是两个机制,通过这两个机制,降维分析可被用来生成针对新接收的观测的警报。其它机制也可被使用。
[0064]用于警报的系统可具有轻量级的分析系统,该轻量级的分析系统可以接收一个预定义的降维分析转换,并可在那些观测被作出时将该转换应用于观测。这样的系统可以或可以不还包括用于确定是否可根据经转换的观测生成警报的分析。在一些情况下,在受监控设备上操作的轻量级跟踪器可计算经转换观测并将经转换的观测传送给另一设备供分析。
[0065]贯穿本说明书和权利要求书,术语“组件”被用于定义可被合并到应用中的一组可重用代码。组件可被知晓为“模块”、“库”、“子例程”或某个其它概念。出于本说明书和权利要求书的目的,这些术语被认为是同义词。
[0066]“组件”可以是按照多个应用可访问代码的方式布置的代码,即便这些应用彼此之间可能没有连接。一般来说,“组件”可以是被配置成被重用的代码。在一些情况下,组件可在大应用的范围内重用,而在其它情况下,模块可被共享至可在不相干且不连接的应用中使用该模块的其它应用开发者。
[0067]许多编程语言和范例具有“组件”或库的概念,其中组件可具有经定义的接口,通过该接口,应用可调用并使用组件。一些范例可允许程序员按静态方式合并模块,以使得组件代码在该应用被编写并部署之后不进一步改变。一些范例可允许动态库,其可在运行时或者甚至在执行开始之后被加载和调用。动态库可在该应用可被分发之后被更新和改变,而调用库或组件的方式可保持不变。
[0068]组件可以源代码、中间代码、可执行代码或以某种其它形式分发。在一些情况下,组件可以是可通过应用编程接口调用的服务。
[0069]贯穿本说明书和权利要求书,术语“组件”可被应用于单个可重用函数。这一函数可被分发作为库、模块、或其它代码集的一部分,并且可反映可被分发的可重用代码的最小元素。在本说明书和权利要求书中被提及的单个“组件”可以是单个应用编程接口调用或可调用子例程或函数,以及模块、库、或多个可调用函数、应用编程接口调用、或其它更小元素的其它聚集。在本说明书和权利要求书中,术语“剖析器”、“跟踪器”和“探测工具”可以互换地使用。这些术语指代可在应用被执行时采集数据的任何机制。在经典定义中,“探测工具”可指代可被插入可执行代码并从而改变该可执行代码的生成方法存根(stub)、挂钩(hook)或其它数据采集机制,而“剖析器”或“跟踪器”可经典地指代不可改变可执行代码的数据采集机制。对这些术语及其派生词中的任一者的使用都可蕴含或暗示彼此。例如,使用“跟踪器”的数据收集可使用“跟踪器”的经典意义中的非接触式数据收集以及用其中可执行代码可被改变的“探测工具”的经典意义的数据收集来执行。类似地,通过“探测工具”收集的数据可包括使用非接触式数据收集机制的数据收集。
[0070]此外,通过“剖析”、“跟踪”和“探测工具”收集的数据可包括可被收集的任何类型的数据,包括诸如处理时间、吞吐量、性能计数器等等之类的与性能有关的数据。收集到的数据可包括函数名、传递的参数、存储器对象名和内容、传递的消息、消息内容、寄存器设置、寄存器内容、差错标志、中断、或与正被跟踪的应用有关的任何其它参数或其它可收集的数据。收集到的数据还可包括高速缓冲未命中、垃圾收集操作、存储器分派调用、页面未命中、以及其它参数。
[0071]贯穿本说明书和权利要求书,术语“执行环境”可被用于指代用于执行应用的任何类型的支持软件。执行环境的一示例是操作系统。在一些举例说明中,“执行环境”可被示为与操作系统分开。这可能是为了例示出为应用提供各支持功能的虚拟机,诸如进程虚拟机。在其它实施例中,虚拟机可以是可包括其自己的内部操作系统并可模拟整个计算机系统的系统虚拟机。贯穿本说明书和权利要求书,术语“执行环境”包括操作系统和可具有或可不具有可容易标识的“虚拟机”或其它支持软件的其它系统。
[0072]贯穿本说明书和权利要求书,术语应用摂被用来指代可执行期望功能的软件和硬件产品的任何组合。在一些情况下,应用可以是用硬件平台操作的单一软件程序。一些应用可使用多个软件组件,每个软件组件可以是用不同语言编写的或可在不同硬件或软件执行环境内执行。在一些情况下,这些应用可跨多个设备分散并且可使用可由网络或其它通信系统连接的软件和硬件组件。
[0073]贯穿本说明书,贯穿对附图的描述,相同的附图标记表示相同的元素。
[0074]在本说明书和权利要求书中,对“处理器”的引用包括多个处理器。在某些情况中,可由“一处理器”执行的过程可实际上由同一设备上或不同设备上的多个处理器执行。出于本说明书和权利要求书的目的,对“处理器”的任何引用应包括可能位于同一设备上或不同设备上的多个处理器,除非另外明确指定。
[0075]当元素被称为被“相连接”或“相耦合”时,这些元素可被直接连接或耦合在一起,或者也可存在一个或多个中间元素。相反,当元素被称为被“直接连接”或“直接耦合”时,不存在中间元素。
[0076]本主题可被体现为设备、系统、方法、和/或计算机程序产品。因此,本主题的部分或全部可以用硬件和/或软件(包括固件、常驻软件、微码、状态机、门阵列等)来具体化。此夕卜,本主题可以采用计算机可使用或计算机可读存储介质上的计算机程序产品的形式,介质中收录了供指令执行系统使用或结合指令执行系统一起使用的计算机可使用或计算机可读的程序代码。在本文档的上下文中,计算机可使用或计算机可读介质可以是可包含、储存、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合指令执行系统、装置或设备一起使用的任何介质。
[0077]计算机可使用或计算机可读介质可以是,例如但不限于,电、磁、光、电磁、红外、或半导体系统、装置、设备或传播介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
[0078]计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、R0M、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由指令执行系统访问的任何其它介质。注意,计算机可使用或计算机可读介质可以是其上打印有程序的纸张或另一合适的介质,因为程序可以经由例如对纸张或其它介质的光学扫描而电子地捕捉,随后如有必要被编译、翻译,或以其它合适的方式处理,并随后存储在计算机存储器中。
[0079]当本主题在计算机可执行指令的一般上下文中具体化时,该实施例可包括由一个或多个系统、计算机、或其它设备执行的程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。
[0080]图1是示出用于通过对历史时间序列的分析来预测事件的过程的实施例100的图示。该过程可使用搜索引擎来尝试找出最近的时间序列片段的历史发生事件,随后可分析历史时间序列以作出针对未来性能的预测。
[0081 ]实施例100的示例中的时间序列被示出为表示单个参数的图,该参数可随时间而变化。在实践中,时间序列可以是跟踪器输出,该跟踪器输出可反映可在计算机应用执行时被捕捉的多个参数。由此,每个时间间隔处的时间序列可包含一个具有许多参数的向量。为了说明,在实施例100中例示了单个参数,但读者会理解每一个记录可具有许多记录。
[0082]跟踪器可生成可在每个时间间隔处被捕捉的性能度量。性能度量可包括可在应用程序执行时作出的任何测量。这样的测量可包括资源使用,诸如存储器、处理器、网络、夕卜设、或由应用程序消耗的其它资源。测量可包括对应用的组件的计数或其它度量,诸如测量函数被调用的次数或例程所处理的数据量。测量可包括从物理温度、功耗、风扇速度到垃圾收集测量、高速缓存未命中、或其它测量的硬件或其它软件状态或性能信息。
[0083]跟踪器可通过监视应用执行的环境来收集性能和其它信息。在这种情况下,跟踪器可测量应用的资源消耗、以及输入和输出数据和其它参数。在这类实施例中,跟踪器可以是操作系统或执行环境的一部分。
[0084]跟踪器可通过用仪表对应用进行检测来收集信息。在这种情况下,仪表可被添加到应用中以收集在应用的不同点处的信息。点可以是函数、子例程、决策点、输入或输出点、外设接口、应用编程接口、或者应用内的其它接口或位置。一些跟踪器可自动插入、打包、打猴子补丁(monkey patch)、或以其它方式将它们自己插入到应用中。其它跟踪器可与应用程序中手动放置的数据收集点交互。
[0085]跟踪器可以收集与应用处理的数据有关的信息。例如,一些跟踪器可以对传入或传出的数据进行测量,测量可包括数据的大小、类型或其它描述符。一些跟踪器可检查传递给应用、传递自应用、或在应用内传递的数据,并可捕捉这些数据值作为数据收集过程的一部分。
[0086]跟踪器数据可包括元数据,元数据可以是常数或者在一个特定的执行运行中有很小的变化。这类元数据可以包括硬件平台、软件组件或可应用于多个时间间隔的时间序列的其它元数据的描述符。这类元数据可被包括在每个时间序列间隔中,也可以被一次性收集并被应用于与每个时间序列间隔相关联的数据中。
[0087]在每个时间序列间隔处的信息向量可包含20、50、100、500、或更多个参数。因此,多参数向量可以表示该时间序列间隔的性能、状态或与应用有关的其它信息。这样的时间序列数据集可被表示为一个稀疏或完全填充的观测矩阵。
[0088]实施例100的过程可始于当前观测到的时间序列102。时间序列102可以是执行第一应用的跟踪器所收集的观测。当前时间104可与片段大小106所定义的时间序列片段一起被例示。时间序列片段108可从当前时间序列102中提取。
[0089]搜索引擎110可在时间序列数据库112中搜索时间序列片段108。时间序列数据库112可存储对计算机应用的历史观测。数据库112可包括从相同应用或不同应用的之前的执行运行中收集的时间序列。数据库112可包括在相同或不同硬件平台上聚集的数据,以及用相同或不同软件组件收集的数据。
[0090]搜索引擎110的搜索结果可能会产生多个历史时间序列114、120和126。这些历史时间序列可包含可能与时间序列片段108类似的部分。历史时间序列114可具有匹配片段116、以及可在该匹配片段116之后发生的事件118。历史时间序列120也可具有匹配片段122和后续事件124。历史时间序列126可具有匹配片段128和事件130。
[0091]预测分析器132可以基于各个历史时间序列114、120和126来生成预测时间序列134和预测事件136。预测时间序列134和预测事件136可通过基于匹配时间片段与时间序列片段108的相似性来对每个时间序列施加加权因子来生成。在许多情况下,可以计算各时间序列之间的数值相似性常数。
[0092]实施例100的过程可以是一种用于通过比较当前性能与之前观测到的行为来预测计算机应用的表现的机制。在某些情况下,可以基于对在类似的硬件上操作的相同应用的观测来进行预测。在其它情况下,预测可以至少部分地基于对在相同或不同的硬件上的不同应用的观测来进行。这样的系统可基于其它计算机系统的表现来进行与统计相关的预测。在许多情况下,这样的数据库可包含从应用的之前版本中捕捉的数据,并且预测可能由此受到相同应用的类似版本的影响。
[0093]基于其它计算机的表现针对其它应用的预测对于预测针对新应用、新改变的应用程序、新的硬件平台、或其中针对相同配置的历史数据可能无法使用的其它情形下的表现可能是有用的。这类系统可利用从许多不同计算机系统获得的知识来帮助预测各种表现或事件。
[0094]预测事件可能是有用的,例如用于提醒用户一个即将到来的难题或问题。这样的预测可能在部署业务线应用或其它系统时(这些情形下停机时间或服务降级可能是不想要的或有害的)对计算机管理员有帮助。
[0095]时间序列中的各种事件可以是用户可能希望跟踪的任何类型的事件。在许多情况下,这类事件可以是用户可能希望避免的问题。一些这样的事件可包括轻微或重大的服务降级、灾难性的故障、安全漏洞、或其它不想要的事件。在某些情况下,这样的事件可以是可能触发其它操作的想要的事件。在实施例100的示例中,所指示的事件被例示为所观测到的数据中的尖峰或增加。这是为了说明目的,因为一些事件可能会或可能不会反映在被观测的参数的增加或减少中。
[0096]图2是示出可在应用被执行时收集并处理跟踪器数据的各组件的实施例200的图示。仅仅作为一个示例拓扑结构,各组件被例示为处于不同硬件平台上。
[0097]图2的示图例示出了系统的功能组件。在一些情况下,组件可以是硬件组件、软件组件、或者硬件和软件的组合。一些组件可以是应用级软件,而其它组件可以是执行环境级组件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其它情况下,连接可通过跨长距离的网络连接来进行。每个实施例都可使用不同的硬件、软件、以及互连架构来实现所描述的功能。
[0098]实施例200例示出可具有硬件平台204和各种软件组件的设备202。所例示出的设备202表示常规计算设备,但是其它实施例可具有不同配置、架构、或组件。
[0099]在许多实施例中,设备202可以是服务器计算机。在一些实施例中,设备202仍然还可以是台式计算机、膝上型计算机、上网本计算机、图形输入板或平板计算机、无线手机、蜂窝电话、游戏控制台或任何其它类型的计算设备。在一些实施例中,设备202可被实现在计算设备的群集中,该群集可以是一组物理机或虚拟机。
[0100]硬件平台204可以包括处理器208、随机存取存储器210、以及非易失性存储212。硬件平台204还可包括用户接口 214和网络接口 216。
[0101]随机存取存储器210可以是包含可由处理器208快速存取的数据对象和可执行代码的存储。在许多实施例中,随机存取存储器210可具有将存储器210连接到处理器208的高速总线。
[0102]非易失性存储212可以是在关闭设备202之后持久保持的存储。非易失性存储212可以是任何类型的存储设备,包括硬盘、固态存储器设备、磁带盒、光学存储、或其它类型的存储。非易失性存储212可以是只读的或能够读/写。在一些实施例中,非易失性存储212可以是基于云的、网络存储、或可通过网络连接访问的其它存储。
[0103]用户接口214可以是能够显示输出以及接收来自用户的输入的任何类型的硬件。在许多情况下,输出显示器可以是图形显示监视器,但是输出设备可包括光和其它视觉输出、音频输出、动力致动器输出、以及其它输出设备。
[0104]常规输入设备可包括键盘和定点设备,诸如鼠标、指示笔、跟踪球、或其它定点设备。其它输入设备可包括各种传感器,包括生物测定输入设备、音频和视频输入设备、以及其它传感器。
[0105]网络接口216可以是到另一计算机的任何类型的连接。在许多实施例中,网络接口216可以是有线以太网连接。其它实施例可包括基于各种通信协议的有线或无线连接。
[0106]软件组件206可包括操作系统218,各种软件组件和服务可在该操作系统218上操作。
[0107]设备202可存储和分析可由受监控设备240上的跟踪器所收集的跟踪器数据。设备202可具有时间序列数据库220,该数据库可存储通过监控各个设备所收集到的时间序列数据。
[0108]时间序列数据库220可被以多种方式来使用以预测正被执行的应用的表现和事件。实施例100中描述了一种方法,其中当前时间序列片段被提交给搜索引擎。搜索结果可被分析以预测将来的表现以及预测可能的将来的事件。这样的方法可能在某些情况下是计算昂贵的,但其除了预测预定义的事件也可能能够预测一般表现。
[0109]另一种方法可以是分析给定事件的前兆,并创建有代表性的时间序列片段。实时分析器可以将预先标识的前兆时间片段与当前观测作比较以确定事件的可能性。这类方法可能与实时的第一种方法相比没有那么计算昂贵,但可以进行更多的离线分析。
[0110]第三种方法可使用降维分析,以将多变量时间序列数据分解成一个转换函数,该转换函数可被应用于可用的数据集。转换函数可以被应用于当前的观测,然后可以在经转换的观测和之前的观测之间进行比较。该比较可标识出反常的观测,这可指示事件或事件的前兆。
[0111]时间序列数据库220可以是可允许存储、检索、搜索、对时间序列数据执行的其它操作的任何类型的数据库或存储机制。时间序列数据可能是任何类型的数据流,其表示随着时间推移的多个观测。在一个典型应用中,时间序列可包含在规则的时间间隔处收集的观测。
[0112]时间序列摄入口222可收集来自各种受监控设备的时间序列数据,并可将这些数据传递给事件分析器224。事件分析器224可以用任何可被观测到的事件来标记传入的数据。数据可随后被存储在时间序列数据库220中。
[0113]事件分析器224可处理传入的数据流并将事件信息添加到数据流中。在某些情况下,可以通过分析数据流并将事件标记添加到数据来推导事件。这类事件的一个示例可是当应用性能跌落至服务级别协定以下时。事件分析器224可将所观测到的性能与服务级别协定进行比较,并且当服务级别协定不被满足时,可以标识事件并可相应标记时间序列观测。
[0114]搜索引擎226可在几个不同场景下搜索时间序列数据库220。在一个场景中,搜索引擎226可被用于实时或近实时地寻找匹配的历史数据。这些历史数据可被用于构建对可能正在执行的系统的预测。在另一场景中,搜索引擎226可以搜索事件或时间序列片段作为分析的一部分以构建可能是各种事件的前兆的参考时间序列的集合。
[0115]预测分析引擎228可以接收来自受监控设备240的时间序列片段,随后搜索引擎226可从历史记录中检索类似的片段。预测分析引擎228可随后基于历史数据构建预测。实施例100中例示了这一过程的示例。
[0116]参考分析器230可以标识可由受监控设备240处的实时分析器用来检测异常或预测事件的前兆时间序列片段。事件可由参考分析器230搜索和分析。参考分析器230的一个操作是检索包含一个特定事件的若干个时间序列,随后确定该事件的特征前兆。前兆可以是可能先于特定事件发生的并可能指示该事件可能发生的时间序列片段。这些前兆时间序列片段可被存储在参考时间序列数据库232中。
[0117]前兆时间序列可以是对将来的事件的统计上的明显指标。该参考时间序列可被传输给受监控装置240,受监控装置240可将该参考时间序列片段与当前观测的时间序列作比较。匹配可表明事件有统计上明显的潜在可能要发生。
[0118]参考管理器234可将参考时间序列片段传送给监视设备240以供实时或近实时的比较。受监控设备240可将参考时间序列片段与新的观测作比较来预测各种事件。
[0119]降维分析仪236可以分析观测时间序列以确定对数据的转换239。降维分析可以是使用转换来将可能相关的变量的观测的集合转变为不相关变量(有时被称为主要成分)的值的集合的任何统计过程。时间序列观测可包括应用的性能和其它观测,其可包括在每个时间间隔中的数十或甚至数百个观测。这些观测可被转换为主要成分,随后对这些数据执行聚类和其它分析。
[0120]历史数据或新的数据可通过降维转换来转换,然后被用于生成图或其它图表。这类图表可指示应用的操作模式,并且可能对开发者查看和理解他们的应用的表现是有用的。当聚类分析可被应用于经转换的数据时,许多应用可被可视化为以若干个不同模式操作。
[0121]降维转换可被作为一种用于检测表现中的异常的机制来使用。在从历史数据生成降维转换之后,新的数据可被转换并与经转换的历史数据作比较。当新的数据与经转换的数据明显不同时,新的数据可以被标记为异常。这样的分析可由受监控设备240实时或近实时地执行。
[0122]转换管理器241可以将各种转换239传送给受监控设备240。当转换239被更新或创建时,转换管理器241可更新各受监控设备240,各受监控设备240可使用这些转换来分析新的观测。
[0123]一个或多个受监控设备240可通过网络243连接到设备202。受监控设备240可收集原始跟踪器数据,该数据可以被发送给设备202。在某些情况下,受监控设备240可执行一些分析,这些分析可检测异常以及对跟踪器数据进行预处理或其它分析。
[0124]受监控设备240可在可与设备202的硬件平台204类似的硬件平台242上操作。硬件平台242可以是任何类型的计算设备,从大型服务器计算机到台式机、手持式电脑、移动电话和平板电脑、到可以执行至少一些计算的更小的设备。
[0125]执行平台244可以是操作系统、虚拟机、进程虚拟机、或可以执行应用246的其它框架。跟踪器248可监控应用246的操作,并可收集、观测、或生成各种跟踪器数据。跟踪器248可以将数据传送给设备202上的时间序列摄入口222以供存储在时间序列数据库220中。在一种典型的操作模式中,跟踪器248可周期性地收集和传送数据,从而创建跟踪器信息的时间序列。
[0126]实时分析器250可以在数据被收集时对数据进行各种类型的分析。实时分析器250可以通过将最近的观测与可被标识为各种事件的前兆的一个或多个参考时间序列作比较来分析数据。实时分析器250可以通过对数据应用降维转换并测试经转换的数据是否异常来分析数据。
[0127]参考数据库252可包含可从参考时间序列数据库232中获得的参考时间序列。该参考时间序列可以是实际的或概括的可能已被先前标识为各种事件的前兆的时间序列片段。当实时分析器250可以标识从应用246收集的数据类似于前兆事件时,实时分析器250可导致警报或其它动作被触发。
[0128]降维转换254可以是一个可转换跟踪器输出的转换函数。经转换的跟踪器输出可以与经转换的历史数据作比较以确定最近观测到的数据是否异常。当最近观测到的数据是异常的,一个事件或其它动作可被触发。
[0129]客户端设备256可以是一种用户可用来与数据收集和分析系统中的各个组件进行交互的机制。客户端设备256可具有硬件平台258,浏览器260可在该硬件平台上执行。该浏览器可与各组件连接以生成用户界面262,用户可以通过该用户界面来设置、配置、监控、控制、以及以其它方式与各组件交互。在许多情况下,用户界面262可以提供系统中生成的汇总统计和警报信息。
[0130]实施例200的示例例示了可以收集和分析跟踪器数据的系统的一个体系结构。所例示的各组件中的一些可以部署在不同的硬件平台上,并可在可能具有或可能不具有软件组件的定制的电路或硬件上实现。
[0131]图3是示出具有许多组件的散布式应用的实施例300的图示。实施例300只是跟踪器系统的一个示例,该跟踪器系统可以从多个源收集数据,其中每个源可以是一个更大的应用的一部分。这样的应用可以与其它计算机系统交互,这些计算机系统可具有各种应用程序编程接口、数据库、应用、或其它组件,所有这些都促成了一个更大的应用。实施例300仅是散布式应用的一个示例。其它散布式应用可具有不同的体系结构,并与更少或更多的组件进行交互。
[0132]应用302可以在硬件平台304上执行。该应用可以是可使跟踪器306收集数据的软件或硬件功能。跟踪器306可收集应用302的性能和其它操作观测,并将观测传送给时间序列数据库330。
[0133]应用302可从用户308接收请求310,并返回响应312给用户310。在许多情况下,用户310可能是人类用户。在某些情况下,用户310可以是另一个软件或硬件应用。
[0134]应用302可以与另一系统的应用程序编程接口 314进行交互。应用程序编程接口314可以是一种经定义的用于发送和接收信息的协议,并且这类接口可以针对任何类型的软件或硬件系统来定义。在某些情况下,跟踪器316可位于应用程序编程接口 314的系统上。跟踪器316可收集对与应用302相关联的活动的性能和其它观测,并将那些观测传送给跟踪器时间序列数据库330。
[0135]数据库318可以由应用302查询。数据库318可以驻留在第二硬件平台320上,并可具有跟踪器322,该跟踪器322可收集观测并将那些观测传送给跟踪器时间序列数据库330。
[0136]类似的,第二应用324可与应用302交互。第二应用324可在另一硬件平台326上操作,并可具有跟踪器328,该跟踪器328可收集观测并将那些观测传送给跟踪器时间序列数据库330。
[0137]—些收集来自多个数据源的跟踪器数据的系统可具有分析器332,该分析器322可聚合来自每个源的数据。聚合可创建表示更大的应用的时间序列数据,该时间序列数据包括应用302、应用程序编程接口 314、数据库318、以及第二应用326的所有操作。在某些情况下,分析器332可以能够将应用302和其它组件之间的事务连接起来,从而将对其它组件的性能观测添加到由应用302发起的事务。在某些情况下,分析器332可以能够聚合来自多个系统的观测,而不链接各个源之间的事务或交互。
[0138]图4是示出用于收集跟踪器数据的方法的实施例400的时间线图。实施例400可在左列中例示跟踪器系统402的操作、在中间的列中例示分析系统404的操作、并且在右边的列中例示时间序列数据库406。
[0139]其它实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各种操作或操作集合可与其它操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式例示出一些操作原理而被选出的。
[0140]跟踪器系统402可代表跟踪器可为之收集和传送观测的任何系统。这样的系统的一个示例是实施例200中的跟踪器248或者实施例300中例示的各个跟踪器。
[0141]分析系统404可以是接收、预处理、以及存储传入的跟踪器数据的系统。这类系统的一个示例可包括实施例200的时间序列摄入口 222以及事件触发器224。
[0142]时间序列数据库406可以是包含时间序列形式的跟踪器数据的存储机制。在一些系统中,时间序列数据库406可能位于远程系统上,并且可以作为网络服务来访问。
[0143]跟踪器系统402可以在框408中执行应用,并在框410中收集跟踪器数据。周期性地,跟踪器系统402可在框412传送时间序列数据到分析系统404,分析系统404可在框414中接收该时间序列数据。
[0144]所采集和传送的时间序列数据可以是跟踪器可收集和传送的任何观测、元数据、或其它信息。
[0145]由于这些数据可以被周期性地发送,因此它们在按照观测被收集的顺序来存储和访问时可形成一个时间序列。
[0146]分析系统404可以在框416中分析事件的时间序列数据。框416的分析可包括分析传入数据以找出任何异常。可从各个时间序列数据点中或通过对时间序列数据的各片段的分析来检测出异常。这类异常检测的示例可包括针对预定义的限值(诸如服务水平协定)来对这类数据进行分析。其它示例可以是对方差的统计分析、比较通过降维分析转换的数据、或其它分析。
[0147]当在框418中标识了事件时,数据可在框420中用该事件来标记。如果在框418中没有检测到事件,则可跳过标记操作。数据可在框422中被传送到时间序列数据库406,时间序列数据库406可在框424中接收该时间序列数据,并可在框426中存储数据。
[0148]在某些情况下,跟踪器系统402可检测到事件已发生。跟踪器系统402可具有一个警报系统,该警报系统可以标识事件的条件,并且当在框428中检测到这类事件时,该事件可在框430中被传送到分析系统404。
[0149]事件可由分析系统404在框432中接收。可以在框434中为该事件创建标记,并在框436中将该标记发送给时间序列数据库406。
[0150]事件标记可由时间序列数据库406在框438中接收。在许多情况下,事件标签可定义时间周期或可适用于该事件的其它条件,从而影响多个时间序列条目。对于框440中每个受影响的条目,在框442中可应用事件标记。
[0151]图5是示出用于预测时间序列和事件的方法的实施例500的时间线图。实施例500可在左列中例示跟踪器系统502的操作、在中间的列中例示分析系统504的操作、并且在右边的列中例示时间序列搜索系统506。
[0152]其它实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各种操作或操作集合可与其它操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式例示出一些操作原理而被选出的。
[0153]实施例500可例示一种用于基于当前时间序列观测来生成预测的方法。该方法在时间序列数据库中搜索类似的时间序列段,然后基于存储在时间序列数据库中的历史观测来生成对将来表现的预测。
[0154]跟踪器系统502可代表跟踪器可为之收集和传送观测的任何系统。这样的系统的一个示例是实施例200中的跟踪器248或者实施例300中例示的各个跟踪器。
[0155]分析系统504可以是分析传入的跟踪器数据的系统。这样的系统的示例可包括实施例200的预测分析引擎228。
[0156]时间序列搜索系统506可以是访问时间序列数据库的搜索引擎,其中时间序列数据库包含历史跟踪器观测。这样的系统的示例可包括实施例200的搜索引擎226。
[0157]跟踪器系统502可以在框508中执行应用。当应用执行时,可在框510中收集跟踪器数据。在框512中可标识时间序列片段,并在框514中将其传送给分析系统504。
[0158]时间序列片段可以是时间序列中的单个时间点或者时间序列中的数据点序列。在许多情况下,时间序列中的每个数据点可以是一个具有许多参数(有时多达50、100、或更多个参数)的向量。
[0159]时间序列片段可由分析系统504在框516中接收。该片段可在框518中被传送给时间序列搜索系统506,时间序列搜索系统506可在框520中接收该片段。
[0160]可在框522中作出对匹配片段的搜索。在框524中,匹配可被返回。匹配片段可以从历史数据库中的任何数据中选取。在某些情况下,匹配片段可以从具有与跟踪器系统502相同的硬件和软件配置的同一应用的之前观测中选取。在其它情况下,匹配片段可以来自可能已经执行了类似或不类似应用的类似或不类似系统。
[0161]匹配时间序列片段可由分析系统504在框526中接收。对于框528中的每一个匹配,在框530中可以标识匹配片段的任何下游事件。在框532中可以估计事件的概率。
[0162]框530和532的分析可能会检查在该匹配片段之后的某一时间观测到的历史数据。通过查看匹配的下游或之后并找到一个事件,可作出事件可能会发生的预测。事件的概率可能会受到匹配的相似性程度以及其它因素的影响。在某些情况下,试探式或其它机制可被用来估计概率。
[0163]在框534中可以估计事件概率。在某些情况下,这样的概率可被估计为在框532中确定的概率的聚合。
[0164]当在框536中事件的概率为高时,可以在框538中生成一个警告。警报可以被记录、传送给管理员或其它感兴趣方、或触发某个其它动作。
[0165]在框540中可生成预测的下游时间序列,无论是否预测了一个事件。预测的时间序列可以是下游历史时间序列的聚合。在许多情况下,每个历史时间序列的贡献可按照匹配相似性或其它因素来加权以生成预测的时间序列。
[0166]在框542块中可显示预测的下游时间序列。
[0167]图6是示出用于预测时间序列的方法的实施例600的流程图示。实施例600可例示出可由实施例500的分析系统504执行的操作的更详细示例。
[0168]其它实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各种操作或操作集合可与其它操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式例示出一些操作原理而被选出的。
[0169]在框602中,可接收时间序列片段供分析。在框604中,该片段可被发送给搜索引擎,搜索引擎可搜索包含之前观测到的时间序列的时间序列数据库。在框606中,搜索引擎可返回该时间序列片段的匹配以及该匹配的下游片段。
[0170]该匹配可按照原始时间序列片段和在数据库中找到的片段之间的相关性来进行排序。在框610中,可选择具有最强相关性的片段。
[0171]在框612中,可确定片段的加权因子。加权因子可部分地从经计算的相关系数中推导,并且还可包括基于试探的因素,该试探可将硬件、软件、或各个时间序列的操作特性之间的相似性纳入考虑。在框614中,加权因子可被应用于片段,并且可将经加权的片段添加到预测。当在框616中,在有额外的片段可用时,过程可返回到框610以分析该额外的片段。
[0172]在框618中,该预测可被后处理。后处理可以是可在框620中将预测呈现给用户之前执行的任何进一步的分析、平滑、或其它操作。该预测可在框622中被用于预测事件的可能性。
[0173]图7是示出用于标识给定事件的前兆时间序列片段的方法的实施例700的示意图。实施例700显示了一个序列,该序列可至少部分地由参考分析器(诸如实施例200的参考分析器230)执行。
[0174]实施例700例示了一种可用来分析历史时间序列以找出可指示具有一定统计概率的将来事件的前兆时间序列片段的方法。前兆时间序列可被用于预测事件。
[0175]在框702,可标识事件。该事件可被定义为可以由搜索引擎704搜索的条件或其它描述符。在某些情况下,事件可被标记在存储在时间序列数据库706中的数据中。在其它情况下,事件可以是事件发生时所处的时间序列片段。在又一些其它情况下,事件可以以某种其它方式来定义。
[0176]搜索引擎704可返回多个历史时间序列708、710和712,其中的每一个分别包含事件714、716和718的实例。
[0177]参考分析器726可以分析各种历史时间序列以标识前兆720、722和724,其可以是可表明可能事件的统计上显著的时间序列片段。这些时间序列片段可以被组合成前兆时间序列728。前兆时间序列728可与当前观测到的时间序列片段作比较,当存在匹配时,该事件可被预测。
[0178]图8是示出用于标识给定事件的前兆时间序列片段的方法的实施例800的流程图示。实施例800可例示可在实施例700中执行的操作的更详细的示例。
[0179]其它实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各种操作或操作集合可与其它操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式例示出一些操作原理而被选出的。
[0180]实施例800例示了一种用于定义事件的前兆时间序列片段的方法。前兆可以是时间序列片段,当在当前时间序列中被标识时,该事件序列片段可指示相关联的事件可能发生。
[0181]在框802,可选择事件。在框804中,可搜索时间序列数据库以寻找事件的每一个实例。
[0182]该事件可以任何可被搜索引擎接受的方式来定义。在某些情况下,事件可以是被自动或手动标识为“事件”的时间序列片段。在其它情况下,事件可以是可被存储在时间序列数据库中的元数据或其它注释中的被标记的事件。
[0183]在框806中,可分析事件的每一个实例。在框808中,对于每一个实例,可以标识事件之前的异常片段。在框809中,当异常片段可能是事件的一个显著标志符时,在框810中,该片段可被存储为前兆片段。在框809中,当异常片段不是事件的显著标志符时,过程可返回框806以处理下一个实例。
[0184]事件前的异常片段可通过搜索事件前的片段以及测试那些片段的唯一性来标识。唯一性可通过在数据库中搜索该片段以确定该片段可能有多常见来定义。那些非常独特并且在事件之前的那些片段可能在统计上更可能表明该事件会发生。
[0185]在框806中分析了每一个实例之后,如果在框811中没有统计上显著的前兆被标识,则过程可在框813中以没有标识该事件的前兆事件而结束。
[0186]只要在框811中标识了一个或多个前兆,则在框812中,为该事件所标识的前兆可按照相似性被聚类。在框814中,可分析每一个类似前兆的聚类。
[0187]对于框814中的每一个类似前兆的聚类,经聚类的前兆可在框816中被聚合以为该聚类生成代表性前兆。在框818中,可保存该代表性前兆。
[0188]在处理前兆的每一分组或聚类之后,代表性前兆可被分发给各个警报发生器。在许多情况下,警报发生器可在与跟踪器相同的设备上运行。
[0189]图9是示出用于使用前兆来预测事件的方法的实施例900的流程图示。实施例900可例示可与跟踪器一起布署的实时分析器(类似于实施例200的实时分析器250)的操作。
[0190]其它实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各种操作或操作集合可与其它操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式例示出一些操作原理而被选出的。
[0191]实施例900例示了一种可使用前兆时间序列片段来预测事件的方法。
[0192]在框902中,可接收代表性前兆。代表性前兆可以是可以通过诸如实施例800之类的方法确定的并且可代表事件可能在将来发生的统计上显著的标志符的一系列数据点。
[0193]跟踪可以在框904中开始,并且在框906中,可接收跟踪数据流。在框908中,可选择时间序列片段供分析。时间序列片段可以是来自跟踪器的一组最近的时间序列观测。
[0194]在框910中,可进行比较以将当前观测到的时间序列与各种前兆时间序列片段作比较。当在框910中找到多个匹配时,在框912中,可按照相关性对匹配进行排序。
[0195]在框914中,可选择具有最高相关性的匹配。在框916中,如果相关性超过预定义阈值,则在框918中,可生成预测警告。如果另一匹配可用,则过程可返回到框914。
[0196]当在框916中相关性不满足预定义阈值时,过程可返回到框906以分析下一时间序列片段。
[0197]类似的,如果在框920中没有更多匹配可用于分析,则过程可返回到框906。
[0198]图10是示出应用于跟踪器数据的降维分析的实施例1000的示意图。降维分析可以表示用于对一组观测进行降维转换的若干种数学方法中的任意一种。在许多情况下,跟踪器数据可包括性能和其它度量,其可包括在每个数据点处的许多参数的向量。一些情况可具有在时间序列的每一个时间段处收集的1、20、50、100、或更多个参数。
[0199]对这些数据的降维分析可产生应用的性能的有用图表和分析。一旦使用降维分析进行了转换,跟踪数据可经受聚类分析以标识该应用可能会表现的模式。
[0200]降维转换和聚类分析可被用作为应用表现的数学模型。因此,对应用的表现的新的观测可被用该模型来测试以确定该表现是否非典型或异常。当行为异常时,可以创建警报或采取另一个动作。
[0201]应用1002可与跟踪器1004—起执行。跟踪器1004可收集与应用1002有关的性能和其它操作观测,并且跟踪器1004的输出可以是一个多变量时间序列1006。
[0202]对时间序列数据的降维分析1008可生成转换1010。转换1010可被应用于多变量时间序列1006以生成经转换的数据1012。经转换的数据1012可以二维图表来呈现,该二维图表只显示主要成分分析的前两个维度。
[0203]在许多情况下,对应用的跟踪数据的降维分析可显示不同的组。组可反映应用的操作模式。聚类分析1014可得到聚类数据1016。
[0204]图11是示出用于对跟踪器数据应用降维分析的方法的实施例1100的流程图示。实施例1100可以例示降维分析器的操作,诸如实施例200的降维分析器236。
[0205]其它实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各种操作或操作集合可与其它操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式例示出一些操作原理而被选出的。
[0206]实施例1100例示了一种用于创建和应用针对跟踪器数据的降维分析的方法。通过分析跟踪器数据的时间序列可创建转换,随后该转换可被应用于时间序列数据点从而创建经转换的数据集。经转换的数据集可作为二维或三维图表来呈现,并且还可应用聚类分析。
[0207]在框1102中,由跟踪器收集的性能数据的时间序列可被接收。在框1104中,可将每一个时间序列记录视为一个多维向量来处理,并且在框1106中,可执行降维分析以生成转换。
[0208]在框1108中,每一个时间序列记录可以被分析,并且降维转换可在框1110中被应用于该记录,并且在框1112中作为经转换的数据集的一部分被存储
[0209]在某些情况下,在框1114中,经转换的数据集可被显示。
[0210]在框1116中,可对经转换的数据集执行聚类分析。在框1118中,经转换的数据集可与聚类标识符一起显示。
[0211]图12是示出用于在标识应用的性能异常时使用降维分析转换的方法的实施例1200的流程图示。实施例1200可例示可与跟踪器一起布署的实时分析器(类似于实施例200的实时分析器250)的操作。
[0212]其它实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各种操作或操作集合可与其它操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式例示出一些操作原理而被选出的。
[0213]在框1202中,可接收降维分析转换。转换可以是方程或其它数学转换的形式。
[0214]在框1204中,可接收跟踪器数据。跟踪器数据可以是最近观测到的时间序列记录。在框1206中,该记录可被转换以生成经转换的记录。
[0215]经转换的记录可以是一个向量,该向量可与之前观测到的数据点进行比较。当前数据和历史数据之间的差距可以使用余弦相似度或其它计算来计算。当差距相对较小时,当前观测到的数据点可与历史数据类似,而当差距相对较大时,当前观测到的数据点可被认为是异常。
[0216]在框1210中,可将该差距与一组预定义的限值作比较。当差距在限值范围内时,过程可返回到框1204以分析下一个时间序列数据点。
[0217]可以将差距与历史记录中的最接近的数据点进行比较,或者可针对从历史数据中推导出的聚类定义来执行。当使用聚类定义来测量差距时,可以执行统计测试以确定数据点是否可能是之前观测到的多组数据点中的任何一组的成员。
[0218]当在框1210中距离位于的限值之外时,在框1212中,可分析最近的观测历史以找出异常表现的趋势。当在框1214中趋势位于预定义的限值之内时,过程可返回到框1204以分析下一个时间序列数据点。当在框1214中趋势位于预定义的限值之外时,在框1216中可生成警告。
[0219]实施例1200例示了一种用于分析当前观测到的跟踪器数据的方法。这一方法可被应用于预测的时间序列,诸如例如在实施例100中例示的时间序列预测。在这一方法中,可通过分析之前的时间序列并估计可能发生的时间序列来创建预测时间序列。预测时间序列可使用降维分析转换来分析,并且可与如实施例1200中所定义的其它数据点或聚类进行比较。
[0220]对本发明的上述描述是出于图示和描述的目的而呈现的。它不旨在穷举本主题或将本主题限于所公开的精确形式,并且鉴于上述教导其它修改和变型都是可能的。选择并描述实施例来最好地解释本发明的原理及其实践应用,由此使本领域的其它技术人员能够在各种实施例和各种适于所构想的特定用途的修改中最好地利用本发明。所附权利要求书旨在被解释为包括除受现有技术所限的范围以外的其它替换实施例。
【主权项】
1.使用搜索技术的计算机性能预测一种在至少一个计算机处理器上执行的方法,所述方法包括: 接收第一时间序列片段,所述第一时间序列片段包括在执行第一计算机应用时观测到的性能数据; 从历史数据库中标识第二时间序列片段,所述历史数据库包括执行所述第一计算机应用时观测到的时间序列,所述第二时间序列片段类似于所述第一时间序列片段; 从所述历史数据库中标识第三时间序列片段,所述第三时间序列在顺序上在所述第二时间序列片段之后;以及 基于所述第三时间序列片段来创建预测。2.如权利要求1所述的方法,其特征在于,进一步包括: 从所述历史数据库中标识第四时间序列片段,所述第四时间序列片段类似于所述第一时间序列片段; 从所述历史数据库中标识第五时间序列片段,所述第五时间序列在顺序上在所述第四时间序列片段之后;以及 基于所述第三时间序列片段和所述第五时间片段来创建所述预测。3.如权利要求2所述的方法,其特征在于,所述预测至少通过用第一权重来加权所述第三时间序列并且用第二权重来加权所述第五时间序列来创建。4.如权利要求2的方法,其特征在于,所述历史数据库包括多个时间序列,所述时间序列中的至少一个时间序列是在第一执行平台上执行所述第一计算机应用时的观测,并且所述时间序列中的至少第二个时间序列是在第二执行平台上执行所述第一计算机应用时的观测。5.如权利要求4的方法,其特征在于,所述第三时间序片段是来自所述第一执行平台的观测,并且所述第五时间序片段是来自所述第二执行平台的观测。6.如权利要求4的方法,其特征在于,所述历史数据库进一步包括作为执行第二计算机应用时的观测的至少一个时间序列。7.如权利要求6的方法,其特征在于,所述第三时间序片段是来自所述第一计算机应用的观测,并且所述第五时间序片段是来自所述第二计算机应用的观测。8.如权利要求7的方法,其特征在于,所述第一计算机应用是所述第二计算机应用的一个版本。9.如权利要求1所述的方法,其特征在于,所述性能数据包括所述第一应用内的第一函数和第二函数的性能数据。10.如权利要求9所述的方法,其特征在于,所述性能数据包括针对所述时间序列中的一个时间间隔的聚合的性能数据。11.一种系统,包括: 处理器; 数据库,所述数据库包括表示通过跟踪第一应用而得到的性能观测的多个时间序列; 搜索引擎,所述搜索引擎: 接收第一时间序列片段,所述第一时间序列片段包括在执行所述第一计算机应用时观测到的性能数据; 从所述历史数据库中标识第二时间序列片段,所述第二时间序列片段类似于所述第一时间序列片段;并且 返回所述第二时间序列片段, 分析引擎,所述分析引擎: 从所述历史数据库中标识第三时间序列片段,所述第三时间序列在顺序上在所述第二时间序列片段之后;以及 基于所述第三时间序列片段来创建预测。12.如权利要求11所述的系统,其特征在于,所述搜索引擎还: 从所述历史数据库中标识第四时间序列片段,所述第四时间序列片段类似于所述第一时间序列片段; 所述分析引擎还: 从所述历史数据库中标识第五时间序列片段,所述第五时间序列在顺序上在所述第四时间序列片段之后;并且 基于所述第三时间序列片段和所述第五时间片段来创建所述预测。13.如权利要求12所述的系统,其特征在于,所述预测至少通过用第一权重来加权所述第三时间序列并且用第二权重来加权所述第五时间序列来创建。14.如权利要求12的系统,其特征在于,所述历史数据库包括多个时间序列,所述时间序列中的至少一个时间序列是在第一执行平台上执行所述第一计算机应用时的观测,并且所述时间序列中的至少第二个时间序列是在第二执行平台上执行所述第一计算机应用时的观测。15.如权利要求14的系统,其特征在于,所述第三时间序片段是来自所述第一执行平台的观测,并且所述第五时间序片段是来自所述第二执行平台的观测。16.如权利要求14所述的系统,其特征在于,所述历史数据库进一步包括作为执行第二计算机应用时的观测的至少一个时间序列。17.如权利要求16所述的系统,其特征在于,所述第三时间序片段是来自所述第一计算机应用的观测,并且所述第五时间序片段是来自所述第二计算机应用的观测。18.如权利要求17所述的系统,其特征在于,所述第一计算机应用是所述第二计算机应用的一个版本。19.如权利要求11所述的系统,其特征在于,所述性能数据包括所述第一应用内的第一函数和第二函数的性能数据。20.如权利要求19所述的系统,其特征在于,所述性能数据包括针对所述时间序列中的一个时间间隔的聚合的性能数据。 计算机应用的表现聚类的可视化21.—种在至少一个计算机处理器上执行的方法,所述方法包括: 生成表示通过跟踪计算机应用而收集到的第一时间序列的降维转换,所述第一时间序列包括在所述第一时间序列的每一观测处的多个函数的性能数据,所述多个函数中的每一个函数是所述计算机应用的一部分; 接收通过跟踪计算机应用而收集到的第二时间序列并且应用所述降维转换以生成经转换的数据集;以及 使所述经转换的数据集被显示。22.如权利要求21所述的方法,其特征在于,所述性能观测包括所述多个函数中的每一个函数的资源利用率。23.如权利要求22所述的方法,其特征在于,所述资源利用率是下列各项组成的组中的至少一个: 存储器利用率; 处理器利用率;以及 网络利用率。24.如权利要求21所述的方法,其特征在于,所述经转换的数据集以二维显示。25.如权利要求21所述的方法,其特征在于,所述经转换的数据集以三维显示。26.如权利要求21所述的方法,其特征在于,所述经转换的数据集使用示出所述经转换的数据集中的所述观测的顺序的动画来显示。27.如权利要求26所述的方法,其特征在于,所述经转换的数据集被至少近实时地显不O28.如权利要求21所述的方法,其特征在于,所述函数中的至少一些函数是函数库的一部分。29.如权利要求21所述的方法,其特征在于,进一步包括: 接收预测观测,所述预测观测是基于所述第二时间序列来预测的; 应用所述降维转换来生产经转换的预测观测;以及 使所述经转换的预测观测被显示。30.—种系统,包括: 至少一个计算机处理器; 在所述至少一个计算机处理器上执行的降维分析器,所述降维分析器: 生成表示通过跟踪计算机应用而收集到的第一时间序列的降维转换,所述第一时间序列包括在所述第一时间序列的每一观测处的多个函数的性能数据,所述多个函数中的每一个函数是所述计算机应用的一部分; 显示引擎,所述显示引擎: 接收通过跟踪所述计算机应用而收集到的第二时间序列并且应用所述降维转换以生成经转换的数据集;以及 使所述经转换的数据集被显示。31.如权利要求30所述的系统,其特征在于,所述性能观测包括所述多个函数中的每一个函数的资源利用率。32.如权利要求31所述的系统,其特征在于,所述资源利用率是下列各项组成的组中的至少一个: 存储器利用率; 处理器利用率;以及 网络利用率。33.如权利要求30所述的系统,其特征在于,所述经转换的数据集以二维显示。34.如权利要求30所述的系统,其特征在于,所述经转换的数据集以三维显示。35.如权利要求30所述的系统,其特征在于,所述经转换的数据集使用示出所述经转换的数据集中的所述观测的顺序的动画来显示。36.如权利要求35所述的系统,其特征在于,所述经转换的数据集被至少近实时地显不O37.如权利要求30所述的系统,其特征在于,所述函数中的至少一些函数是函数库的一部分。 用于计算机应用的表现聚类分析和警报系统38.—种在至少一个计算机处理器上执行的方法,所述方法包括: 生成表示通过跟踪计算机应用而收集到的第一时间序列的降维转换,所述第一时间序列包括在所述第一时间序列的每一观测处的多个函数的性能数据,所述多个函数中的每一个函数是所述计算机应用的一部分; 将所述降维转换应用于之前观测到的时间序列以生成经转换的历史数据; 接收当前时间序列数据集并应用所述降维转换以生成经转换的当前时间序列数据集;将所述经转换的时间序列数据集与所述经转换的历史数据作比较以从所述经转换的当前时间序列数据集中标识异常观测。39.如权利要求38所述的方法,其特征在于,进一步包括: 对所述经转换的历史数据执行聚类分析以在所述经转换的历史数据内生成聚类定义。40.如权利要求39所述的方法,其特征在于,所述比较所述经转换的当前时间序列数据集包括相对于所述聚类定义确定所述经转换的当前时间序列数据集中的第一观测是是反常值。41.如权利要求38所述的方法,其特征在于,还包括基于所述异常观测来生成警报。42.如权利要求38所述的方法,其特征在于,进一步包括: 确定预测时间序列观测; 通过将所述降维转换应用于所述预测时间序列观测来生成预测的经转换的观测;以及 将所述预测的经转换的观测与所述经转换的历史数据作比较来标识预测的反常值。43.如权利要求42所述的方法,其特征在于,还包括基于所述预测的经转换的观测来生成警报。44.如权利要求42所述的方法,其特征在于,所述预测时间序列观测是通过分析具有至少一个类似时间序列片段的时间序列来进行的。45.—种系统,包括: 处理器; 存储器; 在所述处理器和所述存储器上工作的分析器,所述分析器: 接收表示通过跟踪计算机应用而收集到的第一时间序列的降维转换,所述第一时间序列包括在所述第一时间序列的每一观测处的多个函数的性能数据,所述多个函数中的每一个函数是所述计算机应用的一部分; 将所述降维转换应用于之前观测到的时间序列以生成经转换的历史数据; 接收当前时间序列数据集并应用所述降维转换以生成经转换的当前时间序列数据集; 将所述经转换的时间序列数据集与所述经转换的历史数据作比较以从所述经转换的当前时间序列数据集中标识异常观测。46.如权利要求45所述的系统,其特征在于,所述分析器进一步: 接收所述经转换的历史数据内的聚类定义。47.如权利要求46所述的系统,其特征在于,所述分析器进一步: 相对于所述聚类定义确定所述经转换的当前时间序列数据集包括确定所述经转换的当前时间序列数据集中的第一观测是反常值。48.如权利要求45所述的系统,其特征在于,还包括基于所述异常观测来生成警报。49.如权利要求45所述的系统,其特征在于,所述分析引擎还: 确定预测时间序列观测; 通过将所述降维转换应用于所述预测时间序列观测来生成预测的经转换的观测;以及 将所述预测的经转换的观测与所述经转换的历史数据作比较来标识预测的反常值。50.如权利要求49所述的系统,其特征在于,还包括基于所述预测的经转换的观测来生成警报。51.如权利要求49所述的系统,其特征在于,所述预测时间序列观测是通过分析具有至少一个类似时间序列片段的时间序列来进行的。 使用计算机应用的历史时间序列观测的事件预测52.—种在至少一个计算机处理器上执行的方法,所述方法包括: 标识在监控计算机应用时发生的第一事件; 在历史数据库中搜索所述第一事件,所述历史数据库包括对所述计算机应用的时间序列观测,并且返回所述第一事件的一组实例; 标识多个时间序列实例,所述时间序列实例中的每一个都是在所述第一事件的实例之前的时间序列片段; 组合所述多个时间序列实例以创建参考时间序列,所述参考时间序列是所述第一事件的前兆。53.如权利要求52所述的方法,其特征在于,所述时间序列观测包括对所述计算机应用中包括的多个函数中的每一个函数的性能观测。54.如权利要求53所述的方法,其特征在于,所述参考时间序列包括用于第一函数的第一组性能参数以及用于第二函数的第二组性能参数,所述第一函数和所述第二函数被包括在所述计算机应用中。55.如权利要求54所述的方法,其特征在于,所述第一函数和所述第二函数在第一计算机设备上执行。56.如权利要求54所述的方法,其特征在于,所述第一函数在第一设备上执行,而所述第二函数在第二设备上执行。57.如权利要求54所述的方法,其特征在于,所述第一组性能参数包括所述第一函数的资源消耗参数。58.如权利要求52所述的方法,其特征在于,所述第一事件被定义在第一时间序列片段中。59.如权利要求58所述的方法,其特征在于,所述搜索包括搜索类似于所述第一时间序列片段的一组时间序列片段,所述一组时间序列片段中的每一个时间序列片段表示所述第一事件的所述一组实例中的一个实例。60.如权利要求59所述的方法,其特征在于,所述搜索还包括确定所述实例中的每一个的显著因子,所述显著因子是所述实例和所述第一时间序列片段之间的相关程度。61.如权利要求60所述的方法,其特征在于,所述显著因子至少部分使用余弦相似度来推导。62.如权利要求52所述的方法,其特征在于,所述时间序列观测包括对作为所述计算机应用的一部分执行的函数的观测。63.如权利要求52所述的方法,其特征在于,所述时间序列观测包括从多个设备聚合的观测。64.如权利要求63所述的方法,其特征在于,所述多个设备中的每一个设备并行执行所述计算机应用。65.如权利要求63所述的方法,其特征在于,第一设备执行第一可执行代码并且第二设备执行第二可执行代码,所述第一可执行代码和所述第二可执行代码被包括在所述计算机应用中。66.如权利要求52所述的方法,其特征在于,所述第一事件由标识所述第一事件的用户输入标识。67.如权利要求66所述的方法,其特征在于,从用户接口接收的所述用户输入包括解说来自所述计算机应用的观测的时间线表示。68.如权利要求52所述的方法,其特征在于,所述第一事件通过标识所述历史数据库中的性能异常来标识。69.如权利要求68所述的方法,其特征在于,所述性能异常通过搜索所述历史数据库来标识O70.—种由计算机处理器执行的方法,所述方法包括:接收参考时间序列片段,所述参考时间序列片段是计算机应用时的第一事件的前兆; 在所述计算机应用执行时监控所述计算机应用,并且收集来自所述计算机应用的性能观测,所述性能观测被包括在性能观测的时间序列中; 将所述参考时间序列片段与所述性能观测的时间序列作比较;以及 确定所述参考时间序列片段与所述性能观测的时间序列相关并且生成对于所述第一事件的预测警报。71.如权利要求70所述的方法,其特征在于,所述性能观测包括针对第一函数和第二函数的性能观测,所述第一函数和所述第二函数都在所述计算机应用内。72.如权利要求71所述的方法,其特征在于,所述第一函数和所述第二函数在第一设备上执行。73.如权利要求71所述的方法,其特征在于,所述第一函数在第一设备上执行,而所述第二函数在第二设备上执行。74.—种系统,包括: 至少一个处理器; 事件分析器,所述事件分析器: 标识在监控计算机应用时发生的第一事件; 确定所述第一事件的一组性能描述符; 在所述至少一个处理器上执行的搜索引擎,所述搜索引擎: 在历史数据库中搜索所述一组性能描述符,所述历史数据库包括对所述计算机应用的时间序列观测,并且返回所述第一事件的一组实例; 参考分析器,所述参考分析器: 标识多个时间序列实例,所述时间序列实例中的每一个时间序列实例都是在所述第一事件的实例之前的时间序列片段; 组合所述多个时间序列实例以创建参考时间序列,所述参考时间序列是所述第一事件的前兆。75.如权利要求74所述的系统,其特征在于,所述时间序列观测包括针对所述计算机应用中包括的多个函数中的每一个函数的性能观测。76.如权利要求75所述的系统,其特征在于,所述参考时间序列包括用于第一函数的第一组性能参数以及用于第二函数的第二组性能参数,所述第一函数和所述第二函数被包括在所述计算机应用中。77.如权利要求76所述的系统,其特征在于,所述第一函数和所述第二函数在第一计算机设备上执行。78.如权利要求76所述的系统,其特征在于,所述第一函数在第一设备上执行,而所述第二函数在第二设备上执行。79.如权利要求76所述的系统,其特征在于,所述第一组性能参数包括所述第一函数的资源消耗参数。80.如权利要求74所述的系统,其特征在于,所述一组性能描述符包括第一时间序列片段,所述第一时间序列片段包括所述第一事件。81.如权利要求80所述的系统,其特征在于,所述搜索包括搜索类似于所述第一时间序列片段的一组时间序列片段,所述一组时间序列片段中的每一个时间序列片段表示所述第一事件的所述一组实例中的一个实例。82.如权利要求81所述的系统,其特征在于,所述搜索还包括确定所述实例中的每一个实例的显著因子,所述显著因子是所述实例和所述第一时间序列片段之间的相关程度。83.如权利要求82所述的系统,其特征在于,所述显著因子至少部分使用余弦相似度来推导。84.如权利要求74所述的系统,其特征在于,所述时间序列观测包括对作为所述计算机应用的一部分执行的函数的观测。85.如权利要求74所述的系统,其特征在于,所述时间序列观测包括从多个设备聚合的观测。86.如权利要求85所述的系统,其特征在于,所述多个设备中的每一个设备并行执行所述计算机应用。87.如权利要求85所述的系统,其特征在于,第一设备执行第一可执行代码并且第二设备执行第二可执行代码,所述第一可执行代码和所述第二可执行代码被包括在所述计算机应用中。88.如权利要求74所述的系统,其特征在于,所述第一事件由标识所述第一事件的用户输入标识。89.如权利要求88所述的系统,其特征在于,从用户接口接收的所述用户输入包括解说来自所述计算机应用的观测的时间线表示。90.如权利要求74所述的系统,其特征在于,所述第一事件通过标识所述历史数据库中的性能异常来标识。91.如权利要求90所述的系统,其特征在于,所述性能异常通过搜索所述历史数据库来标识O
【文档编号】G06F17/00GK106030565SQ201480074031
【公开日】2016年10月12日
【申请日】2014年3月28日
【发明人】T·瑟托
【申请人】微软技术许可有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1