一种问题诊断方法、系统及电子设备转让专利

申请号 : CN202011534296.7

文献号 : CN112631817B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曲彤晖

申请人 : 杭州海康威视系统技术有限公司

摘要 :

本发明实施例提供了一种问题诊断方法、系统及电子设备。其中,所述方法包括:获取待分析的目标问题;确定与目标问题对应的第一目标议程;根据第一目标议程对应的规则,选择第一分析子单元,将目标问题作为第一分析子单元的入参,执行第一分析子单元;根据第一分析子单元的分析结果和规则,确定待执行操作;当待执行操作为选择第二分析子单元时,执行第二分析子单元,并确定待执行操作;当待执行操作为选择第二目标议程时,将第一分析子单元的分析结果作为新问题,确定与新问题对应的第二目标议程;当待执行操作为输出诊断结果时,将第一分析子单元的分析结果确定为目标问题的诊断结果。可以提高问题诊断效率。

权利要求 :

1.一种问题诊断方法,其特征在于,所述方法包括:

获取待分析的目标问题;

按照预先设置的问题与议程之间的对应关系,确定与所述目标问题对应的第一目标议程,所述第一目标议程包括至少一个分析子单元、以及用于指示各个分析子单元间的调度路径的规则,所述规则指示的调度路径中,任一分析子单元所用于分析的问题为与所述任一分析子单元相邻的上一个分析子单元所用于分析的问题的子问题;

根据所述第一目标议程对应的规则,选择第一分析子单元,将所述目标问题作为所述第一分析子单元的入参,执行所述第一分析子单元;

根据所述第一分析子单元的分析结果和所述规则,确定待执行操作;

当所述待执行操作为选择第二分析子单元时,将所述第一分析子单元的分析结果作为所述第二分析子单元的入参,执行所述第二分析子单元,并根据所述第二分析子单元的分析结果和所述规则,确定待执行操作,所述第二分析子单元为所述第一目标议程中的与所述第一分析子单元不同的分析子单元;

当所述待执行操作为选择第二目标议程时,将所述第一分析子单元的分析结果作为新问题,按照所述预先设置的问题与议程之间的对应关系,确定与所述新问题对应的第二目标议程;

当所述待执行操作为输出诊断结果时,将所述第一分析子单元的分析结果确定为所述目标问题的诊断结果。

2.根据权利要求1所述的方法,其特征在于,所述执行所述第一分析子单元或执行所述第二分析子单元的分析过程,包括:根据分析子单元的入参,以及预设的实验工具与待分析条件之间的映射关系,确定目标实验工具,所述待分析条件为分析子单元中用于推理问题原因的假说条件;调用所述目标实验工具进行实验,得到实验结果;根据所述实验结果,确定分析子单元的分析结果;

或者,

根据分析子单元的入参,确定分析子单元关联的实验工具的输入信息,并根据所述输入信息,调用所述分析子单元关联的实验工具,得到实验结果;根据所述实验结果,确定分析子单元的分析结果。

3.根据权利要求2所述的方法,其特征在于,当所述目标实验工具的数量大于1或所述分析子单元关联的实验工具的数量大于1时,按预设顺序调用各个实验工具;

所述根据所述实验结果,确定分析子单元的分析结果,包括:

根据各个实验工具的实验结果,确定分析子单元的分析结果。

4.根据权利要求1所述的方法,其特征在于,所述根据所述第一分析子单元的分析结果和所述规则,确定待执行操作,包括:根据所述第一分析子单元的分析结果和所述规则,判断在所述第一分析子单元对应的调度路径上是否存在符合所述分析结果的下一个分析子单元;

若存在,确定所述待执行操作为选择第二分析子单元;

若不存在,判断所述第一分析子单元的分析结果是否包括问题源;

当确定所述第一分析子单元的分析结果包括问题源时,确定所述待执行操作为选择第二目标议程;

当确定所述第一分析子单元的分析结果不包括问题源时,确定所述待执行操作为输出诊断结果。

5.一种问题诊断系统,其特征在于,所述问题诊断系统包括:知识图谱单元;

所述知识图谱单元包括规则引擎子单元、数据工厂子单元;

所述规则引擎子单元包括多个议程,每个议程包括至少一个分析子单元,以及用于指示各个分析子单元间的调度路径的规则,所述规则指示的调度路径中,任一分析子单元所用于分析的问题为与所述任一分析子单元相邻的上一个分析子单元所用于分析的问题的子问题;

所述数据工厂子单元用于存储预先设置的议程与问题之间的对应关系;

所述规则引擎子单元用于按照预先设置的问题与议程之间的对应关系,确定与待分析的目标问题对应的第一目标议程;

所述第一目标议程用于根据所述第一目标议程对应的规则,选择第一分析子单元,将所述目标问题作为所述第一分析子单元的入参,执行所述第一分析子单元;根据所述第一分析子单元的分析结果和所述规则,确定待执行操作;

所述第一目标议程还用于当所述待执行操作为选择第二分析子单元时,将所述第一分析子单元的分析结果作为所述第二分析子单元的入参,执行所述第二分析子单元,并根据所述第二分析子单元的分析结果和所述规则,确定待执行操作,所述第二分析子单元为所述第一目标议程中的与所述第一分析子单元不同的分析子单元;

所述规则引擎子单元用于当所述待执行操作为选择第二目标议程时,将所述第一分析子单元的分析结果作为新问题,按照所述预先设置的问题与议程之间的对应关系,确定与所述新问题对应的第二目标议程;

所述规则引擎子单元还用于当所述待执行操作为输出诊断结果时,将所述第一分析子单元的分析结果确定为所述目标问题的诊断结果。

6.根据权利要求5所述的系统,其特征在于,所述系统还包括实验工具箱单元,所述实验工具箱单元包括多个实验工具;

