首页> 中国专利> 执行分级起源收集

执行分级起源收集

摘要

本发明公开涉及执行分级起源收集。根据一个实施例的计算机实现的方法包括,识别系统内的事件;将模型运用到该事件,以生成聚合事件;以及,存储该聚合事件。

著录项

说明书

技术领域

本发明涉及数据分析,更具体地,本发明涉及为系统数据生成起源(provenance)信息。

背景技术

起源信息对于许多不同的分析应用是有价值的,可以用于执行诸如改善系统性能和识别数据脆弱性的行动。然而,起源相关事件要跨各种系统层来收集,并且发现起源数据常常具有许多不同的格式。其结果是,当前用于收集起源信息的方法非常复杂并难以实施,需要人工干预和审查。

发明内容

根据一个实施例的计算机实现的方法包括,识别系统内的事件;将模型运用到该事件,以生成聚合事件(aggregated event);以及,存储该聚合事件。

根据另一个实施例,用于执行分级起源收集的计算机程序产品包括具有体现于其中的程序指令的计算机可读存储介质,其中该程序指令可由处理器执行以使该处理器执行一种方法,该方法包括,由处理器识别系统内的事件;由处理器将模型运用到该事件,以生成聚合事件;以及,由处理器存储该聚合事件。

根据另一个实施例,一个系统包括处理器;以及与处理器集成、可由处理器执行、或者与处理器集成并可由处理器执行的逻辑,该逻辑被配置为识别系统内的事件;将模型运用到该事件,以生成聚合事件;以及,存储该聚合事件。

从以下详细描述中,本发明的其它方面和实施例将变得显而易见,当结合附图时,以下详细描述通过示例的方式示出了本发明的原理。

附图说明

图1示出了根据本发明一个实施例的网络架构。

图2示出了根据本发明的一个实施例的可以与图1的服务器和/或客户端相关联的代表性硬件环境。

图3示出了根据本发明的一个实施例的分层式数据存储系统。

图4示出了根据本发明的一个实施例的用于执行分级起源收集的方法。

图5示出了根据本发明的一个实施例的用于在起源收集期间解释(account for)实体状态的方法。

图6示出了根据本发明的一个实施例的用于为数据提供起源类别的方法。

图7示出了根据本发明的一个实施例的事件层级结构的示例性生成。

图8示出了根据本发明的一个实施例的示例性事件层级结构。

图9示出了根据本发明的一个实施例的示例性事件源模型实现。

图10示出了根据本发明的一个实施例的示例性长期事件处理。

具体实施方式

以下描述是为了说明本发明的一般原理,而不是为了限制这里要求保护的发明概念。此外,本文所述的特定特征可与其它所述特征以各种可能的组合和排列组合使用。

除非本文另有明确定义,否则所有术语将被给予其最广泛的可能解释,包括说明书中暗示的含义以及本领域技术人员理解的和/或词典、论文等中定义的含义。

还必须注意,如在说明书和所附权利要求中所使用的,单数形式"一"、"一个"和"该"包括复数对象,除非另有说明。还将理解,术语"包括"和/或"

包含"在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和

/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。

以下描述公开了用于执行分级起源收集的系统、方法和计算机程序产品的若干优选实施例。

在一个通用实施例中,计算机实现的方法包括,识别系统内的事件;将模型运用到该事件,以生成聚合事件;以及,存储该聚合事件。

在另一个通用实施例中,用于执行分级起源收集的计算机程序产品包括具有体现于其中的程序指令的计算机可读存储介质,其中该程序指令可由处理器执行以使该处理器执行一种方法,该方法包括,由处理器识别系统内的事件;由处理器将模型运用到该事件,以生成聚合事件;以及,由处理器存储该聚合事件。

在另一个通用实施例中,一个系统包括处理器;以及与处理器集成、可由处理器执行、或者与处理器集成并可由处理器执行的逻辑,该逻辑被配置为识别系统内的事件;将模型运用到该事件,以生成聚合事件;以及,存储该聚合事件。

