CN101894119B - 用于监控的海量数据的储存 - Google Patents

用于监控的海量数据的储存 Download PDF

Info

Publication number
CN101894119B
CN101894119B CN200910205524.3A CN200910205524A CN101894119B CN 101894119 B CN101894119 B CN 101894119B CN 200910205524 A CN200910205524 A CN 200910205524A CN 101894119 B CN101894119 B CN 101894119B
Authority
CN
China
Prior art keywords
tolerance
data
dimension
data model
server
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.)
Active
Application number
CN200910205524.3A
Other languages
English (en)
Other versions
CN101894119A (zh
Inventor
丹尼尔·L·奥塞奇
普拉仙特·L·萨尔玛
蒙迪·范德彼尔特
大卫·R·阿扎里
凯特琳·R·施密特
布莱恩·丹内利
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/493,558 external-priority patent/US8381039B1/en
Priority claimed from US12/493,586 external-priority patent/US8032797B1/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN101894119A publication Critical patent/CN101894119A/zh
Application granted granted Critical
Publication of CN101894119B publication Critical patent/CN101894119B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

在不同实施方式中公开了提供用于储存海量数据,例如度量的系统和方法。根据描述系统状态的度量的流在服务器中产生了多个数据模型。度量的每一个与多个连续时间段中的一个时间段相关联,且每个数据模型表示与连续时间段中的一个对应的时间段相关联的度量。数据模型储存在数据存储中,且将在产生至少一个数据模型时用过的每一个度量丢弃。另外,数据模型的每一个都可视为表示对度量的子集的时间分组。一个或更多的维度可与每个度量相关联。数据模型关于维度中的相应的维度储存在记忆体中。基于与所述流中的度量相关联的至少一个先前不存在的维度的出现,在所述记忆体中增加与所述数据模型相关联的维度。

Description

用于监控的海量数据的储存
相关申请的交叉引用 
本申请要求:2008年10月20日提交的,分配申请号为61/106,901,题为“STORAGE OF MASS DATA FOR MONITORING”的美国临时专利申请;2008年10月20日提交的,分配申请号为61/106,903,题为“STORAGE OF MASS DATA FOR MONITORING”的美国临时专利申请;以及2008年10月20日提交的,分配申请号为61/106,904,题为“STORAGE OF MASS DATA FOR MONITORING”的美国临时专利申请的优先权,这些临时申请中的每一个都在此通过引用全部并入。本申请还要求:2009年6月29日提交的,分配申请号为12/493,586,题为“Storageof Mass Data for Monitoring”的美国专利申请,以及2009年6月29日提交的,分配申请号为12/493,558,题为“Storage of Mass Data for Monitoring”的美国专利申请的优先权,这些专利申请中的每一个都在此通过引用全部并入。 
技术领域
本申请涉及用于监控的海量数据的储存。 
背景 
大规模数据处理系统,比如网络服务等可产生包括度量(metrics)的大量日志数据。有时,可复核这样的数据以诊断数据处理系统的问题。然而,由这样的系统产生的日志数据的量可能在数据存储和复核方面带来巨大困难。 
概述 
本申请提供了一种方法,包括步骤: 
根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型,每一个度量与多个连续时间段中的一个时间段相关联,每个数据模型表示与连续时间段的一个对应的时间段相关联的度量; 
储存所述数据模型;以及 
丢弃在产生所述数据模型中的至少一个数据模型时使用过的每一个度量。 
所提供的方法还可以包括步骤:在服务器中从系统接收度量的流,其中服务器与系统数据通信。 
所述的方法还可以包括步骤: 
储存数据模型中的每一个数据模型一预定义的时间段;以及 
丢弃数据模型中的处在所述预定义的时间段结束时的每一个数据模型。 
所述的方法还可以包括步骤:保存对其储存了至少一个数据模型的度量的列表。 
所述的方法还可以包括步骤:基于数据模型产生指示系统的性能的输出。 
所述的方法还可以包括步骤:用度量中未按时间顺序接收的一个度量更新储存的一个数据模型。 
根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型的步骤还可以包括步骤:对于每一个连续时间段,保存从系统接收的度量的计数。 
根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型的步骤还可以包括步骤:对于每一个连续时间段,识别从系统接收的度量中的一个最小的度量。 
根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型的步骤还可以包括步骤:对于每一个连续时间段,识别从系统接收的度量中的一个最大的度量。 
根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型的步骤还可以包括步骤:对于每一个连续时间段,计算从系统接收的度量的平均值。 
根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型的步骤还可以包括步骤:在服务器中对与每个连续时间段相关联的度量进行聚合,由此针对每一个连续时间段产生至少一个聚合度量。 
对每个连续时间段的度量的聚合度可导致允许相对于至少一个预定义的操作阈值监控系统的性能的至少一个聚合度量。 
本申请另外提供了一种系统,包括: 
至少一个服务器; 
在所述至少一个服务器中可运行的、根据描述至少一个系统的状态的度量的流产生多个数据模型的逻辑,所述数据模型的每一个数据模型都表示对所述度量的子集的时间分组,其中至少一个维度与所述度量的每一个度量相关联; 
在所述至少一个服务器中可运行的、关于所述维度中的相应的维度将所述数据模型储存在记忆体中的逻辑;以及 
在所述至少一个服务器中可运行的、基于与所述流中的度量相关联的至少一个先前不存在的维度的出现而增加在所述记忆体中与所述数据模型相关联的维度的逻辑。 
另外提供的系统还可包括保存在至少一个服务器中的阈值,所述阈值限制记忆体中与数据模型相关联的维度的总数。 
所述的系统还可包括在至少一个服务器中可运行的、当增加维度的步骤导致维度的总数超过阈值时产生错误的逻辑。 
所述的系统还可包括在至少一个服务器中可运行的、检测维度的增加 是否包括错误的逻辑。 
在至少一个服务器中可运行的、检测维度的增加是否包括错误的逻辑可涉及检测先前存在的维度的变化,该变化导致与流中的度量相关联的至少一个先前不存在的维度的出现。 
在至少一个服务器中可运行的、检测维度的增加是否包括错误的逻辑可涉及检测与度量相关联的多个值中的不正确的变化。 
所述的系统还可包括在至少一个服务器中可运行的、基于数据模型产生指示系统的性能的输出的逻辑。 
本申请还提供了一种方法,包括步骤: 
产生描述至少一个系统的状态的度量的流; 
使至少一个维度与所述度量中的每一个度量关联,其中基于所述度量中的每一个度量产生的数据被关于所述至少一个维度储存; 
向一服务发送具有所述至少一个维度的所述度量的流;以及 
使先前不存在的维度与所述流中度量的一个度量关联,以使基于所述度量中的所述一个度量产生的数据关于所述先前不存在的维度储存。 
附图说明
参考接下来的附图可更好地理解本公开的许多方面。附图中的构件未必是按比例绘制的,而重点放在了清楚地示出本公开的原理上。此外, 附图中同样的参考数字表示贯穿几幅视图的对应的部分。 
图1是依据本公开的实施方式的数据通信网络的框图。 
图2是从数据源传输到依据本公开的实施方式的图1的数据通信网络中的服务器的度量的图。 
图3是示出依据本公开的实施方式的图1的数据通信网络中的服务器中的数据储存应用程序的操作的一个例子的图。 
图4是示出依据本公开的实施方式的图1的数据通信网络中的服务器中的数据储存应用程序的操作的另一个例子的图。 
图5是示出依据本公开的实施方式的图1的数据通信网络中的服务器中运行的聚合应用程序的不同功能的一个例子的流程图。 
图6是示出依据本公开的实施方式的图1的数据通信网络中的服务器中运行的聚合应用程序的另外功能的另一个例子的流程图。 
图7是示出依据本公开的实施方式的图1的数据通信网络中的服务器中运行的度量目录应用程序的功能的一个例子的流程图。 
图8是示出依据本公开的实施方式的图1的数据通信网络中的服务器中运行的度量目录应用程序的另外功能的一个例子的流程图。 
图9是依据本公开的实施方式的图1的数据通信网络中的服务器的一个例子的示意性框图。 
详细描述 
各种大规模计算系统,比如操作大规模网络服务的大规模计算系统可产生呈度量形式的大量的数据,所述度量描述随着时间的过去,这样的服务的性能(performance)。例如,大规模电子商务系统每天进行的交易数量可达数百万甚至更多,导致关于这样的系统的性能的产生的太字节规模的大量日志数据及/或度量。万一这样的服务的操作出现问题,则人员通常搜索可能包括度量的日志数据,以便诊断服务的问题并最终实现解决。 
然而,随着这种服务变得规模更大,它们产生的度量的量增多。结果,储存由系统的正常操作产生的所有日志记录或度量成了问题。此外,由于涉及到的大量数据,搜索度量以便诊断并解决服务中产生的问题变得更加困难。 
根据本公开的不同实施方式,从不同系统接收表示度量的海量数据,该数据以一种允许生成监控输出的方式储存,这使得操作大规模系统的人能够在任何给定的时间获悉这样的系统的工作健康状况。在不同的实施方式中,不是储存由给定服务或系统产生的所有度量,而是产生占据较少储存空间的、包括接收到的度量的聚合的数据模型。如此的数据模型使得即使原始数据度量没有储存且最终被丢弃,也能实现对给定系统的操作的监控。在度量的源保留关于数据是怎样通过在此描述的不同应用程序储存的控制的意义上,根据不同实施方式的数据模型的储存是数据驱动的。 
参考图1,显示的是根据本公开的不同实施方式的数据通信网络100。数据通信网络100包括在不同的网络上相互通信的不同装置。这样的网络可包括,例如互联网、内联网、广域网(WAN)、局域网、无线网络,或其他合适的网络等,或两个或更多的这样的网络的任何组合。 
在数据通信网络100中的不同装置之间的是根据不同实施方式的一个或更多的服务器103。例如,所述的一个或更多的服务器103可安排在一个或更多的服务器组(server bank)中,且可包括服务器计算机,如可认识到的。服务器103可位于单独的位置,或可分部在数个不同的地理位置之间,如可认识到的。为简单起见,所述的一个或更多的服务器103在此称为服务器103,尽管应理解,这里提到的服务器103可表示多个的服务器。 
另外,数据通信网络100包括受监控的系统106,该受监控的系统106产生可作为数据流传输到服务器103的日志及/或度量109。在这方面,这里所设想的数据流表示可使用的不同传送方法,比如批量传送或其他传送,如可认识到的。受监控的系统106是产生度量109的服务系统或物理系统的实例。 
为此,度量109可描述受监控的系统106的状态,该状态可例如包 括,受监控的系统106的性能的方面或可由度量109量化的其他状态信息,如可认识到的。例如,受监控的系统106可包括执行不同功能且产生描述功能的性能的性质的不同度量109的基于硬件的系统,比如真实的服务器计算机。可选地,受监控的系统106可包括应用程序,比如网络服务或其他服务,所述应用程序在一个或更多的服务器计算机中运行,如可认识到的。 
数据通信网络100还包括与服务器103上的不同服务通信的至少一个客户机113,如将要描述的。客户机113可包括不同类型的计算机系统,如台式机、膝上型电脑,或其他具有相似能力的计算机系统。为此,客户机113还可包括个人数字助理、手机或具有相似能力的其他便携式装置,如可认识到的。客户机113可使用不同应用程序与服务器103连接,比如浏览器应用程序、专用应用程序或其他应用程序,如可认识到的。 
根据不同实施方式,不同应用程序运行在服务器103上。而且,一个或更多的数据存储(data store)可与服务器103相关联而用于数据的储存,如将要描述的。在运行在服务器103上的应用程序中的是验证应用程序123、聚合应用程序126、数据储存应用程序129、监控服务133和网络服务器应用程序136。另外,不同储存队列存在于服务器103内,以基于不同应用程序的操作储存数据。这样的储存队列包括聚合队列143和储存队列146。应理解,上述应用程序仅是可怎样组织这些应用程序执行的功能的例子。然而,如可认识到的,可能使用可选配置中安排的不同的一组应用程序来执行相同的功能。 
另外,数据存储149储存在服务器103可访问的记忆体中。储存在数据存储149内的是表示度量109的数据模型151,如将要描述的。为此,储存在数据存储149内的数据模型151与维度(dimension)153相关联。维度153是关于在服务器103中从受监控的系统106接收的度量109来指定的。每一个数据模型151关于时间段156而储存。每个时间段156都与数据存储149中的相应的维度153相关联。每个时间段156包括与给定维度153相关联的多个连续的时间段的之一。维度153包括具有维度标签和值的密钥对。 
如上所述,受监控的系统106产生经由网络或其他通信系统传输或传送到服务器103的度量109。可选地,有可能的是,受监控的系统106可在服务器103中运行,其中所述的传送需要在服务器103中应用程序间的传送。 
度量109由验证应用程序123接收,该验证应用程序123首先保证度量109符合预定义的指定传送协议及/或格式。另外,验证应用程序123配置成保证由度量109随时间指定的维度153的数量不超过预定义的阈值,或以其他方式不表示维度超限,如将要描述的。一旦度量109经验证应用程序123验证,它们就被置于聚合队列143中,以由聚合应用程序126来处理。 
聚合应用程序126处理聚合队列143中的度量109并将结果应用于储存队列146,该储存队列146将由数据储存应用程序129储存在数据存储149中。根据不同的实施方式,聚合应用程序126用来聚合相应的时间段156的多个度量109。为此,聚合应用程序126配置成对接收在服务器103中并由验证应用程序123验证的度量109执行时间聚合。 
为进一步的解释,根据不同的实施方式,在验证应用程序123中接收度量109的速率很高。例如,有可能的是,每天接收的度量109可包括多个太字节的数据,比如每天30太字节,尽管数据流的速率可能小于或大于此基准。某些情况中,这样的数据流速率可能每分钟包括多达200,000度量,甚至达500,000度量或更多度量,尽管数据流速率可以是任何数据流速率。在经济上以及就储存每一个度量109所需的储存空间和设备方面而言,成本可能相当高。 
根据一个实施方式,不是试图储存所有的度量109本身,而是关于多个连续时间段156的每一个来构造数据模型151。换句话说,由数据模型151表示与每个相应的连续时间段156相关联的度量109。根据一个实施方式,产生数据模型151的过程包括聚合每个连续的时间段156的度量109,由此产生一个或更多的聚合度量。为此,数据模型151可包括一个或更多的聚合度量。 
例如,假设每一个连续时间段156规定为一分钟,尽管应理解时间 段156可被规定为任何时间间隔。每个与一给定的时间段156相关联的度量109都聚合到表示该时间段156的数据模型151中。因此,对于给定的一分钟的时间段156,与时间段156相关联的每个度量109都聚合到该时间段156的数据模型151中。为了将多个度量109聚合到数据模型151中,可执行不同的计算,如将要描述的。最终,与每个时间段156相关联的数据模型151可包括一定个数的值,所述一定个数的值表示关于时间段156的度量109的不同信息。 
度量109与给定的时间段156相关联,例如,在度量109具有落在时间段156自身内的时间戳的情况下。与给定度量109相关联的时间戳可由受监控的系统106产生,或可由验证应用程序123在服务器103收到度量109时产生并与度量109相关联。 
一给定度量109可包括在对多个时间段156的聚合中,其中每个时间段156都与多个不同维度153中的一个维度相关联。根据本公开的不同实施方式,维度153是数据模型151保存在数据存储149中的分类。根据不同的实施方式,一个或更多的维度153与服务器103中接收的每个度量109相关联。维度153最终用于组织数据模型151在数据存储149中的储存。也就是说,与给定时间段156相关联的每一个数据模型151都关于维度153中一个维度而储存在数据存储149中。 
当在服务器103中接收例如具有一个或更多的关联维度153的度量109时,接着,针对每一个关联维度153,该度量109被用于与相应时间段156相关联的聚合。因此,给定度量109可用于这样的聚合:该聚合导致与关联于度量109的维度153的相应的时间段156相关联的多个不同的数据模型151。 
为此,当聚合应用程序126处理给定度量109时,其确定与度量109相关联的维度153。之后,聚合应用程序126将度量109包括在这样的聚合中,该聚合导致与包括在度量109内的维度153相关联的相应的时间段156的数据模型151。 
根据一个实施方式,一旦度量109被包括在对相应的维度153的一个或更多的时间段156执行的聚合中,则聚合应用程序126丢弃度量109。 此后,因产生的实际度量109不再存在,只有相应的时间段156的数据模型151可被访问,以便执行关于受监控的系统106操作的诊断或其他功能。换句话说,实际度量109是不可恢复的,因为它们实际上在导致产生数据模型151的聚合后并未被储存。这是有利的,因为储存关于时间段156的数据模型151的储存空间大小远小于储存实际度量109本身所需的储存空间大小。代替实际度量109而储存数据模型151可带来将要储存的数据例如以1000∶1的比例或其他比例的缩减。 
根据一个实施方式,在数据存储149中借以组织数据的储存的维度153可基于在服务器103中接收的度量109中维度153的出现而被增加或得到扩展。在这个意义上,增加或扩展维度153指的是,将新的维度153添加到已经存在的维度。根据一个实施方式,新维度153仅通过其关于度量109的第一次出现而生成。根据不同的实施方式,当聚合应用程序126遇到与度量109相关联的新维度153时,于是聚合应用程序126配置成开始对以包括首次包括新维度153的度量109的时间戳的未决的时间段156开始的新维度153的后续度量109进行聚合。 
在这方面,数据模型151的储存是数据驱动的。在数据存储149中与数据模型151相关联的维度153是基于在服务器103中接收的度量109生成的。换句话说,在数据存储149中维度153不是预先配置的或指定的。这有利地为受监控的系统106的操作员在度量109的储存方面提供了显著的灵活性。特别地,对根据维度153而聚合并储存度量109的控制由受监控的系统106的操作员保留。 
同时,验证应用程序123配置成检测维度153的扩展是否包括错误。例如,当扩展会导致对于给定的受监控的系统106生成太多维度153时情况可能会这样,如将要描述的。例如,验证应用程序123可配置成基于事先协定,在任何给定时间对于给定的实体将维度153的数量限制到维度153的阈值数量。一旦超出极限,验证应用程序123可在服务器103中产生错误,该错误通知本地人员:维度153的扩展导致维度153的总数超出维度153的可允许的阈值数量。 
可选地,验证应用程序123可配置成通过检测新维度153是否实际 上是导致新维度153或先前不存在的维度153的错误出现的现有维度153的错误变化,而检测维度153的扩展是否包括错误。例如,某些情况中,受监控的系统106可附加给定维度153以时间戳或其他数据。 
一旦因显示将接收不到更多带有与时间段156相关联的时间戳的度量109而表示对给定时间段156的聚合已完成时,则由聚合产生的数据模型151被放置在储存队列146中,以关于相应的维度153而储存在数据存储149中。因此,数据存储149中每个维度153的数据包括与多个连续时间段156相关联的数据。 
根据一个实施方式,数据模型151在一有限的时间段中储存在数据存储149中。为此,数据储存应用程序129可配置成在数据模型151已储存一预定义的时间段后,丢弃数据模型151。储存时间的长度可依赖于存在多少储存空间、数据模型151表示的数据的量或将要储存的其他数据,及/或储存数据的目的而变化。例如,这样的时间段可包括两个星期或其他时间段。在任何情况下,储存数据的目的,比如储存数据的商业目的都可决定指定储存时间,而不管已用储存空间的大小等等。 
另外,监控服务133配置成响应于来自客户机113的请求,基于储存在数据存储149中的数据模型151而提供信息。以这种方式,监控服务133配置成基于储存在数据存储149中的数据模型151,产生指示受监控的系统106的性能的输出。 
为此,网络服务器应用程序136可包括帮助对监控服务133的浏览器访问或其他访问的web服务器或其他服务器应用程序。监控服务133可配置成基于储存在数据存储149中的数据而产生报告。这种报告可转发(relay)关于受监控的系统106的过往性能的信息。报告可被预定义并自动产生以发送给给定的实体的客户机113,或者报告可由客户机113实时请求。例如,给定的实体可基于数据储存在数据存储149中的维度153,请求某些报告。另外,可使用其他的方法来产生在客户机113上生成的报告等,以便能够监控受监控的系统106的工作健康状况。 
另外,根据另一实施方式,在服务器上可运行的应用程序还包括度量目录应用程序163,该度量目录应用程序163在数据存储166中保存一 个或更多的有效度量列表169。度量目录应用程序163用来保存可用于获取(retrieve)数据模型151的有效度量109的列表。为此,每当从度量109的一个或更多的实例产生的数据模型151将储存在数据存储149中时,提供给度量目录应用程序163该数据模型151的副本。可选地,度量109的副本本身可发送给度量目录应用程序163。每个有效度量列表169都可以表格、数据库或其他数据结构的形式储存。 
基于接收到的数据模型151副本,度量目录应用程序163保存一个或更多的有效度量列表169。特别地,有效度量列表169包括当前储存在可通过监控服务133访问的数据存储149中的有效度量109的列表。特别地,为了访问以数据模型151体现的数据以便监控受监控的系统106的操作,客户机113可首先请求数据储存在数据存储149中的度量109的目录。可选地,当客户机113尝试在主页或其他进入的起点访问数据存储149中的数据时,这样的目录可自动产生。例如,有效度量列表169可与向服务器103发送度量109的给定的实体相关联。 
响应于请求,或在产生将发送给客户机113的最初的入口比如主页等时,度量目录应用程序163配置成产生有效度量109的当前列表或目录,对于上述的有效度量109的当前列表或目录,数据模型151当前储存在数据存储149中以提供给客户机113。为保证有效度量109的当前列表或目录在事实上是当前的,度量目录应用程序163配置成保存有效度量列表169。 
为做到这点,根据一个实施方式,如果从受监控的系统106接收的度量109的最近的实例已储存在数据存储149中长于预定义的时间段,则不将度量109列在有效度量列表169上。在一个例子中,这样的时间段可以是按分钟、小时、天、周、月或其他时间间隔度量的任何时间段。一个示例性时间段可包括2周,尽管时间段可依赖于比如可用储存空间其他变量等因素而变化。 
根据一个实施方式,当度量目录应用程序163从聚合应用程序126接收以度量109本身的形式的或作为未列在有效度量列表169中的数据模型151的新度量109时,度量目录应用程序163识别与度量109相关联的 当前的时间戳,并将关于度量109的和当前时间戳的信息储存在相应的有效度量列表169中。 
如果度量109先前被包括在有效度量列表169中,则度量目录应用程序163简单地用度量109的最新接收到的实例的时间戳更新与此度量109相关联的时间戳。以这种方式,有效度量列表169中的当前有效度量109及/或数据模型151的最新列表被保存。 
另外,当与有效度量列表169中给定度量109相关联的时间戳指示与度量109相关联的最新数据已经储存在数据存储149中长于上述预定义的储存时间段时,度量目录应用程序163继续进行以从有效度量列表169中去除这样的度量109。例如,假设数据模型151只储存在数据存储149中一预定义的储存时间段,则此数据模型151将是不可用的,因为它们可能已被丢弃了。在这种情况下,有效度量列表169中所列度量109已变得过期。因此,通过度量目录应用程序163从有效度量列表169去除过期度量109保证客户机113不会尝试访问不再存在于数据存储149中的度量109。 
另外,操作给定受监控的系统106的实体可因隐私或安全方面的考虑而选择不将它们的度量109包括在有效度量列表169中。为此,这种实体可使标识符被包括在发送给服务器103的度量109中,该标识符指示度量目录应用程序163忽略或丢弃这种度量109,以使它们不包括在有效度量列表169中。 
参考图2,显示了由受监控的系统106产生的依据本公开的实施方式的度量109(图1)的实例。度量109用可扩展标记语言(XML)表示,尽管如此,应理解,度量109可以用其他语言和格式表示,如可认识到的。度量109包括维度153(图1),例如“名称(Name)”、“名称空间(Namespace)”、“Web站点(Website)”、“页面类型(Page Type)”以及“服务器(Server)”。应理解,这些维度153只是可包括在给定度量109中的许多不同种类的维度153的实例。为此,维度153可以是缩减成变量或其他值的任何分类,如可认识到的。还与度量109相关联的是时间戳173,其指示度量109产生的时间。尽管维度153描示为包括“名称”和 “名称空间”,但在某些实施方式中这些域可以不包括维度153,且可位于度量109内“维度(Dimensions)”嵌套以外的其他地方。 
因此时间戳173可识别度量109生成时的受监控的系统106的状态。在图2的例子中,时间戳173指示与网页的产生相关联的时延(latency)。因此时间戳173在时延在页面自己产生后被识别出时产生。可选地,度量109可在服务器103(图1)处接收而不带时间戳173。这种情况下,验证应用程序123可配置成在接收到度量109后产生时间戳173并将时间戳173与度量109关联。 
度量109还包括值176,该值176描述受监控的系统106(图1)的操作的某些方面。例如,图2的度量109中描述的值176是表示与网页的产生相关联的时延的数量。然而,应理解,与度量109相关联的值176可以表示能够由一个数量表示的或量化成一个数量的受监控的系统106的方面,如可认识到的。另外,度量109还表达了值176的单位179。 
为提供具体实例,度量109可指示处理器资源的使用百分比,以及与网络接口相关联的业务吞吐量。度量109可包括写到或读取自磁盘或其他类型的记忆体的字节数。度量109可涉及响应时延(response latency)、请求计数以及健康及/或不健康主机的实例的数量。另外,度量109可涉及与给定的受监控的系统106的操作或使用相关联的其他参数。 
参考图3,显示了示出根据本公开的不同实施方式的服务器103中不同构件的操作的框图。为此,图3描示了聚合队列143、聚合应用程序126、储存队列146、数据储存应用程序129和数据存储149。聚合队列143包括用时间戳173、不同维度153、值176和单位179表示的数个度量109。 
聚合应用程序126从聚合队列143访问度量109并执行时间聚合,由此如上所述产生每个时间段156的数据模型151。举例来说,如图3所示,聚合应用程序126当前正在产生三个不同维度153,即维度D1、D2和D3的未决的时间段156a的数据模型151。维度D1、D2和D3对应于包括名称、名称空间和页面类型的度量109中的维度153。应理解,这里描述的维度153仅仅提供作为示例,示例中可使用其他维度153。聚合应用程序126计算每一个维度153的未决时间段156a的数据模型151。例 如,参考图3所示的,当前未决时间段156a是以“10:01”开始的一分钟的间隔。 
对三个维度153有三个未决时间段156a,其中每个时间段156关于数据存储149中维度153的相应的维度而被储存。随着聚合应用程序126从聚合队列143获得度量109,其计算相应的维度153或遇到的任何其他维度153的每一个未决时间段156a的数据模型151。在某一时刻,认为对于未决时间段156再没有度量109可能被接收。这时,聚合应用程序126将对未决时间段156a的度量109的聚合的结果放入储存队列146中,以储存在数据存储149中。 
放在储存队列146中的数据模型151可包括,例如,多个聚合的度量,所述聚合的度量描述或表示从受监控的系统106(图1)接收在服务器103中的与相应的时间段156相关联的度量109。为此,聚合的度量可包括,例如,与相应的时间段156相关联的度量109的总计数、相应的时间段156的度量109相关联的值176的平均值、值176中的最大值及/或值176中的最小值。另外,可保存值176的总和,以及任何其他类型的聚合的度量或关于给定时间段156的度量109的其他信息。 
所计算的聚合度量的类型与对于相应的时间段156执行的聚合度相关。因此,聚合度与保留在关于与给定时间段156相关联的度量109的数据模型151中的信息的详细程度相关。如果计算较多的聚合度量,或如果较大量的信息保留在数据模型151中,则聚合度较低。另外,反过来也是正确的,因为如果计算较少的聚合度量,或如果较少量的信息保留在数据模型151中,则聚合度较高。 
聚合度还与数据模型151产生的时间段156的长度相关。聚合度随时间段156的减小而减小。相反地,聚合度随时间段156的增大而增大。 
所选的聚合度部分决定于需要什么数据监控受监控的系统106。为此,储存的数据模型151的性质在一定程度上确定能怎样监控受监控的系统106。例如,可能有必要检查数据模型151以确定受监控的系统106是否符合操作阈值。数据模型151应反映相对于操作阈值确定及/或测定受监控的系统106的性能所需的数据。例如,如果平均时延变得大于给定阈 值,则可能有必要采取校正措施,比如引入额外的资源,比如处理能力以减少时延。可选地,指定每个时间段156的度量109的聚合度,以便生成具有允许一般监控受监控的系统106的性能的所需的聚合度量的数据模型151,所述受监控的系统106的性能可以或可以不相对于一个或更多的预定义的操作阈值而测定。 
在一些情况下,聚合应用程序126可从聚合队列143获得一个晚到的(late)度量109。举例来说,如图3所示,聚合队列143主要包括具有10:01时间戳173的度量109。然而,一个度量109具有“09:52”的时间戳173。这表示由于某种原因,度量109从受监控的系统106接收得相对较迟。这样“晚到的”度量109表示相对于其他度量109未按时间顺序接收的度量109。 
根据一个实施方式,聚合应用程序126可向数据储存应用程序129发送对与晚到的度量109相关联的相应的时间段156的数据模型151的请求。数据储存应用程序129随后访问相应的时间段156的数据模型151并将之返回给聚合应用程序126。在度量109的一个晚到的度量与储存在储存队列146中的时间段156相关联的情况下,数据储存应用程序129可在确定给定时间段156还未储存在数据存储149中后,搜索储存队列146。 
响应于来自聚合应用程序126的请求,数据储存应用程序129返回与度量109的一个晚到的度量的时间段156相关联的数据模型151,以使得相应的数据模型151可用度量109的该个晚到的度量更新。之后,聚合应用程序126将数据模型151的该个更新的数据模型放置到储存队列146中,以放置到数据存储149中。在这方面,数据模型151的该个更新的数据模型可储存在数据存储149中。在一种可选情况下,数据模型151的该个更新的数据模型可改写(written over)先前数据模型151,如可认识到的。 
这提供了显著的优势,因为聚合应用程序126能够保存时间段156中老的(aged)时间段的值。这克服度量109可能在经过不同网络比如互联网或其他网络途中被阻的情况,如可认识到的。 
另外应注意,对给定维度153储存的时间段156可具有大于服务器103所记的当前时间的时间戳173,因为受监控的系统106可能具有相对于服务器103的时钟设置的较早的时钟。因此,与相应的时间段156相关联的时间戳173可相对服务器103所知时间,延伸到未来。根据一个实施方式,指定截止(cutoff),这使得接收的时间戳173相对于服务器103的时钟在未来中太遥远的度量109被忽略,或发生错误,这要求在受监控的系统106中采取校正措施以解决时间戳173问题。根据一个实施方式,未来时间戳173可允许的极限是距服务器103的当前时间一个小时,或如可认识到的其他时间极限。这样的时间极限反映了事实:可能有与受监控的系统106相关联的故障,而使得正在产生相对于度量109产生的真实时间在未来中太遥远的时间戳173。 
另外,使用聚合队列143和储存队列146,并配置不同的功能构件,以便发生失电等情况时防止数据的丢失。 
接下来参考图4,显示了根据不同实施方式的结合图3描述的不同构件的操作的另一个例子。如图4所示,在聚合队列143中接收度量109过程的某一时刻,遇到一个新维度153。特别地,新维度“页面类型=页面1(page type=page1)”出现在聚合队列143中。响应于新维度153的出现,聚合应用程序126产生与新维度153相关联的新未决时间段D4。同样地,聚合应用程序126可向数据储存应用程序129传达:已生成了用于储存在数据存储149中的新维度D4。 
可选地,数据储存应用程序129在其从储存队列146访问与新维度153相关联的数据模型151时,可将与新维度153相关联的相应的数据模型151自动地储存在数据存储149中。这示出了这样的事实:数据模型151在数据存储149中的储存是数据驱动的。也就是说,数据自动地基于与通过服务器103从受监控的系统106接收的度量109相关联的维度153关于新维度153而被储存,如可认识到的。 
参考图5,显示了示出鉴于前述讨论的聚合应用程序126的不同功能的一个实例的流程图。可选地,图5的流程图可看作描示了在服务器103(图1)中实现的方法的步骤。 
图5的流程图表示,例如,对于从聚合队列143(图3)获得的每个度量109(图2)所运行的例行程序。在任何给定时间,假设给定度量109已从聚合队列143(图3)获得,则在框250中,聚合应用程序126确定与度量109相关联的时间戳173(图2)相对于聚合应用程序126保存的相应的维度153(图3)的当前未决时间段156a(图3)是否未按时间顺序。如果一个或更多应计入当前度量109的数据模型151(图3)已经储存在了储存队列146(图1)中或关于维度153的相应的维度的数据存储149(图1)中,则度量109可能未按顺序。 
如果在框250确定当前度量109未按时间顺序,则聚合应用程序126继续进行到框253。否则,聚合应用程序126前进到框256。在框253中,聚合应用程序126实现对一个或更多与相对于聚合应用程序126的当前未决时间段156未按时间顺序的度量109相关联的数据模型151的更新。这可包括与数据储存应用程序129(图1)的通信以便检索如上所述需被更新的相应的数据模型151。之后,聚合应用程序126终止,如所示。 
在框256中,聚合应用程序126确定新维度153是否存在于从聚合队列143获得的当前度量109中。如果存在,则聚合应用程序126继续进行到框259。否则,聚合应用程序126前进到框263。 
在框259中,聚合应用程序126实现用于新维度153的新储存桶和未决时间段156a的设置。此意义上的储存“桶”是表示关于新维度153的数据模型151或其他数据在数据存储149中的储存的抽象概念。为了实现新维度153的新储存桶的设置,聚合应用程序126可与数据储存应用程序129通信,以通知数据储存应用程序129需要用于新维度153的新储存桶。 
可选地,聚合应用程序126可简单地生成与用于新维度153的新未决时间段156a相关联的新数据模型151。注意,如果有这样的时间段156,在该时间段156内没有接收到可根据其计算数据模型151的度量109,则不为这样的时间段156储存数据模型151。在此意义上,给定维度的由时间段156表示的时间记录156可具有不带数据的间隙。 
聚合应用程序126从框259继续进行到框263。在框263中,聚合应 用程序126确定与当前度量109相关联的时间戳173(图2)是否将被包括在对由聚合应用程序126当前保存的时间段中的一未决时间段的数据模型151的计算中,或者新度量109是否将被包括在对一个或更多的维度153的下一连续时间段156的数据模型151的计算中。假设度量109包括与时间段156的下一连续时间段相关联的维度153,则聚合应用程序126继续进行到框273。否则,聚合应用程序126前进到框276。 
在框273中,计算一个或更多与依次与当前度量109相关联的新未决时间段156a相关联的数据模型151。之后,在框279中,一个或更多与被认为完成了的对应时间段156相关联的数据模型151被放置在储存队列146(图3),以储存在数据存储149(图1)中。在这方面,在放置在储存队列146之前,聚合应用程序126可为每个维度153将最小数量的连续时间段156保存作为未决时间段156a。 
这样的时间段156可在先入先出的基础上保存,如可认识到的。关于是否将与相应的时间段156相关联的数据模型151放置到储存队列146中的决定依赖于,是否认为将接收到对于相应的一个或更多的时间段156未被处理过的任何附加的度量109。这可确定,在任何给定时间,每个维度153有多少个连续时间段156被聚合应用程序126保存作为了未决时间段。假设在框279中有一些未决时间段156a放置在储存队列中,之后,聚合应用程序126终止,如所示。 
参考框276,假设当前度量109的时间戳173不要求生成如上所述的相应的维度153的新时间段156,则在框276中,基于从聚合队列143接收到的当前度量109重新计算当前未决时间段156的数据模型151。之后,聚合应用程序126终止。 
参考图6,显示了描示聚合应用程序126在更新与已经储存在数据存储149中的(图1)的给定维度153(图1)的时间段156(图1)相关联的数据模型151(图3)方面的功能的例子的流程图,其中度量109(图2)之一已由聚合应用程序126未按时间顺序接收。可选地,图6的流程图可视为在服务器103(图1)中实现的方法的步骤。 
以框303开始,在接收到未按时间顺序的度量109,且该度量将被计 入对该度量109中指示的相应维度153的先前储存的时间段的数据模型151的计算中时,聚合应用程序126请求对应于晚到的度量109的时间戳173(图2)和维度153的对应时间段156的数据模型151。该请求可提供给数据储存应用程序129,该数据储存应用程序可获得所请求的数据模型151并将之传回聚合应用程序126。 
在框306中,聚合应用程序126确定所请求的数据模型151是否已经从数据储存应用程序129接收到,或以其他方式对于聚合应用程序126来说可用。假设情况如此,则在框309中聚合应用程序126基于后接收到的度量109重新计算相应时间段156的数据模型151。之后,在框313中,相应时间段156的数据模型151被放置在储存队列146中以关于给定维度153的相应时间段而最终储存在数据存储149中,如上所述。如在上面提到的,情况可能是,相应时间段156的新计算的数据模型151最终改写先前存在的时间段156。之后,聚合应用程序126终止,如所示。 
参考图7,显示的是描示度量目录应用程序163在将度量109(图1)保存并添加到有效度量列表169(图1)方面的功能的例子的流程图。可选地,图7的流程图可视为在服务器103(图1)中实现的方法的步骤。 
以框331开始,度量目录应用程序163确定指示度量109或数据模型151将不包括在有效度量列表169中的标识符是否与度量109或数据模型151(图1)相关联。如果关联,则如图所示,度量目录应用程序163终止,其中度量109或数据模型151被忽略及/或丢弃。否则,度量目录应用程序163继续进行到框333。在框333中,度量目录应用程序163检查来自聚合应用程序126或其他源的度量109或表示多个实例的度量109的数据模型151,以识别这样的度量109当前是否作为有效度量列表169的部分而存在。如果是这样的话,则度量目录应用程序163继续进行到框336。否则,度量目录应用程序163移到框339。 
在框336中,度量目录应用程序163关于度量109自身将度量109的最新时间戳储存在有效度量列表169中。之后,度量目录应用程序163的此功能终止。 
在框339中,度量目录应用程序163将先前不存在的度量109添加 到有效度量列表169。之后,在框343中,新添加的度量109的时间戳关于新添加的度量109被储存在有效度量列表169中。之后,度量目录应用程序163的此功能终止,如所示。 
参考图8,显示的是描示度量目录应用程序163(图1)在从有效度量列表169(图1)中去除过期或过时度量109(图1)方面的另一功能的例子的流程图。可选地,图8的流程图可视为在服务器103(图1)中实现达成上述过程的方法的步骤。度量目录应用程序163的功能包括用于储存在有效度量列表169中的每一个度量109的循环的循环指令(loop)。 
以框353开始,度量目录应用程序163得到有效度量列表169中考虑的当前度量109的最新的时间戳173(图2)。然后,在框356中,假定数据模型151(图1)只可储存一预定义的时间段,度量目录应用程序163基于与度量109相关联的时间戳173,确定所述度量109是否过期。如果相应度量109是过期的,则度量目录应用程序163继续进行到框359,在该框359中,过期度量109从有效度量列表169中去除。如果在框356中确定度量109不过期,则度量目录应用程序163的此部分移到框363,以便指出列在有效度量列表169中待考虑的下一度量109。一旦度量109从有效度量列表169中去除,度量目录应用程序163继续进行到框363以指出待考虑的下一度量109。因此,度量目录应用程序163的此部分连续检查每一个度量109,以识别过期的度量109并将其从有效度量列表169中去除。 
接下来参考图9,显示的是依据本公开的实施方式的服务器103(图1)的一个例子的示意性的框图。服务器103包括处理器电路,例如,具有处理器403和记忆体406的处理器电路,处理器403和记忆体406都耦合到本地接口409。为此,服务器103可包括,例如,具有这种结构的服务器计算机。本地接口409可包括,例如,具有伴随的地址/控制总线或其他总线结构的数据总线,如可认识到的。 
储存在记忆体406中的是数据和由处理器403可运行的一些构件。特别地,储存在记忆体406中的是验证应用程序123、聚合应用程序126/126a、数据储存应用程序129、监控服务133、网络服务器应用程序 136、度量目录应用程序163以及可能的其他应用程序。另外,服务器操作系统可储存在记忆体406中并由处理器运行,如可认识到的。同样地,聚合队列143、储存队列146、数据存储149和数据存储166可储存在记忆体406中,或者它们可以储存在服务器103可访问的某些其他记忆体中。应理解,可能有储存在记忆体406中并可由处理器403运行的其他的应用程序,如可认识到的。同样地,其他数据可以储存在记忆体406中并由处理器403访问。根据一个实施方式,每一个数据存储149和166可包括,例如,数据库或其他合适的数据存储结构。其中在此讨论的任何构件都以软件、一定数量的程序设计语言例如,C、C++、Java、Java Script、Perl、Python、Flash或其他程序设计语言中的任一程序设计语言的形式实现。 
一定数量的软件构件储存在记忆体406中并可由处理器403运行。在这方面,术语“可运行(executable)”指呈最终能够由处理器403运行的形式的程序文件。可运行的程序的例子可以是,例如,能够转换成可载入记忆体406的随机访问部分并由处理器403运行的格式的机器代码的经编译的程序,或可以按诸如可载入记忆体406的随机访问部分并由处理器403运行的目标代码等适当格式表示的源代码,等等。可运行程序可储存在包括例如,随机访问记忆体、只读记忆体、硬盘驱动器、光盘(CD)、软盘或其他记忆体构件的记忆体406的任何部分或构件。 
记忆体406在此定义为易失性和非易失性记忆体和数据存储构件。易失性构件是失电后不保留数据值的构件。非易失性构件是失电后保留数据的构件。因此,记忆体406可包括,例如,随机访问记忆体(RAM)、只读记忆体(ROM)、硬盘驱动器、经由关联的软盘驱动器访问的软盘、经由光盘驱动器访问的光盘、经由合适的磁带驱动器访问的磁带及/或其他记忆体构件,或任何两个或更多的这些记忆体构件的组合。另外,RAM可包括,例如,静态随机访问记忆体(SRAM)、动态随机访问记忆体(DRAM)或磁性随机访问记忆体(MRAM)以及其他这样的装置。ROM可包括,例如,可编程只读记忆体(PROM)、可擦可编程只读记忆体(EPROM),电可擦可编程只读记忆体(EEPROM),或其他类似记忆体装置。 
尽管在如上所述的服务器103上运行的不同构件可如上所讨论的实施在通用硬件所运行的软件或代码中,作为可选的情况,它们还可实施在专用硬件或软件/通用硬件和专用硬件的组合中。如果它们实施在专用硬件中,则它们能实现为使用一定数量的技术的任一技术或组合的电路或状态机。这些技术可包括,但不限于,具有用于通过施加一个或更多的数据信号实现不同逻辑功能的逻辑门的分立逻辑电路、具有合适的逻辑门的专用集成电路,或其他构件等。 
图5-8的流程图显示了聚合应用程序126和度量目录应用程序163的部分的功能和操作。如果在软件中实施,每个块都可表示包括程序指令以实现指定逻辑功能的模块、片段或代码的部分。程序指令可以体现为包括人可读语句的源代码的形式,上述人可读语句用包括由合适的运行系统,比如计算机系统或其他系统中的处理器可认出的数字指令的程序设计语言或机器代码书写。机器代码可转换自源代码,等。如果在硬件中实施,每个块可表示实现指定逻辑功能的电路或一定数量的互联电路。 
尽管图5-8的流程图显示了特定的运行顺序,应理解运行顺序可不同于所描示的。例如,两个或更多的块的运行顺序相对于所示顺序可以是混杂的(scrambled)。另外,图5-8中连续显示的两个或更多的块可并行或部分并行地运行。另外,任何数量的计数器、状态变量、告警信号灯(warning semaphore)或消息都可添加到这里描述的逻辑流程,用于加强使用、统计、性能测定或提供故障处理帮助等用途。应理解,所有这些变化形式都在本公开的范围内。 
另外,在如上所述的服务器103中实现的验证应用程序123、聚合应用程序126、数据储存应用程序129、监控服务133、度量目录应用程序163以及任何其他构件包括软件或代码,它们可实施在任何计算机可读的介质以由或结合指令运行系统,比如计算机系统或其他系统中的处理器使用。在此意义上,逻辑可包括,例如,包括能从计算机可读介质得到并由指令运行系统运行的指令和声明的语句。在本公开中,“计算机可读介质”可以是能够包含、储存或保存软件或代码以由或结合指令运行系统来使用的任何介质。计算机可读介质可包括许多物理介质,例如电子的、磁的、 光的、电磁的或半导体介质的任何一种介质。合适的计算机可读介质的更具体的例子可包括,但不限于,磁带、磁软盘、磁性硬盘驱动器或光盘。同样地,计算机可读介质可以是随机访问记忆体(RAM),包括,例如,静态随机访问记忆体(SRAM)和动态随机访问记忆体(DRAM)或磁性随机访问记忆体(MRAM)。另外,计算机可读介质可以是只读记忆体(ROM)、可编程只读记忆体(PROM),可擦可编程只读记忆体(EPROM),电可擦可编程只读记忆体(EEPROM),或其他类型的记忆体装置。 
应强调,本公开的上述实施方式只是为了清楚理解公开的原理而叙述的实现的可能的实例。可对上述实施方式作出许多变化形式和修改,而实质上不偏离公开的精神和原理。期望所有这些修改和变化形式在此包含在本公开的范围内并受后面的权利要求保护。 

Claims (19)

1.一种用于存储海量数据的方法,包括步骤:
根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型,每一个度量与多个连续时间段中的一个时间段相关联,每个数据模型表示与连续时间段的一个对应的时间段相关联的度量;
储存所述数据模型中的每一个数据模型一预定义的时间段;
丢弃在产生所述数据模型中的至少一个数据模型时使用过的每一个度量;以及
丢弃所述数据模型中的处在所述预定义的时间段结束时的每一个数据模型。
2.如权利要求1所述的方法,其中,在根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型的步骤还包括步骤:在所述服务器中从所述系统接收所述度量的流,其中所述服务器与所述系统数据通信。
3.如权利要求1所述的方法,其中,储存所述数据模型中的每一个数据模型一预定义的时间段的步骤还包括步骤:保存对其储存了至少一个数据模型的度量的列表。
4.如权利要求1所述的方法,其中,根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型的步骤还包括步骤:基于所述数据模型产生指示所述系统的性能的输出。
5.如权利要求1所述的方法,其中,储存所述数据模型中的每一个数据模型一预定义的时间段的步骤还包括步骤:用所述度量中未按时间顺序接收的一个度量更新储存的一个数据模型。
6.如权利要求1所述的方法,其中根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型的步骤还包括步骤:对于每一个连续时间段,保存从所述系统接收的度量的计数。
7.如权利要求1所述的方法,其中根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型的步骤还包括步骤:对于每一个连续时间段,识别从所述系统接收的度量中的一个最小的度量。
8.如权利要求1所述的方法,其中根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型的步骤还包括步骤:对于每一个连续时间段,识别从所述系统接收的度量中的一个最大的度量。
9.如权利要求1所述的方法,其中根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型的步骤还包括步骤:对于每一个连续时间段,计算从所述系统接收的度量的平均值。
10.如权利要求1所述的方法,其中根据描述一系统的状态的度量的流而在一服务器中产生多个数据模型的步骤还包括步骤:在所述服务器中对与每个连续时间段相关联的度量进行聚合,由此针对每一个连续时间段产生至少一个聚合度量。
11.如权利要求10所述的方法,其中对每个连续时间段的度量的聚合度导致允许相对于至少一个预定义的操作阈值监控所述系统的性能的至少一个聚合度量。
12.一种用于存储海量数据的系统,包括:
用于根据描述至少一个系统的状态的度量的流产生多个数据模型的模块,所述数据模型的每一个数据模型都表示对所述度量的子集的时间分组,其中至少一个维度与所述度量的每一个度量相关联;
用于关于所述维度中的相应的维度将所述数据模型储存在记忆体中的模块;以及
用于基于与所述流中的度量相关联的至少一个先前不存在的维度的出现而增加在所述记忆体中与所述数据模型相关联的维度的模块。
13.如权利要求12所述的系统,还包括保存在至少一个服务器中的阈值,所述阈值限制所述记忆体中与所述数据模型相关联的维度的总数。
14.如权利要求13所述的系统,还包括用于当增加维度导致所述维度的总数超过所述阈值时产生错误的模块。
15.如权利要求12所述的系统,还包括用于检测维度的增加是否包括错误的模块。
16.如权利要求15所述的系统,其中用于检测维度的增加是否包括错误的所述模块涉及用于检测先前存在的维度的变化的模块,该变化导致与所述流中的度量相关联的至少一个先前不存在的维度的出现。
17.如权利要求15所述的系统,其中用于检测维度的增加是否包括错误的所述模块涉及用于检测与所述度量相关联的多个值中的不正确的变化的模块。
18.如权利要求12所述的系统,还包括用于基于所述数据模型产生指示所述系统的性能的输出的模块。
19.一种用于存储海量数据的方法,包括步骤:
产生描述至少一个系统的状态的度量的流;
使至少一个维度与所述度量中的每一个度量关联,其中基于所述度量中的每一个度量产生的数据被关于所述至少一个维度储存;
向一服务发送具有所述至少一个维度的所述度量的流;以及
使出现的先前不存在的维度与所述流中度量的一个度量关联,以使基于所述度量中的所述一个度量产生的数据关于所述出现的先前不存在的维度储存。
CN200910205524.3A 2008-10-20 2009-10-20 用于监控的海量数据的储存 Active CN101894119B (zh)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US10690308P 2008-10-20 2008-10-20
US10690108P 2008-10-20 2008-10-20
US10690408P 2008-10-20 2008-10-20
US61/106,903 2008-10-20
US61/106,904 2008-10-20
US61/106,901 2008-10-20
US12/493,558 US8381039B1 (en) 2008-10-20 2009-06-29 Storage of mass data for monitoring
US12/493,586 US8032797B1 (en) 2008-10-20 2009-06-29 Storage of mass data for monitoring
US12/493,586 2009-06-29
US12/493,558 2009-06-29

Publications (2)

Publication Number Publication Date
CN101894119A CN101894119A (zh) 2010-11-24
CN101894119B true CN101894119B (zh) 2014-10-15

Family

ID=42702593

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910205524.3A Active CN101894119B (zh) 2008-10-20 2009-10-20 用于监控的海量数据的储存

Country Status (2)

Country Link
JP (1) JP5538810B2 (zh)
CN (1) CN101894119B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103412916B (zh) * 2013-08-07 2016-08-10 北京京东尚科信息技术有限公司 一种监控系统的多维度数据存储、检索方法及装置
CN104317958B (zh) * 2014-11-12 2018-01-16 北京国双科技有限公司 一种实时数据处理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076695B2 (en) * 2001-07-20 2006-07-11 Opnet Technologies, Inc. System and methods for adaptive threshold determination for performance metrics
US7437281B1 (en) * 2003-11-12 2008-10-14 Sprint Communications Company L.P. System and method for monitoring and modeling system performance

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111059B1 (en) * 2000-11-10 2006-09-19 Microsoft Corporation System for gathering and aggregating operational metrics
JP4526337B2 (ja) * 2004-09-15 2010-08-18 株式会社日立製作所 データ管理システム及び方法
JP2008108154A (ja) * 2006-10-27 2008-05-08 Hitachi Ltd 稼働性能情報の管理システム
JP4931220B2 (ja) * 2007-03-12 2012-05-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 検出装置、システム、プログラムおよび検出方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076695B2 (en) * 2001-07-20 2006-07-11 Opnet Technologies, Inc. System and methods for adaptive threshold determination for performance metrics
US7437281B1 (en) * 2003-11-12 2008-10-14 Sprint Communications Company L.P. System and method for monitoring and modeling system performance

Also Published As

Publication number Publication date
CN101894119A (zh) 2010-11-24
JP2010170526A (ja) 2010-08-05
JP5538810B2 (ja) 2014-07-02

Similar Documents

Publication Publication Date Title
CN108874558B (zh) 分布式事务的消息订阅方法、电子装置及可读存储介质
US9626275B1 (en) Dynamic rate adjustment for interaction monitoring
US10296435B2 (en) Storage of mass data for monitoring
US20180074854A1 (en) Correlation of stack segment intensity in emergent relationships
US9450849B1 (en) Trace backtracking in distributed systems
US9559928B1 (en) Integrated test coverage measurement in distributed systems
US10318896B1 (en) Computing resource forecasting and optimization
CN112751726B (zh) 一种数据处理方法、装置、电子设备和存储介质
CN112559475B (zh) 数据实时捕获和传输方法及系统
US11954123B2 (en) Data processing method and device for data integration, computing device and medium
US11570078B2 (en) Collecting route-based traffic metrics in a service-oriented system
WO2019195482A1 (en) Database lock
CN117131059A (zh) 报表数据处理方法、装置、设备及存储介质
US10796322B1 (en) Automated services capacity modeling
CN101894119B (zh) 用于监控的海量数据的储存
US11775864B2 (en) Feature management platform
US11487751B2 (en) Real time fault tolerant stateful featurization
CN111078418B (zh) 操作同步方法、装置、电子设备及计算机可读存储介质
Sedaghatbaf et al. A method for dependability evaluation of software architectures
CN114925283A (zh) 推送任务的管理方法及系统、电子设备及介质
CN111967806B (zh) 基于定期回扫的用户风险更新方法、装置和电子设备
EP2137623A2 (en) Registering an event
CN113934595A (zh) 数据分析方法及系统、存储介质及电子终端
CN114064678A (zh) 事件数据处理方法、装置及终端设备
CN113329128A (zh) 话务数据预测方法及装置、电子设备、存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant