用于利用复发性模式创建时间序列数据的时段分布图的方法与流程

文档序号:14958981发布日期:2018-07-18 00:08阅读:498来源:国知局

本申请要求于2016年2月29日提交的标题为“methodforcreatingperiodprofilefortime-seriesdatawithrecurrentpatternns”的序列号为62/301,585的美国临时专利申请以及于2016年2月29日提交的标题为“seasonalawaremethodforforecastingandcapacityplanning”的序列号为62/301,590的美国临时专利申请的权益,这些申请中的每个申请的全部内容通过引用被并入本文,如同被整体阐述一样。

本公开涉及在时间序列数据内检测和表征季节。本公开更具体地涉及用于识别季节的实例、将实例与不同的季节类别相关联并且生成季节类别的总结的计算机实现的技术。



背景技术:

本节中描述的方法是可以追求的方法,但不一定是先前已经构想或追求的方法。因此,除非另有说明,否则不应当假定本节中描述的任何方法仅仅因为它们被包括在本节中就有资格作为现有技术。

时间序列是通常通过在一个时间段内捕获来自一个或多个源的测量而获得的一系列数据点。作为示例,企业可以连续或者在预定的时间间隔内收集针对在数据中心环境内部署的软件和硬件资源的各种性能度量。分析师经常将预测模型应用于时间序列数据,以试图基于观测到的测量结果来预测未来事件。一个这样的模型是holt-winters预测算法,也被称为三次指数平滑。

holt-winters预测算法考虑了时间序列数据中的趋势和季节性二者,以便制定关于未来值的预测。这个上下文中的趋势是指时间序列数据随时间增加或减少的趋势,而季节性是指时间序列数据表现出定期地重复自己的行为的趋势。季节一般是指表现出的行为开始重复自己之前的时间段。加性季节模型由以下公式给出:

lt=α(xt-st-p)+(1-α)(lt-1+tt-1)(1)

tt=γ(lt-lt-1)+(1-γ)tt-1(2)

st=δ(xt-lt)+(1-δ)st-p(3)

其中xt、lt、tt和st分别表示在时间t的观测到的水平、局部平均水平、趋势和季节指标。参数α、γ、δ分别表示用于更新平均水平、趋势和季节指标的平滑参数,并且p表示季节模式的持续时间。预测由如下给出:

ft+k=lt+ktt+st+k-p(4)

其中ft+k表示在未来时间t+k的预测。

当季节波动与时间序列数据的整体水平无关时,通常应用加性季节模型。如果季节波动的大小基于时间序列数据的整体水平而变化,那么常常应用被称为乘性模型的替代方案。乘性模型由以下公式给出:

lt=α(xt/st-p)+(1-α)(lt-1+tt-1)(5)

tt=γ(lt-lt-1)+(1-γ)tt-1(6)

st=δ(xt/lt)+(1-δ)st-p(7)

其中与前面一样,xt、lt、tt和st分别表示在时间t的观测到的水平、局部平均水平、趋势和季节指标。则预测由以下公式给出:

ft+k=(lt+ktt)st+k-p(8)

预测模型(诸如三次指数平滑)主要集中在生成关于未来事件的预测。虽然holt-winter加性模型和乘性模型考虑了季节指标来生成预测,但是这些模型提供关于时间序列数据中可能存在的任何季节模式的有限信息。特别地,由等式(3)和(7)表示的季节指标通常被实现为在这些季节指标被绑定到的预测模型的界限内操作的内部结构。因此,由这些公式输出的季节数据无助于在为其生成季节数据的具体预测模型之外的上下文中的有意义解释。进一步地,最终用户对于在生成预测中所使用的任何季节数据可能只有很少或没有基本概念。

附图说明

在附图的图中通过示例的方式而非限制的方式图示了各种实施例,并且其中相同的附图标记指代类似的元件,并且其中:

图1图示了用于检测和总结从时间序列数据外推的季节模式的特性的示例处理;

图2图示了用于检测和表征时间序列数据内的季节模式的示例系统;

图3图示了用于确定在时间序列数据集合内是否存在季节模式的示例处理;

图4图示了用于对在时间序列数据集合内识别出的季节模式进行分类的示例处理;

图5图示了用于对季节的实例进行分类的示例分类结果集合;

图6图示了用于基于季节内的分类实例集合来生成和均化分段集合并且使用均化的分段来生成季度模式的一个或多个类别的总结数据的示例处理;

图7图示了通过基于分类实例集合来生成并均化分段集合而获得的示例总结;

图8图示了已被分类为复发性每周高和复发性每周低的季节模式的示例总结;

图9图示了用于选择时间序列中的复发性高值和复发性低值的示例监督处理;

图10图示了用于选择时间序列中的复发性高值和复发性低值的示例无监督处理;

图11图示了稀疏模式与密集模式单独地被提取和注释的示例总结;

图12图示了用于基于季节特性来生成时段分布图的示例处理;

图13图示了具有值的缓冲区的示例每周分布图;

图14a图示了示例时间序列数据集和对应的每周分布图;

图14b图示了示例时间序列数据集和对应的每周分布图;

图14c图示了被集成到日历界面中的示例每周分布图;以及

图15是图示可以在其上实现一些实施例的计算机系统的框图。

具体实施方式

在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对本公开的透彻理解。但是,将显而易见的是,可以在没有这些具体细节的情况下实践本发明。在其它情况下,以框图形式示出结构和设备以避免不必要地模糊本发明。

总体概述

在各种实施例中,描述了用于检测和表征时间序列内的季节模式的计算机系统、存储的指令和技术步骤。可以通过分析跨越时间序列内的不同季节时段收集到的数据点(在本文中也被称为“样本”)来检测季节模式。如果该分析检测到在季节基础上重现的时间序列内的值,那么检测到季节模式。如果检测到季节模式,那么进一步分析数据点以对季节模式进行分类。例如,数据点可以被分类为时间序列内的复发性高或复发性低。一旦被分类,就可以生成总结,其中该总结识别在时间序列内检测到的季节模式的一个或多个类别。可以显示、存储或以其它方式输出该总结以向最终用户或应用暴露时间序列的分类季节模式。在这个上下文中,复发性模式是指在多个实例之间和/或在季节的多个样本时段内重复的值、趋势或其它特性。复发性模式可以涉及或可以不涉及关于信号的整体幅度的趋势的检测模式。例如,复发性模式可以表示相对于密集信号“高”或“低”的趋势。复发性模式可以允许横向移动,例如在时间上达到阈值量,使得馈送到稀疏模式中的稀疏数据点可能不是时段与时段之间完美对准的。

在一些实施例中,用于对季节模式进行分类的技术包括通过将数据分割成实例集合来预处理时间序列数据,其中实例集合中的每个实例对应于季节内的不同相应子时段。在预处理期间,分析该实例集合以确定哪些实例应当与特定季节类别相关联。季节内的不同实例可以与不同的相应类别相关联或者可以保持不被分类。例如,来自实例集合的第一组实例可以与第一类别相关联,并且来自实例集合的第二组实例可以与第二类别相关联,而来自实例集合的第三组实例可以保持不被分类。基于哪组实例与特定类别相关联,可以生成总结以表征时间序列内的季节模式。

为了表征可以存在于时间序列中的季节模式类别,总结可以识别与该类别相关联的一段或多段时间。作为示例,“每周高”季节类别可以指定其中检测到复发性每周高模式的天和/或小时。作为另一个示例,“每月低”季节类别可以识别其中检测到复发性每月低的周、天和/或小时。总结中也可以包括其它季节类别以识别和表征时间序列内的季节模式。总结可以通过编程被集成到各种复杂的分析解决方案中。例如,在信息技术(it)的上下文中,可以处理总结数据以执行季节感知异常检测、维护计划、硬件和软件整合以及容量计划。

通过合并季节的共享相同类别的相邻实例,可以识别用于特定季节类别的一段时间。该段时间也可以被扩展成包括未被分类的相邻实例。通过填充相邻的未被分类的值,可以减少不同季节时段上模式的随机变化,由此在底层模式基本不变时在延长的时间框架内提供一致的结果。

图1图示了用于检测和总结从时间序列数据外推的季节模式的特性的示例处理。在方框102处,时间序列数据集合由在一个或多个计算设备上执行的应用检索或以其它方式接收。在方框104处,应用识别该时间序列数据集合内的季节的多个实例。如前面所提到的,季节的不同实例可以对应于该季节内不同的相应子时段。在方框106处,应用将来自季节的多个实例的第一实例集合与特定类别相关联,用于表征季节模式。在将第一实例集合与季节类别相关联之后,来自多个实例的第二实例集合保持不被分类或以其它方式与该特定类别不关联。在方框108处,应用生成识别属于特定类别的一段或多段时间的总结,使得一段或多段时间跨越与第一实例集合对应的子时段和与第二实例集合中的至少一个实例对应的至少一个子时段。在方框110处,应用通过执行将总结存储在非易失性存储装置中、将总结提供给单独的应用或者使总结显示给最终用户中的一个或多个来输出特定类别的总结。

在一些时间序列数据集合中,稀疏模式可以覆盖在密集模式上,或者在数据内可以仅存在稀疏模式或密集模式。由等式(3)和(7)表示的加性和乘性holt-winter季节指标不对稀疏模式和密集模式二者提供有意义的处理。一般而言,holt-winters等式平滑时间序列数据,使得稀疏分量被有效地移除和忽略。平滑防止噪声显著影响季节指标,而是依靠密集数据的趋势来产生预测。但是,移除信号的稀疏分量可能造成本质上稀疏的有意义的季节模式被忽视。

为了考虑密集模式和稀疏模式二者,时间序列数据集合可以被分解成密集信号和噪声信号(在本文中也被称为“稀疏信号”)。通过将时间序列拆分成单独的分量,可以对密集信号和噪声信号二者执行独立的分析。这允许时间序列数据内的密集特征和稀疏特征被独立地考虑和分类。例如,噪声信号可以被分析来为季节的多个实例生成第一分类,其中第一分类将来自多个实例的一个或多个实例的第一集合与特定季节模式类别相关联。密集信号可以被单独和独立地分析以生成将一个或多个实例的第二集合与特定季节模式类别相关联的第二分类。一个或多个实例的第一集合与一个或多个实例的第二集合可以重叠,因为至少一个实例可以在二者中被分类为相同。一个或多个实例在第一分类和第二分类之间可以被不同地分类或保持不被分类。然后可以将分类组合以生成第三分类,第三分类可以用于总结季节类别的密集特征和稀疏特征。

根据一些实施例,监督方法用于识别稀疏季节模式和密集季节模式并对稀疏季节模式和密集季节模式进行分类。在监督方法中,领域知识作为输入被接收并用于对密集季节模式和稀疏季节模式进行分类。可以利用领域知识来更可靠和准确地表征在时间序列数据集合内重现的季节模式。例如,可以至少部分地基于用户供应的阈值集合来执行是否将实例分类为稀疏信号或密集信号内的季节高或季节低的确定。可以选择这个用户供应的阈值,使得统计上无意义的实例被滤除以最小化或消除噪声的影响,同时仍然检测稀疏季节模式和密集季节模式并对稀疏季节模式和密集季节模式进行分类。