图1示出了根据一个实施例的架构100。如图1所示,提供了多个远程网络102,包括第一远程网络104和第二远程网络106。网关101可以耦合在远程网络102和邻近网络108之间。在本架构100的上下文中,网络104、106可以各自采取任何形式,包括但不限于LAN、诸如因特网的WAN、公共交换电话网(PSTN)、内部电话网等。

在使用中,网关101用作从远程网络102到邻近网络108的进入点。这样,网关101可以用作路由器,其能够指引到达网关101的一给定数据分组,还可以用作交换机,其为给定分组提供进出网关101的实际路径。

进一步包括的是至少一个数据服务器114,其耦合到邻近网络108,并可经由网关101从远程网络102访问。应当注意,数据服务器114可以包括任何类型的计算设备/群组件。耦合到每个数据服务器114的是多个用户设备116。用户设备116也可以通过网络104、106、108之一直接连接。这样的用户设备116可以包括台式计算机、膝上型计算机、手持式计算机、打印机或任何其他类型的逻辑。应当注意,在一个实施例中,用户设备111也可以直接耦合到任何网络。

外围设备120或一系列外围设备120,例如传真机、打印机、联网和/或本地存储单元或系统等,可以耦合到网络104、106、108中的一个或多个。应当注意,数据库和/或附加组件可以与耦合到网络104、106、108的任何类型的网络元件一起使用,或者集成到其中。在本说明书的上下文中,网络元件可以指网络的任何组件。

根据一些方法,本文描述的方法和系统可以利用和/或在虚拟系统和/或仿真一个或多个其他系统的系统上实现,所述一个或多个其他系统包括诸如仿真IBM z/OS环境的UNIX系统、虚拟地托管MICROSOFT WINDOWS环境的UNIX系统、仿真IBM z/OS环境的MICROSOFT WINDOWS系统等。在一些实施例中,可以通过使用VMWARE软件来增强这种虚拟化和/或仿真。

在更多方法中,一个或多个网络104、106、108可以表示通常被称为“云”的系统集群。在云计算中,诸如处理能力、外围设备、软件、数据、服务器等的共享资源以按需关系被提供给云中的任何系统,从而允许服务跨许多计算系统的访问和分布。云计算通常涉及在云中操作的系统之间的因特网连接,但是也可以使用连接系统的其他技术。

图2示出了根据一个实施例的与图1的用户设备116和/或服务器114相关联的代表性硬件环境。该图示出了工作站的典型硬件配置,该工作站具有中央处理单元210(例如微处理器)和通过系统总线212互连的多个其它单元。

图2所示的工作站包括随机存取存储器(RAM)214、只读存储器(ROM)216、用于将诸如盘存储单元220的外围设备连接到总线212的I/O适配器218、用于将键盘224、鼠标226、扬声器228、麦克风232和/或诸如触摸屏和数字照相机(未示出)的其它用户接口设备连接到总线212的用户接口适配器222、用于将工作站连接到通信网络235(例如,数据处理网络)的通信适配器234、以及用于将总线212连接到显示设备238的显示适配器236。

工作站上可以驻留有操作系统,例如操作系统(OS)、MAC OS、UNIX OS等。应当理解,优选实施例也可以在除了所提及的那些之外的平台和操作系统上实现。优选实施例可以使用XML、C和/或C++语言或其它编程语言以及面向对象的编程方法来编写。可以使用已经变得越来越多地用于开发复杂应用的面向对象编程(OOP)。

