CN102521316A - 用于日志分析的模式匹配框架 - Google Patents

用于日志分析的模式匹配框架 Download PDF

Info

Publication number
CN102521316A
CN102521316A CN2011103941732A CN201110394173A CN102521316A CN 102521316 A CN102521316 A CN 102521316A CN 2011103941732 A CN2011103941732 A CN 2011103941732A CN 201110394173 A CN201110394173 A CN 201110394173A CN 102521316 A CN102521316 A CN 102521316A
Authority
CN
China
Prior art keywords
data
daily record
user interface
filtered model
projection mode
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.)
Granted
Application number
CN2011103941732A
Other languages
English (en)
Other versions
CN102521316B (zh
Inventor
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102521316A publication Critical patent/CN102521316A/zh
Application granted granted Critical
Publication of CN102521316B publication Critical patent/CN102521316B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

描述用于日志分析的模式匹配框架。在一个或多个实施方式中,经由计算设备的用户接口来接收一个或多个输入,其中这一个或多个输入描述过滤模式和投影模式,其中过滤模式指定将被匹配并被从日志中提取的数据,而投影模式指定将如何输出使用过滤模式提取的数据的至少一部分。由计算设备从过滤模式和投影模式中形成被配置成分析日志的查询。

Description

用于日志分析的模式匹配框架
背景技术
日志可以由计算设备用于各种各样的目的。例如,日志可以用于记录在软件安装期间遇到的事件,诸如错误消息等等。因而,日志可以充当被一个或多个计算设备遇到的事件的书面记录。
然而,随着计算设备的使用变得日益更为流行,被生成来描述事件的日志也可能是相应较大的。例如,用于追踪搜索引擎所遇到的事件的日志可能耗费15兆兆字节来描述在一天内遇到的事件。然而,为了分析日志而开发的传统技术可能是效率低的,并因此在面临在当前日志中可能遇到的大量信息时是不合适的。
发明内容
描述用于日志分析的模式匹配框架。在一个或多个实施方式中,经由计算设备的用户界面来接收一个或多个输入,其中这一个或多个输入描述指定将被匹配并被从日志中提取的数据的过滤模式以及指定将如何输出使用过滤模式提取的数据的至少一部分的投影模式。由计算设备从过滤模式和投影模式中形成被配置成分析日志的查询。
在一个或多个实施方式中,用户界面由计算设备输出,其中用户界面被配置成包括多个形状,其中一个或多个形状可配置为指定将利用该形状来表示的数据并且一个到另一个(one to another)被安排在用户界面中,以定义该数据的模式。由计算设备为一个或多个模式形成查询,其中这些模式利用一个到另一个的多个形状的安排以及这些形状所表示的数据来定义,该查询将被用于分析日志。
在一个或多个实施方式中,在计算设备上接收查询,该查询包括过滤模式和投影模式,其中过滤模式和投影模式中的每一种模式利用多个形状所表示的数据以及多个形状在用户界面中一个到另一个的安排来定义。由计算设备使用该查询来分析日志,该分析包括:从日志中提取与过滤模式相匹配的数据,以及输出与投影模式相匹配的提取数据。
提供这个概述部分来以简化形式介绍下面在详细描述部分中进一步描述的概念的选择。这个概述部分并不打算标识所请求保护主题的关键特征或基本特征,也不打算被用作确定所请求保护主题的范围的辅助手段。
附图说明
参考附图来描述详细描述部分。在附图中,参考数字的最左边的一个或多个数字标识该参考数字首次出现在其中的附图。在说明书和附图的不同实例中相同的参考数字的使用可以指示相似或相同的项。
图1是可操作来将模式匹配框架用于日志分析的示例实施方式中的环境的说明。
图2描述可用于指定用于查询的模式的用户界面中的可视化表示的示例实施方式。
图3描述可用于匹配日志中的多个行的用户界面中的可视化表示的示例实施方式。
图4描述可用于指定涉及分隔开日志中的任何数量的行的模式的用户界面中的可视化表示的示例实施方式。
图5描述可用于指定涉及分隔开日志中的特定数量的行的模式的用户界面中的可视化表示的示例实施方式。
图6描述可用于在基于组件的服务(CBS)(component based servicing)日志中指定模式的用户界面中的可视化表示的示例实施方式。
图7描述其中扩展图6的实施方式以捕获在其期间安装尝试失败的程序包名称和相应错误代码的示例实施方式。
图8描述其中进一步修改图7的查询来创建查询以追踪程序包的安装失败的示例实施方式。
图9描述其中进一步修改图8的查询来创建查询以追踪程序包的特定失败序列的示例实施方式。
图10描述其中进一步修改图9的查询来使用逻辑否定运算符创建查询以排除与一些模式相匹配的输入中的内容的示例实施方式。
图11描述其中修改图2的查询来创建涉及多次出现(occurrence)的查询的示例实施方式。
图12描述被配置成从输入文本中返回被绑定到过滤模式中的变量“ErrorCode(错误代码)”的多个实例的投影模式的示例实施方式。
图13描述显示另一个投影模式的示例实施方式。
图14描述显示对图13的投影模式进行的修改的示例实施方式。
图15是可以用于显示为图8的过滤模式所发现的匹配的投影模式的示例实施方式的说明。
图16是可以用于显示为图8的过滤模式所发现的匹配的另一个投影模式的示例实施方式的说明。
图17是描述其中用户界面被输出以指定将被用作查询来分析日志的一个或多个模式的示例实施方式中的程序的流程图。
图18是描述其中接收查询来分析日志的示例实施方式中的程序的流程图。
具体实施方式
综述
日志可以用于描述被各种不同的计算设备遇到的各种不同的事件。例如,这些事件的范围可以从描述软件在单个计算设备上的安装到利用服务器群进行的搜索引擎的运行等等。但是,用于分析日志的传统技术往往缺乏灵活性且是低效的,并因此不适合与可能描述广泛情况的这些不同类型的日志一起工作。
描述用于日志分析的模式匹配框架。在一个或多个实施方式中,描述允许用户指定用于诸如操作简档等等之类的日志的分析的模式(例如,二维模式)的查询语言。因而,查询语言可以被配置成支持可以用于分析描述各种各样情况的日志的模式的表达描述。在以下的讨论中,查询引擎的框架结合示例环境来描述。随后与可以被用于简化查询的开发和操纵的语言的可视化表示一起来描述框架语言(frame language)。包括说明查询语言的表达力的示例,其后跟随着可以使用示例环境等来执行的示例程序。
示例环境
图1是可操作来采用在这里描述的技术的示例实施方式中的环境100的说明。所示的环境100包括可以采用各种方式来配置的计算设备102。例如,计算设备102可以被配置为通信耦合到所示的显示设备104的计算机、笔记本计算机、移动站、娱乐设备、通信耦合到显示设备的机顶盒、无线电话、游戏控制台等等。因而,计算设备102的范围可以从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台)到具有有限的存储器和/或处理资源的低资源设备(例如,传统的机顶盒、手持游戏控制台)。此外,虽然显示单个计算设备102,但是计算设备102可以代表多个不同的设备,诸如由公司用来执行操作的多个服务器、遥控器与机顶盒组合、图像捕获设备以及被配置成捕获姿态的游戏控制台等等。
计算设备102也可以包括引起计算设备102中的硬件执行操作的实体(例如,软件),例如处理器、功能块等。例如,计算设备102可以包括计算机可读介质,其可以被配置为保持引起计算设备并且尤其引起计算设备102的硬件执行操作的指令。因而,这些指令起作用来将硬件配置成执行操作,并以这种方式导致硬件的变换来执行功能。这些指令可以利用计算机可读介质通过各种不同的配置被提供给计算设备102。
计算机可读介质的一种这样的配置是信号承载(bearing)介质,并因而被配置成诸如经由网络104发送指令(例如,作为载波)给计算设备的硬件。计算机可读介质也可以被配置成计算机可读存储介质,并因而不是信号承载介质。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器以及可以使用磁技术、光学技术和其他技术来存储指令与其他数据的其他存储设备。
用于处理日志106(在下文也被称为“日志文件”)的传统方法从开发者打开日志文件并手动检查它们之中的每一个以识别问题到采用编辑器应用的“发现”功能而各不相同。即使“发现”功能能够加速在日志文件内识别热点的处理,但是这些方法都是冗长的且容易出错。
进一步,这些传统方法并没有调节(scale)来解决大量日志文件的分析的问题,并且不适合解决模式问题。例如,涉及操作简档分析的日志106的一些更富有表达力的传统方法牵涉隐式转换日志为表格,并支持使用SQL的子集来查询它们。虽然这样的方法在提取聚集信息方面可能是强效的,但是这些方法并不适于提取模式。例如,对于来自网络(web)服务器的日志,这样的方法可以用于聚集信息或提取与特定过滤器相匹配的事件。例如:
1)由用户利用特定的IP地址浏览的页面。  
2)对于特定页面的访问者的数量。  
3)来自特定国家的访问者的数量。
但是,这些方法在描述在以下示例中显示的模式方面可能具有缺陷:
1)多少访问者以那个顺序访问了页面A、B和C?这样的查询能够在SQL中通过一系列事件使用自联接(self-join)(一个用于A-B,而另一个用于B-C)至与个别访问者相关的线程记录来构造。这个解决方案在牵涉较大的日志文件和较长序列的事件时变成计算量大的。  
2)多少访问过页面A的用户没有访问B、随后访问C或访问C、随后访问D?再一次,这样的查询通常涉及“自联接”并且是计算量大的。
因而,传统的方法并不支持用于从描述执行痕迹、操作简档、被配置成事件日志等等的日志中提取信息的一般模式匹配框架。
在一个或多个实施方式中,描述允许用户指定二维模式的查询语言。该查询语言可以将正规表达式用于在日志106内的行水平上的模式匹配。此外,该查询语言可以允许用户指定如何在日志106内相对彼此来“布置”这些个别行。
以下是涉及操作简档分析的日志106的三个示例,其中所述分析涉及更高阶模式匹配并且可以使用在这里描述的查询语言来完成:
1)考虑到来自一组设备的日志,其中有多少具有错误代码E的KBXXXXXX失败的安装尝试、其后跟随着具有错误代码E’的KBXXXXXX的安装失败、最后跟随着具有相同KB的安装成功?
2)考虑到来自一组设备的日志以及具有特定错误代码的失败的三种已知情形,隔离不适合这些已知情形的具有相同错误代码的失败的日志。  
3)考虑到来自搜索引擎的日志,潜在不愉快的用户展示什么类型的浏览模式?
说明查询构造器模块108,其代表允许用户构建查询110的功能。例如,所示的查询构造器模块108包括可视查询构造器模块112,其代表使用图形用户界面来构建查询110的功能,其中图形用户界面可以被输出,以便在显示设备104上显示。查询构造器模块108也被说明为包括文本查询构造器模块114来构建文本查询。因而,查询构造器模块108被配置成允许用户作为文本或采用在下面更详细描述的可视查询语言来操纵查询110。完全或部分开发的查询110能够作为查询文件来保存。例如,这些文件可以采用文本格式来存储查询。这些查询文件随后可以作为输入被传递到查询引擎116,以便处理。
如所示的,查询引擎116包括代表读取日志106的功能的读取器模块118。例如,读取器模块118可以被配置成读取使用SQL查询从数据库中提取的作为纯文本文件、结构化xml存储的操作简档信息等等。读取器模块118随后可以将这个数据提供给模式匹配引擎120,以便处理,诸如,从而将日志中的数据与查询110相匹配。这种处理的结果随后可以被提供给写入器模块122,以便被写入存储设备124。
写入器模块122可以采用诸如纯文本、结构化xml(具有来自过滤模式的变量名作为标签)之类的各种方式来输出匹配的模式,将结构化的结果插入数据库表格,等等。查询引擎116也被说明为包括查询解析器126,其代表对查询110(例如,输入查询文件)进行解析以便处理输入的功能。
读取器模块118也被配置成允许用户指定将被读取并被处理的日志106(例如,输入文件)的数量,这可能有助于改善可以处理该文件的速度。如下给出一些示例:
1)在输入文件中的前面“n”行上处理查询。  
2)在输入文件中的最后“n”行上处理查询。  
3)将输入文件拆分为各具有50行的大块(chunk),并随后在这些大块中的每一个上处理查询。
在一个或多个实施方式中,默认设置是处理整个输入文件,但是也可以设想其他的默认实施方式。也可能希望在一次通过(single pass through)输入数据文件中处理查询,以顾及包含相对大量数据的输入数据文件。
包含有界的“预测先行(lookahead)”的查询110可以服从(amenable)为了正被处理的框架实例而相对于输入文件中被保留在存储器中的多个行进行的最优化。另一方面,具有无界的预测先行的写的不好的查询在最坏的情况下可能导致跨越整个输入文件的匹配。设计糟糕的查询也可能发现众多的匹配,这可能导致大量的部分匹配的框架存储在存储器中。
因此,在一个或多个实施方式中,模式匹配引擎120可以将其状态写入临时文件,并输出所遇到的运行时错误。用户随后可以选择来如下面进一步描述的那样对投影模式进行一种或多种改变,并且从保存的状态中恢复查询处理,从一开始重新启动查询处理,等等。例如,如果如下面进一步描述的那样对过滤模式进行改变,用户可以从该输入的开头重新启动新查询的处理。以这种方式,模式匹配引擎可能由于查询的投影模式中不相容的投射操作而减少运行时错误的可能性。从计算的角度来看,这样的运行时错误是昂贵的,这是因为这些错误可能在已匹配了过滤模式之后出现,并且甚至有可能在已遍历(traverse)输入文件中的相对大量数据之后出现。结合涉及“框架语言”节开始的下面各节可以找到该环境的操作的进一步讨论。
一般来说,在这里描述的任何功能能够使用软件、固件、硬件(例如,固定逻辑电路)、人工处理或这些实施方式的组合来实现。在这里使用的术语“模块”、“引擎”和“功能”通常代表硬件、软件、固件或其组合。在软件实施方式的情况中,模块、功能或引擎代表指令以及执行由例如一个或多个处理器和/或功能块之类的硬件指定的操作的硬件。
框架语言
可以从两种模式即过滤模式和投影模式中形成查询。过滤模式指定将被匹配并被从输入文件中提取的数据。投影模式指定将被写入输出文件的数据。
可以被用于过滤模式的示例语法如下与相应的产生一起进行介绍。该语法的进一步定义遵循此介绍。
Figure 261273DEST_PATH_IMAGE001
由于正规表达式可以用于匹配在输入文件的行内的子串,在上面的语法中,可以将正规表达式(regex)与“string”和“int”一起视为终端。
“Str”匹配输入的行中的子串与“string”或“regex”。可选地,匹配可以被绑定到变量并稍后在过滤模式中或在投影模式中被引用。
模式(Pat)包括“Str”或与“Pat”级联的“Str”。模式与输入数据文件中的一行相匹配。
块包括标记模式(用于检测块内的第一行的模式),其后跟随着预测先行模式的列表。有界的预测先行模式涉及行,其是在与用于块的标记模式相匹配的行之后(After)的行的指定数量。另一方面,无界的预测先行模式可以匹配在与用于该块的标记模式相匹配的行之后的任何行。在实施方式中,如果没有指定“After”,则这就是默认值。此外,模式可以与输入内的行的一次或多次重复出现(Repeat)相匹配。在实施方式中,如果没有指定“Repeat”,则默认情况是一个匹配。
过滤模式(Frame)可以涉及块和框架的结合(&&)或分离(||)。过滤模式(Frame)也可以涉及框架或块模式的否定(!)。为过滤模式指定的“Occurrence”可以用于确定被返回的输入中的匹配实例的数量。在实施方式中,默认情况是提取这些匹配中的每一个,但是可以设想其他的默认情况。框架语言的可视化表示可以用于构建和操纵查询,如下面进一步描述的。
可以采用召回(recall)功能,其中过滤查询中的约束变量可以稍后在相同的查询中重新使用来自动匹配相同的内容。如在以下各节的示例中所示的,此召回功能在跨越具有共同方面(例如,错误代码、机器、用户等等)的事件构造过滤模式中是有用的。
投影模式用于控制如何在输出中显示与过滤模式相匹配的输入文件中的内容。例如,投影模式可以用来控制显示匹配内容中的哪些部分,如果有的话,以及如何在查询输出中显示这些部分。以下元素可以在构成投影模式中使用。
1)全局变量
全局变量可以用于过滤和投影模式中。全局变量的示例包括输出文件名(Outfile)、在查询处理开始时的时间戳(StartTimestamp)、在查询处理结束时的时间戳(EndTimestamp)以及当前日期(CurDate)。
2)过滤模式中的约束变量
通过使用过滤模式中的约束变量作为投影模式的一部分,可以在输出文件中显示输入文件中的数据。由于过滤模式中的变量可以与输入文件中的文本的一个以上的实例相匹配,所以约束变量可以被配置为匹配值的数组。
3)静态文本/标签
用户可以在投影模式中输入附加文本作为注释或标签。这些字符串可以“依现状(as is)”被包括在所生成的输出中。
4)聚集函数
投影模式可以支持在约束变量上使用如同COUNT、DISTINCT、SUM、AVERAGE、MIN、MAX和DATEDIFF之类的聚集函数。
5)类型投射操作
由于输入被读取为字符串,所以在一些情况中用户可能希望将一些匹配内容投射到其他数据类型。支持从字符串到日期、时间戳、整数和十进制的变换。这些在各种情况中诸如在用户对匹配内容运行聚集函数时可能是有用的。
上面的元素如下被反映在用于投影模式的示例语法中:
Figure 442648DEST_PATH_IMAGE003
注意:用于投影模式的语法可以被扩展为包括可以应用于过滤的匹配的附加功能。
如果没有明确指定投影模式,可以将过滤模式中这些框架的每一个匹配实例写入输出。该输出可以随后经受进一步分析。
框架查询的可视化表示
这一节包括如何可以使用视觉元素来代表框架查询的文本表示中的相应构造的各种不同示例中的一些示例。
过滤模式
图2描述可用于指定查询的模式的用户界面中的可视化表示的示例实施方式200。该示例实施方式示出“Str”,这是可视化表示的基本元素。
所示的元素被配置成用于检查日志106中包含子串“Error(错误)”202的行(使用regex “*Error*”),并将匹配绑定到变量“ErrorLine(错误行)”204。相同的元素可以用于通过创建“BPat”来匹配包含子串“Error”202的多个行。
图3描述可用于匹配日志中的多个行的用户界面中的可视化表示的示例实施方式300。在示例实施方式300中,说明可以用于匹配日志106中的两行的“BPat”。这在这个示例中通过将“Repeats(重复)”值302设置为“2”来执行。这种模式可以进一步进行扩展,其示例结合以下附图来描述。
图4描述可用于指定涉及分隔开日志中的任何数量的行的模式的用户界面中的可视化表示的示例实施方式400。在这个示例中,因为还没有指定“After(之后)”,所以形成无界的“预测先行”,并且两个匹配可以被分隔开任何数量的行。将被分隔开特定数量的行的匹配的示例结合以下附图来描述。
图5描述可用于指定涉及分隔开日志中的特定数量的行的模式的用户界面中的可视化表示的示例实施方式500。如所示的,该模式包括为“After”指定的“three(3)”的值502作为分隔开两种模式。因而,如果两个匹配被分隔开三个行,则不论这三行的内容如何,都找到匹配。
图6描述可用于在基于组件的服务(CBS)日志中指定模式的用户界面中的可视化表示的示例实施方式600。示例CBS日志中的以下行显示用于安装失败的日志条目的公共模式(以粗体显示的键标记):
2009-02-06 23:57:46, Error CBS Failed to resolve Package: 
Package_for_KB956391~31bf3856ad364e35~x86~~6.0.1.2. hr: 
0x80070490
在所示出的示例查询中,变量“ErrorCode”从匹配上面日志条目的行中收集CBS日志中的每一个十六进制错误代码值。
按照所示出的查询,首先识别日志文件中包含子串“Error”的行。以“Error”结束的子串没有被绑定到变量并被丢弃。以“hr:”结束的输入行的其余部分在匹配之后也被丢弃,这是因为它没有被绑定到变量。其余十六进制错误代码被绑定到变量“ErrorCode”。所示的查询也可以被扩展,以捕获失败的安装尝试的程序包名称和相应的错误代码,其示例在图7的示例实施方式中进行显示。
图8描述其中进一步修改图7的查询来创建查询以追踪程序包的安装失败的示例实施方式800。与前一样,第一模式匹配CBS日志中表示程序包安装失败的行。程序包名称被绑定到变量“Package”,并且错误代码被绑定到变量“ErrorCode”。在第二模式中,被绑定到变量“Package”的程序包名称在该模式内被用于匹配程序包名称。应注意:在这种情况下,用于指示“Package”的表示的变化是变量而不是用于匹配的字符串。即,这个模式将匹配来自具有相同或不同错误代码的相同程序包的安装失败的日志中的零行或更多行。
图9描述其中进一步修改图8的查询来创建查询以追踪程序包的特定失败序列的示例实施方式900。第一模式被配置成匹配程序包安装失败。在这种情况下,程序包名称被绑定到变量“Package(包)”,并且匹配具有错误代码0x80070002的失败的实例。该框架匹配具有0x800F0826或0x80242016作为错误代码的相同程序包的后续失败(因为在这些模式中使用变量“Package”)。
图10描述其中进一步修改图9的查询来使用逻辑否定运算符创建查询以排除与一些模式相匹配的输入中的内容的示例实施方式1000。在所示的示例中,图9的先前情形被稍微修改,以致如果需要利用0x80070002失败但利用0x800F0826或0x80242016却未失败的程序包,则找到匹配。
图11描述其中修改图2的查询来创建涉及多个事件的查询的示例实施方式1000。说明过滤模式以及相应的“Occurrences(事件)”(在这种情况中,其值为“2”)。因而,在此示例中,“内在”模式被匹配两次,以发现对于该查询的整体匹配。也可以设想各种其他的示例。
投影模式
投影模式也可以从与过滤模式中使用的视觉元素相类似的视觉元素中形成。但是,类似外观的过滤和投影模式可以暗指非常不同的底层语义。
图12描述显示被配置成从被绑定到过滤模式中的变量“ErrorCode”1202的输入文本中返回多个实例的投影模式的示例实施方式1200。如果没有匹配的话,则投影模式将返回零。通过结束聚集函数“COUNT”1204来修改投影模式,可以列出被绑定到变量“ErrorCode”1202的每一个匹配。
图13描述显示另一个投影模式的示例实施方式1300。在此示例中,被绑定到变量“EventDate”1302的实例首先作为日期值被投射。在当前日期(通过全局变量CurDate 1304可访问)与“EventDate”1302实例之间天数的差异随后使用“DateDiff”函数1306来计算。
图14描述显示对图13的投影模式进行的修改的示例实施方式1400。在此示例中,进行修改以返回自所示出的匹配事件以来最大的天数。投影模式也可以用于增添附加标签和控制如何将匹配实例写入输出文件。
现在将返回到图8的示例实施方式800。如前所述,所示的过滤模式追踪程序包的安装失败。通常,可能具有多个匹配,其中“Package”与程序包名称相匹配,而“ErrorCode”与在用于相应程序包的安装尝试期间遇到的各种错误代码相匹配。
具有可以使用投影模式来显示这些匹配的许多方式。图15是可以用于显示为图8的过滤模式发现的匹配的投影模式的示例实施方式1500的说明。所示的投影模式以如下格式来显示输出:
Package1 ErrorCode1
Package1 ErrorCode2
Package1 ErrorCode3
Package2ErrorCode1
Package2ErrorCode2
…。
图16是可以用于显示为图8的过滤模式发现的匹配的另一个投影模式的示例实施方式1500的说明。在这种情况中,将以如下格式来显示输出:
Package1
ErrorCode1
ErrorCode2
ErrorCode3
Package2
ErrorCode1
ErrorCode2
因而,投影模式可以用于进一步精炼从过滤模式中获得的结果,以控制显示“什么”以及如何“显示”它。也可以设想各种其他的示例。
示例程序
以下讨论描述可以使用先前描述的系统和设备来实施的模式匹配框架技术。这些程序中的每一个程序的各方面可以采用硬件、固件或软件或其组合来实现。这些程序被显示为一组方框,其中这些方框指定由一个或多个设备执行的操作,并且不一定限于所显示的用于利用各自的方框执行操作的顺序。在以下讨论的各部分中,分别将参考图1的环境100和图2-16的示例实施方式200-1600。
图17描述其中用户界面被输出以指定将被用作查询来分析日志的一个或多个模式的示例实施方式中的程序1700。由计算设备输出用户界面,其被配置成包括多个形状,其中一个或多个形状可配置成指定将利用该形状表示的数据并且在用户界面中一个或另一个进行安排,以定义该数据的模式(方框1702)。例如,用户界面可以包括如图2-16所示的多个方框。这些方框中的一个或多个方框可以被配置成表示将在日志中发现的特定数据,诸如错误代码等等。其他方框可以被配置成指定事件等等。各种其他的功能也可以被采用,诸如,以显示否定操作、指定将在模式的各部分之间间隔开的行数、在模式的各部分之间留下未定义的行数等等,如前所述。
一个或多个输入经由计算设备的用户界面来接收,其中这一个或多个输入描述指定将被匹配并被从日志中提取的数据的过滤模式以及指定将如何输出使用过滤模式提取的数据的至少一部分的投影模式(方框1704)。结合图2-11所描述的过滤模式可以用于定义将被视为匹配并因而从日志中提取(例如,拷贝)的数据的模式。投影模式可以用于或可以不用于进一步定义如何乃至是否将输出此数据,诸如采用什么安排来输出此数据。
由计算设备从过滤模式和投影模式中形成被配置成分析日志的查询(方框1706)。例如,图1的模式匹配引擎120可以使用过滤模式和投影模式作为查询110来分析日志108,其进一步的描述可以结合以下附图来找到。
图18描述其中接收查询来分析日志的示例实施方式中的程序1800。在计算设备上接收查询,该查询包括过滤模式和投影模式,过滤模式和投影模式中的每一种模式利用多个形状所表示的数据以及多个形状中的一个或多个在用户界面中一个到另一个的安排来定义(方框1802)。如前所述,用户可以与计算设备102所输出的用户界面交互,以指定模式。
由计算设备使用查询来分析日志(方框1804),其包括从日志中提取匹配过滤模式的数据(方框1806)以及输出所提取的与投影模式相匹配的数据(方框1808)。因而,过滤模式可以用于在日志106中定位数据,并且投影模式可以用于定义将如何输出那个数据。
结论
虽然本发明已采用特定于结构特征和/或方法动作的语言进行描述了,但是将明白:在所附的权利要求书中定义的发明不一定限于所描述的具体特征或动作。相反,这些具体特征和动作被披露为实施所请求保护的发明的示例形式。