所述第一目标议程执行所述第一分析子单元或执行所述第二分析子单元的分析过程,包括:根据分析子单元的入参,以及预设的实验工具与待分析条件之间的映射关系,确定目标实验工具,所述待分析条件为分析子单元中用于推理问题原因的假说条件;调用所述目标实验工具进行实验,得到实验结果;

或者,

根据分析子单元的入参,确定分析子单元关联的实验工具的输入信息,并根据所述输入信息,调用所述分析子单元关联的实验工具,得到实验结果;

根据所述实验结果,确定分析子单元的分析结果。

7.根据权利要求5所述的系统,其特征在于,所述问题诊断系统还包括议程开发接口,所述议程开发接口用于接收输入的议程作为所述规则引擎子单元的新的议程。

8.根据权利要求5所述的系统,其特征在于,所述问题诊断系统还包括实验工具开发接口,所述实验工具开发接口用于接收输入的实验工具作为所述实验工具箱单元的新的实验工具。

9.一种电子设备,其特征在于,包括:

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现权利要求1‑4任一所述的方法步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1‑4任一所述的方法步骤。

说明书 :

一种问题诊断方法、系统及电子设备

技术领域

[0001] 本发明涉及运维技术领域,特别是涉及一种问题诊断方法、系统及电子设备。

背景技术

[0002] 工作人员在运维过程中可能遇到各种问题,例如设备可能无法与远程服务器建立连接、程序无法正常启动、系统崩溃等。为使得工作人员能够准确解决这些问题,需要确定导致问题发生的原因。
[0003] 但是对于同一个问题,可能有多个不同的原因能够导致该问题的发生,因此相关技术中需要由具备一定经验的工作人员对所发生的问题进行人工分析从而确定导致问题发生的原因。
[0004] 该方式较为繁琐并且对工作人员有一定的要求,因此不利于实施、效率较低。

发明内容

[0005] 本发明实施例的目的在于提供一种问题诊断方法、系统及电子设备,以实现提高问题诊断效率。具体技术方案如下:
[0006] 在本发明实施例的第一方面,提供了一种问题诊断方法,所述方法包括:
[0007] 获取待分析的目标问题;
[0008] 按照预先设置的问题与议程之间的对应关系,确定与所述目标问题对应的第一目标议程,所述第一目标议程包括至少一个分析子单元、以及用于指示各个分析子单元间的调度路径的规则;
[0009] 根据所述第一目标议程对应的规则,选择第一分析子单元,将所述目标问题作为所述第一分析子单元的入参,执行所述第一分析子单元;
[0010] 根据所述第一分析子单元的分析结果和所述规则,确定待执行操作;
[0011] 当所述待执行操作为选择第二分析子单元时,将所述第一分析子单元的分析结果作为所述第二分析子单元的入参,执行所述第二分析子单元,并根据所述第二分析子单元的分析结果和所述规则,确定待执行操作;
[0012] 当所述待执行操作为选择第二目标议程时,将所述第一分析子单元的分析结果作为新问题,按照所述预先设置的问题与议程之间的对应关系,确定与所述新问题对应的第二目标议程;
[0013] 当所述待执行操作为输出诊断结果时,将所述第一分析子单元的分析结果确定为所述目标问题的诊断结果。
[0014] 在一种可能的实施例中,所述执行所述第一分析子单元或执行所述第二分析子单元的分析过程,包括:
[0015] 根据分析子单元的入参,以及预设的实验工具与待分析条件之间的映射关系,确定目标实验工具,所述待分析条件为分析子单元中用于推理问题原因的假说条件;调用所述目标实验工具进行实验,得到实验结果;根据所述实验结果,确定分析子单元的分析结果;
[0016] 或者,
[0017] 根据分析子单元的入参,确定分析子单元关联的实验工具的输入信息,并根据所述输入信息,调用所述分析子单元关联的实验工具,得到实验结果;根据所述实验结果,确定分析子单元的分析结果。
[0018] 在一种可能的实施例中,当所述目标实验工具的数量大于1或所述分析子单元关联的实验工具的数量大于1时,按预设顺序调用各个实验工具;
[0019] 所述根据所述实验结果,确定分析子单元的分析结果,包括:
[0020] 根据各个实验工具的实验结果,确定分析子单元的分析结果。
[0021] 在一种可能的实施例中,所述根据所述第一分析子单元的分析结果和所述规则,确定待执行操作,包括:
[0022] 根据所述第一分析子单元的分析结果和所述规则,判断在所述第一分析子单元对应的调度路径上是否存在符合所述分析结果的下一个分析子单元;
[0023] 若存在,确定所述待执行操作为选择第二分析子单元;
[0024] 若不存在,判断所述第一分析子单元的分析结果是否包括问题源;
[0025] 当确定所述第一分析子单元的分析结果包括问题源时,确定所述待执行操作为选择第二目标议程;
[0026] 当确定所述第一分析子单元的分析结果不包括问题源时,确定所述待执行操作为输出诊断结果。
[0027] 在本发明实施例的第二方面,提供了一种问题诊断系统,所述问题诊断系统包括:
[0028] 知识图谱单元;
[0029] 所述知识图谱单元包括规则引擎子单元、数据工厂子单元;
[0030] 所述规则引擎子单元包括多个议程,每个议程包括至少一个分析子单元,以及用于指示各个分析子单元间的调度路径的规则;
[0031] 所述数据工厂子单元用于存储预先设置的议程与问题之间的对应关系;
[0032] 所述规则引擎子单元用于按照预先设置的问题与议程之间的对应关系,确定与待分析的目标问题对应的第一目标议程;
[0033] 所述第一目标议程用于根据所述第一目标议程对应的规则,选择第一分析子单元,将所述目标问题作为所述第一分析子单元的入参,执行所述第一分析子单元;根据所述第一分析子单元的分析结果和所述规则,确定待执行操作;
[0034] 所述第一目标议程还用于当所述待执行操作为选择第二分析子单元时,将所述第一分析子单元的分析结果作为所述第二分析子单元的入参,执行所述第二分析子单元,并根据所述第二分析子单元的分析结果和所述规则,确定待执行操作;
[0035] 所述规则引擎子单元用于当所述待执行操作为选择第二目标议程时,将所述第一分析子单元的分析结果作为新问题,按照所述预先设置的问题与议程之间的对应关系,确定与所述新问题对应的第二目标议程;
[0036] 所述规则引擎子单元还用于当所述待执行操作为输出诊断结果时,将所述第一分析子单元的分析结果确定为所述目标问题的诊断结果。
[0037] 在一种可能的实施例中,所述系统还包括实验工具箱单元,所述实验工具箱单元包括多个实验工具;
[0038] 所述第一目标议程执行所述第一分析子单元或执行所述第二分析子单元的分析过程,包括:
[0039] 根据分析子单元的入参,以及预设的实验工具与待分析条件之间的映射关系,确定目标实验工具,所述待分析条件为分析子单元中用于推理问题原因的假说条件;调用所述目标实验工具进行实验,得到实验结果;
[0040] 或者,
[0041] 根据分析子单元的入参,确定分析子单元关联的实验工具的输入信息,并根据所述输入信息,调用所述分析子单元关联的实验工具,得到实验结果;
[0042] 根据所述实验结果,确定分析子单元的分析结果。
[0043] 在一种可能的实施例中,所述问题诊断系统还包括议程开发接口,所述议程开发接口用于接收输入的议程作为所述规则引擎子单元的新的议程。
[0044] 在一种可能的实施例中,所述问题诊断系统还包括实验工具开发接口,所述实验工具开发接口用于接收输入的实验工具作为所述实验工具箱单元的新的实验工具。
[0045] 在本发明实施例的第三方面,提供了一种电子设备,包括:
[0046] 存储器,用于存放计算机程序;
[0047] 处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法步骤。
[0048] 在本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。
[0049] 本发明实施例有益效果:
[0050] 本发明实施例提供的问题诊断方法、系统及电子设备,可以由目标问题出发,通过对目标问题不断的迭代,将对目标问题的诊断转换为对迭代得到的新问题的诊断,从而逐步向导致目标问题的原因靠近,并最终得到能够用于表示导致目标问题的原因的诊断结果。该过程可以由机器自动完成,无需具有经验的工作人员进行人工分析,可以有效提高问题诊断的效率,以便于工作人员及时解决目标问题。
[0051] 当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