现在参考图3,示出了根据一个实施例的存储系统300。注意,根据各种实施例,图3中所示的一些元件可以被实现为硬件和/或软件。存储系统300可以包括存储系统管理器312,用于与在至少一个较高存储层302和至少一个较低存储层306上的多个介质通信。较高存储层302优选地可以包括一个或多个随机存取和/或直接存取介质304,例如硬盘驱动器(HDD)中的硬盘、非易失性存储器(NVM)、固态驱动器(SSD)中的固态存储器、闪存、SSD阵列、闪存阵列等和/或本文中提到的或本领域已知的其它介质。较低存储层306优选地可以包括一个或多个较低性能存储介质308,包括顺序存取介质、例如磁带驱动器中的磁带和/或光学介质、较慢存取HDD、较慢存取SSD等和/或本文所述或本领域已知的其它介质。一个或多个附加存储层316可以包括系统300的设计者所期望的存储存储器介质的任意组合。而且,较高存储层302和/或较低存储层306中的任何一个可以包括存储设备和/或存储介质的某种组合。

存储系统管理器312可以通过网络310、例如图3所示的存储区域网络(SAN)或一些其它适当的网络类型与较高存储层302和较低存储层306上的存储介质304、308通信。存储系统管理器312还可以通过主机接口314与一个或多个主机系统(未示出)通信,所述主机接口可以是或者可以不是存储系统管理器312的一部分。存储系统管理器312和/或存储系统300的任何其它组件可以以硬件和/或软件来实现,并且可以利用用于执行本领域已知类型的命令的处理器(未示出),诸如中央处理单元(CPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。当然,可以使用存储系统的任何布置,如本领域技术人员在阅读本说明书时将显而易见的。

在更多实施例中,存储系统300可以包括任意数量的数据存储层,并且可以在每个存储层内包括相同或不同的存储存储器介质。例如,每个数据存储层可以包括相同类型的存储存储器介质,例如HDD、SSD、顺序存取介质(磁带驱动器中的磁带、光盘驱动器中的光盘等)、直接存取介质(CD-ROM、DVD-ROM等)或介质存储类型的任何组合。在一个这样的配置中,较高存储层302可以包括用于在较高性能存储环境中存储数据的大部分SSD存储介质,而剩余的存储层,包括较低存储层306和附加存储层316,可以包括SSD、HDD、磁带驱动器等的任意组合,用于在较低性能存储环境中存储数据。这样,更频繁访问的数据、具有较高优先级的数据、需要更快访问的数据等可以存储在较高存储层302上,而不具有上述属性之一的数据可以存储在附加存储层316、包括较低存储层306上。当然,本领域技术人员在阅读本说明书时,可以根据本文所呈现的实施例设计存储介质类型的许多其它组合以实现为不同的存储方案。

根据一些实施例,存储系统(例如300)可以包括被配置为接收请求以打开数据集的逻辑、被配置为确定所请求的数据集是否以多个相关联的部分存储到分层式数据存储系统300的较低存储层306的逻辑、被配置为将所请求的数据集的每个相关联的部分移动到分层式数据存储系统300的较高存储层302的逻辑、以及被配置为从相关联的部分在分层式数据存储系统300的较高存储层302上聚集所请求的数据集的逻辑。

当然,根据各种实施例,该逻辑可以被实现为任何设备和/或系统上的方法或计算机程序产品。

现在参考图4,示出了根据一个实施例的方法400的流程图。在各种实施例中,方法400可以根据本发明在图1-3和7-10中所描述的任何环境中执行。当然,如本领域技术人员在阅读本说明书时将理解的,方法400中可以包括比图4中具体描述的操作更多或更少的操作。

方法400的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法400可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的一些其他设备来执行。可以在任何设备中利用处理器、例如以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块来执行方法400的一个或多个步骤。说明性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其它合适的计算设备。

如图4所示,方法400可以以操作402启动,在此在系统内识别一个事件。在一个实施例中,该系统可以包括单个计算设备(例如,计算机、服务器、节点等)。在另一实施例中,系统可以包括多个设备(例如,计算设备和/或存储设备的集群等)。在又一实施例中,系统可以包括基于云的处理和/或存储。

另外,在一个实施例中,事件可以包括与数据相关联执行的一个或多个行动。例如,事件可以包括数据的生成、数据的编辑、数据的删除、数据从一个存储设备向另一个的迁移等等。在另一个实施例中,事件可以被链接到数据的一个特定实例。在又一个实施例中,事件可以被链接到系统内的特定组件/设备。

进一步地,在一个实施例中,事件可以包括由系统内的一个或多个元件实现的进程。例如,该进程可以包括运行预定应用的操作系统进程。

在一个实施例中,事件可以由系统的一个或多个事件源来实现。例如,事件源可以包括诸如服务器、存储设备、网络设备(例如,网关,路由器等)等的系统元素。在另一实施例中,可以利用一个或多个监视工具(例如,一个或多个钩子、一个或多个守护程序等)来识别事件。例如,一个或多个监视工具可以在一个或多个事件源内部运行以产生事件。

进一步地,方法400可以进行到操作404,在此将模型应用到事件以生成聚合事件。在一个实施例中,该模型可以与事件源相关联。例如,系统内的每个事件源可以具有一个或多个相关联的模型。在另一个实施例中,可以将模型应用到多个事件上,然后根据模型进行聚合,以产生单个输出事件。

并且,在一个实施例中,该模型可以与预定级别的粒度相关联。例如,每个事件源可以具有多个相关联的模型,其中,该多个相关联的模型中的每一个具有与其他相关联的模型不同的粒度。在另一个实施例中,预定级别的粒度可以指示要从事件提取的信息量,其中,所提取信息用于生成聚合事件。

另外,在一个实施例中,具有第一级别的粒度的第一模型可能需要识别事件的开始和结束时间。在另一个实施例中,具有大于第一级别的粒度的第二级别的粒度的第二模型可能需要识别事件的开始和结束时间、与事件相关联的用户、在该事件期间发生的任何错误、该事件涉及的特定系统组件,等等。

在另一个实施例中,模型可以被堆叠以产生更粗糙的聚合事件。例如,一个模型可用于将原始事件的子集合并成具有第一级别的粗糙度的第一级别的事件,这个第一级别的事件可以与其他第一级别的事件合并,产生具有大于第一级别的第二级别的粗糙度的第二级别的事件。

进一步地,在一个实施例中,如果满足一个或多个预定条件,可以将模型有条件地应用到事件上。例如,如果事件的一个或多个方面(例如,事件的类型,与事件相关联的数据,等等)与与模型相关联的预定条件相匹配,则可以将模型应用到该事件上。在另一个实施例中,如果事件的一个或多个方面不与与模型相关联的预定条件相匹配,则不将模型应用到该事件上(该事件可以被丢弃并且不记录)。

进一步地,在一个实施例中,模型可以分析该事件,并从该事件提取预定信息。例如,预定信息可以包括时间信息(例如,开始时间,结束时间,时间持续时间)。在另一个例子中,预定信息可以包括数据信息(例如,在该事件期间被访问以生成特定数据实例的数据等)。在又一个例子中,预定信息可以包括用户信息(例如,授权和/或启动该事件的用户和/或应用等)。

并且,在一个实施例中,预定信息可以包括在该事件期间发生的任何错误。在另一个实施例中,预定信息可以包括在该事件期间使用的一个或多个资源(例如,处理器周期,处理时间,数据块,网络带宽等)的量。在又一个实施例中,预定信息可以包括对源做出的配置改变、对认证或特权的改变等。

另外,在一个实施例中,模型可以在生成聚合事件期间监视事件的状态。例如,模型可以识别并记录事件的开始时间。在另一个例子中,模型可以识别并记录事件的结束时间。然后可以将事件的开始时间和事件的结束时间合并成单个的聚合事件。进一步地,在一个实施例中,模型可以通过编译所提取的预定信息作为事件的元数据来生成聚合事件。例如,可以确定时间戳并应用到所提取的预定信息的每个实例上。在另一个例子中,可以将所提取的预定信息和相关联的时间戳作为元数据添加到聚合事件。

这样,聚合事件可以包括从事件提取的带有相关联的时间戳的预定信息的合集(compilation)。在一个实施例中,可以专门为事件或者事件源生成模型。在另一个实施例中,可以利用通用化的、被调整为应用于特定事件源的模板生成模型。

更进一步地,方法400可以进行到操作406,在此存储聚合事件。在一个实施例中,可以与预定数据(例如,在事件期间生成的、调整的、迁移的或删除的数据等)相关联地存储聚合事件。在另一个实施例中,聚合事件可以存储在持久存储器(例如,一个或多个硬盘驱动器(HDD)等)中。在又一个实施例中,聚合事件可以存储在一个或多个预定数据库中。在又一个实施例中,聚合事件可以与另外的聚合事件一起存储在层级结构内。

以这种方式,模型可以从识别出的事件识别和提取所期望的信息,并将不同的事件合并成单个事件。通过仅从事件提取和存储所期望的信息(而不是整个事件),可以减少所存储信息的量,这可以增加可用于存储起源信息的存储的量。通过仅从满足预定标准的事件提取和存储信息(并舍弃不满足这种标准的事件),并且通过执行聚合,可以减少在模型应用期间执行的处理量,从而提高在系统内执行这种模型应用的一个或多个设备的性能。

下面参考图5,示出了根据一个实施例的用于在起源收集期间解释实体状态的方法500。在各种实施例中,方法500可以根据本发明在图1-3和图7-10中所示的任何环境中执行。当然,如本领域技术人员在阅读本说明书时将理解的,方法500中可以包括比图5中具体描述的操作更多或更少的操作。

方法500的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法500可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的一些其他设备来执行。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块)来执行方法500的一个或多个步骤。说明性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其它合适的计算设备。