Claims (10)

1.一种方法,包括:
经由计算设备的用户界面接收一个或多个输入,其中所述一个或多个输入描述指定将被匹配并被从日志中提取的数据的过滤模式以及指定将如何输出使用过滤模式提取的数据的至少一部分的投影模式(1704);以及
由所述计算设备从所述过滤模式和所述投影模式中形成被配置成分析日志的查询(1706)。
2.如权利要求1所述的方法,其中所述用户界面被配置为图形用户界面,所述图形用户界面被配置成输出一个或多个形状, 其中经由所述一个或多个形状,用户可以安排来提供输入。
3.如权利要求2所述的方法,其中:
所述一个或多个形状被配置成指定所述日志中将被匹配的用于各自的所述块的特定数据;
所述形状一个到另一个的安排被配置成指定将被视为过滤模式的匹配的日志中的数据的安排。
4.如权利要求2所述的方法,其中:
所述一个或多个形状被配置成指定将被输出的利用所述过滤模式从所述日志中提取的数据中的用于各自的所述块的特定数据;以及
所述形状一个到另一个的安排被配置成指定将被视为投影模式的匹配的数据在从所述日志中提取的数据中的安排。
5.如权利要求2所述的方法,其中所述用户界面被配置成指定将被绑定到利用各自的所述形状表示的相应变量的值。
6.如权利要求1所述的方法,其中利用投影模式对于将如何输出使用所述过滤模式提取的数据的至少一部分的指定包括对于是否将输出所述数据的所述部分的指定。
7.如权利要求1所述的方法,其中所述用户界面被配置成指定在所述日志中各自的所述过滤模式或投影模式的至少一部分的匹配的出现次数,以发现对于各自的所述过滤模式或投影模式的匹配。
8.一种方法,包括:
由计算设备输出用户界面,所述用户界面被配置成包括多个形状,其中一个或多个形状可配置成指定将利用所述形状表示的数据并且一个到另一个被安排在所述用户界面中,以定义所述数据的模式(1702);以及
由所述计算设备为一个或多个模式形成查询,其中利用所述多个形状一个到另一个的安排以及利用所述形状表示的数据来定义所述模式,所述查询将被用于分析日志。
9.如权利要求8所述的方法,其中所述一个或多个模式包括过滤模式,其指定将被匹配并被从所述日志中提取的数据。
10.如权利要求9所述的方法,其中所述一个或多个模式包括投影模式,其指定将如何输出使用所述过滤模式提取的数据的至少一部分。
CN201110394173.2A 2010-12-01 2011-12-01 用于日志分析的模式匹配框架 Active CN102521316B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/958,099 US9400733B2 (en) 2010-12-01 2010-12-01 Pattern matching framework for log analysis
US12/958099 2010-12-01

Publications (2)

Publication Number Publication Date
CN102521316A true CN102521316A (zh) 2012-06-27
CN102521316B CN102521316B (zh) 2015-04-08

Family

ID=46163234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110394173.2A Active CN102521316B (zh) 2010-12-01 2011-12-01 用于日志分析的模式匹配框架

Country Status (2)

Country Link
US (1) US9400733B2 (zh)
CN (1) CN102521316B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116483644A (zh) * 2023-06-25 2023-07-25 北京云枢创新软件技术有限公司 用于芯片验证测试回归的日志搜索方法、电子设备和介质

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949271B2 (en) * 2012-10-23 2015-02-03 Liebherr-Werk Nenzing Gmbh Method for monitoring a number of machines and monitoring system
JP6098413B2 (ja) * 2013-07-23 2017-03-22 富士通株式会社 分類パターン作成方法、分類パターン作成装置、および分類パターン作成プログラム
US9104573B1 (en) * 2013-09-16 2015-08-11 Amazon Technologies, Inc. Providing relevant diagnostic information using ontology rules
US9348739B2 (en) 2014-07-10 2016-05-24 International Business Machines Corporation Extraction of problem diagnostic knowledge from test cases
US9367383B2 (en) * 2014-09-26 2016-06-14 Business Objects Software Ltd. Tracing and discovering the origins and genealogy of install errors
US10671613B2 (en) * 2014-11-14 2020-06-02 Sap Se Data source binding using an OData model
US10133622B2 (en) 2014-11-24 2018-11-20 Microsoft Technology Licensing, Llc Enhanced error detection in data synchronization operations
GB2533404A (en) 2014-12-19 2016-06-22 Ibm Processing event log data
US20160210021A1 (en) * 2015-01-21 2016-07-21 Microsoft Technology Licensing, Llc Computer-Implemented Tools for Exploring Event Sequences
US10657099B1 (en) 2015-11-02 2020-05-19 Quest Software Inc. Systems and methods for transformation and analysis of logfile data
WO2017081866A1 (ja) * 2015-11-13 2017-05-18 日本電気株式会社 ログ分析システム、方法およびプログラム
US9836382B2 (en) * 2016-02-17 2017-12-05 International Business Machines Corporation Cognitive platform for troubleshooting system events
US10862737B1 (en) * 2017-07-28 2020-12-08 EMC IP Holding Company LLC Technical procedure knowledge sharing system for service issue investigation
US10698756B1 (en) * 2017-12-15 2020-06-30 Palantir Technologies Inc. Linking related events for various devices and services in computer log files on a centralized server
US10922210B2 (en) * 2019-02-25 2021-02-16 Microsoft Technology Licensing, Llc Automatic software behavior identification using execution record

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555403A (en) * 1991-11-27 1996-09-10 Business Objects, S.A. Relational database access system using semantically dynamic objects
US5701400A (en) * 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US6446086B1 (en) * 1999-06-30 2002-09-03 Computer Sciences Corporation System and method for logging transaction records in a computer system
US20030061193A1 (en) * 2001-09-24 2003-03-27 Anson David L.A. Generating a focused data set from an original data set
US20050004911A1 (en) * 2002-09-25 2005-01-06 Oracle International Corporation Graphical condition builder for facilitating database queries
US20050187911A1 (en) * 2004-02-24 2005-08-25 Microsoft Corporation Visual query
US20080221834A1 (en) * 2007-03-09 2008-09-11 General Electric Company Method and system for enhanced fault detection workflow

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2710548B2 (ja) 1993-03-17 1998-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション データを検索する方法およびブール代数文表現と図形表現を互いに変換する方法
US7788641B2 (en) 2004-03-17 2010-08-31 International Business Machines Corporation System and method for identifying concerns
EP1972093B1 (en) * 2005-12-28 2018-03-28 Telecom Italia S.p.A. A method for the automatic generation of workflow models, in particular for interventions in a telecommunication network
US7512627B2 (en) * 2005-12-30 2009-03-31 Ecollege.Com Business intelligence data repository and data management system and method
US8099664B2 (en) * 2006-03-17 2012-01-17 Microsoft Corporation Dynamic help user interface control with secured customization
US7668608B2 (en) 2006-09-01 2010-02-23 Fisher-Rosemount Systems, Inc. Graphical programming language object editing and reporting tool

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555403A (en) * 1991-11-27 1996-09-10 Business Objects, S.A. Relational database access system using semantically dynamic objects
US5701400A (en) * 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US6446086B1 (en) * 1999-06-30 2002-09-03 Computer Sciences Corporation System and method for logging transaction records in a computer system
US20030061193A1 (en) * 2001-09-24 2003-03-27 Anson David L.A. Generating a focused data set from an original data set
US20050004911A1 (en) * 2002-09-25 2005-01-06 Oracle International Corporation Graphical condition builder for facilitating database queries
US20050187911A1 (en) * 2004-02-24 2005-08-25 Microsoft Corporation Visual query
US20080221834A1 (en) * 2007-03-09 2008-09-11 General Electric Company Method and system for enhanced fault detection workflow

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116483644A (zh) * 2023-06-25 2023-07-25 北京云枢创新软件技术有限公司 用于芯片验证测试回归的日志搜索方法、电子设备和介质
CN116483644B (zh) * 2023-06-25 2023-08-25 北京云枢创新软件技术有限公司 用于芯片验证测试回归的日志搜索方法、电子设备和介质

Also Published As

Publication number Publication date
US9400733B2 (en) 2016-07-26
US20120143893A1 (en) 2012-06-07
CN102521316B (zh) 2015-04-08

Similar Documents

Publication Publication Date Title
CN102521316A (zh) 用于日志分析的模式匹配框架
US10162611B2 (en) Method and apparatus for business rule extraction
CN101609399B (zh) 基于建模的智能化网站开发系统及方法
CN102279894B (zh) 基于语义的查找、集成和提供评论信息的方法及搜索系统
JP4097263B2 (ja) ウェブアプリケーションモデル生成装置、ウェブアプリケーション生成支援方法及びプログラム
CN101165685A (zh) 用于生成动态网页的方法及装置
AU2017216248B2 (en) Systems and methods for generating electronic document templates and electronic documents
CN111125598A (zh) 数据智能查询方法、装置、设备及存储介质
CN109299074B (zh) 一种基于模板化数据库视图的数据校验方法及系统
CN114895876B (zh) 一种基于模型驱动可视化开发工业系统
Tateosian Python For ArcGIS
CN103077192A (zh) 一种数据处理方法及其系统
Alexander et al. Software Design and Prototyping using me too
Dong et al. Teledata: data mining, social network analysis and statistics analysis system based on cloud computing in telecommunication industry
CN111176901B (zh) 一种hdfs删除文件恢复方法、终端设备及存储介质
EP2551812A2 (en) Augmented report viewing
CN115840775A (zh) 数据的提取方法、装置、服务器及存储介质
Nisha et al. Searching quranic verses: A keyword based query solution using. net platform
Bernardi et al. The re-uwa approach to recover user centered conceptual models from web applications
CN1841372A (zh) 帮用户根据非结构化信息源形成结构化图表的方法和设备
Su et al. KaitoroCap: A document navigation capture and visualisation tool
O'Neil et al. Oracle Data Warehousing
CN116719986B (zh) 基于Python的数据抓取方法、装置、设备及存储介质
CN108762745B (zh) 业务的脚本生成方法及装置
JP4181330B2 (ja) 要約作成プログラム及びシステム並びにコンピュータによる要約作成方法

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150612

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150612

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.