CN116194894A - 原生云应用程序的故障定位 - Google Patents

原生云应用程序的故障定位 Download PDF

Info

Publication number
CN116194894A
CN116194894A CN202180057396.1A CN202180057396A CN116194894A CN 116194894 A CN116194894 A CN 116194894A CN 202180057396 A CN202180057396 A CN 202180057396A CN 116194894 A CN116194894 A CN 116194894A
Authority
CN
China
Prior art keywords
error
ordering
computer
logs
event
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.)
Pending
Application number
CN202180057396.1A
Other languages
English (en)
Inventor
A·M·帕拉德卡尔
P·阿格瓦尔
A·曼达尔
A·古普塔
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN116194894A publication Critical patent/CN116194894A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
    • H04L41/0661Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本文提供了用于原生云应用程序的故障定位的方法、系统和计算机程序产品。一种计算机实现的方法,包括:通过处理针对至少一个系统的事件相关警报的一个或多个特性来对所述事件相关警报进行分类;至少部分地基于所述事件相关警报的所述分类来获取并处理多个应用程序日志;至少部分地基于所述多个应用程序日志的所述处理,在所述多个应用程序日志中识别错误日志;以及至少部分地基于所述错误日志的所述排序来执行至少一个自动化动作。

Description

原生云应用程序的故障定位
背景技术
本申请一般涉及信息技术,并且尤其涉及发行管理技术。更具体地,异常检测涉及识别事件集合中的潜在问题和/或异常事件,并且故障定位涉及缩小已经检测到的问题的潜在原因集合。
发明内容
本发明实施例中,提供了云本机应用程序的故障定位技术。一种示例性的计算机实现的方法可以包括:通过处理针对至少一个系统的事件相关警报的一个或多个特性来对所述事件相关警报进行分类;以及至少部分地基于所述事件相关警报的所述分类来获取并处理多个应用程序日志。该方法还包括至少部分地基于多个应用程序日志的处理来在多个应用程序日志中识别错误日志,使用一个或多个优先化技术来对错误日志进行排序,以及至少部分地基于错误日志的排序来执行至少一个自动化动作。
本发明的另一实施例或其元素可以以有形地体现计算机可读指令的计算机程序产品的形式来实现,这些指令在被实现时使计算机执行如本文描述的多个方法步骤。此外,本发明的另一个实施例或其元件可以以系统的形式实现,所述系统包括存储器和至少一个处理器,所述至少一个处理器耦合到所述存储器并且被配置为执行所述方法步骤。更进一步,本发明的另一实施例或其元素能够以用于执行本文描述的方法步骤的装置或其元素的形式来实现;该装置可以包括硬件模块或硬件和软件模块的组合,其中,软件模块被存储在有形的计算机可读存储介质(或多个这样的介质)中。
本发明的这些和其他目的、特征和优点将从以下将结合附图阅读的本发明的说明性实施例的详细描述中变得明显。
附图说明
图1是示出根据本发明的示例性实施例的系统架构的示图;
图2是示出根据本发明的示例性实施例的系统架构的示图;
图3是根据本发明的示例性实施例的用于发起入口日志作为感兴趣的字段的示例性代码片段;
图4是根据本发明的示例性实施例的用于发起应用程序日志作为感兴趣的字段的示例性代码片段;
图5是示出根据本发明的示例性实施例的从日志数据推断执行行为模型的示图;
图6是示出根据本发明示例性实施例的用于为给定事件识别区分性错误日志模板的工作流程的图;
图7是示出了根据本发明的实施例的技术的流程图;
图8是可以在其上实现本发明的至少一个实施例的示例性计算机系统的系统图;
图9描绘了根据本发明的实施例的云计算环境;以及
图10描述了根据本发明的实施例的抽象模型层。
具体实施方式
如本文所描述的,本发明的实施例包括用于原生云应用程序的故障定位。至少一个实施例包括通过使用运行时服务调用图的至少一种拓扑种类以隔离潜在故障来为原生云和混合应用程序提供故障定位。这样的实施例还包括通过监视给定的时间窗口日志以通过执行日志分析来区分相同时间间隔中的错误相关行为与正常行为,来缩窄至少一个已经检测到的问题的潜在原因,并且使用跨调用链的错误分布来缩窄错误消息。
一个或多个实施例还包括:通过提取在至少一个日志消息中提及的实体来推断至少一个微服务内的一个或多个组件;以及识别所述至少一个微服务中导致错误的(多个)组件。附加地或可替代地,至少一个实施例包括分析不同通信以确定请求到达组件的顺序以及处理在给定时间段内的日志以使用图同构来推断请求流。进一步,一个或多个实施例可以包括通过识别和/或分析至少一个故障的影响来识别由于至少一个故障组件影响的服务和/或用户。
图1是示出根据本发明的实施例的系统架构的示图。如图1所示,从连接器(例如,logDNA、弹性搜索等)接收原始日志102。然后,日志102经由组件104被规范化(例如,经由日志存储组件和/或经由识别对应的JavaScript对象表示法(JSON)中的哪些不同字段指代,诸如哪个字段指示时间、哪个字段指代应用程序和/或服务名称等,并且针对格式化和/或缩放老修改这些字段中的数据,使得数据可在后续分析中以一致的方式被使用),并且被发送到流处理平台106。每当例如经由输入108发生警报时,警报的持续时间和警报的确切时间被提取,并且使用这些细节,在步骤110中从流处理平台106提取特定日志。在一个或多个实施例中,由应用程序开发人员或站点可靠性工程师(SRE)设置警报以监测系统的状态。当发生错误和/或问题时,系统发出警报。此外,当发出警报时,同时生成日志,描述与对应于警报的错误和/或问题有关的和/或相关的信息。
此外,还如图1中所描绘的,日志配置信息112被故障定位和影响半径系统118用于确定表示时间戳的字段以及表示黄金信号错误和状态代码的一个或多个服务。应用程序拓扑信息114(其可包括请求流的排序)也作为输入发送到故障定位和影响半径系统118。在至少一个实施例中,还可以使用日志来推断这样的输入。还用作故障定位和影响半径系统118的输入的是来自警报描述中提取的与相关实体116有关的信息。至少部分地基于输入112、114和116,故障定位和影响半径系统118确定至少一个故障组件120、一个或多个受影响的服务122和一个或多个受影响的客户124,其中,可以例如通过推断输入数据上的一个或多个关系来做出这样的确定。作为说明,在至少一个实施例中,可以通过提取对应于错误和/或问题的经处理的日志数据中提及的实体、分析相关的应用程序拓扑信息以确定请求到达应用程序和/或服务内受错误和/或问题影响和/或可能受错误和/或问题影响的一个或多个组件的顺序、并且使提取的和/或分析的数据跨所指出的源进行相关来确定此类推断的关系。
图2是示出了根据本发明的示例性实施例的系统架构的示图。通过示例的方式,图2描绘了对应用程序日志204的监视(例如,一旦结合输入202就生成日志)。使用组件206,经由组件210将这些应用程序日志204规范化(类似于以上结合图1详述的规范化技术),并且使用应用程序日志配置信息208(例如,捕捉和/或描述应用程序日志的信息)来提取错误日志212并将其转换成日志模板214。在至少一个实施例中,经由组件216提取入口日志和/或黄金信号220(例如,网关日志)和入口网关日志配置信息218(例如,捕获和/或描述入口网关日志的信息)。
还如图2所示,(在经排名的模板224的集合之中)第一排名器226使用应用程序拓扑信息222以及跟踪信息来确定至少一个故障部件、故障Pod和/或错误日志模板228。在至少一个实施例中,跟踪信息可以存在于一个或多个日志中,并且这样的实施例可以包括开发和实现一个或多个日志解析器以提取这样的信息并且在一个或多个分析(例如,与历史数据的比较分析)中使用该信息来做出所指出的确定。关于第二排名器230,跟踪信息不被使用,但是各种服务之间的错误分布与确定至少一个故障组件、故障Pod和/或错误日志模板232的结合相关。关于第三者控制器234,不使用黄金信号错误,但是通过找到运行时应用程序日志和历史(例如,健康日志)日志之间的偏差,推断出故障组件、故障Pod和/或错误日志模板236的列表。
相应地,至少一个实施例包括使用运行时服务调用图的拓扑种类来隔离潜在故障尚未与一个或多个差异相同。这样的差异可包括例如主要错误信号是基于来自应用程序中的面向用户的服务的黄金信号的警报。如本文所使用的,黄金信号错误是指基于其发出警报的主要错误信号。此外,黄金信号错误记录系统中请求失败的次数。如果在特定时间窗内存在多于给定数量的请求失败,则提出警报。可以配置在系统中观察到多少误差信号的阈值。另外,这样的差异可包括例如每个错误信号是若干失败的服务请求响应的组合、警报服务也可在相同时间段内返回对至少一些用户请求的成功响应、以及上游服务可能不一定发出警报。
同样如本文详述的,一个或多个实施例包括利用从上游微服务到表面故障部件的错误日志事件,并且过滤出非事务相关的错误信号。在这样的实施例中,故障可以在失败的服务请求和成功的服务请求之间的日志增量中,并且用于识别错误组件的加权拓扑排序可以包括例如<微服务,Pod,错误消息>。对来自上游服务的错误日志事件进行分组的方法可包括例如基于事务可追溯性的方法和基于与失败的服务请求的时间接近度的方法。如本文所使用的,故障组件是指具有给定数目(例如,超过给定阈值的数目)的事务错误的组件。
图3是根据本发明的示例性实施例的用于发起入口日志作为感兴趣的字段的示例性代码片段。在示例实施例中,代码片段300由至少一个处理系统和/或设备执行或者在至少一个处理系统和/或设备的控制下执行。此外,示例代码片段300示出了入口和/或网关日志的示例。从记录的时间戳,提取请求_id和状态信息以定位故障。
应当认识到,该具体示例代码片段仅示出了发起入口日志作为感兴趣的字段的一个示例实现方式,并且可以在其他实施例中使用这种技术的一个或多个替代实现方式。
图4是根据本发明的示例性实施例的用于启动应用程序日志作为感兴趣的字段的示例性代码片段。在示例实施例中,代码片段400由至少一个处理系统和/或设备执行或者在至少一个处理系统和/或设备的控制下执行。此外,示例代码片段400示出了应用程序日志的示例,其中,字段容器指示在时间“@timestamp”处从哪个服务发出错误信号。
应当认识到,这个特定的示例代码片段仅示出了发起应用程序日志作为感兴趣的字段的一个示例实现方式,并且可以在其他实施例中使用这种技术的一个或多个替代性实现方式。
至少一个实施例包括通过错误贡献进行排名的模板,该模板可以例如使用基于频率的方法来执行。这样的方法包括考虑模板的运行时贡献和历史贡献,其中,在运行时和离线贡献中具有较高差异的模板排名较高。例如,考虑其中模板T1在历史上5%的时间和在运行时20%的时间发生(即,差异为15%);而模板T2在历史上10%的时间和在运行时12%的时间发生(即,差异为2%)的使用情况。因此,在这样的示例使用情况下,模板Tl将比T2排名更高。
图5是示出根据本发明的示例性实施例的从日志数据推断执行行为模型的示图。通过示例的方式,图5描绘了节点502、504、506、508、510、512、514、516和518,其中每个节点表示模板(例如,对应于代码中的打印陈述的日志消息类型),并且其中,每个边缘连接流路径中的相邻模板。更具体地,图5描绘了服务在健康状态下的执行行为。每个模板(502、504、506、508、510、512、514、516和518)表示日志中的打印陈述,并且两个模板(诸如T3和T4)之间的边缘例如指示执行第一T3,然后执行T4。该信息从日志生成并且由一个或多个实施例用作应用程序拓扑以定位故障。
如本文进一步详细描述的,至少一个实施例包括推断服务拓扑,其中具有软件栈的服务拓扑可以从一个或多个应用程序性能管理(APM)工具获得。附加地或可替代地,至少一个实施例包括按故障定位进行的日志和/或模板排序。这样的实施例可以包括利用近似的服务故障警告时间跨度信息(例如,用于比较错误和正常日志消息),以及利用可用的服务知识(例如,使用一个或多个服务故障条件来标识错误相关的行为对比正常行为,使用日志事务标识符(ID),使用组件级错误日志消息条件(包括获得事件的所有错误模板),和/或使用至少一个动态服务组件工作流)。
考虑警报到达的一个示例使用情况。至少一个实施例可以包括提取警报的时间窗口和持续时间,并且对于给定的时间窗口,获得应用程序日志。这样的实施例的输出包括故障和受影响的部件的列表、每个部件处的错误模板以及Pod的列表。如本文所使用的,Pod是指服务被托管在其中的实体。在至少一个实施例中,相同的服务被托管在多个Pod中是可能的,并且一个或多个实施例包括识别哪个或哪些Pod有故障。
考虑警报到达的另示例使用情况。至少一个实施例可以包括提取警报的时间窗口和持续时间,并且对于给定的时间窗口,获得应用程序和入口日志。这种实施例的输出包括故障定位信息,该故障定位信息包括至少一个故障组件的标识、错误Pod和Pod列表。这样的输出还可包括受影响组件的标识、每个受影响组件的错误模板以及组件正在其上运行的Pod列表。
考虑又一警报到达的示例使用情况。至少一个实施例可以包括提取警报的时间窗口和持续时间以及警报描述中存在的实体的身份(例如,槽信息),并且对于给定的时间窗口,获得应用程序和入口日志。这种实施例的输出包括故障定位信息,该故障定位信息包括至少一个故障组件的标识、错误模板和Pod列表。这样的输出还可以包括受影响组件的标识,每个受影响组件的错误模板以及组件正在其上运行的Pod的列表。
如本文进一步详细描述的,一个或多个实施例包括使用服务故障状况信息来识别错误相关的行为对比正常行为。使用入口日志,这样的实施例可以包括创建两个请求_ID的列表;例如,一个其中状态是200,另一个其中状态大于或等于500。而且,使用应用程序日志,这样的实施例包括获得事件的错误模板。
此外,一个或多个实施例包括日志对应关系,其中,入口日志中的请求_id与应用程序日志中的事务_id相同。这种实施例可以进一步包括使用上述信息来将错误模板分类为多个部分;例如,一个部分涉及仅与大于或等于500的状态相关联的错误模板,另一部分涉及与200和大于或等于500两者的状态相关联的错误模板,以及又另一部分涉及与200的状态相关联的错误模板。在这样的示范性实施例中,与仅500(及以上)的状态相关联的模板是针对给定事件的区分性模板,并且因此排名器更高。
一个或多个这种实施例可以包括使用组件调用流来对每个部分内的模板进行排名,其中,最终被命中的组件首先发出其错误日志并且是关键错误。可能的是,一个微服务发射多个错误消息,并且在这样的情况下,至少一个实施例包括缩小到精确的错误消息(这里也称为关键错误消息),这是故障的根本原因。此外,这样的实施例还可以包括使用模板的组件排名和运行时频率(例如,日志线出现的次数)的组合来在运行时对错误进行排名。
图6是示出根据本发明示例性实施例的用于为给定事件识别区分性错误日志模板的工作流程的图。图6类似于图1和图2,但具有关于如何生成日志模板608的另外的细节。例如,应用程序日志和/或事件服务日志610经由组件612(例如,经由使用促进将相似日志线聚类的一个或多个基于模板化的技术)使用错误消息分类器信息602并且通过经由分析历史日志614并执行离线模板挖掘616来学习和实现模型来减少到模板608中。基于模板608和组件流604,确定跨调用链606的错误分布(例如,通过确定每个相关微服务的错误日志频率以及将具有大致相同分布的错误相关)以缩小到至少一个错误消息。至少部分地基于该确定,生成区分性错误模板618的排序列表,并将其用于确定至少一个故障组件620、一个或多个受影响的服务622和一个或更多个受影响客户624。
图7是示出了根据本发明实施例的示出技术的流程图。步骤702包括通过处理针对至少一个系统的事件相关警报的一个或多个特性来对事件相关警报进行分类。在至少一个实施例中,处理事件相关警报的一个或多个特性包括处理事件相关警报的至少持续时间有关的时间信息。
步骤704包括至少部分地基于事件相关警报的分类来获得和处理多个应用程序日志。在至少一个实施例中,获取多个应用程序日志包括获取一个或多个错误日志和/或获取一个或多个入口日志。在一这样实施例中,处理多个应用程序日志包括将一个或多个错误日志的至少一部分转换成一个或多个模板。
步骤706包括至少部分地基于多个应用程序日志的处理来在多个应用程序日志中识别错误日志。在至少一个实施例中,识别错误日志包括实现一个或多个跟踪技术和/或基于一个或多个错误频率从多个应用程序日志提取错误消息。
步骤708包括使用一个或多个优先化技术对错误日志进行排序。在至少一个实施例中,使用一个或多个优先化技术对错误日志进行排序包括使用应用程序拓扑对错误模板进行排序、基于错误分布对错误日志进行排序、和/或从警报描述和一个或多个日志消息中提取一个或多个实体。
步骤710包括至少部分地基于错误日志的排序来执行至少一个自动化动作。在至少一个实施例中,执行至少一个自动操作包括至少部分地基于错误日志的排序来确定一个或多个受影响的服务。附加地或备选地,执行所述至少一个自动动作可以包括:至少部分地基于所述错误日志的所述排序和从所述错误日志的至少一部分得出的Pod识别信息,一旦有所述至少一个Pod不起作用的指示,重启所述至少一个Pod。
而且,一个或多个实施例可以包括实现作为云环境中的服务提供的图7中所描绘的技术。
如本文所描述的,图7中所描绘的技术还可以包括提供一种系统,其中该系统包括不同的软件模块,这些不同的软件模块中的每个软件模块包含在有形的计算机可读可记录存储介质上。所有模块(或其任何子集),例如,可以在同一介质上,或者各自可以在不同介质上。模块可包括图中所示和/或本文所述的任何或所有组件。在本发明的实施中,模块可例如在硬件处理器上运行。然后可以使用在硬件处理器上执行的如上所述的系统的不同软件模块来执行方法步骤。进一步地,一种计算机程序产品可以包括有形的计算机可读可记录存储介质,所述有形的计算机可读可记录存储介质具有被适配成用于执行本文中所描述的至少一个方法步骤的代码,所述方法包括为所述系统提供所述不同的软件模块。
此外,图7中描述的技术可经由计算机程序产品实现,该计算机程序产品可包括存储在数据处理系统中的计算机可读存储介质中的计算机可用程序代码,并且其中计算机可用程序代码通过网络从远程数据处理系统下载。此外,在本发明的实施例中,计算机程序产品可包括存储在服务器数据处理系统中的计算机可读存储介质中的计算机可用程序代码,并且其中计算机可用程序代码通过网络下载到远程数据处理系统,以与远程系统一起在计算机可读存储介质中使用。
本发明的实施例或其元件可以以一种装置的形式来实施,该装置包括一个存储器和至少一个处理器,该至少一个处理器被联接到该存储器上并且被配置成执行示范性方法步骤。
此外,本发明的实施例可以利用在计算机或工作站上运行的软件。参考图8,这种实现方式例如可以采用处理器802、存储器804和例如由显示器806和键盘808形成的输入/输出接口。如本文中使用的术语“处理器”旨在包括任何处理设备,例如,包括CPU(中央处理单元)和/或其他形式的处理电路的处理设备。此外,术语“处理器”可以指多于一个单独的处理器。术语“存储器”旨在包括与处理器或CPU相关联的存储器,例如,RAM(随机存取存储器)、ROM(只读存储器)、固定存储设备(例如,硬盘驱动器)、可移动存储设备(例如,磁盘)、闪存等。此外,本文使用的短语“输入/输出接口”旨在包括,例如,用于将数据输入至处理单元的机制(例如,鼠标),以及用于提供与处理单元相关联的结果的机制(例如,打印机)。处理器802、存储器804、和输入/输出接口(如显示器806和键盘808)可以例如经由总线810互连,该总线810作数据处理单元812的部分。合适的互连(例如经由总线810的)也可以被提供给网络接口814,诸如网卡,其可以被提供用于与计算机网络接口连接,以及被提供给介质接口816,诸如软盘或CD-ROM驱动器,其可以被提供用于与介质818接口连接。
因此,包括如本文所描述的用于执行本发明的方法的指令或代码的计算机软件可以存储在相关联的存储器装置(例如,ROM、固定或可移动存储器)中,并且当准备好被使用时,部分或全部加载(例如,加载到RAM中)并且由CPU实现。这样的软件可以包括但不限于固件、驻留软件、微代码等。
一种适于存储和/或执行程序代码的数据处理系统将包括至少一个处理器802,该至少一个处理器通过系统总线810直接或间接地联接到存储器元件804上。存储器元件可以包括在程序代码的实际实现期间使用的本地存储器、大容量存储器和提供至少一些程序代码的临时存储以便减少在实现期间必须从大容量存储器取回代码的次数的高速缓冲存储器。
输入/输出或I/O设备(包括但不限于键盘808、显示器806、定点设备等)可以直接(如经由总线810)或通过中间I/O控制器(为了清楚起见省略)耦合至系统。
网络适配器(如网络接口814)还可以耦合至系统,以便使得数据处理系统能够通过介入的私有或公共网络耦合至其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅是一些当前可用类型的网络适配器。
如本文中使用的,包括权利要求,“服务器”包括运行服务器程序的物理数据处理系统(例如,如图8中所示的系统812)。将理解,这样的物理服务器可包括或可不包括显示器和键盘。
本发明可以是在任何可能的技术细节集成度上的系统、方法、和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可以是可以保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质更具体的示例的非穷尽列表包括以下:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载至对应的计算/处理设备或下载至外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,电子电路包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)可以通过使用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
本文参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的多个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给计算机的处理器、或其他可编程数据处理装置以便产生机器,这样使得经由计算机的处理器或其他可编程数据处理装置执行的这些指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置、或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实现的过程,从而使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的或多个框中指定的功能/动作。
附图中的流程图和框图展示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。就此而言,流程图或框图中的每一块可表示指令的模块、区段或部分,其包括用于实施指定的逻辑功能的一或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者这些方框有时可以以相反的顺序执行,这取决于涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
应注意的是,本文所描述的任何方法可以包括提供系统的附加步骤,该系统包括体现在计算机可读存储介质上的不同软件模块;这些模块可以包括例如本文详述的任何或所有部件。然后可以使用在硬件处理器802上执行的如上所述的系统的不同软件模块和/或子模块来执行方法步骤。此外,计算机程序产品可包括计算机可读存储介质,该计算机可读存储介质具有被适配成用于实施来执行本文描述的至少一个方法步骤的代码,该方法包括为该系统提供这些不同的软件模块。
在任何情况下,应当理解的是,本文所展示的部件可以用硬件、软件或其组合的不同形式来实施,例如,专用集成电路(ASIC)、功能电路、具有相关联存储器的适当编程的数字计算机等。给定本文所提供的本发明的教导,相关领域的普通技术人员将能够设想本发明的部件的其他实现方式。
此外,提前理解的是,本文所列举的传授内容的实现方式不限于特定计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何类型的计算环境来实现。
例如,云计算是服务递送的模型,用于使得能够方便的、按需的网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用程序、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互被快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可单方面供应计算能力,诸如服务器时间和网络存储,根据需要自动进行,而不需要与服务提供商进行人为交互。
广泛的网络接入:能力可通过网络获得并且通过促进由异构薄或厚客户端平台(例如,移动电话、膝上计算机、和PDA)使用的标准机制访问。
资源池:供应商的计算资源被池化以使用多租户模型服务于多个消费者,其中根据需求动态地分配和重新分配不同的物理和虚拟资源。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量服务:云系统通过在适合于服务类型(例如,存储、处理、带宽、和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用供应商的应用程序在云基础设施上运行。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用程序。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用程序能力的底层云基础设施,可能的例外是模仿的用户特定应用程序配置设置。
平台即服务(PaaS):提供给消费者的能力是部署到云基础设施(消费者创建的或获取的)使用由提供商支持的编程语言和工具创建的应用程序。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用程序和可能的应用程序托管环境配置具有控制。
基础设施即服务(IaaS):向消费者提供的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,其可以包括操作系统和应用程序消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、部署的应用程序的控制以及对选择的联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础设施仅针对组织操作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施由若干组织共享并且支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:云基础设施可用于普通公众或大型行业团体并且由出售云服务的组织拥有。
混合云:云基础设施是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用程序能够移植的标准化或专有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块性和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图9,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点10可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图9中所示的计算设备54A-N的类型仅旨在是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参见图10,示出了由云计算环境50(图9)提供的一组功能抽象层。应提前理解,图10中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。
如所描述,提供以下层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用程序服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用程序和操作系统74;以及虚拟客户端75。在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。
在一个示例中,这些资源可以包括应用程序软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行85提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;事务处理95;以及故障定位96。
本文使用的术语仅是出于描述特定实施例的目的,并且不旨在限制本发明。如本文所使用的,除非上下文清楚地表明,否则单数形式“一”、“一个”和“该”旨在也包括复数形式。应当进一步理解的是,当在本说明书中使用术语“包括(comprises)”和/或“包括(comprising)”时,其指定所述特征、步骤、操作、元件和/或部件的存在,但并不排除其他特征、步骤、操作、元件、部件和/或其组合的存在或添加。
本发明的至少一个实施例可以提供有益的效果,例如像使用运行时服务调用图的拓扑排序为原生云和混合应用程序提供故障定位以便隔离潜在故障。
已经出于说明的目的呈现了本发明的各个实施例的描述,但并不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用程序或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。

Claims (20)

1.一种计算机实现的方法,包括:
通过处理针对至少一个系统的事件相关警报的一个或多个特性来对所述事件相关警报进行分类;
至少部分地基于所述事件相关警报的所述分类来获取并处理多个应用程序日志;
至少部分地基于所述多个应用程序日志的所述处理,在所述多个应用程序日志中识别错误日志;
使用一个或多个优先化技术对所述错误日志进行排序;以及
至少部分地基于所述错误日志的所述排序来执行至少一个自动化动作;
其中,所述方法由至少一个计算设备来执行。
2.根据权利要求1所述的计算机实现的方法,其中,所述处理所述事件相关警报的一个或多个特性包括:处理与所述事件相关警报的至少持续时间有关的时间信息。
3.根据权利要求1所述的计算机实现的方法,其中,所述获取多个应用程序日志包括获取一个或多个错误日志。
4.根据权利要求3所述的计算机实现的方法,其中,所述处理多个应用程序日志包括将所述一个或多个错误日志的至少一部分转换成一个或多个模板。
5.根据权利要求1所述的计算机实现的方法,其中,所述获取多个应用程序日志包括获取一个或多个入口日志。
6.根据权利要求1所述的计算机实现的方法,其中,使用一个或多个优先化技术对所述错误日志进行排序包括使用应用程序拓扑对所述错误模板进行排序。
7.根据权利要求1所述的计算机实现的方法,其中,使用一个或多个优先化技术对所述错误日志进行排序包括基于错误分布对所述错误日志进行排序。
8.根据权利要求1所述的计算机实现的方法,其中,使用一个或多个优先化技术对所述错误日志进行排序包括从所述警报描述和一个或多个日志消息中提取一个或多个实体。
9.根据权利要求1所述的计算机实现的方法,其中,所述识别错误日志包括实现一个或多个跟踪技术。
10.根据权利要求1所述的计算机实现的方法,其中,所述识别错误日志包括基于一个或多个错误频率从所述多个应用程序日志提取错误消息。
11.根据权利要求1所述的计算机实现的方法,其中,所述执行至少一个自动化动作包括至少部分地基于所述错误日志的所述排序确定一个或多个受影响的服务。
12.根据权利要求1所述的计算机实现的方法,其中,执行所述至少一个自动化动作包括:至少部分基于所述错误日志的所述排序和从所述错误日志的至少一部分导出的Pod识别信息,一旦有所述至少一个Pod不起作用的指示,重启所述至少一个容器。
13.根据权利要求1所述的计算机实现的方法,其中,实现所述方法的软件作为云环境中的服务提供。
14.一种计算机程序产品,包括计算机可读存储介质,所述计算机可读存储介质具有包含在其中的程序指令,所述程序指令可由计算设备执行以使所述计算设备:
通过处理针对至少一个系统的事件相关警报的一个或多个特性来对所述事件相关警报进行分类;
至少部分地基于所述事件相关警报的所述分类来获取并处理多个应用程序日志;
至少部分地基于所述多个应用程序日志的所述处理,在所述多个应用程序日志中识别错误日志;
使用一个或多个优先化技术对所述错误日志进行排序;以及
至少部分地基于所述错误日志的所述排序来执行至少一个自动化动作。
15.根据权利要求14所述的计算机程序产品,其中,所述处理所述事件相关警报的一个或多个特性包括:处理与所述事件相关警报的至少持续时间有关的时间信息。
16.根据权利要求14所述的计算机程序产品,其中,使用一个或多个优先化技术对所述错误日志进行排序包括使用应用程序拓扑对所述错误模板进行排序。
17.根据权利要求14所述的计算机程序产品,其中,使用一个或多个优先化技术对所述错误日志进行排序包括基于错误分布对所述错误日志进行排序。
18.一种系统,包括:
存储器;以及
至少一个处理器,所述至少一个处理器可操作地耦接至所述存储器并且被配置为:
通过处理针对至少一个系统的事件相关警报的一个或多个特性来对所述事件相关警报进行分类;
至少部分地基于所述事件相关警报的所述分类来获取并处理多个应用程序日志;
至少部分地基于所述多个应用程序日志的所述处理,在所述多个应用程序日志中识别错误日志;
使用一个或多个优先化技术对所述错误日志进行排序;以及
至少部分地基于所述错误日志的所述排序来执行至少一个自动化动作。
19.根据权利要求18所述的系统,其中,所述处理所述事件相关警报的一个或多个特性包括:处理与所述事件相关警报的至少持续时间有关的时间信息。
20.根据权利要求18所述的系统,其中,使用一个或多个优先化技术对所述错误日志进行排序包括使用应用程序拓扑对所述错误模板进行排序和基于错误分布对所述错误日志进行排序中的至少一个。
CN202180057396.1A 2020-08-24 2021-07-16 原生云应用程序的故障定位 Pending CN116194894A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/000,593 US11411811B2 (en) 2020-08-24 2020-08-24 Fault localization for cloud-native applications
US17/000,593 2020-08-24
PCT/CN2021/106717 WO2022042126A1 (en) 2020-08-24 2021-07-16 Fault localization for cloud-native applications

Publications (1)

Publication Number Publication Date
CN116194894A true CN116194894A (zh) 2023-05-30

Family

ID=80269030

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180057396.1A Pending CN116194894A (zh) 2020-08-24 2021-07-16 原生云应用程序的故障定位

Country Status (6)

Country Link
US (1) US11411811B2 (zh)
JP (1) JP2023537769A (zh)
CN (1) CN116194894A (zh)
DE (1) DE112021003657T5 (zh)
GB (1) GB2612749A (zh)
WO (1) WO2022042126A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11803438B2 (en) * 2021-07-13 2023-10-31 Adp, Inc. Message call request data having error frequency metrics
US11748219B1 (en) 2022-09-14 2023-09-05 International Business Machines Corporation Application event logging augmentation

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708137B2 (en) * 2001-07-16 2004-03-16 Cable & Wireless Internet Services, Inc. System and method for providing composite variance analysis for network operation
GB0311808D0 (en) 2003-05-22 2003-06-25 Tektronix Inc User interface for an event monitor
US7266726B1 (en) * 2003-11-24 2007-09-04 Time Warner Cable Inc. Methods and apparatus for event logging in an information network
US7664249B2 (en) * 2004-06-30 2010-02-16 Microsoft Corporation Methods and interfaces for probing and understanding behaviors of alerting and filtering systems based on models and simulation from logs
US7900201B1 (en) * 2004-12-21 2011-03-01 Zenprise, Inc. Automated remedying of problems in software application deployments
US20110314148A1 (en) * 2005-11-12 2011-12-22 LogRhythm Inc. Log collection, structuring and processing
US7251584B1 (en) * 2006-03-14 2007-07-31 International Business Machines Corporation Incremental detection and visualization of problem patterns and symptoms based monitored events
US20080126878A1 (en) * 2006-11-28 2008-05-29 International Business Machines Corporation Highlighting anomalies when displaying trace results
US8589727B1 (en) * 2008-02-04 2013-11-19 Neverfail Group Limited Methods and apparatus for providing continuous availability of applications
US9384112B2 (en) * 2010-07-01 2016-07-05 Logrhythm, Inc. Log collection, structuring and processing
US20140317459A1 (en) 2013-04-18 2014-10-23 Intronis, Inc. Backup system defect detection
CN103617109B (zh) 2013-10-23 2016-04-27 上海华力微电子有限公司 探针机台日志文件的警告处理系统和方法
US10452992B2 (en) * 2014-06-30 2019-10-22 Amazon Technologies, Inc. Interactive interfaces for machine learning model evaluations
US10296443B2 (en) 2015-10-09 2019-05-21 The Board Of Trustees Of The University Of Illinois Automatically predicting faults that caused software failures using a Markov logic network
CN107133240B (zh) 2016-02-29 2020-09-11 阿里巴巴集团控股有限公司 页面监控方法、装置及系统
US11281518B2 (en) 2017-02-24 2022-03-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for fault localization in a cloud environment
CN107608860B (zh) 2017-09-29 2021-04-23 郑州云海信息技术有限公司 一种错误日志分类存储的方法、装置、设备
US10419469B1 (en) * 2017-11-27 2019-09-17 Lacework Inc. Graph-based user tracking and threat detection
US10810074B2 (en) * 2018-12-19 2020-10-20 Microsoft Technology Licensing, Llc Unified error monitoring, alerting, and debugging of distributed systems

Also Published As

Publication number Publication date
GB202302662D0 (en) 2023-04-12
WO2022042126A1 (en) 2022-03-03
JP2023537769A (ja) 2023-09-05
US20220060371A1 (en) 2022-02-24
US11411811B2 (en) 2022-08-09
GB2612749A (en) 2023-05-10
DE112021003657T5 (de) 2023-06-29

Similar Documents

Publication Publication Date Title
US11449379B2 (en) Root cause and predictive analyses for technical issues of a computing environment
US9921952B2 (en) Early risk identification in DevOps environments
US11080121B2 (en) Generating runbooks for problem events
US11023325B2 (en) Resolving and preventing computer system failures caused by changes to the installed software
US11222296B2 (en) Cognitive user interface for technical issue detection by process behavior analysis for information technology service workloads
US11474905B2 (en) Identifying harmful containers
US10216617B2 (en) Automatically complete a specific software task using hidden tags
US11294803B2 (en) Identifying incorrect variable values in software testing and development environments
US11474892B2 (en) Graph-based log sequence anomaly detection and problem diagnosis
US20170300401A1 (en) Methods and systems that identify problems in applications
US10691516B2 (en) Measurement and visualization of resiliency in a hybrid IT infrastructure environment
US11513930B2 (en) Log-based status modeling and problem diagnosis for distributed applications
CN116194894A (zh) 原生云应用程序的故障定位
US10552282B2 (en) On demand monitoring mechanism to identify root cause of operation problems
CN114746844A (zh) 对操作管理中的事件风暴中的构成事件的标识
US11599404B2 (en) Correlation-based multi-source problem diagnosis
JP2022100301A (ja) ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法、コンピュータ・プログラム、および更新推奨コンピュータ・サーバ(ソフトウェア・アップグレードの安定性の推奨)
US11656974B2 (en) Enhanced performance diagnosis in a network computing environment
US20170193524A1 (en) Automated review validator
US11169905B2 (en) Testing an online system for service oriented architecture (SOA) services
US11151121B2 (en) Selective diagnostics for computing systems
US10656986B2 (en) Dynamically controlling runtime system logging based on end-user reviews
CN116868198A (zh) 通过使用人工智能技术处理协作论坛来自动地生成数据集

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination