用于监视多个分布式设备的系统技术方案

技术编号:14904980 阅读:73 留言:0更新日期:2017-03-29 19:49
本申请涉及用于监视多个分布式设备的系统。提供了用于远程地监视多个分布式设备的装置和方法。该装置和方法确定日志记录条件以识别在事件之前在设备处发生的动作序列,日志记录条件定义在事件之前应当开始设备状态记录的设备的状态。

【技术实现步骤摘要】

本主题一般地涉及用于远程地监视多个分布式设备以识别导致在分布式设备中的一个或多个分布式设备处发生的事件的动作序列的装置和方法。
技术介绍
能够执行程序代码的设备(诸如IoT设备、服务器、台式计算机、膝上型计算机、移动电话、平板计算机等)能够记录设备在事件(例如错误)发生时的时刻的状态。然而,错误经常由长序列的不寻常动作造成。为了修复程序代码并预防错误的未来的发生,开发者必须从错误发生时的设备状态的记录向后进行工作以寻找错误的根本原因。这是困难的处理,其有时只有通过在实验室中多次再现错误条件才是可能的。
技术实现思路
根据第一技术,提供了用于监视多个分布式设备处的事件的计算机实现的方法。每个分布式设备可操作来执行程序代码。该方法包括:检测所述多个分布式设备中的一个分布式设备处的事件;生成第一状态记录,所述第一状态记录定义当所述事件发生时所述多个分布式设备中的所述一个分布式设备的状态;基于所述第一状态记录确定第一日志记录条件,所述第一日志记录条件定义将生成第二状态记录的分布式设备的状态;以及将所述第一日志记录条件传送到所述多个分布式设备中的至少一个分布式设备。根据第二技术,提供了包括用于执行本文中所描述的方法的程序代码的计算机程序产品。根据第三技术,提供了用于监视多个分布式设备处的事件的装置。每个分布式设备可操作来执行程序代码。所述装置包括:状态记录模块,其可操作来接收来自所述多个分布式设备中的至少一个分布式设备的第一状态记录,所述第一状态记录定义当事件在所述多个分布式设备中的所述至少一个分布式设备处发生时所述多个分布式设备中的所述至少一个分布式设备的状态;日志记录条件模块,其可操作来评估所述接收到的第一状态记录并且基于所述接收到的第一状态记录确定第一日志记录条件,所述第一日志记录条件定义将生成第二状态记录的分布式设备的状态;以及通信模块,其可操作来将所述第一日志记录条件传送到所述多个分布式设备中的至少一个分布式设备。根据第四技术,提供了用于监视多个分布式设备处的事件的系统。该系统包括:多个分布式设备,每个分布式设备可操作来执行程序代码、检测所述分布式设备处的事件并且生成状态记录,所述状态记录定义当所述事件在所述分布式设备处发生时所述分布式设备的状态;以及装置,其可操作来接收所述状态记录、基于所述状态记录确定日志记录条件并且将所述日志记录条件传送到所述多个分布式设备中的至少一个分布式设备,所述日志记录条件定义将生成另一个状态记录的分布式设备的状态。附图说明现在将参考附图来描述实施例,在附图中:图1示意性地例示出用于监视多个分布式设备的系统;图2是示意性地例示出用于确定日志记录条件的方法的流程图;图3是示意性地例示出用于确定日志记录条件的另一种方法的流程图;图4A至图4E示意性地例示出栈的状态;并且图5示意性地例示出服务提供商。在附图中,相似的附图标记指代相同或类似的元件。具体实施方式现在将详细地提及实施例,其示例在附图中被例示出。在下面的具体实施方式中,通过示例的方式阐述了许多特定细节以提供对相关教导的透彻理解。然而,对本领域普通技术人员将明显的是,在没有这些特定细节的情况下可实践本教导。图1例示出用于监视多个分布式设备的系统。如在图1中所示,该系统包括能够使用任何已知的有线或无线通信技术与多个分布式设备31、32、33、34通信的服务提供商21。每个分布式设备包括能够执行程序代码的设备,诸如例如IoT设备、服务器、台式计算机、膝上型计算机、移动电话、平板计算机等。分布式设备31、32、33、34可以是相同类型的分布式设备或者不同类型的分布式设备。实施例不限于特定类型的分布式设备。服务提供商21能够从多个分布式设备31、32、33、34接收数据并且向多个分布式设备31、32、33、34传送指令和/或数据。服务提供商21还能够使用任何已知的有线或无线通信技术经由用户接口(未例示出)与用户11通信。服务提供商21能够向用户11传送数据并且从用户11接收指令和/或数据。在一个实施例中,如在图1中例示出的,服务提供商21能够与多于一个用户(例如,用户11、12和13)通信。在另一个实施例中,多于一个服务提供商可与相同的分布式设备或者不同的分布式设备通信。例如,在图1中,服务提供商21和22都能够与分布式设备34通信,然而,只有服务提供商21能够与分布式设备31、32和33通信,并且只有服务提供商22能够与分布式设备35通信。实施例不限于服务提供商、分布式设备或用户的特定布置和数目。如上所述,每个分布式设备都能够执行程序代码。每个分布式设备都可执行与系统中的至少一个其他分布式设备相同的程序代码,例如运行相同的操作系统或者运行相同的程序或应用等。当多个分布式设备正在执行相同代码时,相同事件经常在多个分布式设备上发生多次。通常,事件由于当代码被在每个设备上执行时而在不同时间发生,但是可在多于一个设备处同时发生。每个分布式设备都能够记录设备在事件在设备处发生时的时刻的状态,在本领域中有时被称作状态快照。设备状态的该记录(状态记录)旨在帮助开发者调试程序代码。状态记录可包括以下各项中的一个或多个:·函数的当前调用栈、调用栈的一部分或者在多线程应用的情况下为多于一个当前调用栈;·调用栈上的函数的参数值;·关于设备的内部状态的日志记录信息;·关于外部环境的日志记录信息;·从服务器接收到的最后的数据;和/或·存储在存储器中的关于设备状态的信息。在一个实施例中,事件可以是在设备处发生的错误。然而,事件不限于是错误并且用户感兴趣的任何事件都可被监视。设备处的事件的发生触发状态记录SR被生成。分布式设备不存储设备在执行代码时的历史,因为这将导致繁重数量的数据被存储。结果,只有在事件发生时的时刻的设备状态被记录。然而,如上所述,错误经常由长序列的不寻常动作造成,所以为了修复程序代码,开发者必须从状态记录向后工作以寻找错误的根本原因。每个分布式设备都能够将状态记录或者从状态记录得到的信息传送到服务提供商,例如在图1中例示出的服务提供商21、22。服务提供商起收集服务的作用,从而从多个不同的分布式设备接收多个状态记录。在服务提供商处接收到的状态记录可能是由相同或不同事件触发的。在服务提供商处接收到状态记录表明事件已经在分布式设备处发生。服务提供商评估状态记录SR,并且确定日志记录条件LC+1,状态记录SR定义分布式设备在事件发生时的时刻的状态。日志记录条件LC+1定义在事件发生之前、状态记录SR+1应当被生成的设备状态。所确定的日志记录条件LC+1然后被传送到多个分布式设备。当多个分布式设备中的任何一个分布式设备的状态与在日志记录条件LC+1中定义的设备状态匹配时,在该设备处生成状态记录SR+1。状态记录SR+1是在满足日志记录条件LC+1时生成的附加状态快照。状态记录SR+1记录在设备状态与在日志记录条件LC+1中定义的设备状态匹配时的时间点处的设备状态。状态记录SR+1然后在事件随后在分布式设备处发生时被传送到服务提供商。当事件随后未在分布式设备处发生时,则丢弃状态记录SR+1并且使计数器递增。计数器保持跟踪有多少次日志记录条件LC+1被满足但是事件随后未在分布式设备处发生。在一个实施例中,计数器被设置在分布式设备处,本文档来自技高网...
用于监视多个分布式设备的系统

【技术保护点】
一种用于监视多个分布式设备处的事件的计算机实现的方法,每个分布式设备可操作来执行程序代码,所述方法包括:检测所述多个分布式设备中的一个分布式设备处的事件;生成第一状态记录,所述第一状态记录定义当所述事件发生时所述多个分布式设备中的所述一个分布式设备的状态;基于所述第一状态记录确定第一日志记录条件,所述第一日志记录条件定义第二状态记录将被生成的分布式设备的状态;以及将所述第一日志记录条件传送到所述多个分布式设备中的至少一个分布式设备。

【技术特征摘要】
2015.09.16 GB 1516427.01.一种用于监视多个分布式设备处的事件的计算机实现的方法,每个分布式设备可操作来执行程序代码,所述方法包括:检测所述多个分布式设备中的一个分布式设备处的事件;生成第一状态记录,所述第一状态记录定义当所述事件发生时所述多个分布式设备中的所述一个分布式设备的状态;基于所述第一状态记录确定第一日志记录条件,所述第一日志记录条件定义第二状态记录将被生成的分布式设备的状态;以及将所述第一日志记录条件传送到所述多个分布式设备中的至少一个分布式设备。2.如权利要求1所述的计算机实现的方法,还包括:当所述多个分布式设备中的至少一个分布式设备的所述状态对应于所述第一日志记录条件时,生成所述第二状态记录;检测所述多个分布式设备中的所述至少一个分布式设备处的所述事件;基于所述第二状态记录确定第二日志记录条件,所述第二日志记录条件定义第三状态记录将被生成的分布式设备的状态,所述第二日志记录条件放宽在所述第一日志记录条件中定义的所述分布式设备的所述状态;以及将所述第二日志记录条件传送到所述多个分布式设备中的至少一个分布式设备。3.如权利要求1所述的计算机实现的方法,还包括:当所述多个分布式设备中的至少一个分布式设备的所述状态对应于所述第一日志记录条件时,生成所述第二状态记录;确定所述事件将不会在所述多个分布式设备中的所述至少一个分布式设备处发生;丢弃所述第二状态记录;基于所述第一状态记录确定第三日志记录条件,所述第三日志记录条件定义第四状态记录将被生成的分布式设备的状态,所述第三日志记录条件缩窄在所述第一日志记录条件中定义的所述分布式设备的所述状态;以及将所述第三日志记录条件传送到所述多个分布式设备中的至少一个分布式设备。4.如权利要求2所述的计算机实现的方法,还包括:当所述多个分布式设备中的至少一个分布式设备的所述状态对应于所述第二日志记录条件时,生成所述第三状态记录;确定所述事件将不会在所述多个分布式设备中的所述至少一个分布式设备处发生;丢弃所述第三状态记录;基于所述第二状态记录确定第四日志记录条件,所述第四日志记录条件定义第五状态记录将被生成的分布式设备的状态,所述第四日志记录条件缩窄在所述第二日志记录条件中定义的所述分布式设备的所述状态;以及将所述第四日志记录条件传送到所述多个分布式设备中的至少一个分布式设备。5.如权利要求3或4所述的计算机实现的方法,其中,确定所述事件将不会在所述多个分布式设备中的所述至少一个分布式设备处发生包括:确定预定时间段已经过去并且所述事件尚未在所述多个分布式设备中的所述至少一个分布式设备处发生。6.如权利要求3至5中任意一项所述的计算机实现的方法,还包括:当确定所述事件将不会在所述多个分布式设备中的所述至少一个分布式设备处发生时使计数器递增。7.如权利要求1至6中任意一项所述的计算机实现的方法,还包括:确定预定时间段已经过去并且在所述第一、第二、第三或第四日志记录条件中的任意一个中定义的分布式设备的状态尚未被满足;基于所述确定在所述第一、第二、第三或第四日志记录条件中的任意一个中定义的分布式设备的状态尚未被满足来确定第五日志记录条件,所述第五日志记录条件定义第六状态记录将被生成的分布式设备的状态,所述第五日志记录条件放宽尚未被满足的在所述第一、第二、第三或第四日志记录条件中的所述任意一个中定义的所述分布式设备的所述状态;以及将所述第五日志记录条件传送到所述多个分布式设备中的至少一个分布式设备。8.如权利要求1至7中任意一项所述的计算机实现的方法,还包括:将所述状态记录传送到用户。9.如权利要求1至8中任意一项所述的计算机实现的方法,还包括:将由用户定义的日志记录条件传送到所述多个分布式设备中的至少一个分布式设备。10.如权利要求1至9中任意一项所述的计算机实现的方法,还包括:将程序代码更新传送到所述多个分布式设备中的至少一个分布式设备。11.如权利要求1至10中任意一项所述的计算机实现的方法,其中,所述事件包括所述多个分布式设备中的所述至少一个分布式设备处的所述程序代码中的错误。12.如权利要求1至11中任意一项所述的计算机实现的方法,其中,所述状态记录包括以下各项中的一个或多个:g.所述分布式设备处的函数的调用栈、函数的调用栈的一部分或者函数的多于一个调用栈;h.所述分布式设备处的调用栈上的函数的参数值;i.关于所述分布式设备的内部状态的日志记录信息;j.关于所述分布式设备的外部环境的日志记录信息;k.从与所述分布式设备通信的服务器接收到的最后的数据;以及l.存储在所述分布式设备处的存储设备中的关于所述分布式设备的状态的信息。13.如权利要求1至12中任意一项所述的计算机实现的方法,其中,用户定义所述状态记录的内容。14.如权利要求1至13中任意一项所述的计算机实现的方法,其中,在所述多个分布式设备处检测到一个或多个不同事件。15.如权利要求1至14中任意一项所述的计算机实现的方法,还包括:基于相同状态记录确定两个或更多个不同的第一、第二、第三、第四或第五日志记录条件;以及将所述两个或更多个不同的第一、第二、第三、第四或第五日志记录条件传送到所述多个分布式设备中的至少一个分布式设备。16.如权利要求1至15中任意一项所述的计算机实现的方法,其中,被传送了所述第一、第二、第三、第四或第五日志记录条件的所述多个分布式设备中的所述至少一个分布式设备可操作来执行与所述多个分布式设备中的检测到所述事件的所述一个分布式设备相同的程序代码。17.一种包括用于执行权利要求1至16中任意一项所述的方法的程序代码的计算机程序产品。18.一种用于监视多个分布式设备处的事件的装置,每个分布式设备可操作来执行程序代码,所述装置包括:状态记录模块,可操作来接收来...

【专利技术属性】
技术研发人员:J·克罗斯比M·常
申请(专利权)人:阿姆IP有限公司
类型:发明
国别省市:英国;GB

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

1