[0052] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0053] 图1为本发明实施例提供的问题诊断方法的一种流程示意图;
[0054] 图2为本发明实施例提供的待执行操作确定方法的一种流程示意图;
[0055] 图3a为本发明实施例提供的问题诊断系统的一种结构示意图;
[0056] 图3b为本发明实施例提供的问题诊断系统的另一种结构示意图;
[0057] 图4为本发明实施例提供的议程的一种结构示意图;
[0058] 图5为本发明实施例提供的实验工具的一种结构示意图;
[0059] 图6为应用本发明实施例提供的问题诊断方法进行设备离线故障诊断的一种流程示意图;
[0060] 图7为本发明实施例提供的电子设备的一种结构示意图。

具体实施方式

[0061] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0062] 为更清楚的对本发明实施例提供的问题诊断方法进行说明,下面对部分名词进行解释:
[0063] 产生式规则:产生式(Production)一词,首先是由美国数学家波斯特(E.Post)提出来的。波斯特根据替换规则提出了一种称为波斯特机的计算模型,模型中的每一条规则当时被称为一个产生式。后来,这一术语几经修改扩充,被用到许多领域。例如,形式语言中的文法规则就称为产生式。产生式也称为产生式规则,或简称规则。
[0064] 逆向推理:逆向推理(backward inference)是问题解决策略中启发法的一种。指从问题的目标状态出发,按照子目标组成的逻辑顺序逐级向初始状态递归的问题解决策略。
[0065] 机器学习:解释机器学习的一个简单方法就是想象一个孩子正在把桌子上的玻璃制品推下来。而之前没有遇到过这种情况,孩子无法预测结果。但是随着成长和学习,他理解发生了什么,即使他不完全明白为什么。这是工作中的机器学习。
[0066] 机器推理:现在想象一下,那个曾经把玻璃制品从桌子上推下来的小孩,现在了解运动和重力的物理学原理。即使之前没有遇到过这种情况,他也可以猜测不可避免会发生的事情。小孩可以将相同的逻辑应用到桌子上的另一个对象上,调整知识并将其应用到同一桌子上的电视遥控器上,因为他知道为什么会发生这种情况。这就是机器推理。机器推理在AI频谱中更像人类,与大数据调查密切相关,因此它比机器学习更灵活。然而,机器推理需要启发式和策略,这通常由知识渊博的领域专家完成。机器推理最适用于确定性场景。也就是说,确定某件事是否真实,或者是否会发生。知道这一点,也就可以将机器学习和机器推理能够很好地协同工作。
[0067] 规则引擎:规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
[0068] 专家系统:专家系统是人工智能中最重要的也是最活跃的一个应用领域,它实现了人工智能从理论研究走向实际应用、从一般推理策略探讨转向运用专门知识的重大突破。专家系统是早期人工智能的一个重要分支,它可以看作是一类具有专门知识和经验的计算机智能程序系统,一般采用人工智能中的知识表示和知识推理技术来模拟通常由领域专家才能解决的复杂问题。
[0069] 演绎:即假说演绎法,在观察和分析基础上提出问题以后,通过推理和想像提出解释问题的假说,根据假说进行演绎推理,再通过实验检验演绎推理的结论。如果实验结果与预期结论相符,就证明假说是正确的,反之,则说明假说是错误的。
[0070] 迭代:迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。迭代与递归的区别在于:递归是由自己延伸出去的,而迭代是得到新的结果并替代了自己。
[0071] 参见图1,图1所示为本发明实施例提供的问题诊断方法的一种流程示意图,该方法可以应用于任意具备问题诊断能力的电子设备,或者,也可以应用于任意具备问题诊断功能的软件,具体不作限定,该方法可以包括:
[0072] S101,获取待分析的目标问题。
[0073] S102,按照预先设置的问题与议程之间的对应关系,确定与所述目标问题对应的第一目标议程,第一目标议程包括至少一个分析子单元、以及用于指示各个分析子单元间的调度路径的规则。
[0074] S103,根据第一目标议程对应的规则,选择第一分析子单元,将目标问题作为第一分析子单元的入参,执行第一分析子单元。
[0075] S104,根据第一分析子单元的分析结果和规则,确定待执行操作。
[0076] S105,当待执行操作作为选择第二分析子单元时,将第一分析子单元的分析结果作为第二分析子单元的入参,执行第二分析子单元,并根据第二分析子单元的分析结果和规则,确定待执行操作。
[0077] S106,当待执行操作作为选择第二目标议程时,将第一分析子单元的分析结果作为新问题,按照预先设置的问题与议程之间的对应关系,确定与新问题对应的第二目标议程。
[0078] S107,当待执行操作作为输出诊断结果时,将第一分析子单元的分析结果确定为目标问题的诊断结果。
[0079] 选用该实施例,可以由目标问题出发,通过对目标问题不断的迭代,将对目标问题的诊断转换为对迭代得到的新问题的诊断,从而逐步向导致目标问题的原因靠近,并最终得到能够用于表示导致目标问题的原因的诊断结果。该过程可以由机器自动完成,无需具有经验的工作人员进行人工分析,可以有效提高问题诊断的效率,以便于工作人员及时解决目标问题。
[0080] 其中,在S101中,目标问题根据应用场景的不同可以不同,下文中为描述方便,以目标问题为设备离线为例进行说明,对于目标问题为其他问题的场景,由于原理是相同的,因此在此不再赘述。
[0081] 在S102中,预先设置的问题与议程之间的映射关系可以是根据实际需求进行设置的,例如议程A在开发时被设计用于对问题1进行推理,则可以在该映射关系中将问题1作为议程A对应的问题,每个议程可以对应于一个或多个问题,不同议程对应的问题可以相同也可以不同。
[0082] 当目标问题与多个议程之间存在对应关系时,可以从这多个与目标问题存在对应关系的议程中随机选取一个议程作为第一目标议程,也可以是按照预设的优先级从中选取优先级最高的议程作为第一目标议程,还可以是按照其他选取方式从中选取第一目标议程,本实施例对此不做任何限制。
[0083] 用于指示各个分析子单元间的调度路径的规则是按照逆向推理确定得到的,即规则所指示的调度路径中,任一分析子单元的所用于分析的问题应当为与该任一分析子单元相邻的上一个分析子单元所用于分析的问题的子问题。示例性的,假设分析子单元1被设计用于分析问题1,分析子单元2被设计用于分析问题2,分析子单元3被设计用于分析问题3,并且问题2为问题1的子问题,问题3为问题2的子问题,则规则所指示的调度路劲可以是:分析子单元1→分析子单元2→分析子单元3。
[0084] 规则可以是不同的方式表示的,例如在一种可能的实施例中规则可以是以规则编程语言(如CLPS)编写的文件的形式表示的,在其他可能的实施例中规则也可以是以编程语言(如JAVA、PYTHON、JS、C、C++等)编写的文件的形式表示的。
[0085] 在S103中,第一目标议程对应的规则即第一目标议程所包括的用于指示第一目标议程中各个分析子单元间的调度路径的规则,第一分析子单元可以是位于该规则所表示的调度路径中的第一位的分析子单元。
[0086] 可以将分析子单元视为一个函数,该函数的入参为问题,输出为分析结果。执行第一分析子单元即可以视为调用该函数对该问题进行映射,得到对应的分析结果。
[0087] 在S104中,所确定的待执行操作可能有三种,分别为:选择第二分析子单元、选择第二目标议程以及输出诊断结果。针对这三种不同的待执行操作,下文中将进行详细说明,在这里不再赘述。
[0088] 在S105中,第二分析子单元为第一目标议程中的分析子单元,并且与第一分析子单元为不同的分析子单元。第二分析子单元可以是根据第一分析子单元的分析结果以及前述规则确定得到的,在前述规则所表示的调度路径中,如果位于第一分析子单元下一位的分析子单元只有一个,则可以将位于第一分析子单元下一位的分析子单元确定为第二分析子单元,如果位于第一分析子单元下一位的分析子单元有多个,则可以根据第一分析子单元的分析结果从位于第一分析子单元下一位的多个分析子单元中确定一个第二分析子单元。
[0089] 执行第二分析子单元和前述执行第一分析子单元的过程相似,区别仅在于第一分析子单元和第二分析子单元被配置用于实现的执行逻辑不同。因此下面将对第一分析子单元和第二分析子单元的分析过程进行统一说明。
[0090] 在一种可能的实施例中,可以是根据分析子单元的入参,以及预设的实验工具与待分析条件之间的映射关系,确定目标实验工具。调用目标实验工具进行实验,得到实验结果。根据实验结果,确定分析子单元的分析结果。
[0091] 其中,待分析条件为分析子单元中用于推理问题原因的假说条件。在实验工具与待分析条件的映射关系中,实验工具应当具备进行用于验证所对应的待分析条件是否成立的实验的能力。示例性的,假设一待分析条件为导致目标问题的原因为登录失败,则在映射关系中与该待分析条件对应的实验工具应当具备进行用于验证导致目标问题的原因为登录失败是否成立的实验的能力,例如该实验工具可以是具备实现ping(一种计算机网络诊断功能)功能的实验工具。调用目标实验工具进行实验,是指调用目标实验工具进行用于验证待分析条件是否成立的实验,得到的实验结果可以用于表示该待分析条件是否成立。
[0092] 在另一种可能的实施例中,也可以是根据分析子单元的入参,确定分析子单元关联的实验工具的输入信息,并根据输入信息,调用分析子单元关联的实验工具,得到实验结果。并根据实验结果,确定分析子单元的分析结果。
[0093] 各实验工具的输入信息可以是开发人员在开发这些实验工具时输入的输入信息,也可以是相关人员根据各实验工具的功能输入的输入信息。输入信息中所包括的内容根据应用场景的不同。输入信息中应当至少包括用于描述该实验工具所具备的能力的信息。
[0094] 分析子单元关联的实验工具可以是通过以分析子单元的关键词,在各实验工具的输入信息中进行检索,如果关键词能够与该实验工具的输入信息匹配,则可以将该实验工具作为该分析子单元相关联的实验工具。
[0095] 目标实验工具或分析子单元所关联的实验工具可以是一个实验工具,也可以是多个实验工具。对于目标实验工具或分析子单元所关联的实验工具为一个实验工具的情况,则可以是调用该一个实验工具实验得到结果。对于目标实验工具或分析子单元所关联的实验工具包括多个实验工具的情况,即目标实验工具的数量大于1或分析子单元所关联的实验工具的数量大于1时,则可以是按照预设顺序调用各个实验工具进行实验。
[0096] 其中,预设顺序可以是相关人员根据实际需求或者经验设置的。也可以是按照预设规则设置的,本实施例对此不做任何限制。在该实施例中可以根据实际需求,调用多个不同的实验工具共同组合进行实验,从而使得实验结果更加准确。
[0097] 在S106中,在预先设置的问题与议程之间的对应关系中,一个议程应当具备对所对应的问题进行问题诊断的能力,所确定的与新问题对应的第二目标议程应当具备对该新问题进行问题诊断的能力。
[0098] 可以理解的是,随着问题诊断的进行,目标问题可能发生变化,即可能产生新问题。而第一目标议程可能不具备对新问题进行问题诊断的能力,在该情况下需要选择具备对新问题进行问题诊断的能力的第二目标议程对新问题继续进行问题诊断。
[0099] 第二目标议程对新问题进行问题诊断的流程与第一目标议程对目标问题进行问题诊断的流程一致,因此可以参见前述S103‑S105以及后续S107中的相关说明,在此不再赘述。
[0100] 如果在后续利用第二目标议程对该新问题进行问题诊断的过程中,该新问题逐渐变换为另一个新问题,并且第二目标议程不具备对该另一个新问题进行问题诊断的能力,则可以再次根据前述预先设置的问题与议程之间的对应关系,确定与该另一个新问题对应的第三目标议程,依次类推。
[0101] 在S107中,如果根据第一分析子单元的分析结果和规则已经可以唯一确定导致目标问题的原因,此时可以确定待执行操作为输出诊断结果。可以理解的是,随着问题诊断的进行,部分导致该问题的原因将被排除,示例性的,以目标问题为设备离线为例,导致设备离线的原因可能有六种,而随着问题诊断的进行其中五种原因将逐步被排除,剩余的一种原因即为导致设备离线的真实原因。
[0102] 为更清楚的对本发明实施例提供的问题诊断方法进行说明,下面将对待执行操作的确定方式进行说明,可以参见图2,图2所示为本发明实施例提供的待执行操作确定方法的一种流程示意图,可以包括:
[0103] S201,根据第一分析子单元的分析结果和前述规则,判断第一分析子单元对应的调度路径上是否存在符合该分析结果的下一个分析子单元。如果调度路径上存在符合该分析结果的下一个分析子单元,则执行S202,如果调度路径上不存在符合该分析结果的下一个分析子单元,则执行S203。
[0104] 其中,符合分析结果的下一个分析子单元可以是指该分析结果所表示的状态下存在该下一个分析子单元被设计用于分析的问题。示例性的,假设在调度路径中分析子单元1的下一个分析子单元为分析子单元2,分析子单元2被设计用于分析的问题只在设备在线时存在,则如果分析子单元1输出的分析结果表示设备离线,则此时分析子单元2不符合分析子单元1输出的分析结果,如果分析子单元1输出的分析结果表示设备在线,则此时分析子单元2符合分析子单元1输出的分析结果。
[0105] S202,确定待执行操作为选择第二分析子单元。
[0106] 并且所选择的第二分析子单元为该下一个分析子单元。可以理解的是,如果调度路径上存在符合该分析结果的下一个分析子单元,则应当调用该符合分析结果的下一个分析子单元继续进行问题诊断。
[0107] S203,判断第一分析子单元的分析结果是否包括问题源,如果第一分析子单元的分析结果包括问题源,则执行S204,如果第一分析子单元的分析结果不包括问题源,则执行S205。
[0108] 如果调度路径上不存在符合该分析结果的下一个分析子单元,则可以认为此时第一目标议程已经执行完成,第一分析子单元得到的新问题超出了第一目标议程的能力范围,此时如果尚未得到诊断结果,则应当选择新的目标议程继续进行问题诊断。因此,如果第一分析子单元的分析结果不包括问题源,则可以认为已经得到目标问题的原因,此时可以确定待执行操作为输出诊断结果。如果第一分析子单元的分析结果包括问题源,则可以确定待执行操作为选择第二目标议程。
[0109] S204,确定待执行操作为选择第二目标议程。
[0110] 在选择第二目标议程时,可以是按照预先设置的问题与议程之间的对应关系,确定与第一分析子单元的分析结果对应的议程作为第二目标议程。
[0111] S205,确定待执行操作为输出诊断结果。
[0112] 为了更清楚的对本发明实施例提供的问题诊断方式进行说明,下面将对本发明实施例提供的问题诊断系统进行说明。可以参见图3a,图3a所示为本发明实施例提供的问题诊断系统的一种框架示意图,可以包括:
[0113] 知识图谱(KonwledgeGraph)单元100。
[0114] 其中,知识图谱单元100中包括规则引擎(Rule Engine)子单元110以及数据工厂(DataFactory)子单元120。规则引擎子单元110中包括多个议程(agenda)111。每个议程111中包括至少一个分析子单元以及用于指示各个分析子单元间的调度路径的规则。
[0115] 数据工厂子单元120用于存储预先设置的议程与问题之间的对应关系。
[0116] 规则引擎子单元110用于按照预先设置的问题与议程之间的对应关系,确定与待分析的目标问题对应的第一目标议程。
[0117] 第一目标议程用于根据第一目标议程对应的规则,选择第一分析子单元,将目标问题作为第一分析子单元的入参,执行第一分析子单元,根据第一分析子单元的分析结果和规则,确定待执行操作;
[0118] 第一目标议程还用于当待执行操作作为选择第二分析子单元时,将第一分析子单元的分析结果作为第二分析子单元的入参,执行第二分析子单元,并根据第二分析子单元的分析结果和规则,确定待执行操作;
[0119] 规则引擎子单元110用于当所述待执行操作为选择第二目标议程时,将所述第一分析子单元的分析结果作为新问题,按照所述预先设置的问题与议程之间的对应关系,确定与所述新问题对应的第二目标议程;
[0120] 所述规则引擎子单元110还用于当所述待执行操作为输出诊断结果时,将所述第一分析子单元的分析结果确定为所述目标问题的诊断结果。
[0121] 其中,规则引擎子单元110中可以包括规则引擎,规则引擎用于对规则引擎子单元110中的议程111进行调度。
[0122] 在一种可能的实施中,问题诊断系统也可以如图3b所示,还包括实验工具箱单元200,所述实验工具箱单元包括多个实验工具210;
[0123] 所述第一目标议程执行所述第一分析子单元或执行所述第二分析子单元的分析过程,包括:
[0124] 根据分析子单元的入参,以及预设的实验工具与待分析条件之间的映射关系,确定目标实验工具,所述待分析条件为分析子单元中用于推理问题原因的假说条件;调用所述目标实验工具进行实验,得到实验结果;
[0125] 或者,
[0126] 根据分析子单元的入参,确定分析子单元关联的实验工具的输入信息,并根据所述输入信息,调用所述分析子单元关联的实验工具,得到实验结果;
[0127] 根据所述实验结果,确定分析子单元的分析结果。
[0128] 其中,实验工具箱单元200中可以包括实验工具管理子单元,实验工具管理子单元用于对实验工具箱单元200中的实验工具210进行管理和调度。
[0129] 在一种可能的实施例中,问题诊断系统还可以包括议程开发接口,议程开发接口用于接收输入的议程作为规则引擎子单元的新的议程。输入的议程可以是用户通过任意设备输入的,并且该输入的议程可以用户根据实践过程中积累的专家经验开发得到的。可以理解的是,每个议程所能够进行分析的问题是有限的,而问题诊断系统所包括的议程也是有限的,而在实际应用场景中用户可能遇到各种各样的需要进行问题诊断的问题,因此通过问题诊断系统可能难以有效对这些问题准确地进行诊断。而选用该实施例,用户可以根据自身积累的专家经验对问题诊断系统中的议程进行更新,根据积累的经验以及实际需求开发新的议程,从而使得问题诊断系统能够对更多的问题进行问题诊断,即有效提高了问题诊断系统的适用性以及准确性。
[0130] 在另一种可能的实施例中,问题诊断系统还包括实验工具开发接口,实验工具开发接口用于接收输入的实验工具作为实验工具箱单元的新的实验工具。输入的实验工具可以是用户通过任意设备输入的,并且该输入的实验工具可以是用户根据实践过程中积累的专家经验开发得到的。可以理解的是,每个实验工具所能进行的实验是有限的,而问题诊断系统所包括的实验工具也是有限的,而在实际应用场景中用户可能遇到各种各样的需要进行问题诊断的问题,因此可能需要对各种各样的假说条件进行实验。而受限制于问题诊断系统中有限的实验工具,问题诊断系统可能难以有效对这些假说条件准确地进行实验,导致问题诊断系统无法对一些问题进行准确的诊断。
[0131] 而选用该实施例,用户可以根据自身积累的专家经验对问题诊断系统中的实验工具进行更新,根据积累的经验以及实际需求开发新的实验工具,从而使得问题诊断系统能够对更多的假说条件进行验证,即有效提高了问题诊断系统的适用性以及准确性。
[0132] 议程111如图4所示,由议程封装和分析子单元组成。不同的议程111之间是相互隔离的,由规则引擎子单元110为各议程111分配问题。议程111的输入为事实(Facts),事实包括所发生的问题以及当前的实际条件,例如以设备离线故障诊断为例,事实可以包括目标问题即设备发生离线故障,还可以包括设备当前的状态参数。议程111的输出为结论。
[0133] 在一种可能的实施例中,议程111在运行过程中产生的步进消息可以支持订阅,以使得相关人员能够获悉当前推理的详细信息和状态,步进消息可以包括步进消息标识、步进消息内容、问题标识,其中问题标识用于唯一标识议程111推理的目标问题,即相同的问题具有相同的问题标识,不同的问题具有不同的问题标识。相关人员可以通过问题标识来筛选所关心的一个或多个问题的推理过程。步进消息在被订阅后,可以被议程111投递至预设的消息中间件,如ActiveMQ、Kafka等,也可以通过议程111直接开放接口的方式为相关人员提供步进消息的查询。
[0134] 议程封装是指具有一定结构化的语言所描述的模型。议程的封装可以通过XML或JSON等常规格式化语言进行描述,也可以是以XML、JSON以外的其他计算机语言进行描述。议程封装可以用于表达所属议程所支持推理的问题,议程封装可以包括议程标识、议程版本、支持的问题集,规则集,解释器,执行器,验证假设条件时所依赖的实验工具集合等。
[0135] 其中,规则集为规则的集合。规则可以是将对一个问题的专家经验抽象化得到的,规则可以用于指示各分析子单元间的调度路径,一个问题的推理需要一系列的规则来支持。
[0136] 解释器用于对规则集进行解释,形成机器可理解的语言。执行器用于基于规则集对机器可理解语言进行执行,包括推理过程、验证过程等。
[0137] 数据工厂子单元120可以为关系型数据库,如图数据库,也可以是其他类型的数据库,如非关系型数据库Nosql。数据工厂子单元120是作为知识库而存在。数据工厂子单元120可以支持本地部署、分布式部署,也可以是通过云计算的方式提供服务。数据工厂子单元120存储问题与议程之间的对应关系的方式根据应用场景的不同可以不同,例如,可以是采用字典的方式存储该对应关系,示例性的,可以如下所示:
[0138] Q1‑‑‑>agenda index001
[0139] Q2‑‑‑>agenda index002
[0140] Q3‑‑‑>agenda index003
[0141] 以上字典表示议程agenda index001与问题Q1对应,议程agenda index002与问题Q2对应,议程agenda index003与问题Q3对应。
[0142] 实验工具可以如图5所示,包括实验工具封装和进程。不同实验工具之间是相互隔离的,即不同实验工具之间可以不具备关联关系。实验工具封装用于对实验工具进行描述,实验工具封装的内容可以包括实验工具标识、实验工具版本、实验工具支持的能力集、能力标识、能力版本、能力关联的配置等。可以理解的是,图5仅是实验工具的一种可能的结构示意图,在其他可能的实施例中,一个实验工具中也可以包括多个进程,本实施例对此不作任何限制。
[0143] 议程中的分析子单元可以调用实验工具,议程中分析子单元所依赖的实验工具可以在议程封装中描述,议程将按照议程封装中描述的该议程所依赖的实验工具对实验工具进行调用。在调用实验工具时,议程中的分析子单元可以确定实验工具标识、实验工具版本,并通常将需要调用的实验工具、实验工具支持的能力标识、实验工具能力的输入项、实验工具能力关联的配置集等作为输入参数,调用结果将返回实验工具支持的能力集、能力标识、调用能力的输出项等。
[0144] 示例性的,输入可以如下表所示:
[0145]
[0146] 输出可以如下表所示:
[0147]
[0148] 实验工具可以根据实际需求进行配置,示例性的假设一个实验工具用于检测TCP连接是否正常,则可以根据实际需求配置重试次数、连接超时时间等。并且配置项中还可以包括是否重新启动实验工具。
[0149] 参见图6,图6所示为应用本发明实施例提供的问题诊断方法进行设备离线故障诊断的一种流程示意图,可以包括:
[0150] S601,选择待处理问题。
[0151] S602,在应用系统页面上发现设备离线了,需要执行故障推理。
[0152] S603,请输入待诊断的设备索引。
[0153] 可以是在预设的显示设备上显示用于提示用户输入待诊断的设备索引的提示信息,以使得用户输入待诊断的设备索引。
[0154] 问题诊断系统获取待分析的问题后,也可以不执行S602、S603步骤,可以直接执行S604,由规则引擎子单元按照数据工厂子单元存储的问题与议程之间的对应关系,确定与该待分析问题对应的议程。
[0155] S604,规则引擎从数据工厂子单元检索问题所映射的规则域。
[0156] S605,根据规则域调用对应的议程,将问题作为Facts输入。
[0157] S606,议程组合入参。
[0158] 例如business和index组合。
[0159] 根据议程对应的用于指示各个分析子单元间的调度路径的规则,执行各分析子单元。
[0160] S607,根据组合关键字调用全文检索进行检索。
[0161] S608,输出不同时间点的多条日志记录。
[0162] S609,对日志数据进行抽取、汇总。
[0163] S610,挑选时间点最近的数据,解析半结构化数据reason。
[0164] 根据分析子单元的分析结果和上述规则,确定待执行操作。
[0165] S611,判断原因是否是登录失败,如果是,执行S612,如果不是,执行S623。
[0166] S612,调用weapon_hiksdk登录设备。
[0167] 其中,weapon_hiksdk为用于检测设备是否在线的实验工具。
[0168] S613,检测结果是否在线,如果是,执行S614,如果不是,执行S618[0169] S614,调用weapon_logsearch检索日志上报结果。
[0170] 其中,weapon_logsearch为用于检测日志上报结果中设备是否在线的实验工具。
[0171] S615,检索的上报结果是否在线,如果是,执行S616,如果不是,执行S617。
[0172] S616,得到诊断结果1:上层应用系统问题。
[0173] 输出诊断结果后,本次问题诊断过程结束。
[0174] S617,得到诊断结果2:本系统处理问题。
[0175] 输出诊断结果后,本次问题诊断过程结束。
[0176] S618,调动weapon_ping检测设备。
[0177] 其中,weapon_ping为用于检测设备是否在线的实验工具,并且weapon_ping与weapon_hiksdk检测设备是否在线的方式不同。
[0178] S619,检测设备是否在线,如果是,执行S614,如果不是或者ping功能被禁用则执行S620。
[0179] S620,调用weapon_tcpconn检测设备。
[0180] 其中,weapon_tcpconn为用于检测设备是否在线的实验工具,并且weapon_tcpconn与weapon_ping、weapon_hiksdk检测设备是否在线的方式不同。
[0181] S621,检测设备是否在线,如果是,执行S614,如果不是,执行S622。
[0182] S622,得到诊断结果3:没有问题。
[0183] 输出诊断结果后,本次问题诊断过程结束。
[0184] S623,调用weapon_logsearch检索最新1条状态变更日志。
[0185] S624,是否存在设备上线通知,如果是,执行S612,如果不是,执行S625。
[0186] S625,是否存在离线变更通知,如果是,执行S627,如果不是,执行S626。
[0187] S626,得到诊断结果4:需学习更多的专家经验。
[0188] 输出诊断结果后,本次问题诊断过程结束。
[0189] S627,调用weapon_hiksdk登录设备。
[0190] S628,检测是否登录成功,如果是,执行S629,如果不是,执行S630。
[0191] S629,得到诊断结果5:厂商SDK问题。
[0192] 输出诊断结果后,本次问题诊断过程结束。
[0193] S630,调用weapon_ping检测设备。
[0194] S631,检测设备是否在线,如果是,执行S629,如果不是,执行S632。
[0195] S632,调用weapon_tcpconn检测设备。
[0196] S633,检测设备是否在线,如果是,执行S629,如果不是,执行S634。
[0197] S634,得到诊断结果6:状态发生变更引起的,目前设备确实离线,没有问题。
[0198] 输出诊断结果后,本次问题诊断过程结束。
[0199] 本发明实施例提供的问题诊断方法,可以由目标问题出发,通过对目标问题不断的迭代,将对目标问题的诊断转换为对迭代得到的新(子)问题的诊断,从而逐步向导致目标问题的原因靠近,并最终得到能够用于表示导致目标问题的原因的诊断结果。该过程可以由机器自动完成,无需具有经验的工作人员进行人工分析,可以有效提高问题诊断的效率,以便于工作人员及时解决目标问题。
[0200] 本发明实施例还提供了一种电子设备,如图7所示,包括:
[0201] 存储器701,用于存放计算机程序;
[0202] 处理器702,用于执行存储器701上所存放的程序时,实现如下步骤:
[0203] 获取待分析的目标问题;
[0204] 按照预先设置的问题与议程之间的对应关系,确定与所述目标问题对应的第一目标议程,所述第一目标议程包括至少一个分析子单元、以及用于指示各个分析子单元间的调度路径的规则;
[0205] 根据所述第一目标议程对应的规则,选择第一分析子单元,将所述目标问题作为所述第一分析子单元的入参,执行所述第一分析子单元;
[0206] 根据所述第一分析子单元的分析结果和所述规则,确定待执行操作;
[0207] 当所述待执行操作为选择第二分析子单元时,将所述第一分析子单元的分析结果作为所述第二分析子单元的入参,执行所述第二分析子单元,并根据所述第二分析子单元的分析结果和所述规则,确定待执行操作;
[0208] 当所述待执行操作为选择第二目标议程时,将所述第一分析子单元的分析结果作为新问题,按照所述预先设置的问题与议程之间的对应关系,确定与所述新问题对应的第二目标议程;
[0209] 当所述待执行操作为输出诊断结果时,将所述第一分析子单元的分析结果确定为所述目标问题的诊断结果。
[0210] 在一种可能的实施例中,所述执行所述第一分析子单元或执行所述第二分析子单元的分析过程,包括:
[0211] 根据分析子单元的入参,以及预设的实验工具与待分析条件之间的映射关系,确定目标实验工具,所述待分析条件为分析子单元中用于推理问题原因的假说条件;调用所述目标实验工具进行实验,得到实验结果;根据所述实验结果,确定分析子单元的分析结果;
[0212] 或者,
[0213] 根据分析子单元的入参,确定分析子单元关联的实验工具的输入信息,并根据所述输入信息,调用所述分析子单元关联的实验工具,得到实验结果;根据所述实验结果,确定分析子单元的分析结果。
[0214] 在一种可能的实施例中,当所述目标实验工具的数量大于1或所述分析子单元关联的实验工具的数量大于1时,按预设顺序调用各个实验工具;
[0215] 所述根据所述实验结果,确定分析子单元的分析结果,包括:
[0216] 根据各个实验工具的实验结果,确定分析子单元的分析结果。
[0217] 在一种可能的实施例中,所述根据所述第一分析子单元的分析结果和所述规则,确定待执行操作,包括:
[0218] 根据所述第一分析子单元的分析结果和所述规则,判断在所述第一分析子单元对应的调度路径上是否存在符合所述分析结果的下一个分析子单元;
[0219] 若存在,确定所述待执行操作为选择第二分析子单元;
[0220] 若不存在,判断所述第一分析子单元的分析结果是否包括问题源;
[0221] 当确定所述第一分析子单元的分析结果包括问题源时,确定所述待执行操作为选择第二目标议程;
[0222] 当确定所述第一分析子单元的分析结果不包括问题源时,确定所述待执行操作为输出诊断结果。
[0223] 上述电子设备提到存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non‑Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0224] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0225] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一问题诊断方法的步骤。
[0226] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一问题诊断方法。
[0227] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
[0228] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0229] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统、电子设备、计算机可读存储介质以及计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0230] 以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。