用于管理日志数据的方法、设备和程序产品与流程

未命名 07-14 阅读:127 评论:0


1.本公开的各实现方式涉及日志管理,更具体地,涉及用于管理应用系统的日志数据方法、设备和计算机程序产品。


背景技术:

2.随着计算机技术的发展,目前已经出现了例如存储系统、计算系统、通信系统等多种类型的应用系统。为了监视应用系统的运行状态,可以为应用系统生成日志数据。可以存储日志数据以便用于检测应用系统的异常,等等。将会理解,在应用系统的运行期间可能会生成大量日志数据。一方面,存储日志数据将会占用大量存储空间。另一方面,在搜索与特定异常相关联的日志数据时,不得不在海量日志数据中进行搜索。此时,如何以更为有效的方式管理日志数据,成为一个研究热点。


技术实现要素:

3.因而,期望能够开发并实现一种以更为有效的方式来管理日志数据的技术方案。期望该技术方案能够与已有的日志管理方式兼容,并且在不需要更新应用系统的硬件配置的情况下管理日志数据。
4.根据本公开的第一方面,提供了一种用于管理日志数据的方法。在该方法中,接收描述应用系统在目标时间点的状态的日志数据。确定日志数据的等级是否满足预定等级。响应于确定日志数据的等级满足预定等级,将与目标时间点相邻的预定范围内的日志数据存储至应用系统日志存储库,预定范围指示期望被存储的日志数据的数量。
5.根据本公开的第二方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述设备执行动作。所述动作用于执行根据本公开的第一方面的方法。
6.根据本公开的第三方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的第一方面的方法。
附图说明
7.结合附图并参考以下详细说明,本公开各实现方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实现方式。在附图中:
8.图1示意性示出了其中可以实现本公开的示例性实现方式的用于管理应用系统的日志的框图;
9.图2示意性示出了根据本公开的示例性实现方式的用于管理应用系统的日志的框图;
10.图3示意性示出了根据本公开的示例性实现方式的用于管理日志的方法的流程
图;
11.图4示意性示出了根据本公开的示例性实现方式的日志数据流的框图;
12.图5示意性示出了根据本公开的示例性实现方式的日志队列的框图;
13.图6示意性示出了根据本公开的示例性实现方式的用于管理日志的方法的流程图;以及
14.图7示意性示出了根据本公开的示例性实现的用于管理日志的设备的框图。
具体实施方式
15.下面将参照附图更详细地描述本公开的优选实现。虽然附图中显示了本公开的优选实现,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
16.在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
17.为了方便描述起见,首先参见图1描述有关管理日志数据的应用环境。图1示意性示出了其中可以实现本公开的示例性实现方式的用于管理应用系统的日志的框图100。如图1所示,可以连续监视应用系统110的状态,并且生成在多个时间点的日志130。生成日志130的速度可以根据应用系统110的类型而有所不同。例如,假设某个应用系统中的操作的时间周期较短,则可以以较高的速度生成日志130;假设某个应用系统中的操作的时间周期较长,则可以以较低的速度生成日志130。
18.按照应用系统110的状态不同,可以将日志130划分为不同的等级。例如,按照应用系统110中的异常的严重程度从高到低的顺序,日志130可以被划分为如下类型:错误,表示应用系统110中出现可能严重影响应用系统的健康状况的事件;警报,表示应用系统110中出现可能影响应用系统的健康状况的事件;信息,表示应用系统110的常规运行状态;以及调试,表示用于跟踪应用系统110的更多调试状态的信息。可以将生成的日志130存储至日志存储库140,以便以持久方式存储日志数据。
19.将会理解,上述类型仅仅是示意性的,根据本公开的一个示例性实现方式,可以将日志130划分为更多或者更少的类型。例如,日志的类型可以包括:紧急、错误、警报、信息、以及调试。通常而言,随着应用系统110的运行,日志数据的总量将会越来越大,这导致存储和管理日志数据所涉及的各种资源不断增加。因而期望以更为有效的方式来管理日志数据。
20.目前已经提出了用于降低日志的数据量的技术方案。在一个技术方案中,可以降低生成日志130的频率。例如,将生成日志130的频率从每秒2次降低至每秒1次,这可以将日志的数据量降低为之前的一半。然而,频率的降低导致日志130的精度降低,因而不利于维护应用系统110的正常运行。在另一技术方案中,可以仅存储严重程度高于预定等级的日志(也即,与异常状态相关联的日志)。例如,可以仅存储“错误”等级和“警报”等级的数据,这
导致日志数据并不完整和连续。然而,这样日志数据将会增加故障诊断的难度,由此不利于维护应用系统110的健康运行。
21.为了至少部分地解决上述问题,根据本公开的一个示例性实现方式,提出了一种管理日志数据的技术方案。根据本公开的一个示例性实现方式,可以连续地接收并缓存应用系统110的日志数据(包括全部等级的日志数据),并且在发现日志数据涉及异常(例如,高于预定等级)时,将与应用系统110中出现异常的时间点相邻的预定范围内的日志存储至日志存储库140。利用本公开的示例性实现方式,可以仅向日志存储库140写入与异常相关联的日志(例如,异常之前和/或异常之后的预定范围内的日志)。如果应用系统110长期处于正常状态(也即,日志的等级低于预定等级),则不必向日志存储库140写入有关正常状态的日志数据。
22.将会理解,在此“相邻的预定范围”可以包括以下至少任一项:出现异常的时间点之前的预定范围以及该时间点之后的预定范围。以此方式,一方面可以降低被写入日志存储库140的日志数据的数量,另一方面还可以确保所写入的日志数据能够充分反映异常之前、当时和/或之后的应用系统110的状态。由此,可以便于查找应用系统110的异常原因进而进行修复。
23.首先参见图2描述根据本公开的一个示例性实现方式的概要,该图2示意性示出了根据本公开的示例性实现方式的用于管理应用系统110的日志130的框图200。如图2所示,随着应用系统110的运行,可以不断地生成日志130,此时日志130可以是用于连续监视应用系统110的状态的日志数据流中的日志。可以利用日志队列210来缓存日志130,例如,日志队列210可以按照先进先出的方式来缓存在不同时间点生成的多个日志。可以将日志队列210的大小设置为与预定范围相等,以便存储所期望容量的日志数据。
24.根据本公开的一个示例性实现方式,可以基于多种方式来表示预定范围。例如,可以基于以下至少任一项来表示预定范围:预定时间间隔、预定日志数量、以及日志数据的预定容量。具体地,可以基于预定时间间隔δt来表示预定范围。假设当前时间点为t_now,则δt表示期望缓存在当前时间点之前的δt(即,时间点t
now-δt和t_now之间的时间段)内生成的日志数据。例如,可以设置δt=30秒(或者其他数值)。此时,日志队列210中的内容可以随着当前时间的变化而不断地更新。例如,可以以滑动窗口方式存储当前时间点之前的时间段δt内生成的一个或多个日志数据。将会理解,此时日志队列210中的日志数量将取决于日志数据的生成速度。生成速度越快则日志队列210的长度越大,生成速度越慢则日志队列210的长度越小。
25.根据本公开的一个示例性实现方式,可以基于预定日志数量n来表示预定范围。例如,可以将日志队列210的长度设置为预定数量n(例如,n=100,或者其他数值)。此时,日志队列210中的内容可以随着当前时间的变化来不断地更新。例如,以滑动窗口方式存储当前时间点之前的n个日志数据。
26.根据本公开的一个示例性实现方式,可以基于预定容量来表示预定范围。例如,可以将日志队列210的大小设置为预定容量,例如100k(或者其他数值)。此时,日志队列210中的内容可以随着当前时间的变化来不断地更新。假设每个日志数据大小为1k,则日志队列210可以以滑动窗口方式存储当前时间点之前的100(100k/1k=100)个日志数据。
27.为了便于描述起见,在下文中将仅以预定时间间隔为示例描述基于日志队列210
来管理日志数据的更多细节。根据本公开的一个示例性实现方式,可以基于多种方式来设置预定范围的数值。对于时间间隔δt而言,例如,可以基于应用系统生成日志数据的速度来设置时间间隔δt。假设生成速度较快,则在单位时间长度内将会生成大量日志数据,此时可以将时间间隔δt设置为较小的数值。假设生成速度较慢,则在单位时间长度内将会生成少量日志数据,此时可以将时间间隔δt设置为较大的数值。
28.根据本公开的一个示例性实现方式,可以基于应用系统110中的操作的时间周期来设置时间间隔δt。假设操作周期较长,则在应用系统110中需要较长时间才能完成一个操作。此时,为了完整地监视与一个操作相关联的各种信息,可以将时间间隔δt设置为较大的数值。假设操作周期较短,则仅需较短时间即可完成一个操作。此时,可以将时间间隔δt设置为较小的数值。根据本公开的一个示例性实现方式,可以基于日志存储库140的容量来设置时间间隔δt。假设容量较大,则该日志存储库140可以存储大量日志数据。此时,可以将时间间隔δt设置为较大的数值。假设容量较小,则可以将时间间隔δt设置为较小的数值。
29.上文已经描述了用于缓存日志的日志队列210的具体细节。在下文中,将描述如何基于日志队列210来管理日志130。如图2所示,随着时间的推移,日志队列210可以以滑动窗口方式存储当前时间点之前的δt内的日志212。可以设置预定等级230,该预定等级230表示触发向日志存储库140写入日志数据的阈值等级。换言之,只有当检测到当前日志数据的等级满足(高于或者等于)预定等级230时,向日志存储库140中存储当前日志数据和被缓存的日志数据。
30.根据本公开的一个示例性实现方式,预定等级230可以被设置为错误、警报、信息、以及调试中的任一项,例如可以将预定等级230设置为“警报”。可以由管理器220将接收到的日志数据(例如,日志数据“a”)的等级与预定等级230进行比较,并且确定是否向日志存储库140存储相应的日志数据。当管理器220检测到日志数据“a”的等级高于或者等于“警报”时,则向日志存储库140存储日志数据“a”以及日志数据“a”的时间点(例如,“t_a”)之前的δt内的日志数据。以此方式,不必一直向日志存储库140写入较低等级(例如,“信息”和“调试”)的日志数据,因而可以节省日志存储库140的存储空间。
31.进一步,管理器220还可以将时间点“t_a”之后的预定范围(例如,时间间隔δt)内的数据存储至日志存储库140。将会理解,在此日志130是用于连续监视应用系统110的运行状态的日志数据流。在目标时间点之后,新的日志数据将会随着时间的流逝陆续到来。此时,管理器220可以将时间点“t_a”之后的δt内的新的日志数据写入日志存储库140。如果在时间点“t_a”之后的δt内没有出现等级高于预定等级230的新的日志数据,则针对日志数据“a”的处理结束。此时,在时间点“t_a”处、以及该时间点“t_a”之前和之后的时间间隔δt(也即,t_a-δt至t_a+δt)内的日志都被写入至日志存储库140。
32.根据本公开的一个示例性实现方式,如果在时间点“t_a”之后的δt内再次出现等级高于预定等级230的新的日志数据,则可以将该新的日志数据作为另一待处理日志数据进行处理。例如,可以针对该新的日志数据执行上文描述的方法300。
33.利用本公开的示例性实现方式,可以仅向日志存储库140存储其等级满足预定等级230的日志数据、以及该日志数据之前(和/或和之后)的预定范围内的日志数据。以此方式,日志存储库140中的日志数据包括异常情况当时、之前和/或之后的全部等级的日志数
据。相对于已有技术方案中的仅保留具有较高等级的日志数据而言,保留异常日志数据相关的全部等级的日志数据可以保留应用系统110的更多细节,进而可以为故障诊断和修复提供更多依据。
34.在下文中,参见图3描述根据本公开的一个示例性实现方式的更多细节。图3示意性示出了根据本公开的示例性实现方式的用于管理日志的方法300的流程图。在框310处,接收描述应用系统110在目标时间点的状态的日志数据。将会理解,在此的日志数据可以是用于连续监视应用系统110的状态的日志数据流中的日志数据。参见图4描述有关日志数据流的更多细节。
35.图4示意性示出了根据本公开的示例性实现方式的日志数据流的框图400。如图4所示,日志数据流410可以包括在不同时间点采集的大量日志。例如,按照生成日志的频率,在时间点t0至t3可以分别生成日志420、422、424、426,在后续的每个时间点可以生成一个日志。例如,在时间点tn-2和tn-1可以分别生成日志430和432,并且在未来的时间点tn和tn+1等可以分别生成日志434、436等等。随着数据量的更新,可以不断地处理新生成的日志。例如,在时间点tn-1,可以处理日志432。利用本公开的示例性实现方式,可以连续不断地处理实时生成的每个日志,进而准确地记录与异常状态相关的全部类型的日志数据。
36.返回图3,在框320处,可以确定日志数据的等级是否满足预定等级230。根据本公开的一个示例性实现方式,应用系统110的管理员可以指定期望的等级。在已经指定预定等级230之后,可以仅向日志存储库140存储等级满足预定等级230的日志数据。根据本公开的一个示例性实现方式,“满足”可以表示“大于或者等于”。根据本公开的另一示例性实现方式,“满足”可以表示“大于”。
37.继续参见图3,在框330处,响应于确定日志数据的等级满足预定等级230,将与目标时间点相邻的预定范围内的日志数据存储至应用系统110的日志存储库140。在此,预定范围可以表示为时间间隔δt,以便指示期望被存储的日志数据的数量。根据本公开的一个示例性实现方式,可以在指定的存储空间(例如,日志队列210)中缓存目标时间点之前的预定范围内的日志数据。
38.为了便于管理被缓存的日志数据,可以使用日志队列210来用于按照时间顺序存储至少一个日志数据。根据本公开的一个示例性实现方式,日志队列210的容量不低于预定范围。例如,可以将日志队列210的容量设置为与预定范围相等,以便容纳期望存储的预定范围内的全部日志数据。继续上文的示例,日志队列210的应当至少容纳在时间间隔δt内生成的全部日志。假设在每个时间单位生成一个日志并且δt被设置为2个时间单位,则日志队列的长度可以被设置为2。参见图5描述有关日志队列210的更多细节。将会理解,上文中的日志队列的长度仅仅是示意性的。根据本公开的一个示例性实现方式,可以不限制日志队列的长度。备选地和/或附加地,可以将日志队列的长度设置为日志生成速度
×
时间的预定范围。
39.图5示意性示出了根据本公开的示例性实现方式的日志队列的框图500。如图5所示,日志队列210可以包括当前时间点之前的δt内生成的日志。假设δt被设置为2个时间单位,则在当前时间点tn处,日志队列210可以包括日志430和432。将会理解,图5仅仅示意性示出了一个简化示例,根据本公开的一个示例性实现方式,日志队列210可以容纳更多的日志数据。假设生成日志的频率为每秒2个,并且期望存储异常情况之前30秒内的日志数
据,则此时日志队列210的长度可以被设置为:2*30=60。利用本公开的示例性实现方式,可以基于日志的生成速度和期望跟踪的时间长度,来灵活地确定日志队列210的长度。
40.根据本公开的一个示例性实现方式,可以使用日志队列210存储异常情况之前的日志数据。将会理解,日志队列210仅用于存储不满足预定等级的日志数据。因而,在将日志数据写入日志队列210之前,应当首先判断日志数据是否满足预定等级。如果确定日志数据的等级不满足预定等级230,可以将日志数据附加至应用系统110的日志队列210。利用本公开的示例性实现方式,日志队列210可以缓存预定范围内的日志数据,以便在出现异常情况时将缓存的日志数据存储至日志存储库140。
41.将会理解,在此的日志队列210可以按照先进先出的方式来管理,并且只存储时间范围δt内的最新的日志。如果确定日志队列210超过预定范围,也即日志队列的头部位置的给定日志数据的时间与当前时间之间的差异超过预定范围,从日志队列210移除给定日志数据。参见图5描述更新日志队列210的更多细节。如图5所示,在时间点tn,日志队列210包括日志430和432。在时间点tn+1,日志队列210头部的日志430的时间与当前时间之间的差异为(tn+1)-(tn-2)=3>2,因而应当被移除。此时,日志434被附加至日志队列210末端,并且日志队列210在时间点tn+1时包括日志432和434。利用本公开的示例性实现方式,可以确保日志队列210始终包括可能将被写入至日志存储库140的当前时间点之前的最近的日志数据。
42.将会理解,上文仅示意性示出了当以预定时间间隔表示预定范围时用于更新日志队列210的情况。当以预定日志数量来表示预定范围时,可以在日志队列210中的日志数量超过该预定日志数量时,更新日志队列210。当以预定容量来表示预定范围时,可以在日志队列210的容量超过该预定容量时,更新日志队列210。
43.根据本公开的一个示例性实现方式,在已经将日志队列210中的数据写入日志存储库140之后,可以清空日志队列210。此时,日志队列210可以用于存储即将到来的日志数据。备选地和/或附加地,可以不清空日志队列210。此时,在向日志存储库140写入时,可以基于“增量”方式执行写入。换言之,不向日志存储库140写入日志队列210中的重复日志数据(也即已经被写入日志存储库140的日志数据)。
44.将会理解,图5仅以示例方式示出了日志队列210的常规情况。在图5所示的常规情况以外,还可以存在特殊情况。例如,应用系统110可能在启动后的第一个时间点t0出现异常,此时日志队列210为空。在此特殊情况下,可以向日志存储库140存储异常情况当时和之后的预定范围内的日志。又例如,应用系统110可能在启动后的时间范围δt之内出现异常,此时日志队列210中的日志的时间范围小于δt。在此情况下,可以向日志存储库140存储日志队列210中的日志、异常情况当时和之后的预定范围内的日志。
45.根据本公开的一个示例性实现方式,可以将出现异常情况之后的预定时间范围内的日志数据存储至日志数据库140。此时,无论后续日志数据的等级如何,都将目标时间点之后的预定范围内的后续日志数据存储至日志存储库。将会理解,目标时间点之后的预定范围可以与上文描述的目标时间点之前的预定范围相同,也可以不同。为了便于描述,目标时间点之后的预定范围可以被设置为δt。根据本公开的一个示例性实现方式,如果应用系统110在目标时间点之后不再生成日志(或者停机),则此时在目标时间点之后不存在后续日志数据。
46.根据本公开的一个示例性实现方式,处理后续日志数据可以涉及两种情况:后续日志数据的等级满足预定等级230或者不满足预定等级230。当后续日志数据的等级满足预定等级230时,可以将该后续数据作为新的待处理数据,并且针对该新的待处理数据执行上文描述的方法300。
47.根据本公开的一个示例性实现方式,当后续日志数据的等级不满足预定等级230时,可以确定日志数据与满足预定等级的先前日志数据之间的距离。如果确定该距离未超过预定范围,则将日志数据存储至日志存储库140。以此方式,可以将异常情况之后的时间间隔δt之内的日志数据存储至日志存储库140。换言之,可以在无需向日志队列210缓存日志的情况下,将异常情况之后的预定范围内的日志数据直接存储至日志存储库140。
48.根据本公开的一个示例性实现方式,如果确定距离超过预定范围,则表示针对已经出现的异常情况的处理已经结束。因而,如果确定距离超过预定范围,则将日志数据附加至日志队列210。此时,日志队列210可以继续缓存可能需要被写入日志存储库140的潜在日志,以便当出现异常情况时,执行写入。
49.上文已经描述了有关管理日志的各种细节。在下文中,将参见图6描述利用日志队列210管理日志的整体流程。图6示意性示出了根据本公开的示例性实现方式的用于管理日志的方法600的流程图。如图6所示,在框610处可以接收当前日志。在框620处,可以记录日志的时间戳t_now。在框630处,可以从日志队列210中移除时间戳在δt以外的日志。换言之,可以基于上文描述的先进先出方式更新日志队列210。
50.进一步,在框640处,可以确定当前日志的等级是否满足预定等级230。如果判断结果为“是”,则方法600前进至框650处。可以将当前日志的时间戳记录为t_latest,以便表示最新异常情况的时间戳。在框652处,可以将日志队列210中的日志存储至日志存储库140。换言之,该步骤可以将异常情况之前的预定范围内的日志存储至日志存储库140。继而,方法600前进至框660以便将当前日志写入日志存储库140。此时,针对当前日志的处理结束,并且日志存储库140包括异常情况之前的日志(也即,日志队列中的日志)和异常情况的日志(也即,当前日志)。
51.如果在框640处的判断结果为“否”,方法600前进至框670,以便比较当前日志的时间戳与最新异常情况的时间戳。如果t_now