由于许多系统和操作的规模,为被分析的每个时间序列数据集合接收领域知识作为输入可能是不可行的。在这种情况下,可以使用无监督方法来识别稀疏季节模式和密集季节模式并对稀疏季节模式和密集季节模式进行分类。无监督方法将经处理的稀疏信号与密集信号组合以创建捕获密集特征和有意义的稀疏特征的组合总信号。无监督方法在没有任何领域知识或其它外部输入的情况下生成组合总信号,由此减少了配置开销并提高了解决方案的可扩展性。

时间序列数据源

时间序列包括随时间捕获信息的数据点的收集。时间序列数据的源和被捕获的信息的类型可以因实施而异。例如,可以从一个或多个软件和/或硬件资源收集时间序列,并捕获从中收集数据的资源的各种性能属性。作为另一个示例,可以使用测量物体或环境的物理属性(诸如温度、压力、运动、业务流)或其它属性的一个或多个传感器来收集时间序列。

可以从单个源或多个源收集时间序列数据。参考图2,例如,图2图示了用于检测和表征时间序列数据内的季节模式的示例系统200。系统200包括主机210a至210n、网络220、分析服务230、储存库240以及客户端250a至250n。取决于特定的实施,系统200的部件可以在一个或多个云或其它联网环境内操作的一个或多个主机中实施。

主机210a至210n表示一个或多个网络主机的集合,并且一般包括目标212a至212n和代理214a至214n。在这个上下文中的“目标”是指时间序列数据的源。例如,目标可以是软件部署,诸如数据库服务器实例、执行中间件或在网络主机上执行的某个其它应用。作为另一个示例,目标可以是监视硬件资源或者网络主机部署在其中的某种环境的传感器。代理从对应的目标收集数据点并将数据发送到分析服务230。在这个上下文中的代理可以是在对应的主机上执行和/或监视一个或多个相应目标的处理(诸如服务或守护进程)。虽然图2中每个主机仅示出一个代理和目标,但是每个主机的代理和/或目标的数量可以因实施而异。可以在给定的主机上安装多个代理以监视时间序列数据的不同目标源。

代理214a至214n经由网络220与分析服务230通信地耦合。网络220表示一个或多个互连的数据通信网络,诸如因特网。代理214a至214n可以根据一个或多个通信协议通过网络220向分析服务230发送收集到的时间序列数据点。可以用于在代理和分析服务230之间传送数据的示例通信协议包括但不限于超文本传输协议(http)、简单网络管理协议(snmp)以及因特网协议(ip)套件的其它通信协议。

分析服务230包括可以被调用以处理时间序列数据的服务集合。分析服务230可以由主机210a至210n中的一个或多个执行,或者由一个或多个单独的主机(诸如服务器装置)执行。分析服务230一般包括收集逻辑232、季节模式识别逻辑234、季节模式分类逻辑236和总结生成逻辑238。每个逻辑单元实现用于处理时间序列数据的不同功能或功能集合。

储存库240包括用于存储时间序列数据242和总结数据244的易失性和/或非易失性存储装置。时间序列数据242包括由收集逻辑232从代理214a至214n中的一个或多个收集的数据点的集合。收集逻辑232可以聚集从不同代理接收的所收集的数据点,使得数据点被记录或以其它方式存储以指示基于时间的顺序次序。可替代地,收集逻辑232可以将从一个代理接收的数据点维持为与从另一个代理接收的数据分开的时间序列。因此,时间序列数据242可以包括从单个代理或从多个代理收集的数据点。进一步地,时间序列数据242可以包括单个时间序列或多个时间序列。总结数据244存储表征在时间序列数据242内检测到的季节模式的数据。下面进一步详细描述用于检测时间序列数据内的季节模式的技术。储存库240可以驻留在不同的主机机器(诸如物理上与分析服务230分开的存储服务器)上,或者可以从相同主机机器上的易失性或非易失性存储装置来分配。

客户端250a至250n表示可以访问分析服务230以检测和表征时间序列数据的一个或多个客户端。在这个上下文中,“客户端”可以是人类用户(诸如管理员)、客户端程序或某种其它应用接口。客户端可以在与分析服务230相同的主机上本地执行,或者可以在不同的机器上执行。如果在不同的机器上执行,那么客户端可以根据客户端-服务器模型经由网络220与分析服务230进行通信,诸如通过提交调用一个或多个服务的http请求并且接收包括由一个或多个服务生成的结果的http响应。客户端可以提供用于与分析服务230交互的用户界面。示例用户界面可以包括但不限于图形用户界面(gui)、应用编程界面(api)、命令行界面(cli)或允许用户调用分析服务230中的一个或多个来处理时间序列数据的某种其它界面。

季节模式识别

分析服务230包括用于识别可以存在于时间序列数据的输入集合内的季节模式(如果有的话)的季节模式识别逻辑234。当分析服务230从客户端250a至250n中的一个接收到对于指定的时间序列检测季节模式和/或对季节模式进行分类的请求时,季节模式识别逻辑234处理对应的时间序列数据集合以搜索季节模式。例如,客户端可以请求查看对于特定资源存在什么高季节和/或低季节(如果有的话)。作为响应,分析服务230可以如下面进一步详细描述的分析从该特定资源收集的时间序列数据,并且向用户提供检测到的季节模式(如果有的话)的总结。

季节模式识别逻辑234可以分析单个持续时间或变化的持续时间的季节以检测季节模式。作为示例,可以针对每日模式、每周模式、每月模式、季度模式、年度模式等对时间序列数据进行分析。被分析的季节可以是用户指定的持续时间、预定义的持续时间,或者是基于规则或标准集合选择的。例如,如果从客户端接收的请求将季节的长度指定为l个时段,那么季节模式识别逻辑234分析时间序列数据以确定是否存在每l个时段再现的任何行为。如果未检测到模式,那么季节模式识别逻辑234可以输出消息以提供未检测到模式的通知。否则,可以根据下面进一步详细描述的技术对检测到的模式进行分类。

参考图3,绘出了用于确定时间序列数据集合内是否存在季节模式的示例处理。方框302至306表示基于自回归的分析,并且方框308至316表示频域分析。虽然在图3中绘出的示例处理中两个分析被组合使用以确定是否存在季节模式,但是在其它实施例中,可以在没有一个分析的情况下执行另一个分析,或者可以切换执行分析的次序。除了基于自回归和基于频域的分析之外或作为基于自回归和基于频域的分析的替代方案,其它实施例还可以采用其它随机方法来检测时间序列数据内的复发性模式的存在。

对于基于自回归的分析,处理从方框302开始,其中时间序列数据被分块成季节持续时间的块。作为示例,如果试图检测每周模式,那么每个数据块可以包括在一周的时间段内收集的数据点。类似地,如果试图检测每月模式,那么每个数据块可以包括在一个月的时间段内收集的数据点。

在方框304处,计算在时间上相邻的块之间的相关系数。存在可以计算相关系数的许多不同的方式。在一些实施例中,季节持续时间的时间上相邻的块被覆盖,并且时间序列数据的重叠信号被比较以确定两个函数之间是否存在强相关性。作为示例,当试图检测每周模式时,包含第一周的时间序列数据的一个块可以被包含时间上相邻的周的时间序列数据的第二块覆盖。将信号进行比较,以计算指示季节时段内的时间点与在这些时间点处的观测值之间的相关性的强度的相关系数。可以通过估计覆盖数据之间的最小平方(例如,通过使用普通的最小平方过程)或使用另一个自相关函数以导出指示时间上相邻的块之间的相关性的强度的值,来计算来自不同块/季节时段的时间序列数据之间的系数。

在方框306处,处理基于相关系数的比较来确定不同时间块之间的相关性是否满足阈值。阈值可以取决于特定实施而变化,并且可以作为用户可配置的值被暴露。如果相关系数的数量不满足阈值,那么处理继续到方框308,并且执行频域分析。否则,处理继续到方框318以指示已经检测到季节模式。

对于频域分析,处理在方框308处开始,并且为时间序列生成功率谱密度数据。可以通过对时间序列数据应用快速傅立叶变换生成功率谱密度以将数据分解成谱分量的集合,其中每个相应的谱分量表示在时间序列数据内观测到的对应值的相应频率。

在方框310处,处理从功率谱密度数据中识别主导频率。在这个上下文中,主导频率表示时间序列数据内最频繁出现的值。如果频繁出现的值在季节时段再现,那么这些值可以指示季节模式。

在方框312处,处理确定主导频率是否表示整个信号的振幅的阈值百分比。阈值可以取决于特定实施而变化,并且可以作为用户可配置的值被暴露。表示整个信号的无意义的部分的值不太可能与时间序列内的复发性模式相关联。因此,如果主导频率不表示整个时间序列数据的阈值百分比,那么处理继续到方框320。否则,处理继续到方框314。

在方框314处,处理确定主导频率是否在阈值时间段内再现。例如,如果搜索每周模式,那么处理可以确定该值在具有加上或减去阈值小时数的容差的情况下是否在每周的基础上再现。如果主导频率在时间序列数据内的阈值时间段不再现,那么处理可以确定未识别出季节模式,并且处理前进到方框316。否则,处理继续到方框318,并且处理确定已经检测到季节模式。

在方框316处,处理确定是否分析功率谱密度数据内的下一个主导频率。在一些实施中,可以设置阈值,使得前n个频率被分析。如果前n个频率没有导致检测到季节模式,那么处理可以前进到方框320,在方框320处,处理确定在时间序列数据内不存在季节模式。在其它实施中,可以分析构成超过信号的阈值百分比的所有频率。如果存在剩余的频率要分析,那么处理返回到方框310,并且对于下一个最主导的频率重复这些步骤。

基于上述分析,处理分别在方框318和320处确定时间序列数据内是否存在季节模式。如果检测到季节模式,那么处理可以继续对季节模式进行分类,如下面进一步讨论的那样。否则,处理可以输出通知以指示在时间序列数据内未检测到在指定的季节持续时间再现的季节模式。

可以重复图3的处理以检测不同持续时间的季节中的模式。作为示例,可以首先将时间序列数据分块成包含每周数据的块,并对时间序列数据进行分析以检测是否存在每周模式。然后可以将时间序列数据分块成包含每月数据的块,并对时间序列数据进行分析以检测是否存在每月模式。此外或可替代地,可以基于用户有兴趣分析的季节或者基于预定的规则或标准集合来跨越其它季节时段将时间序列数据分块并对时间序列数据进行分析。

季节模式分类

时间序列可以包括一个或多个季节模式类别。季节模式的示例类别可以包括但不限于复发性季节高和复发性季节低。这些类别中的每个类别可以进一步被分为子类别,这些子类别包括但不限于复发性稀疏季节高、复发性稀疏季节低、复发性密集季节高和复发性密集季节低。取决于特定的实施,其它类别和子类别也可以用于表征时间序列数据内的季节模式。如本文所使用的术语“类别”可以包括季节模式类别和季节模式子类别二者。

分析服务230包括季节模式分类逻辑236,该季节模式分类逻辑236对时间序列数据242进行预处理并对在时间序列数据内检测到的季节模式进行分类。参考图4,图4绘出了可以由季节模式分类逻辑236实现以对季节模式进行分类的示例处理。

在方框402处,通过生成数据块来对时间序列数据进行预处理,其中每个数据块表示时间序列内的一个季节时段或季节样本,并且每个数据块包括来自时间序列的跨越季节持续时间的时间段的数据。作为示例,如果时间序列包括跨越二十五周的数据并且季节的长度是一周时间,那么时间序列数据可以被分块成二十五个块,其中第一块包括在第一周期间收集的数据点,第二块包括在第二周期间收集的数据点等。

在方框404处,对于每个数据块,处理生成子块的集合,其中每个数据子块表示季节的一个实例并且包括跨越实例持续时间的子时段的时间序列数据。实例的持续时间可以因实施而异。作为示例,对于每周季节,每个实例可以表示在该周内时间不同的小时。因此,表示一整周的数据的块可以被分割成表示一百六十八个不同实例的一百六十八个子块。如果实例被定义为表示两个小时持续时间的子时段,那么表示周的块可以被分割成八十四个子块。作为另一个示例,对于每月季节,实例可以与月中的一天对应。取决于月中的天数,表示一个月的块然后可以被分割成二十八至三十一个子块。还可以选择其它子时段来调节时间序列数据被分析和总结的方式。

在方框406处,处理选择要分析的季节的实例以确定应当如何分类。处理可以选择季节中的第一实例并递增地前进,或根据任何其它例程或标准来选择实例。

在方框408处,处理部分地基于来自一个或多个季节样本/时段的实例的时间序列数据来确定是否以及如何对所选择的实例进行分类。例如,在每周的块的上下文中,特定的实例可以表示周中的第一小时。如前面所指示的,时间序列数据的每个块表示季节的不同季节时段/样本,并且可以具有表示季节的不同实例的子块集合。每个季节样本可以包括存储由实例表示的子时段的时间序列数据的相应子块。处理可以将代表每周的第一小时的子块内的时间序列数据与该周剩余部分的时间序列数据进行比较,以确定如何对特定实例进行分类。如果检测到实例的复发性模式,那么处理继续到方框410。否则处理继续到方框412。

在方框410处,处理将所选择的季节的实例与季节模式类别相关联。如果基于在前面的方框中执行的分析检测到复发性高模式,那么该实例可以与表示复发性季节高的对应类别相关联。类似地,如果处理从相关联的子块内的时间序列数据中检测到复发性低模式,那么该实例可以与表示复发性季节低的类别相关联。在其它实施例中,取决于在子块内检测到的复发性模式,相应的实例可以与不同的季节模式相关联。为了将实例与特定季节类别相关联,处理可以更新与季节类别对应的位向量中与该实例对应的位,如下面进一步详细描述的。

在一些情况下,处理可能无法将实例与季节模式类别相关联。例如,如果对应子时段内的时间序列数据跨越不同的季节时段不遵循明确的复发性模式,那么会发生这种情况。在这种场景中,处理可以保持该实例不被分类。当实例保持不被分类时,处理可以简单地继续分析季节的下一个实例(如果有的话),或者可以更新识别处理在第一遍未对哪些实例进行分类的标志(诸如位向量中的位)。

在方框412处,处理确定是否存在季节的任何剩余实例要分析以进行分类。如果存在季节的剩余实例要分析,那么处理选择季节的下一个剩余实例并返回到方框406以确定如何对下一个实例进行分类。否则,处理继续到方框414。

在方框414处,处理基于在前面的块中执行的分析来存储分类结果的集合。分类结果可以因实施而异,并且一般包括识别季节的实例已经与哪个季节类别相关联的数据(如果有的话)。作为示例,对于给定的实例,分类结果可以识别给定实例是复发性高、复发性低还是保持不被分类。

在一些实施例中,实例的集合的分类可以被存储为一个或多个位向量的集合(在本文也被称为数组)。参考图5,例如,图5绘出了在时间序列数据集合内检测到的季节的实例的示例分类。为了获得分类结果,将时间序列数据500分块成季节样本510a至510n。季节样本510a至510n中的每一个根据由块520a至520n表示的季节的实例(块520a至520n表示季节内的n个实例)进一步被分块。在每周季节的上下文中,每个季节样本可以表示一周的时间序列数据,并且每个实例可以表示在每周季节内的一小时子时段或者其它持续时间的子时段。取决于特定的实施,季节样本可以表示其它季节持续时间和/或实例可以表示其它子时段。位向量集合对季节的实例进行分类并且包括表示季节高的第一类别的位向量530和表示季节低的第二类别的位向量540。位向量内的不同位与季节的不同实例对应,并充当指示对应实例是否与类别相关联的布尔(boolean)值。例如,前七位可以在位向量530中被设置为“1”并且在位向量540中被设置为“0”,以指示该季节的前七个实例跨越季节样本510a至510n是高季节(highseason)。在位向量530和位向量540二者中,后续的位序列都可以被设置为“0”以指示季节的对应实例未被分类。类似地,后续的位序列可以在位向量530中被设置为“0”并且在位向量540中被设置为“1”,以指示该季节的对应实例序列跨越季节样本510a至510n是低季节(lowseason)。

位向量的长度可以取决于季节内的实例的数量而变化。在例如周长度的季节的上下文中,位向量530和540可以各自存储表示季节内的一小时子时段的168位。但是,位向量在季节中的实例较少时长度可以较短,在分析更大数量的实例时可以长度较长。这允许对季节的实例进行分析和分类的粒度的灵活性。

基于投票的分类

当确定如何对季节的实例进行分类时,根据一些实施例,季节模式分类逻辑236可以实现基于投票的方法。投票可以跨不同的分类函数和/或不同的季节时段发生。基于投票,可以为季节的实例确定最终的基于共识的分类。

分类函数是指对季节的实例进行分类的过程或操作。分类函数可以采用各种技术(诸如量化、聚类、令牌计数、机器学习、随机分析或其某种组合)来对季节的实例进行分类。虽然一些实施可以采用单个分类函数来对季节的实例进行分类,但是其它实施可以使用多个分类函数。某些分类函数可以为包括季节时段内或跨越不同季节时段的大幅波动的易变的时间序列数据集合生成更优化的分类。其它分类函数对于不太易变的时间序列数据中的实例进行分类可能更优。通过使用分类函数的组合,其中每个分类函数对如何对季节的实例进行分类进行“投票”,可以减轻错误分类的风险并且可以实现更可靠的最终分类。

在一些实施例中,分类可以使用令牌计数来对季节的实例进行分类。利用令牌计数,跨越不同的季节时段/样本来分析季节的实例以确定是将实例分类为高还是低。例如,在每周季节的上下文中,分析由每周内的不同实例表示的子时段(在本文被称为“目标子时段”)。如果由实例表示的目标子时段内的时间序列数据的平均值高于第一阈值百分比,那么该子时段对于那周可以被分类为高。如果该值低于第二阈值百分比,那么该子时段对于那周可以被分类为低。一旦目标子时段已经跨越不同的周被分类,如果目标子时段的阈值数量(或百分比)已经被分类为高,那么该实例就可以被分类为高,或者,如果目标子时段的阈值数量(或百分比)已经被分类为低,那么该实例就可以被分类为低。

除了令牌计数之外或作为令牌计数的替代,一些实施例可以使用k均值聚类来对季节的实例进行分类。利用k均值聚类,数据点被分组为集群,其中不同的数据点表示季节的不同实例并且不同的集群表示季节的不同类别。作为示例,第一集群可以表示复发性高并且第二集群可以表示复发性低。表示季节的特定实例的给定数据点可以被指派给具有最近均值或最近欧几里得(euclidean)距离的集群。

在一些实施例中,可以使用谱聚类来对季节的实例进行分类。利用谱聚类,基于季节时段内的实例来定义相似性矩阵或图。相似性矩阵内的行或列表示确定季节时段的特定实例与该季节时段的其它实例相似程度的比较。例如,如果在每周季节时段内存在168个实例,那么可以生成168×168的相似性矩阵,其中行或列指示特定实例相对于该季节时段内其它实例的距离。一旦创建了相似性矩阵,就可以使用该相似性矩阵的一个或多个特征向量来将实例指派给集群。在一些情况下,可以基于特征向量的中值在相似性矩阵内的相应分量来计算该中值。与特征向量中的中值之上的分量对应的实例可以被指派给表示季节高的集群,并且与均值之下的分量对应的实例可以被指派给表示季节低的第二集群。

当使用多个分类函数时,每个分类函数可以生成对属于特定季节的实例进行分类的对应结果(或结果集合)。作为示例,第一分类函数可以生成识别将哪些实例分类为复发性高的第一位向量结果以及识别将哪些实例分类为复发性低的第二位向量,其中位向量中的每个相应位与季节的不同实例对应。其它分类函数可以类似地生成将实例分类为高或低的位向量集合。取决于季节类别的数量和分类中所涉及的函数的数量,所生成的分类结果的数量可以因实施而异。

不同分类函数的结果集合可以作为“投票”被处理以便以某种方式对实例集合进行分类。例如,位向量的第一位可以作为投票被处理以将季节的第一实例与特定季节类别相关联,第二位可以作为投票被处理以将季节的第二实例与特定季节类别相关联等。可以组合结果以确定季节的每个实例的最终分类。可以基于投票规则集合来确定结果被组合的方式,如下面进一步详细描述的。

投票也可以跨不同的季节时段/样本发生。例如,如果将时间序列分块成与n个不同季节时段对应的n个块,其中n表示大于一的整数值,那么分类函数可以为特定季节类别生成n个位向量结果。参考图5,例如,可以生成多个位向量以跨越不同的季节样本510a至510n对季节高子时段进行分类,其中每个位向量与不同的季节样本对应。在这种情况下每个位向量内的特定位置处的位将基于针对相应季节时段所分析的那个实例的特性来对季节的对应实例进行分类。因此,第一位向量中的第一位可以基于季节样本510a的分析对季节的第一实例进行分类,第二位向量的第一位可以基于季节样本510b的特性来表征季节的第一实例等。类似地,不同位向量中的每个位向量的第二位可以基于季节时段510a和510n的相应特性来对季节的第二实例进行分类,第三位对第三实例进行分类等。因此,位可以充当基于对应季节时段的分析将实例与特定类别相关联的“投票”。然后可以基于投票规则集合来组合来自不同季节时段的位向量结果,以生成对季节的实例进行分类的最终的共识位向量结果。