如图5所示,方法500可以以操作502启动,在此识别系统内的第一事件。另外,方法500可以前进到操作504,在此将模型应用到第一事件以生成聚合事件的第一部分。例如,可以识别时间戳并添加到在第一事件期间提取的预定信息的每个实例。在一个实施例中,第一事件可以包括开始事件。

进一步地,方法500可以进行到操作506,在此确定第一事件的持续事件超过一预定阈值。更进一步地,方法500可以进行到操作508,在此将第一事件的状态和聚合事件的第一部分存储在数据库中。在一个实施例中,时间戳数据也可以存储在数据库内。

并且,方法500可以进行到操作510,在此将模型应用到第二事件以生成聚合事件的第二部分。在一个实施例中,可以识别时间戳并添加到在第二事件期间提取的预定信息的每个实例。在一个实施例中,第二事件可以包括结束事件。

另外,方法500可以进行到操作512,在此确定聚合事件已经结束。进一步地,方法500可以进行到操作514,在此将事件的更新状态和聚合事件的第二部分添加到数据库内的聚合事件的第一部分,以生成完整的聚合事件。

现在参考图6,示出了根据一个实施例的用于提供数据的起源类别的方法600的流程图。在各种实施例中,方法600可以根据本发明在图1-3和图7-10中所示的任何环境中执行。当然,如本领域技术人员在阅读本说明书时将理解的,方法600中可以包括比图6中具体描述的操作更多或更少的操作。