t_latest<=δt,这表示当前日志在最新异常情况之后的时间间隔δt之内。此时,方法600前进至框660处,以便将当前日志写入日志存储库140。此时,针对当前日志的处理结束,并且此时日志存储库140包括异常情况之前的日志(时间间隔δt之内的)、异常情况的日志、以及异常情况之后的日志(时间间隔δt之内的)。
52.如果在框670处的判断结果为“否”,则方法600前进至框672,以便将当前日志添加至日志队列210。此步骤表示,当前日志位于异常情况之后的时间间隔δt之外,因而应当被添加至日志队列210。换言之,此时日志队列210缓存的日志可以用于未来可能出现异常情况。当出现异常情况时,可以直接将日志队列210中的日志写入日志存储库140。当未出现异常情况时,可以以先进先出的方式更新日志队列210。根据本公开的一个示例性实现方式,可以重复执行如图6所示的方法600,以便处理后续接收到的每个日志。
53.利用本公开的示例性实现方式,可以在异常情况之前预先缓存预定范围内的日志数据。一旦出现异常情况,则可以将缓存的数据直接写入日志存储库140。以此方式,一方面
可以确保存储异常情况之前的预定范围内的全部类型的日志数据,另一方面可以仅向日志存储库140写入异常情况相关的日志数据,进而节省日志存储库140的存储空间。
54.在上文中已经参见图2至图6详细描述了根据本公开的方法的示例,在下文中将描述相应的装置的实现。根据本公开的示例性实现,提供了一种用于管理日志数据的装置。该装置包括:接收模块,配置用于接收描述应用系统在目标时间点的状态的日志数据。确定模块,配置用于确定所述日志数据的等级是否满足预定等级。存储模块,配置用于响应于确定所述日志数据的所述等级满足所述预定等级,将与所述目标时间点相邻的预定范围内的日志数据存储至所述应用系统的日志存储库,所述预定范围指示期望被存储的日志数据的数量。根据本公开的示例性实现方式,上述装置可以进一步包括用于执行方法300的其他步骤的模块。
55.图7示意性示出了根据本公开的示例性实现的用于管理存储系统的设备700的框图。如图所示,设备700包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序指令,来执行各种适当的动作和处理。在ram 703中,还可存储设备700操作所需的各种程序和数据。cpu 701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。
56.设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
57.上文所描述的各个过程和处理,例如方法300,可由处理单元701执行。例如,在一些实现中,方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实现中,计算机程序的部分或者全部可以经由rom 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序被加载到ram 703并由cpu 701执行时,可以执行上文描述的方法300的一个或多个步骤。备选地,在其他实现中,cpu 701也可以以其他任何适当的方式被配置以实现上述过程/方法。
58.根据本公开的示例性实现,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行动作。该动作包括:接收描述应用系统在目标时间点的状态的日志数据;确定日志数据的等级是否满足预定等级;以及响应于确定日志数据的等级满足预定等级,将与目标时间点相邻的预定范围内的日志数据存储至应用系统的日志存储库,预定范围指示期望被存储的日志数据的数量。
59.根据本公开的一个示例性实现方式,预定范围包括目标时间点之前的预定范围,并且该动作进一步包括:响应于确定日志数据的等级不满足预定等级,将日志数据附加至应用系统的日志队列,日志队列用于按照时间顺序存储至少一个日志数据。
60.根据本公开的一个示例性实现方式,将日志数据附加至日志队列包括:确定日志数据与满足预定等级的先前日志数据之间的距离;以及响应于确定距离超过预定范围,将日志数据附加至日志队列。
61.根据本公开的一个示例性实现方式,该动作进一步包括:响应于确定距离未超过
预定范围,将日志数据存储至日志存储库。
62.根据本公开的一个示例性实现方式,预定范围包括目标时间点之后的预定范围,以及该动作进一步包括:响应于确定日志数据的等级满足预定等级,将目标时间点之后的预定范围内的后续日志数据存储至日志存储库。
63.根据本公开的一个示例性实现方式,日志数据是用于连续监视应用系统的状态的日志数据流中的日志数据,并且该动作响应于日志数据流的更新而被执行。
64.根据本公开的一个示例性实现方式,该动作进一步包括:响应于确定日志队列超过预定范围,从日志队列移除日志队列头部的给定日志数据。
65.根据本公开的一个示例性实现方式,日志队列的容量不低于预定范围。
66.根据本公开的一个示例性实现方式,预定范围包括以下至少任一项:预定时间间隔、预定日志数量、以及日志数据的预定容量。
67.根据本公开的一个示例性实现方式,预定范围是基于以下至少任一项来设置的:应用系统生成日志数据的速度、应用系统中的操作的时间周期、以及日志存储库的容量。
68.根据本公开的示例性实现,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的方法。
69.根据本公开的示例性实现,提供了一种计算机可读介质。计算机可读介质上存储有机器可执行指令,当机器可执行指令在被至少一个处理器执行时,使得至少一个处理器实现根据本公开方法。
70.本公开可以是方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
71.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
72.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
73.用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的
任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实现中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
74.这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
75.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
76.也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
77.附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
78.以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。