对于给定的时间序列数据集合,可以基于一个或多个投票规则对季节的实例进行分类,其中投票规则可以因实施而异。例如,使用多数投票规则,可以将实例指派给具有大多数投票的季节类别。换句话说,实例与通过大多数分类函数和/或跨越大多数季节时段已经与该实例相关联的季节类别相关联。如果分类函数或季节时段已经将该实例与不同的季节类别相关联并且属于少数,那么该分类函数或季节时段被大多数投票否决。在其它实施中,可以使用其它投票阈值。例如,如果对应的子时段被分类为大于阈值百分比的高,那么可以将实例分类为高,并且如果对应的子时段被分类为大于阈值百分比的低,那么可以将实例分类为低。作为另一个示例,最终的共识分类可以基于全体一致投票。如果未达到全体一致投票,那么实例可能保持不被分类。不同的分类函数也可以被赋予相等或不同的投票权重。因此,趋于更可靠的分类函数可以被赋予对季节的最终分类更强大的投票影响。

分段创建和均化

一旦季节的实例已经被初始分类,季节模式分类逻辑236就基于分类生成分段的集合。在这个上下文中,分段是指与和特定季节类别相关联的一段时间对应或者以其它方式识别与特定季节类别相关联的一段时间的数据对象。表示时间上相邻的子时段并且共享相同分类的实例被合并到相同的分段中或者以其它方式与相同的分段相关联。被指派给分段的实例在本文中被称为“属于”该分段。由分段表示的一段时间覆盖由属于特定分段的一个或多个实例表示的一个或多个子时段。

在一些实施例中,分段可以由开始时间和结束时间定义。例如,在每周季节的上下文中,可以通过与特定类别相关联的一天以及该天中的开始/结束小时来定义分段。因此,第一分段可以将周一上午9点到下午5点(可以写为m9-17)识别为高季节,第二分段可以将周二上午1点到上午8点(可以写为t1-8)识别为低季节等。在每月季节的上下文中,可以以相同的方式定义分段,或者可以将分段定义为周以及该周中的开始/结束日期。因此,分段识别一段时间的粒度可以取决于特性实施而变化。

在一些实施例中,与特定季节类别相关联的分段可以用一个或多个未分类的实例“填充”。用未分类实例填充分段可以包括指派或以其它方式将未分类实例与分段相关联。当未分类实例被填充到特定的分段时,该未分类实例属于该分段并且由此与属于分段的分类实例的相同季节类别相关联。换句话说,由该分段表示的一段时间被扩展以除了由属于该分段的(一个或多个)分类实例表示的(一个或多个)子时段之外,还覆盖由(一个或多个)未分类实例表示的(一个或多个)子时段。扩展分段以覆盖未分类实例允许创建直观且易于处理的季节分类,所述季节分类提供对时段间模式的类似描述。作为示例,可以通过查找跨工作周的每一天的高季节的共同开始/结束小时或者月的每个第二个周五出现的高季节的开始/结束小时来扩展分段并将该分段与其它分段进行均化。基于共性跨越不同分段进行均化也会导致更一致的输出并且表示比简单的高/低分类更高级别的复发性模式合成。

图6绘出了用于基于分类实例集合来生成并均化分段集合的示例处理,其中均化的分段集合用于生成一个或多个季节模式类别的总结数据。在方框602处,处理接收分类实例集合作为输入。作为示例,如前所述,输入可以包括布尔数组/位向量的集合,其中数组与特定季节类别对应并且识别季节的哪些实例与该类别相关联。在每周季节的上下文中,实例可以被建模为具有168个元素的布尔数组,其中每个元素指示小时是否跨越不同的季节时段一直为高或低。

在方框604处,基于分类来合并数组内的实例。作为示例,当数组内的实例位于该数组的共享相同分类的两个其他实例之间时,这些实例可以被合并,其中两个其他实例在数组内彼此相隔规定或阈值数量的实例内(如由数组中的位的位置所确定的),并且要被合并的实例不与冲突的分类相关联。例如,在每周季节性和检测的上下文中,如果两个小时被分类为相同(高或低),那么,如果这两个小时之间不存在冲突的分类(低或高),那么这两个小时之间的未被分类的小时也可以被重新分类为高或低。

在方框606处,为合并的实例生成分段集合。对于已经合并的给定实例集合,可以生成表示由合并的实例覆盖的一段时间的对应分段。在每周季节性检测的上下文中,可以通过从属于该分段的合并实例集合确定的日期和开始/结束小时来定义分段。因此,如果合并的实例表示跨越周一上午9点到下午5点的一小时的子时段,那么创建识别这段时间的对应分段。一旦生成分段,所述分段就可以被存储在易失性和/或非易失性存储装置中。

在方框608处,处理确定是否均化分段集合。该确定可以基于一个或多个标准,这些标准可以因实施而异。在一些实施例中,均化可能递归地发生,直到所创建的分段达到均质的阈值水平。在其它实施例中,均化可以递归地发生指定的次数。在其它实施例中,可以完全跳过均化。

在方框610处,处理计算已经为给定季节创建的不同分段之间的相似性。两个分段之间的相似性可以基于不同分段之间的共性来确定,诸如跨与不同日期或不同季节时段相关联的分段的共同开始/结束小时。例如,相似性可以根据重叠实例的数量与分段的长度的最大值的比率来确定。更具体而言,如果i1和i2是由两个分段描述的两个实例集合,那么它们之间的相似性是s=|i1∩i2|/max(|i1|,|i2|)。在这里,|ii|计算集合ii的基数或长度,并且∩是交集。例如,分段周一5-8与周二4-7的相似性是|{5,6,7,8}∩{4,5,6,7}|/max({5,6,7,8},{4,5,6,7})=3/4。这个方框处的相似性计算可以作为方框608的一部分来执行,以确定分段是否已经满足相似性/均化的阈值水平,或者可以作为单独且独立的步骤来执行。

在方框612处,处理基于分段相似性来均化和过滤分段。通过调节被分段覆盖的各段时间,相似且共享相同的共性的分段可以被均化。均化可以包括将分段开始/结束时间设置为两个分段的相应的最小/最大值和/或校正与相反类型的分段的任何重叠。例如,如果存在与周一5-8和周二4-9的各段时间对应的“高”分段以及与周一9-12的时间段对应的“低”分段,那么可以更新高分段以表示周一4-8和周二4-8的各段时间。因此,周一5-8的高分段被扩展为覆盖表示周一4-5的实例。由于与低分段重叠,表示周二4-9的高分段被收缩为4-8。在集合内的相似分段已经被均化之后,一个或多个分段可以与另一个分段相同或者被完全包含在另一个分段中。可以通过从用于总结季节的集合中移除这些分段而将这些分段过滤。

在方框612之后,处理返回到方框608,并且处理确定是否对更新后的分段重复均化。在每周季节性检测和表征的上下文中,一种技术是对高模式和低模式执行两次均化。但是,如前所述,均化可以递归地发生任何次数。一旦完成均化和过滤,处理就继续到方框614。

在方框614处,处理基于(均化或未均化的)分段集合生成总结并将该总结存储在易失性或非易失性存储装置中。在这个上下文中,总结是指识别表示至少一个季节模式类别的一段或多段时间的一个或多个数据对象。例如,在每周季节的上下文中,处理可以生成识别与特定季节类别相关联的日期和小时的总结数据,如从均化(如果应用的话)之后的分段所确定的。处理可以合并时段间分段以创建更直观且易于处理的总结。例如,如果分段周一9-17、周二9-17、周三9-17、周四9-17和周五9-17与相同的季节类别相关联,那么季节模式可以被总结为周一至周五9-17。

图7绘出了通过基于分类实例集合来生成并均化分段集合而获得的示例总结数据。图表702绘出了一周内被分类为季节高的实例。图表704绘出了从这周内的实例生成的结果分段以及用于总结季节高模式的分段的两遍均化。如图所示,所生成的分段的初始集合包括周一21-23、周二0-5、周二20-23等。在第一遍均化中,扩展一些分段以覆盖未分类实例。例如,周一21-23被均化为周一20-23以包括先前未分类实例周一20-21。类似地,周五0-6被扩展成包括两个附加的相邻且未分类的实例,从而导致该分段被扩展到周五0-8。第二遍均化进一步修改这些段,在修改之后生成季节模式的总结。该总结合并具有重叠的子时段分类的时段间分段。因此,总结数据将周一至周五20-23和周二至周六0-8识别为一周内的高季节。

总结视图和界面

针对给定的时间序列数据集合生成的总结数据可以提供用于分析分类季节模式的一个或多个视图或其它界面。例如,总结生成逻辑238可以生成gui对象、界面控件、文本数据和/或其它数据对象,以显示检测到什么复发性模式以及这些复发性模式如何被分类的总结。参考图8,图8绘出了已经被分类为复发性每周高和复发性每周低的季节模式的示例总结。总结包括识别季节类别以及属于该季节类别的时间段/分段的数据。在本示例中,对于每周数据库登录,季节类别与再现的季节高和再现的季节低对应。总结数据包括每周分布图视图,该视图允许用户对原型每周季节可视化。可以基于提取出的稀疏/密集季节分量、在时间序列数据内检测到的标称值和/或推断的趋势点来生成每周分布图视图中的数据点。

总结生成逻辑238可以生成允许用户导航到不同总结视图和/或挖掘以查看关于季节分布图的更多细节的界面。在数据库登录的上下文中,例如,用户可以导航到具体的周以查看历史和/或预测的数据库登录。当基于从多个主机收集的数据生成分类时,用户可以挖掘到具体的主机以查看针对该具体主机数据库的季节模式。因此,用户可以查看针对个体目标硬件或软件资源以及针对一组目标硬件和/或软件资源的分类季节模式和趋势。例如,利用数据库登录,用户可以查看针对个体数据库服务器实例的季节登录模式以及针对一组数据库服务器实例的季节登录模式。这允许用户分析跨越多个数据库服务器的整体数据库使用的季节模式以及具体数据库服务器的季节模式。

此外或可替代地,总结生成逻辑238可以生成允许用户在不同数据类别的季节模式之间导航的界面。作为示例,在数据中心或其它联网环境内,可以监视环境内的硬件和/或软件资源的各种属性。被监视的时间序列数据可以跟踪各个时间点的资源使用和/或消耗。可以在环境内被监视的示例时间序列数据可以包括但不限于数据库登录、数据库活动会话、数据库事务响应时间、http请求的数量、主机盘输入/输出操作、虚拟机堆使用、主机机器存储器使用等。上述季节模式检测和分类技术可以应用于不同类别的时间序列数据,以便针对不同的被监视的硬件和/或软件资源对季节模式进行分类。然后,用户可以在针对不同资源的分类季节模式之间导航。例如,用户可以首先查看针对数据库登录的对高季节和低季节进行分类的总结,然后查看针对数据库活动会话的对高季节和低季节进行分类的总结等。因此,可以向系统管理员或其他用户提供直观的显示,从而允许用户快速分析针对被监视的环境内的各种资源的季节使用模式。

所生成的总结数据可以基于请求被集成到一个或多个应用中或者以其他方式被提供给一个或多个应用。可以生成和/或访问总结数据以执行各种季节感知操作的示例应用可以包括但不限于:

·季节感知的异常检测和训练系统,该系统使用总结数据来训练和评估异常检测器,从而考虑季节高、季节低和/或其它季节模式。例如,数据库登录的突然尖峰看起来可能是异常高,但实际上可能是季节稀疏高。可以基于这种季节模式来训练异常检测器,以在识别异常和对异常进行分类时减少错误标志。

·维护计划系统,该系统使用总结数据在最佳时间调度和执行维护。例如,对于正在被监视的目标软件或硬件部署,可以为与季节低具有最大重叠的时间窗口设置维护。

·作业调度系统,该系统在对统计量的收集、存储器压缩或其它类似的批处理作业进行调度时使用总结数据。处理可以调度批处理作业以与季节低重叠。

·整合系统,该系统使用总结数据来推荐资源整合或自动整合资源。例如,具有不重叠的季节的目标硬件和/或软件资源集合可以被整合到单个硬件或软件资源中。

·容量计划系统,该系统使用总结数据来隔离并趋向高季节,以确定所部署的软件和/或硬件资源是否足以满足使用需求。

诸如以上列出的这些应用可以与分析服务230进行交互以请求和/或接收总结数据。当向分析服务230提交请求时,应用可以指定一个或多个参数(诸如季节的长度、要分析的时间序列数据集合、阈值等)以生成总结。基于这些参数,分析服务230可以基于先前描述的技术来分析并生成针对一个或多个时间序列的总结数据。

时间序列数据内的稀疏特征和密集特征

如前面所指示的,给定的时间序列数据集合可以包括稀疏季节模式和/或密集季节模式。如果在季节内的特征/模式的持续时间小于阈值,那么该特征/模式被认为是稀疏的,由此指示所表现出的行为是异常值。稀疏特征一般表明作为隔离的数据点或作为远离时间序列内的平均数据点的小数据点集合。相反,如果在季节内的特征/模式的持续时间满足阈值(例如,落入阈值内或高于阈值),那么该特征/模式被认为是密集的,从而指示所表现出的行为不是异常值。在一些实施例中,密集信号表示时间序列数据的多个实例,该时间序列数据(1)明显地表示数据的整个时段或子时段并且(2)排除作为不是拟合信号的主体的异常值的相对小部分(例如,1%、5%或某个其它阈值)的数据。稀疏信号可以表示从密集类别的数据点中被排除作为异常值的数据点。例如,通过对于时间序列中的每个时间增量,对作为在时间序列的多个历史实例中的时间增量的多个历史实例上的平均值、最大可能性、最中心点、具有最小平均距离、或者对于时间增量的多个历史实例以其它方式合适或最合适的数据点取近似,密集信号可以近似时间序列的季节时段或子时段。在一个实施例中,如果不存在可以以特定水平的置信度或显著性来近似特定时间增量的单个数据点,那么该时间增量可以被分类为不具有密集信号。

在时间序列数据集合内存在稀疏信号的许多可能的造成原因。作为示例,稀疏信号可以与特定目标资源的使用中的突然上升(稀疏高)或下降(稀疏低)对应。在一些情况下,稀疏信号可以是噪声(诸如由异常事件造成的活动)。在其它情况下,上升或下降可以由复发性季节事件(诸如周期性维护操作)造成。

对于给定的时间序列数据集合,噪声信号可以具有相比较小密集模式的幅度占优势的幅度。如果没有对时间序列数据中的稀疏特征和密集特征进行分开处理,那么由于覆盖的噪声的幅度,很可能会忽视密集模式。为了防止密集模式不被分类,季节模式分类逻辑236可以在时间序列内从密集数据中过滤掉或分离出噪声数据。当选择季节的复发性高和复发性低时,季节模式分类逻辑236可以进一步提供对于时间序列的稀疏特征和密集特征的分开的处理。

在下面的部分中,描述在时间序列内对复发性高和复发性低进行分类的监督方法和无监督方法二者。监督方法和无监督方法二者都将时间序列拆分或“分解”成噪声信号和密集信号。噪声信号(在本文中也被称为稀疏信号或稀疏分量)捕获时间序列中否则会具有密集分布的数据的稀疏分布。相反,密集信号(在本文中也被称为密集分量)使用平滑或平均来捕获密集分布,使得噪声信号被过滤掉并被移除。

时间序列数据集合被分解成稀疏分量和密集分量的方式可以取决于具体实施而变化。在一些实施例中,可以从加性holt-winters模型的季节因素中获得密集分量。如前面所指示的,holt-winters模型采用三次指数平滑来获得季节指标。所应用的平滑实际上移除了原始时间序列信号的稀疏分量。结果是包括原始时间序列的密集特征的时间序列。虽然可以使用加性holt-winters模型来生成时间序列的密集信号,但是在其它实施例中,可以使用其它技术(诸如其它局部平均或平滑函数)来获得密集信号。一旦已经生成并存储了密集分量,就可以通过取原始时间序列数据集合并从原始信号中减去密集分量来确定噪声分量。作为结果的噪声信号是包括来自原始时间序列的噪声特征的时间序列。

通过将时间序列分解成密集分量和噪声分量,可以独立度处理密集特征和稀疏特征。对于季节的给定实例,该实例的分类可以基于密集分量、稀疏分量或其某种组合的处理。例如,在每周季节的上下文中,可以基于针对表示周一9-10的实例而分析的稀疏特征和/或密集特征来将该实例选择为复发性高或复发性低。

处理分量信号可以包括但不限于应用平滑函数、滤波器、分类函数等。可以以考虑密集信号和噪声信号的特性差异的方式来执行处理。作为示例,噪声信号可以与密集信号不同地被过滤和平滑,因为两个信号之间的变化可能显著不同。作为另一个示例,所应用的分类函数在稀疏分量与密集分量之间可能不同。下面在复发性高模式和复发性低模式的监督和无监督的选择的描述中进一步提供示例处理。

用于选择时间序列数据中的复发性高模式和复发性低模式的监督方法

在用于选择时间序列中的复发性高模式和复发性低模式的监督方法中,季节模式分类逻辑236接收领域知识作为输入以帮助对季节模式进行分类。在这个上下文中的领域知识包括与具体领域相关联的数据,诸如具体的目标资源、目标资源的集合、时间序列或时间序列集合。例如,用于特定软件资源的领域知识可以包括指定用于将季节的特定实例分类为高或低的参数的数据。在分析用于一个软件资源或软件资源集合的时间序列时输入的领域知识/参数可以不同于在分析另一个软件资源或软件资源集合的时间序列时输入的领域知识/参数。可以基于不同资源的不同预期的或观测到的使用模式来选择参数。

图9绘出了用于选择时间序列数据中的复发性高值和复发性低值的示例监督处理。在方框902处,由季节分类逻辑236接收时间序列。时间序列数据可以如前所述来源于一个或多个数据源。作为示例,时间序列可以包括追踪特定资源或资源集合随时间的使用或性能信息的数据点的收集。

在方框904处,季节模式分类逻辑236将时间序列分解为密集分量和噪声分量。密集分量和噪声分量可以如前所述获得。例如,在每周季节性检测和表征的上下文中,可以通过计算在方框902处接收到的时间序列与该时间序列的平滑版本之间的差异来获得稀疏时间序列。密集时间序列可以从来自平滑后的时间序列的加性holt-winters分解的季节因素中获得。

响应于分解原始时间序列,分别在方框906和方框912处将稀疏时间序列和密集时间序列存储在易失性和/或非易失性存储装置中。然后一个或多个处理的集合可以独立地分析并处理这两个分量。方框908和方框910绘出了可以应用于时间序列的稀疏分量的示例处理,而方框914和方框916绘出了可以应用于密集分量的示例处理。

在方框908处,季节模式分类逻辑236通过从具有稀疏特征的时间序列中选择复发性高实例和复发性低实例来生成季节的实例的第一分类。季节模式分类逻辑236可以应用如前所述的一个或多个分类函数以对季节的实例进行分类。在具有跨越一小时子时段的实例的每周季节的上下文中,可以与大多数投票共识一起使用分类函数(诸如谱聚类、k均值分析等)的集合以对季节的168个实例进行分类。但是,分类函数和在这个方框中被分类的实例的数量可以取决于特定的实施而变化。季节模式分类逻辑236可以为具有稀疏特征的时间序列生成指示哪些实例被选择为高以及哪些实例被选择为低的一个或多个位向量的集合。

在方框914处,季节模式分类逻辑236从具有密集特征的时间序列中选择复发性高实例和复发性低实例。季节模式分类逻辑236可以取决于特定的实施来应用被应用于具有稀疏特征的时间序列的相同分类函数,或者应用不同的分类函数。例如,季节模式分类逻辑可以使用谱聚类、k均值分析、令牌计数等。季节模式分类逻辑236可以为具有密集特征的时间序列生成指示哪些实例被选择为高以及哪些实例被选择为低的一个或多个位向量的集合。

在方框918处,季节模式分类逻辑236接收用于过滤所选择的实例的领域知识。领域知识可以由人类用户(诸如管理员)、一个或多个客户端250a至250n、应用或者通过某种其它接口来输入。在一些实施例中,领域知识包括用于过滤掉和忽略所选择的实例的用户供应的最小变化。例如,领域知识可以指定具有低于阈值的归一化幅度(诸如与标称幅度相比小于阈值百分比的变化)的实例被过滤掉和忽略。在这个上下文中,“归一化幅度”是指实例的稀疏信号的幅度与标称幅度的比率。在另一个示例中,领域知识可以指定具有落在用户指定的阈值幅度以下的幅度的实例被过滤掉和忽略。例如,在数据库会话的上下文中,用户可以指定其中忽略低于十个活动会话的实例。

在方框910处,季节模式分类逻辑236基于接收到的领域知识从具有稀疏特征的时间序列中过滤无意义的实例。如前面所指示的,季节模式分类逻辑236可以过滤所选择的高实例,所述高实例的幅度低于用户指定的值或者所述高实例的归一化幅度(幅度与标称幅度的比率)低于用户指定的值。如下面进一步描述的,当获得实例的复发性高和复发性低的最终选择时,经过滤的实例不被赋予权重。

在方框916处,季节模式分类逻辑236基于接收到的领域知识从具有密集特征的时间序列中过滤无意义的实例。取决于被输入的领域知识,用于从稀疏信号中过滤实例的相同阈值变化也可以用于从密集信号中过滤实例,或者可以使用不同的阈值。

在方框920处,将来自稀疏数据的所选择的实例与来自密集数据的所选择的实例融合。为了融合数据,如果数据是从稀疏时间序列或者密集时间序列中选择的,那么季节模式分类逻辑236可以保留选定的高,并且如果数据是从密集时间序列中选择的并且未从稀疏时间序列中被选择为高,那么保留低。被过滤掉的所选择的实例在这一步被忽略。因此,最初从被过滤掉的稀疏时间序列中被选择为高的实例在这一步不被保留。

在方框922处,从融合的数据获得所选择的实例的最终集合。季节模式分类逻辑236可以在易失性或非易失性存储装置中存储一个或多个位向量的集合以识别所选择的实例。例如,在每周季节的上下文中,第一位向量可以包括识别周中的每个一小时实例是否已经被分类为高的168位,第二位向量可以识别每个一小时实例是否已经被分类为低,并且第三位向量可以识别哪些实例是稀疏高。一旦已经获得了所选择的实例的最终集合,就可以基于位向量的集合如上所述地生成并均化分段集合。

用于选择时间序列数据中的复发性高模式和复发性低模式的无监督方法

在一些实施例中,季节分类逻辑236可以支持用于选择时间序列中复发性高模式和复发性低模式的无监督方法。无监督方法允许在未接收关于高模式和低模式应当是什么的详细规范的情况下,自动选择复发性高季节模式和复发性低季节模式。换言之,无监督方法提供了允许来自用户的最小输入的操作模式,因为季节模式的显著性是隐式地被推断出的。

无监督方法可以用于分析规模阻碍由监督方法使用的领域信息的可靠捕获和注入的应用。季节分类逻辑236可以在分析给定的时间序列数据集合时确定这种领域信息是否可用。如果不可用,那么季节分类逻辑236可以使用无监督方法而不是监督方法。例如,如果用户想要为数百个独立软件目标做出季节感知计划决策,那么用户可能无法提供为每个应用指定高模式和低模式看起来是什么样子的领域信息。因此,可以使用无监督处理来对季节模式进行分类。

图10绘出了用于选择时间序列数据中的复发性高值和复发性低值的示例无监督处理。在方框1002处,由季节分类逻辑236接收时间序列。如前所述,时间序列数据可以来源于一个或多个数据源。作为示例,时间序列可以包括跟踪特定资源或资源集合随时间的使用或性能信息的数据点的收集。

在方框1004处,季节模式分类逻辑236将时间序列分解为密集分量和噪声分量。密集分量和噪声分量可以如前面对监督方法以及上面其它部分所描述的那样获得。例如,在每周季节性检测和表征的上下文中,可以通过计算在方框902处接收到的时间序列与该时间序列的平滑版本之间的差异来获得稀疏时间序列。密集时间序列可以从来自平滑后的时间序列的加性holt-winters分解的季节因素中获得。

响应于分解原始时间序列,分别在方框1006和方框1008处将稀疏时间序列和密集时间序列存储在易失性和/或非易失性存储装置中。然后,一个或多个处理的集合可以独立地分析并处理两个分量。方框1010绘出了可以被应用于时间序列的稀疏分量的示例处理。

在方框1010处,季节模式分类逻辑236从具有稀疏数据的时间序列中选择有意义且一致的稀疏特征。为了选择统计上有意义的稀疏特征,可以使用最大浓度间隔来保留位于规定覆盖范围(例如,99%)之外的特征。最大浓度间隔的阈值可以取决于特定间隔而变化。具有不落在阈值之外的幅度的稀疏特征被确定为不表示候选稀疏高并且被过滤掉。

为了选择一致的特征,季节模式分类逻辑236可以在规定的时段上执行统计上有意义的实例的有条件平均(在本文中被称为“候选稀疏特征”),其中执行调节(conditioning)以减轻或消除不再现的特征的影响。例如,可以从稀疏数据中过滤掉不在阈值数量的季节样本中再现的候选稀疏特征。在每周季节性检测和表征的上下文中,一致的特征的选择可以通过计算候选稀疏特征与从候选集合中移除的最小和最大稀疏特征的每小时平均值来完成。这一步的输出是原型周的特征。为了得到在后续步骤中使用的组合时间序列,原型周的稀疏特征具有与原始时间序列相同的统计上有意义且一致的稀疏特征。这一步的输出可以被用于注释季节的哪些实例或子时段已经被识别为稀疏特征。

在方框1012处,通过将经处理的稀疏时间序列与具有密集特征的(经处理的或未经处理的)时间序列进行组合来生成经修改的、重建的时间序列。在一些实施例中,可以在重组经修改的时间序列之前从原始时间序列移除一个或多个密集特征,使得经修改的时间序列不包括这些密集特征。例如,在将密集信号与经处理的稀疏信号进行组合之前,可以应用平滑函数或者可以以其它方式过滤掉无意义的密集特征。在其它实施例中,经处理的稀疏信号可以与未经处理的密集信号组合,由此保持原始时间序列中的每个密集特征。在任一种情况下,更新后的时间序列捕获原始时间序列的有意义/一致稀疏特征以及至少来自原始时间序列的密集特征的子集。更新后的时间序列不捕获无意义和/或不一致的稀疏特征以及已经被过滤的密集特征(如果有的话)。

在方框1014处,经修改的重建的时间序列被存储在易失性或非易失性存储装置中。通过过滤掉不是统计上有意义或一致的稀疏特征,稀疏特征被考虑,噪声信号对密集分布的影响可以显著降低。同时,通过保留统计上有意义和一致的特征,可以从重建的时间序列中检测可以表示季节模式的稀疏特征并对该稀疏特征进行分类。

在方框1016处,季节模式分类逻辑236从重建的时间序列数据中选择复发性高实例和复发性低实例。季节模式分类逻辑236可以应用如前所述的一个或多个分类函数来对季节的实例进行分类。在具有跨越一小时子时段的实例的每周季节的上下文中,可以与大多数投票共识一起使用分类函数(诸如谱聚类、k均值分析等)的集成以对季节的168个实例进行分类。但是,分类函数和在这个方框处被分类的实例数量可以取决于特定的实施而变化。季节模式分类逻辑236可以为具有稀疏特征的时间序列生成指示哪些实例被选择为高以及哪些实例被选择为低的一个或多个位向量的集合。

在方框1018处,将在方框1016处确定的所选择的实例的最终集合存储在易失性或非易失性存储装置中。如前所述,分类结果可以包括一个或多个位向量的集合以识别所选择的实例。例如,在每周季节的上下文中,第一位向量可以包括识别周中的每个一小时实例是否已经被分类为高的168位,第二位向量可以识别每个一小时实例是否被分类为低,并且第三位向量可以识别哪些实例是稀疏高。一旦已经获得了所选择的实例的最终集合,就可以基于位向量的集合如上所述地生成并均化分段集合。

基于稀疏数据和密集数据来注释总结视图

在一些实施例中,使用稀疏复发性高实例和/或复发性低实例来注释和提取被包含在密集季节内的稀疏季节模式。例如,如果在周一-周五12反映了稀疏复发性实例,那么总结数据可以包括注释,使得如果从周六-周日12-20密集季节内提取出周六-周日15稀疏实例,那么实例/子时段周六-周日15被标记为稀疏。注释为用户提供了以不同方式处理稀疏/密集模式的机会。对于某些用例,可以执行基于稀疏模式与密集模式之间的区别的进一步处理。例如,在数据中心部署附加资源可以依赖于模式是稀疏的还是密集的。

图11绘出了稀疏模式与密集模式单独地被提取和注释的示例总结。如可以看出的,这个时间序列中存在两个季节模式。一个是小的密集模式,每个周一早些时候发生,而另一个是非常大的稀疏模式,在时间序列的后半部分中出现。没有稀疏/密集特征的分开处理并且不进行滤波的情况下,选择方法只能挑选稀疏模式,因为它的幅度相比较小的密集模式占优势。相反,如果异常值被完全过滤,那么选择方法将只在更小的密集模式上挑选。通过提供对稀疏特征和密集特征的详细考虑,可以准确地检测和注释这两种模式。

基于季节特征的时段分布图生成

图12绘出了用于生成时段分布图的示例处理。在方框1202处,接收时间序列并将该时间序列存储在易失性或非易失性存储装置中。

在方框1204处,处理接收并存储指示感兴趣的特定时段的数据。取决于特定实施,时段可以由用户指定或自动选择。例如,如果用户感兴趣查看原型周的分布图,那么用户可以输入一周的间隔。在另一个示例中,用户可以针对原型月份或某个其它时间段的分布图指定一个月的时段。

在方框1206处,处理基于指定的时段从时间序列生成特征。在每周季节性检测和表征的上下文中,特征包括用于选择复发性高/低模式的时间序列集合、平滑版本的时间序列的加性holt-winters(ahw)分解的水平项、数据中的趋势、季节因素和识别季节的实例所属的类别和/或子类别的分类数据。在实施例中,分类数据包括指示哪些小时是高季节/低季节以及哪些小时代表稀疏季节模式或密集季节模式的数据。在这个方框处接收到的时间序列集合可以取决于是使用监督方法还是使用无监督方法来选择复发性高和复发性低。对于监督方法,该集合包括稀疏特征的第一时间序列和密集特征的第二时间序列。对于无监督方法,该集合包括作为一致/有意义的稀疏特征和密集特征的组合物的单个组合的时间序列。

在方框1208处,为时间序列生成的特征被存储在易失性和/或非易失性存储装置中。如上所述,特征可以包括用于选择复发性高/低模式的时间序列数据集合、对标称值建模的水平项、对时间序列数据中的趋势建模的趋势项、季节因素/分量和季节分类。这些特征可以用于递增地构建和注释指定时段的时段分布图,如下面进一步描述的。

在方框1210处,时段分布图初始地用总结复发性模式的平滑版本的时间序列来播种。在实施例中,播种包括经由添加将用于选择复发性高/低模式的时间序列集合(如果存在多于一个时间序列集合的话)进行组合,并且然后计算跨越去除可配置数量的极值的全部时段或时段子集的每个实例的平均值。可以去除极值以减轻异常值的影响。用于定义/识别供去除的极值的统计标准可以取决于特定实施而变化。可以部分地基于值的大小,距离整个时间序列中的其它值或距离季节类别内的其它值的偏差和/或一些其它统计分析来做出确定。

在方框1212处,一旦已经生成播种的分布图,就添加标称值的趋势。在每周季节性检测和表征的上下文中,趋势率可以通过将线拟合到由前述ahw分解产生的水平项的最后一周来计算。为了将趋势添加到播种的分布图,趋势率可以乘以相对于时段的时间项并且乘积被添加到当前分布图样本。这个步骤的最终结果是偏斜计算出的趋势率的平滑版本的复发性模式的时段分布图。虽然趋势率可以根据最近时段的数据计算—从而向用户给出最新的趋势总结并使用户更容易理解现在正在发生的情况以及下一时段可能发生的情况,但是在其它实施例中,取决于特定实施,趋势率可以根据更长的和/或不同的时间窗口来计算。

在方框1214处,处理将标称值添加到时段分布图中的每个样本值,从而将分布图移动到表示原型行为的值的范围中。在每周季节性检测和表征的上下文中,该方框可以包括计算由前述ahw分解产生的最近几周的水平项的平均值,并且然后将该值添加到分布图实例。与趋势分量类似,可以将这个步骤配置为使用最近时段的数据来产生代表时间序列在分析时间所处的位置的输出。但是,在其它实施例中,可以使用不同的持续时间和/或不同的时间窗口来计算标称值。

方框1216在易失性和/或非易失性存储装置中存储用于生成时段分布图的样本值的设置。这些设置可以由用户配置以允许控制如何计算时段分布图。可以被存储/配置的示例参数可以包括但不限于:

·控制分布图的初始播种的参数,诸如识别要使用的时间序列集合、用于过滤极值的标准、以及有多少采样/距离回到平均值有多远的数据。

·控制趋势的推导的参数,诸如要用于计算趋势的时间窗口、当计算趋势时使用的持续时间、是否查找线性、指数、对数或某种其它趋势的指示等。

·控制标称值的推导的参数,诸如用于计算标称值的时间窗口和计算标称值时使用的持续时间。

在方框1218处,将由特征提取处理返回的注释添加到时段分布图。在每周季节性检测和表征的上下文中,处理可以将每个小时标记为处于高季节/低季节/非任何一个季节,并且指示哪些高/低小时处于稀疏/密集季节。

在方框1220处,将注释的时段分布图存储在易失性和/或非易失性存储装置中。如下面进一步描述的,注释可以用于制作直观的可视化和使用分布图作为(一个或多个)输入的能力分析。

在以上处理中,趋势率使用平滑时间序列的ahw分解的水平项来计算。在ahw分解去除异常值之前对时间序列进行平滑。分析ahw分解的水平项去除复发性模式的影响并减轻水平移动的影响,因为水平项具有有效记忆并且只受长时段内的水平移动的影响。换言之,水平项是时间序列的标称值的平滑估计。使用ahw分解的水平项来得到标称值也具有类似于对趋势率使用ahw分解的益处。该处理可以在创建原型时段的样本值时减轻异常值、复发性模式和水平移动的影响。

时段分布图可视化和分析

时段分布图可以用于在时间序列数据中创建模式的鲁棒表示(robustrepresentation)。时段分布图可以用于显示季节模式的各种特性或以其它方式将季节模式的各种特性可视化,同时减轻倾向于偏向个体分段结果的异常值的影响。即使当时段间趋势的幅度超过时段间变化的幅度时,时段分布图也可以对显示季节时段内的变化或以其它方式将季节时段内的变化可视化有用。例如,可以使用每周分布图来将以下内容可视化:周内典型的复发性高模式和复发性低模式、哪些高在本质上是稀疏的或密集的、哪些低在本质上是稀疏的或密集的、以及稀疏数据和密集数据中的值之间的差异。在另一个示例中,准确性缓冲区可以被呈现为可视化,其中缓冲区表示包含数据点的阈值百分比的信号周围的缓冲区。

包括描述实例是否处于高季节/低季节的注释,并且如果是,那么季节是否稀疏/密集在创建直观的可视化和后续分析中是有用的。例如,在每周分布图的上下文中,可视化可以有助于分割出和分析隔离的工作日。对于给定的工作日,可以显示样本值,所述样本值指示遇到的原型季节模式。例如,对于给定的一天中的感兴趣的每个小时或者一周中的几天,可以显示原型资源使用,诸如数据库登录次数、cpu负载、存储器消耗、连接请求等。

当来自不同季节类别的样本值叠加在相同的图表/图或其它可视物上时,来自不同季节类别的样本值可以用识别每个样本值属于哪个季节类别的不同视觉特征来显示。例如,与稀疏高对应的样本值可以全部以一种颜色显示,密集高用另一种颜色显示,并且低作为第三种颜色显示。识别颜色和季节类别之间的映射的关键字/图例也可以显示在图表上。作为另一个示例,标签可以显示在稀疏分布图样本附近,而密集季节样本可以保持未被标记以减少杂乱。作为另一个示例,分布图上显示的点的大小可以在不同季节类别之间不同。

再次参考图11,示例每周分布图沿着x轴显示周中的天并且沿着y轴显示cpu负载。图上的每个样本值可以诸如以上关于图12描述的那样进行推导。该图表绘制这些样本值中的每个样本值以显示特定主机机器或平均主机机器的典型cpu使用情况。如可以看到的,周一至周五和周日11点出现稀疏高。

诸如gui的用户界面可以例如通过选择或取消选择图例或复选框中与其相关联的一个或多个项目来控制/配置时段分布图的可视化。例如,用户可能只希望分析每周分布图内的稀疏高。根据请求,界面可以显示稀疏高值的视觉画面,而密集高值和来自其它季节类别的值在视觉画面中被省略。作为另一个示例,界面可以显示稀疏高与密集高之间的比较、去除低值或者查看季节类别的某种其它组合。

类别间比较也可以使用分布图数据进行可视化。例如,用户可能希望仅分析来自密集类别的数据并忽略稀疏类别的数据。密集类别可以与高子类别和低子类别相关联,这可以使用不同的视觉特性来区分,诸如前面所描述的。

可以使用分布图数据来执行各种分析。例如,用户可以查询分布图来确定月、周、日等中何时是原型低点或高点。作为另一个示例,用户可以查询分布图来确定被分类为稀疏高的值之间的差异。其它查询/分析可以利用基于时段分布图中的实例已经如何被分类而返回的结果来执行。

图13绘出了具有指示季节模式的不同分类的可视化的示例图。该图包括指示复发性季节模式的三种不同分类的图例:稀疏高数据点被标记为红色、密集数据点被标记为黑色、并且稀疏低被标记为绿色。如图所示,稀疏低未被选中,并且因此被分类为稀疏低的数据点从可视化中被排除。可以选中或取消选中图例中的任何项目以切换显示。不确定性缓冲区也在不同信号周围绘制出。不确定性可能作为时间函数对于被分类为相同的不同点而不同地变化。这由一个稀疏高数据点周围的圆形形状和另外两个稀疏数据点周围的不同椭圆形形状来指示。例如,稀疏高在季节的实例内发生的时间方面可能显著不同,但在幅度方面并不明显,从而导致如图所示的水平拉伸的椭圆形。在另一个示例中,稀疏高在幅度方面可能显著不同,但在季节的实例内发生的时间方面并不明显,从而导致如图所示的垂直拉伸的椭圆形。

图14a图示了示例时间序列数据集和对应的每周分布图。图表1402跟踪几周内weblogic服务器中的堆使用。基于图表1402中绘出的时间序列数据集生成表示原型周的每周分布图1404。用户可以访问每周分布图1404以查看服务器中的堆使用的预期高值和低值,以及在原型周中何时发生高和低。

图表1406跟踪在几周内数据库服务器中的数据库登录。基于图表1406中绘出的时间序列数据集生成表示原型周的每周分布图1408。用户可以访问每周分布图1408以查看数据库登录的预期高值和低值,以及在原型周中何时发生高和低。

图14b图示了示例时间序列数据集和对应的每周分布图。图表1410跟踪在几周内目标主机中的cpu负载。基于图表1410中绘出的时间序列数据集生成表示原型周的每周分布图1412。用户可以访问每周分布图1412以查看目标主机中的cpu负载的预期高值和低值,以及在原型周中何时发生高和低。

图表1414跟踪在几周内目标主机的存储器使用。基于图表1414中绘出的时间序列数据集生成表示原型周的每周分布图1416。用户可以访问每周分布图1414以查看目标主机中的存储器使用的预期高值和低值,以及在原型周中何时发生高和低。

在图14a和图14b绘出的示例图表中,可以基于季节模式分类以不同颜色显示数据点。例如,红色数据点可以用于图示季节高时段,绿色可以用于图示季节低时段,并且黑色可以用于识别没有足够证据支持“高”或“低”分类的点。换句话说,黑色表示未分类复发性数据。利用上述季节模式分类技术,可以减轻每周分布图的样本值的极值效应。这些技术还减轻了标称值和趋势中变化的影响。

在一个或多个实施例中,时段分布图被合并到日历界面中。例如,用户可以访问日历应用以查看针对一个或多个目标的集合的原型月份、周和/或日的资源使用。取决于季节模式分类,子时段可以以不同的颜色和/或模式显示。例如,如果一个或多个目标的集合的cpu使用的季节高发生在原型周中周一至周四从上午8点到下午4点,那么这些子时段可以以独特的模式或颜色显示,以允许用户快速测定高峰使用时间。其它季节模式(例如,稀疏高、低等)可以以不同颜色和/或模式显示。

图14c图示了被集成到日历界面中的示例每周分布图1418。每周分布图1418在日历上使用不同的模式填充绘出了不同的季节模式。季节模式包括稀疏高、高和低。未检测到季节模式的小时可以保留空白(或可以使用不同的填充模式/颜色)。

在一个或多个实施例中,日历应用提供界面,通过该界面用户可以与时段分布图进行交互。例如,用户可以选择不同的块来查看所选择的子时段的原型值(例如,cpu使用、存储器使用等)。例如,如果用户选择上午8点至上午9点的稀疏高块,那么日历应用可以使得显示这个所选择的时段的原型峰值。用户可以选择不同的时间块(例如,周一从上午9点到下午2点)以查看其它子时段的原型值。

日历应用可以允许用户基于集成的时段分布图来执行容量规划(capacityplanning)操作。例如,用户可以确定特定时间块的原型高峰资源使用值可以保证附加的资源。用户可以选择时间块并选择选项来部署附加的资源。基于用户通过日历界面的交互,可以重新分配附加的资源(例如,目标数据库服务器、web服务器和/或其它主机)以支持特定应用。

微服务(microservice)分布图

根据一个或多个实施例,本文描述的技术在微服务体系架构中实现。在这个上下文中的微服务是指被设计为可独立部署的软件逻辑,该软件逻辑具有可以被逻辑地耦合到其它微服务以构建各种应用的端点。使用微服务构建的应用与被设计为单个固定单元并且通常包含单个逻辑可执行程序的单体(monolithic)应用不同。利用微服务应用,不同的微服务可被独立部署为单独的可执行程序。微服务可以经由api端点使用超文本传输协议(http)消息和/或根据其它通信协议进行通信。微服务可以被单独管理和更新、用不同的语言编写、并且可以独立于其它微服务来执行。