方法600的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法600可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的一些其他设备来执行。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块)来执行方法600的一个或多个步骤。说明性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其它合适的计算设备。

如图6所示,方法600可以以操作602启动,在此接收用于收集系统内的起源的请求。在一个实施例中,数据起源可以包括系统内的预定数据的历史。例如,数据起源可以包括下面中的一个或多个:数据是如何生成的、谁生成的数据、用于生成数据的其他数据(例如,数据依赖性等)、在生成数据期间的软件和/或系统配置、在生成数据期间遇到的任何错误、用于生成数据的一个或多个资源等。在另一个实施例中,数据起源可以包括进程、作业、工作流等的历史。

另外,在一个实施例中,请求可以包括监视系统内的数据以便确定数据起源的请求。在另一个实施例中,数据可以是预定数据。

进一步地,方法600可以进行到操作604,在此将所请求的数据起源匹配到多个起源类别中的一个。在一个实施例中,如果请求与系统数据相关联的读、写和处理事件中的一个或多个,则可以将请求匹配到文件起源来别。在另一个实施例中,如果请求与系统数据相关联的套接字(socket)、路由和带宽事件中的一个或多个,则可以将该请求匹配到网络起源类别。在又一个实施例中,如果请求诸如进程、作业和线程等实体对存储器、CPU、GPU和数据的使用,则可以将该请求匹配到资源消耗类别。

进一步地,方法600可以进行到操作606,在此选择与所匹配的起源类别相关联的一个或多个模型。在一个实施例中,每个起源类别可以与一个或多个预定模型相关联。在另一个实施例中,多个起源类别中的每一个可以具有与其他起源类别不同的粒度。

例如,进程起源类别可以具有较低的粒度,可以包括来自在系统内运行的、生成、修改或删除预定数据的一个或多个进程内的监视数据。在另一个例子中,文件起源类别可以具有比进程起源类别更高的粒度,可以包括来自一个或多个进程内的监视数据以及来自存储数据的一个或多个存储设备的数据和来自操作系统的列出数据生成和修改的时间和日期的数据。

并且,方法600可以进行到进程608,在此将一个或多个模型应用到一个或多个系统事件以获得聚合事件。在一个实施例中,如果选择了多个模型,可以合并来自多个模型中的每一个的聚合事件,以生成聚合事件的单个实例。

另外,方法600可以进行到操作610,在此响应于请求返回聚合事件。

大规模分析环境中的起源收集对于诸如簿记、发现、再现性和问题分析的行动是重要的。起源包括关于数据的信息,例如:

数据是何时/如何生成的,谁生成的?

数据生成在数据和软件/环境方面的输入依赖性是什么?

在数据生成期间有任何错误吗?

在数据生成期间作业消耗了多少资源?

可以跨系统栈的层收集起源相关事件以便保证完整性。这些层包括系统内使用的操作系统、系统内使用的文件系统、系统内使用的一个或多个应用、系统内使用的应用协调器/调度器等。另外,可以集成事件以提供完整的起源图。

在一个实施例中,不同的起源源产生大量的事件数据,例如操作系统中的系统调用、文件系统中的文件访问、协调器中的调度作业等。收集所有东西是昂贵的。另外,许多事件是低级别的。例如,事件数据(例如,所有系统调用)存在很大变化。此外,用户不具有准确配置起源数据集合的专门知识。也难以决定什么是需要的而不应收集。

在另一实施例中,以原始格式生成事件。而且,起源对象生命周期事件是不相关的(例如,进程分叉、执行、退出或文件打开、读取、关闭)。此外,在生成查询时需要使信息相关。此外,原始起源导致存储和处理开销。因此,希望使起源收集可配置,并减少起源检索期间的系统开销。

在一个实施例中,可以以不同粒度聚合事件,以产生事件层级结构。层级结构中的较高级别提供了对起源数据的更高抽象以使其更容易访问。该方法通过聚合原始事件来实现所收集的数据量的减少。

另外,在一个实施例中,低级事件可被抽象地结合到更高级别的构造中,这些构造更容易被非专家用户理解。事件格式还可以被简化以提高存储效率并降低查询复杂度。此外,事件层级结构可以与存储层级结构对准以更快地生成更粗糙的起源图。

图7示出了根据一个示例性实施例的事件层次结构700的示例性生成。如图所示,从第一事件源704收集第一事件起源数据702A-B,并且从第二事件源706收集第二事件起源数据702C-D。第一事件起源数据702A-B被合并以生成第一事件抽象级别708,并且第二事件起源数据702C-D被合并以生成第二事件抽象级别710。

另外,第一事件抽象级别708和第二事件抽象级别710被合并以生成文件起源事件712。这样,通过聚合起源事件数据,可以生成不同级别的抽象。

图8示出根据一个示例性实施例的示例性事件层级结构800。如图所示,合并由操作系统804做出的进程命令802A-C,以生成单个进程事件抽象806。另外,合并由文件系统810做出的文件读命令808A-C,以生成单个文件读事件抽象812。