技术特征:
1.一种用于管理日志数据的方法,包括:接收描述应用系统在目标时间点的状态的日志数据;确定所述日志数据的等级是否满足预定等级;以及响应于确定所述日志数据的所述等级满足所述预定等级,将与所述目标时间点相邻的预定范围内的日志数据存储至所述应用系统的日志存储库,所述预定范围指示期望被存储的日志数据的数量。2.根据权利要求1所述的方法,其中所述预定范围包括所述目标时间点之前的预定范围,并且所述方法进一步包括:响应于确定所述日志数据的所述等级不满足所述预定等级,将所述日志数据附加至所述应用系统的日志队列,所述日志队列用于按照时间顺序存储至少一个日志数据。3.根据权利要求2所述的方法,其中将所述日志数据附加至所述日志队列包括:确定所述日志数据与满足所述预定等级的先前日志数据之间的距离;以及响应于确定所述距离超过所述预定范围,将所述日志数据附加至所述日志队列。4.根据权利要求3所述的方法,进一步包括:响应于确定所述距离未超过所述预定范围,将所述日志数据存储至所述日志存储库。5.根据权利要求1所述的方法,其中所述预定范围包括所述目标时间点之后的预定范围,以及所述方法进一步包括:响应于确定所述日志数据的所述等级满足所述预定等级,将所述目标时间点之后的所述预定范围内的后续日志数据存储至所述日志存储库。6.根据权利要求1所述的方法,其中所述日志数据是用于连续监视所述应用系统的所述状态的日志数据流中的日志数据,并且所述方法响应于所述日志数据流的更新而被执行。7.根据权利要求1所述的方法,进一步包括:响应于确定所述日志队列超过所述预定范围,从所述日志队列移除所述日志队列的头部位置的给定日志数据。8.根据权利要求1所述的方法,其中所述日志队列的容量不低于所述预定范围。9.根据权利要求8所述的方法,其中所述预定范围包括以下至少任一项:预定时间间隔、预定日志数量、以及日志数据的预定容量。10.根据权利要求9所述的方法,其中所述预定范围是基于以下至少任一项来设置的:所述应用系统生成日志数据的速度、所述应用系统中的操作的时间周期、以及所述日志存储库的容量。11.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述设备执行动作,所述动作包括:接收描述应用系统在目标时间点的状态的日志数据;确定所述日志数据的等级是否满足预定等级;以及响应于确定所述日志数据的所述等级满足所述预定等级,将与所述目标时间点相邻的预定范围内的日志数据存储至所述应用系统的日志存储库,所述预定范围指示期望被存储的日志数据的数量。12.根据权利要求11所述的设备,其中所述预定范围包括所述目标时间点之前的预定
范围,所述动作进一步包括:响应于确定所述日志数据的所述等级不满足所述预定等级,将所述日志数据附加至所述应用系统的日志队列,所述日志队列用于按照时间顺序存储至少一个日志数据。13.根据权利要求12所述的设备,其中将所述日志数据附加至所述日志队列包括:确定所述日志数据与满足所述预定等级的先前日志数据之间的距离;以及响应于确定所述距离超过所述预定范围,将所述日志数据附加至所述日志队列。14.根据权利要求13所述的设备,其中所述预定范围包括所述目标时间点之后的预定范围,以及所述动作进一步包括:响应于确定所述距离未超过所述预定范围,将所述日志数据存储至所述日志存储库。15.根据权利要求11所述的设备,其中所述动作进一步包括:响应于确定所述日志数据的所述等级满足所述预定等级,将所述目标时间点之后的所述预定范围内的后续日志数据存储至所述日志存储库。16.根据权利要求11所述的设备,其中所述日志数据是用于连续监视所述应用系统的所述状态的日志数据流中的日志数据,并且所述动作响应于所述日志数据流的更新而被执行。17.根据权利要求11所述的设备,其中所述动作进一步包括:响应于确定所述日志队列超过所述预定范围,从所述日志队列移除所述日志队列头部的给定日志数据,以及其中所述日志队列的容量不低于所述预定范围。18.根据权利要求17所述的设备,其中所述预定范围包括以下至少任一项:预定时间间隔、预定日志数量、以及日志数据的预定容量。19.根据权利要求18所述的设备,其中所述预定范围是基于以下至少任一项来设置的:所述应用系统生成日志数据的速度、所述应用系统中的操作的时间周期、以及所述日志存储库的容量。20.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令用于执行根据权利要求1-10中的任一项所述的方法。

技术总结
本公开涉及用于管理日志数据的方法、设备和程序产品。在一种方法中,接收描述应用系统在目标时间点的状态的日志数据。确定日志数据的等级是否满足预定等级。响应于确定日志数据的等级满足预定等级,将与目标时间点相邻的预定范围内的至少一个日志数据存储至应用系统的日志存储库,预定范围指示期望被存储的日志数据的数量。提供了相应的设备和计算机程序产品。利用上述示例性实现,可以降低被写入日志存储库的日志数据的数量,并且还可以确保被写入的日志数据能够充分反映异常前后的应用系统的状态。统的状态。统的状态。


技术研发人员:刘霄 郑颖妍 张俊毅 王友荣 罗晓炜 刘恒 周春娟 刘晓琴
受保护的技术使用者:戴尔产品有限公司
技术研发日:2021.12.30
技术公布日:2023/7/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