基于状态机故障定位方法以及装置的制造方法

文档序号:8942968阅读:309来源:国知局
基于状态机故障定位方法以及装置的制造方法
【技术领域】
[0001] 本申请涉及计算机领域,特别是涉及一种基于状态机故障定位方法以及装置。
【背景技术】
[0002] 当前的软件系统通常包括多个操作流程,每个操作流程完成一项复杂的事物,例 如,通过操作流程完成创建用户信息等等。每个操作流程都包括多个操作步骤,通过依次执 行各个操作步骤,从而完成整个操作流程。但是为了提高编程效率,通常将多个操作步骤都 封装在一个模块中。在执行操作流程时,通过调用模块来完成整个操作流程。在执行过程 中,如果出现了故障,可以通过模块所产生的信息判断故障出现在哪个模块中。
[0003] 但是,在这种方式下,故障只能够定位到模块级别,用户是没法得知故障具体出现 在哪个操作步骤中,所以,故障的定位十分粗糙。

【发明内容】

[0004] 本申请提供一种基于状态机故障定位方法以及装置,能够在操作步骤级别实现对 故障的定位,提高故障的定位的精确度。
[0005] 本申请第一方面提供一种基于状态机故障定位方法,其特征在于,包括:获取出现 故障的操作流程的分析信息,其中,所述分析信息包括日志,所述日志为所述出现故障的操 作流程在执行操作步骤时产生;根据所述日志中的特殊字符获取与所述日志的特殊字符匹 配的状态机模板;将所述分析信息以及所述状态机模板进行模式匹配以获得出现故障的操 作流程的操作步骤顺序图;根据所述日志中的错误日志在所述操作步骤顺序图中找到出现 故障的操作步骤。
[0006] 结合第一方面,在第一方面的第一种可能的实施方式中,在获取出现故障的操作 流程的分析信息之前还包括:从被分析系统中获取多个操作流程的分析信息;根据所述多 个操作流程的分析信息中的错误日志获得发生故障的操作流程的流程标识;根据发生故障 的操作流程的流程标识从所述多个操作流程的分析信息中获取出现故障的操作流程的分 析信息。
[0007] 结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第二种可能的 实施方式中,如果所述出现故障的操作流程包括子流程,则根据所述子流程中的日志的特 殊字符获取与所述子流程中的日志的特殊字符匹配的状态机模板。
[0008] 结合第一方面或第一方面的第一种或第二种可能的实施方式,在第一方面的第三 种可能的实施方式中,所述状态机模板包括操作流程中执行操作步骤时状态跳转的源状 态、状态跳转的目标状态、状态跳转的匹配特征以及子流程标识。
[0009] 结合第一方面或第一方面的第一种或第二种或第三种可能的实施方式,在第一方 面的第四种可能的实施方式中,所述分析信息还包括系统消息、系统内存的使用状况以及 处理器的使用状况。
[0010] 本申请第二方面提供一种基于状态机故障定位装置,其特征在于,包括:信息获取 模块、模板获取模块、匹配模块以及故障发现模块,所述信息获取模块用于获取出现故障的 操作流程的分析信息,其中,所述分析信息包括日志,所述日志为所述出现故障的操作流程 在执行操作步骤时产生;所述模板获取模块用于根据所述日志中的特殊字符获取与所述日 志的特殊字符匹配的状态机模板;所述匹配模块用于将所述分析信息以及所述状态机模板 进行模式匹配以获得出现故障的操作流程的操作步骤顺序图;所述故障发现模块用于根据 所述日志中的错误日志在所述操作步骤顺序图中找到出现故障的操作步骤。
[0011] 结合第二方面,在第二方面的第一种可能的实施方式中,所述装置还包括:标识获 取模块以及过滤模块,所述信息获取模块用于从被分析系统中获取多个操作流程的分析信 息;所述标识获取模块用于根据所述多个操作流程的分析信息中的错误日志获得发生故障 的操作流程的流程标识;所述过滤模块用于根据发生故障的操作流程的流程标识从所述多 个操作流程的分析信息中获取出现故障的操作流程的分析信息。
[0012] 结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第二种可能的 实施方式中,所述模板获取模块用于在所述出现故障的操作流程包括子流程时,根据所述 子流程中的日志的特殊字符获取与所述子流程中的日志的特殊字符匹配的状态机模板。
[0013] 结合第二方面或第二方面的第一种或第二种可能的实施方式,在第二方面的第三 种可能的实施方式中,所述状态机模板包括操作流程中执行操作步骤时状态跳转的源状 态、状态跳转的目标状态、状态跳转的匹配特征以及子流程标识。
[0014] 结合第二方面或第二方面的第一种或第二种或第三种可能的实施方式,在第二方 面的第四种可能的实施方式中,所述分析信息还包括系统消息、系统内存的使用状况以及 处理器的使用状况。
[0015] 本申请获取出现故障的操作流程的分析信息,根据日志中的特殊字符获取与日志 的特殊字符匹配的状态机模板,再将分析信息以及状态机模板进行模式匹配以获得出现故 障的操作流程的操作步骤顺序图,最后,根据日志在操作步骤顺序图中找到出现故障的操 作步骤。与现有技术相比,通过上述方法能够获得出现故障的操作流程的操作步骤顺序图, 并根据日志在操作步骤顺序图中定位出现故障的操作步骤,所以能够在操作步骤级别实现 对故障的定位,提高故障的定位的精确度。
[0016] 而且,在现有技术中,模块一般是封装起来的,所以用户没法获知模块内部更细节 的状态,但是,通过本申请提供的方法,能够获知模块内部的操作步骤的情况。此外,本申请 通过模式匹配的方式来获得状态机模板,所以,即使部分分析信息丢失,也依然能够找到状 态机模板,不会因为部分信息丢失而影响故障定位。
【附图说明】
[0017] 图1是本发明实施例提供的一种基于状态机的故障定位方法的流程图;
[0018] 图2是操作流程A的状态跳转图;
[0019] 图3是本发明基于状态机的故障定位方法中的状态机模板M的示意图;
[0020] 图4是本发明基于状态机的故障定位方法中的操作步骤顺序图的示意图;
[0021] 图5是本发明实施例提供的一种基于状态机的故障定位装置;
[0022] 图6是本发明提供的一种终端的结构示意图。
【具体实施方式】
[0023] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之 类的具体细节,以便透彻理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体 细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以 及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0024] 参阅图1,图1是本发明实施例提供的一种基于状态机的故障定位方法的流程图。 本实施方式的基于状态机的故障定位方法包括:
[0025] 110 :从被分析系统中获取多个操作流程的分析信息。
[0026] 被分析系统为软件系统,被分析系统在运行时产生多个操作流程,操作流程通过 调用多个模块以完成一个具体的事务,其中,模块中封装了多个操作步骤。操作流程在调用 模块时,会执行模块中封装的操作步骤。操作流程在执行模块中的操作步骤时会产生日志 并存储在磁盘中,日志中记载了操作流程的流程标识以及在执行操作步骤时产生的一些信 息等等。其中,每个日志中都具有特殊字符,例如,创建用户的操作步骤所产生的日志中会 包含"user create"的特殊字符。如果操作流程执行操作步骤时发生错误,则会导致出现 错误日志。
[0027] 如果操作流程在执行时发生了错误,则需要对被分析系统进行分析,从而对故障 进行定位。此时,从被分析系统中获取多个操作流程的分析信息,其中,分析信息包括日志、 系统消息、系统内存的使用情况以及处理器的使用情况等等。系统内存的使用情况包括系 统内存的已使用空间,系统内存的剩余空间等等。处理器的使用情况包括处理器的资源已 使用多少,以及处理器的资源的剩余多少等等。可以理解的是,可以在发生故障时,一次获 取多个操作流程的分析信息,也可以在未发生故障前,定时获取多个操作流程的分析信息, 在发生故障时,再获取上一次定时之后产生的多个操作流程的分析信息。为了便于进行分 析,可以将获取到的多个操作流程的分析信息集中进行存储。
[0028] 120:根据多个操作流程的分析信息中的错误日志获得发生故障的操作流程的流 程标识。
[0029] 在获取多个操作流程的分析信息之后,从多个操作流程的分析信息中找到错误日 志。根据错误日志中携带的操作流程标识可以获知发生故障的操作流程的流程标识。如果 根据找到的错误日志获得的流程标识不止一个,可以对同一个流程标识的错误日志进行下 面的处理。
[0030] 130:根据发生故障的操作流程的流程标识从多个操作流程的分析信息中获取出 现故障的操作流程的分析信息。
[0031] 在获得发生故障的操作流程的流程标识之后,根据发生故障的操作流程的流程标 识从多个操作流程的分析信息中过滤得到出现故障的操作流程的分析信息,以减少需要进 行分析的分析信息的数量。
[0032] 140 :
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1