进一步地,合并进程事件抽象806和文件读事件抽象812,以生成文件起源事件814。在一个实施例中,可以合并多个文件起源事件以生成作业事件。这样,可以组织起源数据,使其可以以各种级别的粒度被获取和检索。

在一个实施例中,事件聚合可能需要事件源上的领域特定知识,例如下面的示例:

进程生命周期包括分叉、执行和退出系统调用

Spark作业以“INFO注册应用”日志条目开始,并以“INFO未注册应用”日志条目结束

GPFS踪迹中的操作以“ENTER Op”开始,并以“EXIT Op”踪迹结束

可以通过使用具有关于相关联环境的特定知识的特定事件源模型来提供该领域特定知识,以便获得期望的起源数据。事件源模型还可以维护状态数据,并且一旦实体的生命周期结束,就可以发出聚合事件。

图9示出了根据一个示例性实施例的示例性事件源模型实现900。如图所示,事件源模型902从事件源906接收事件904作为输入。在一个实施例中,事件源906可以包括计算环境的组件。在另一个实施例中,事件904可以包括预定进程。

进一步地,响应于接收到事件904,事件源模型902用关于事件904已经开始的指示符来更新实体状态908。事件源模型902然后根据在事件源模型902中实现的领域特定知识,从事件904分析和检索预定信息。当事件源模型902确定事件904已经完成时,事件源模型902用关于事件904已经完成的指示符来更新实体状态908。

更进一步地,事件源模型902然后利用该预定信息生成聚合事件910,并将聚合事件发送给数据库912用于持久存储。

以这种方式,事件源模型902可以以聚合事件910的形式从在输入事件904内发现的无组织数据生成组织数据。

在一个实施例中,实体状态可以存储在非持久存储器(例如,随机存取存储器等)中来用于短期实体。长期实体状态可以作为部分聚合事件存储在持久存储器(例如,包括一个或多个硬盘驱动器的数据库等)中。

以这种方式,部分聚合事件不会延迟对信息的检索和处理,并且可以允许在稍后的数据处完成的早期事件查询,以获得完全聚合事件。

图10示出了根据一个示例性实施例的示例性长期事件处理1000。如图所示,事件源模型1002从事件源1006接收事件1004作为输入。在一个实施例中,事件源1006可以包括计算环境的组件。在另一个实施例中,事件1004可以包括预定进程。

进一步地,响应于接收事件1004,事件源模型1002用指示事件1004已经开始的状态信息1010更新持久数据库1008。在一个实施例中,响应于确定事件1004是持续时间超过一个时间阈值的预定事件,事件源模型1002可以更新持久数据库1008而不是其他非持久数据。

事件源模型1002然后根据在事件源模型1002内实现的领域特定知识,从事件1004分析和检索预定信息的第一部分。事件源模型1002然后利用预定信息的第一部分,生成聚合事件的第一部分1012,并将聚合事件的第一部分1012发送给持久数据库1008用于持久存储。

在聚合事件的第一部分1012已经发送给持久数据库1008之后,事件源模型1002然后根据在事件源模型1002内实现的领域特定知识,从事件1004分析和检索预定信息的第二部分。事件源模型1002然后利用预定信息的第二部分,生成聚合事件的第二部分1014。

当由事件源模型1002确定事件1004已经完成时,事件源模型1002用指示事件1004已经完成的状态信息1010更新持久数据库1008。事件源模型1002然后将聚合事件的第二部分1014发送给持久数据库1008用于持久存储,在此将其与聚合事件的第一部分1012合并。

以这种方式,事件源模型1002可以利用在持久数据库1008中维护的状态信息1010,生成聚合事件随时间的合并部分。

在一个实施例中,事件源可以具有不同的复杂性。例如,操作和文件系统是复杂的事件源,而Spark日志是简单的事件源。复杂事件源模型可能需要个人努力来实现。复杂事件源可以是基本的,并且这些源的模型可以跨部署(例如,针对OS或文件系统等)而重用。