微服务提供了管理和构建应用的灵活性。通过连接不同的微服务集合而不改变微服务的源代码,可以构建不同的应用。因此,微服务充当可以以各种方式被布置以构建不同应用的逻辑构建块。微服务可以提供监视服务,当来自暴露于微服务管理器的触发事件集合中的触发事件发生时,该监视服务通知微服务管理器(诸如if-this-then-that(ifttt)、zapier或oracle自助服务自动化(ossa))。对应用暴露的微服务可以替代地或附加地提供基于从微服务管理器接收到的数据在(经由微服务管理器通过将值传入、将动作连接到其它触发器和/或从微服务管理器中的其它动作传递的数据可控制且可配置的)应用中执行动作的动作服务。微服务触发器和/或动作可以被链接在一起以形成在否则不知道彼此或者彼此不具有控制或依赖性的可选的不同应用中发生的动作的配方(recipe)。例如,这些受管理的应用可以利用用户向管理器供给的应用凭证进行认证或插入到微服务管理器中,而无需每次受管理的应用单独使用或与其它应用组合使用时进行重新认证。

在一个或多个实施例中,微服务可以经由gui连接。例如,微服务可以在gui的窗口、框架和其它元素内显示为逻辑块。用户可以将微服务拖拽和放置到用于构建应用的gui的区域中。用户可以使用定向箭头或任何其它gui元素将一个微服务的输出连接到另一个微服务的输入。应用构建器可以运行验证测试以确认输出和输入是兼容的(例如,通过检查数据类型、大小限制等)。

触发器

根据一个或多个实施例,上述绘制分布图技术可以被封装到微服务中。换句话说,微服务可以触发时段分布图的生成(到微服务管理器中以供本文称为“目标”微服务的其它插入应用可选地使用),或者可以表示为gui块并连接到一个或更多其它微服务。触发条件可以包括值的绝对阈值或相对阈值和/或用于要分析的数据量或数据持续时间的绝对阈值或相对阈值,使得每当插入的应用检测到跨越阈值时就发生对微服务管理器的触发。例如,用户可以在时段分布图检测到稀疏高、密集高或任何其它季节模式时请求对微服务管理器的触发。

在一个实施例中,当触发器被满足时,该触发器可能输出供目标微服务消耗的时间序列数据。在另一个实施例中,当触发器被满足时,该触发器输出指示触发器已经被满足的二进制值,或者输出字段的名称(例如,“西部服务器cpu使用时段分布图”)或满足触发条件的其它上下文信息。附加地或可替代地,目标微服务可以连接到一个或多个其它微服务,使得向其它微服务输入提醒(alert)。其它微服务可以基于预测性提醒来执行响应动作,这些响应动作包括但不限于:部署附加资源、调整系统配置和/或生成gui。

动作

在相同或不同的实施例中,插入的季节性应用可以将动作暴露给微服务管理器。暴露的动作可以接收作为输入的数据或数据对象的标识或数据的位置,这导致数据被移动到数据云中。数据云可以是自动分析数据用于检测和表征季节的季节性云。在另一个实施例中,暴露的动作可以接收作为输入的生成季节模式的定期报告的请求。输入可能识别现有的应用中报告阈值以及是增加或减少还是删除阈值。在另一个实施例中,输入可能请求季节性应用来创建新的应用中时段分布图。应用中提醒可以在用户登录到应用中时触发向用户显示时段分布图,或者可以使用季节性应用本身内可用的默认或用户选择的提醒机制而不是通过被插入到微服务管理器中的其它应用来触发对用户的提醒。在又一个实施例中,季节性应用可以基于识别、定位或提供历史数据的输入来生成和提供预测,并且定义所请求的预测的程度或范围(例如,存储在数据云中的西部服务器cpu使用数据集断开3个小时)。当该动作被触发时,该动作可以使得季节性应用提供、存储或显示预测和/或时段分布图,例如,作为数据模型或者作为描述数据模型的聚合数据。

硬件实现

根据一个实施例,本文所描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行该技术,或者可以包括诸如被永久性地编程以执行该技术的一个或多个专用集成电路(asic)或现场可编程门阵列(fpga)的数字电子设备,或者可以包括被编程以按照固件、存储器、其它储存装置或组合中的程序指令来执行该技术的一个或多个通用硬件处理器。这种专用计算设备还可以组合定制硬连线逻辑、asic或fpga与定制的编程来实现该技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、联网设备或者结合硬连线和/或程序逻辑来实现该技术的任何其它设备。

例如,图15是图示本发明的实施例可以在其上实现的计算机系统1500的框图。计算机系统1500包括总线1502或者用于传送信息的其它通信机制,以及与总线1502耦合用于处理信息的硬件处理器1504。硬件处理器1504可以是例如通用微处理器。

计算机系统1500还包括耦合到总线1502用于存储信息和要由处理器1504执行的指令的主存储器1506,诸如随机存取存储器(ram)或其它动态存储设备。主存储器1506还可以用于在要由处理器1504执行的指令的执行期间存储临时变量或其它中间信息。这种指令在被存储在处理器1504可访问的非暂态存储介质中时,使得计算机系统1500成为被定制用以执行指令中所指定的操作的专用机器。

计算机系统1500还包括耦合到总线1502用于为处理器1504存储静态信息和指令的只读存储器(rom)1508或者其它静态存储设备。提供了诸如磁盘、光盘或固态驱动器的存储设备1510,并且存储设备1510耦合到总线1502用于存储信息和指令。

计算机系统1500可以经由总线1502耦合到诸如液晶显示器(lcd)或发光二极管(led)显示器的显示器1512,用于向计算机用户显示信息。包括字母数字和其它键的输入设备1514耦合到总线1502,用于向处理器1504传送信息和命令选择。另一种类型的用户输入设备是光标控件1516,诸如鼠标、轨迹球或者光标方向键,用于向处理器1504传送方向信息和命令选择并且用于控制显示器1512上的光标移动。这种输入设备通常具有在两个轴(第一个轴(例如,x)和第二个轴(例如,y))中的两个自由度,这允许设备在平面内指定位置。

计算机系统1500可以使用定制硬连线逻辑、一个或多个asic或fpga、固件和/或程序逻辑来实现本文所述的技术,定制硬连线逻辑、一个或多个asic或fpga、固件和/或程序逻辑与计算机系统相结合,使得计算机系统1500成为或者将计算机系统1500编程为专用机器。根据一个实施例,由计算机系统1500响应于执行被包含在主存储器1506中的一条或多条指令的一个或多个序列的处理器1504而执行本文的技术。可以从诸如存储设备1510的另一个存储介质将这种指令读取到主存储器1506中。被包含在主存储器1506中的指令序列的执行使处理器1504执行本文所述的过程步骤。在替代实施例中,硬连线电路系统可以代替软件指令使用或者与软件指令组合使用。

如在本文所使用的,术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非暂态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备1510。易失性介质包括动态存储器,诸如主存储器1506。存储介质的常见形式包括,例如,软盘、柔性盘、硬盘、固态驱动器、磁带,或者任何其它磁性数据存储介质、cd-rom、任何其它光学数据存储介质、具有孔图案的任何物理介质、ram、prom和eprom、flash-eprom、nvram,任何其它存储器芯片或盒式磁带。

如本文所使用的,术语“逻辑”包括计算机或(一个或多个)电子硬件部件、固件、存储指令的非暂态计算机可读介质、和/或被配置为执行一个或多个功能或动作和/或造成来自另一个逻辑、方法和/或系统的一个或多个功能或动作的这些部件的组合。逻辑可以包括由可执行代码控制的微处理器、离散逻辑(例如,asic)、模拟电路、数字电路、编程逻辑器件、包含在被执行时执行算法的指令的存储器设备等。逻辑可以包括一个或多个门、门的组合或其它电路部件。在描述多个逻辑单元的地方,有可能将多个逻辑单元结合到一个物理逻辑部件中。类似地,在描述单个逻辑的地方,有可能在多个物理逻辑部件之间分配单个逻辑单元。

存储介质与传输介质截然不同但是可以与传输介质结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴线缆、铜线和光纤,包括包含总线1502的引线。传输介质还可以采取声波或光波的形式,诸如在无线电波和红外线数据通信中产生的那些波。

各种形式的介质可以参与把一条或多条指令的一个或多个序列携带到处理器1504以供执行。例如,最初可以在远端计算机的磁盘或固态驱动器上携带指令。远端计算机可以将指令加载到该远端计算机的动态存储器中并且使用调制解调器经电话线发送指令。位于计算机系统1500本地的调制解调器可以在电话线上接收数据并且使用红外线发射器将数据转换成红外线信号。红外线检测器可以接收在红外线信号中携带的数据并且适当的电路系统可以把数据放在总线1502上。总线1502将数据携带到主存储器1506,处理器1504从该主存储器1506检索并执行指令。由主存储器1506接收的指令可以可选地在被处理器1504执行之前或之后被存储在存储设备1510上。

计算机系统1500还包括耦合到总线1502的通信接口1518。通信接口1518提供耦合到网络链路1520的双向数据通信,其中网络链路1520连接到本地网络1522。例如,通信接口1518可以是综合业务数字网络(isdn)卡、线缆调制解调器、卫星调制解调器,或者提供到对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口1518可以是提供到兼容的局域网(lan)的数据通信连接的lan卡。也可以实现无线链路。在任何这种实现中,通信接口1518发送和接收携带表示各种类型信息的数字信号流的电信号、电磁信号或光信号。

网络链路1520通常通过一个或多个网络向其它数据设备提供数据通信。例如。网络链路1520可以通过本地网络1522提供到主计算机1524或者到由因特网服务提供商(isp)1526操作的数据装置的连接。isp1526进而通过现在通常被称为“因特网”1528的全球分组数据通信网络提供数据通信服务。本地网络1522和因特网1528都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及在网络链路1520上并通过通信接口1518的信号是传输介质的示例形式,其中该信号将数字数据携带到计算机系统1500或者从计算机系统1500携带数字数据。

计算机系统1500可以通过(一个或多个)网络、网络链路1520和通信接口1518发送消息和接收数据,包括程序代码。在因特网示例中,服务器1530可以通过因特网1528、isp1526、本地网络1522和通信接口1518传送用于程序的所请求的代码。

所接收的代码可以在其被接收时由处理器1504执行,和/或被存储在存储设备1510或其它非易失性存储装置中供后续执行。

云计算概述

本文所述的技术是使用一个或多个处理解决方案来实现的,处理解决方案的示例包括分布式系统、集群式计算系统和云计算系统。在实施例中,上述一个或多个逻辑块是云计算系统的一部分。云计算系统实现以下一个或多个:云存储、云处理、云通信以及任何其它类型的云计算服务。进一步地,云计算系统可以依据现用现付模型、依据固定订阅模型等进行操作。在基于云的环境中,上述功能的任何部分(或整体)可以经由在云计算系统处暴露的接口来控制。

扩展和替代方案

在前述说明书中,已经参考许多具体细节描述了本发明的实施例,这些具体细节可以因实现而异。因此,说明书和附图被认为是说明性的而不是限制性的意义。本发明的范围的唯一且排他的指示以及申请人所预期作为本发明的范围的内容,是以从本申请产生的一组权利要求的以该组权利要求产生的具体形式的书面范围和等效范围,该组权利要求包括任何后续的校正。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1