在另一个实施例中,简单事件源模型可以是特定于用户的。例如,用户可以指定聚合事件的格式和生命周期事件列表,用来填写不同的事件属性。下面的表1中示出了一个示例性简单事件源模型。

如表1所示,通过为作业获取开始时间(通过从日志提取已注册应用字符串并在日志内的预定位置查找)和结束时间(通过从日志提取未注册应用字符串并在日志内的预定位置查找)来生成Spark事件。

在一个实施例中,可以进一步对聚合事件进行聚合以提供起源类别。例如,可以合并进程事件和文件事件来提供文件起源类别。在另一个例子中,可以合并进程事件和套接字事件来提供网络起源类别。在又一个例子中,可以合并调度器和工作流管理器事件来产生工作流起源类别。

在另一个实施例中,不同的起源类别启用/禁用底层起源源中的不同事件过滤器。类别通过聚合事件之间的依赖性扩展层级结构(例如,文件和网络起源可能都需要进程起源类别)。

该方法允许在没有底层系统的知识的情况下配置起源收集,同时考虑收集开销和可用起源之间的折衷。例如,较少的可表达性起源类别可能需要较低的处理开销来获得,而较多的可表达性起源类别可能需要较大的处理开销。

在一个实施例中,系统可能从不同的起源源产生聚合事件。系统可以基于现有的事件源模型针对复杂源产生聚合事件。系统可以针对简单事件源模型指定聚合事件。

在另一个实施例中,系统可以支持部分聚合事件,以减少获得数据洞察所需要的时间。系统还可以将聚合事件合并成起源类别。系统可以基于该类别来展示起源层级结构。系统还可以允许用户选择应该收集哪些起源类别。

在一个实施例中,系统可以允许从不同的起源源产生聚合事件。系统基于现有的事件源模型为复杂源产生聚合事件。系统允许为简单事件源模型指定聚合事件。

系统支持部分聚合事件,以减少获得洞察的时间。系统将聚合事件合并成起源类别。系统基于该类别来展示起源层级结构。系统允许用户选择应该收集哪些起源类别。

在另一个实施例中,事件源模型消耗来自事件源的事件。模型具有进入、更新和退出条件,以知道哪个事件触发新聚合事件的分配、哪个事件更新部分聚合事件、以及哪个事件完成聚合事件并触发其发出。

用于短期对象的部分聚合事件被保存在存储器中,而用于长期对象的事件数据被保存在持久存储器(例如数据库)中,使得部分聚合事件已经可用于查询。

本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。

计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。

本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如"C"编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。

在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。

这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。

计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。

附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。

此外,根据各种实施例的系统可以包括处理器和与处理器集成和/或可由处理器集成的逻辑,该逻辑被配置为执行本文所述的过程步骤中的一个或多个。处理器可以是如本文所述的任何配置,例如分立处理器或包括诸如处理硬件、存储器、I/O接口等许多组件的处理电路。所谓与其集成,是指处理器具有与其一起嵌入的逻辑作为硬件逻辑,诸如专用集成电路(ASIC)、FPGA等。通过可由处理器执行,意味着逻辑是硬件逻辑;软件逻辑,例如固件、操作系统的一部分、应用程序的一部分;等等,或者硬件和软件逻辑的某种组合,其可由处理器访问并且被配置成使处理器在由处理器执行时执行某种功能。软件逻辑可以存储在任何存储器类型的本地和/或远程存储器上,如本领域所公知的。可以使用本领域已知的任何处理器,诸如软件处理器模块和/或硬件处理器,诸如ASIC、FPGA、中央处理单元(CPU)、集成电路(IC)、图形处理单元(GPU)等。

显然,前述系统和/或方法的各种特征可以以任何方式组合,从而从以上所呈现的描述中产生多个组合。

还应当理解,本发明的实施例可以以代表客户部署的服务的形式提供,以便按需提供服务。

已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号