一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

容器实例的故障诊断方法、装置、设备和存储介质与流程

2022-03-02 04:05:03 来源:中国专利 TAG:


1.本公开涉及云计算技术领域,尤其涉及一种容器实例的故障诊断方法、装置、设备和存储介质。


背景技术:

2.容器技术是使用类似集装箱的方式封装应用和应用运行的环境(应用运行所需要的依赖关系)的一种虚拟化技术。具体实现时,是通过具象化的容器实例来实现服务功能的。如果因为各种原因导致容器实例故障,会造成针对该容器实例的远程过程调动失败、服务可用性抖动等问题。所以,非常有必要对容器实例进行故障诊断。
3.目前对容器实例进行故障诊断的方式主要有模型预测,其需要借助大量历史数据进行模型训练,进而利用训练的模型进行容器实例的故障诊断。
4.但是,该方式不仅依赖于大量的历史数据,还存在模型的召回率和准确率低的问题,无法快速、准确地进行容器实例的故障诊断。


技术实现要素:

5.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种容器实例的故障诊断方法、装置、设备和存储介质。
6.第一方面,本公开提供了一种容器实例的故障诊断方法,该方法包括:
7.获取目标容器实例的故障诊断请求;
8.基于所述故障诊断请求,确定所述目标容器实例所属的目标服务,并查询设定时间段内所述目标服务的调用失败数据集合,且确定所述目标容器实例在所述设定时间段内的调用失败数据子集;
9.若确定所述调用失败数据子集中每个单位时间窗口对应的调用失败数据的第一统计值满足预设条件,则确定所述调用失败数据子集在所述调用失败数据集合中的第一比重值;其中,所述设定时间段被划分为第一数量的所述单位时间窗口;
10.若确定所述第一比重值超过第一比重阈值,则确定所述目标容器实例故障。
11.第二方面,本公开提供了一种容器实例的故障诊断装置,该装置包括:
12.故障诊断请求获取模块,用于获取目标容器实例的故障诊断请求;
13.调用失败数据获得模块,用于基于所述故障诊断请求,确定所述目标容器实例所属的目标服务,并查询设定时间段内的调用失败数据集合,且确定所述目标容器实例在所述设定时间段内的调用失败数据子集;
14.第一比重值确定模块,用于若确定所述调用失败数据子集中每个单位时间窗口对应的调用失败数据的第一统计值满足预设条件,则确定所述调用失败数据子集在所述调用失败数据集合中的第一比重值;其中,所述设定时间段被划分为第一数量的所述单位时间窗口;
15.故障诊断模块,用于若确定所述第一比重值超过第一比重阈值,则确定所述目标
容器实例故障。
16.第三方面,本公开提供了一种容器实例的故障诊断设备,该设备包括:
17.处理器;
18.存储器,用于存储可执行指令;
19.其中,处理器用于从存储器中读取可执行指令,并执行可执行指令以实现本公开任意实施例所说明的容器实例的故障诊断方法。
20.第四方面,本公开提供了一种计算机可读存储介质,该存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现本公开任意实施例所说明的容器实例的故障诊断方法。
21.本公开实施例的容器实例的故障诊断方法、装置、设备和存储介质,相对于现有技术存在如下优点:
22.1、在对容器实例进行故障诊断的过程中,并未获取容器实例对应的负载信息,如cpu、内存、带宽等指标,而是获取对目标服务的调用请求失败的相关数据,即调用失败数据集合和属于目标容器实例的调用失败数据子集,从而利用调用失败数据这一更加直接地反映容器实例运行情况的指标进行容器实例的故障诊断,提高容器实例故障诊断的效率和准确性。
23.2、在对容器实例进行故障诊断的过程中,并非简单地采用一个固定阈值进行故障诊断,而是在调用失败数据子集中每个单位时间窗口对应的调用失败数据的第一统计值满足预设条件时,确定调用失败数据子集在调用失败数据集合中的第一比重值,进而在第一比重值超过第一比重阈值时确定目标容器实例故障,降低了容器实例被误诊断为故障的概率,进一步提高了容器实例故障诊断的准确性。
附图说明
24.结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
25.图1为本公开实施例提供的一种容器实例的故障诊断方法的流程示意图;
26.图2为本公开实施例提供的另一种容器实例的故障诊断方法的流程示意图;
27.图3为本公开实施例提供的一种容器实例的故障诊断装置的结构示意图;
28.图4为本公开实施例提供的一种容器实例的故障诊断设备的结构示意图。
具体实施方式
29.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
30.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
31.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
32.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
33.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
34.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
35.当某一服务通过容器技术实现时,可通过容器镜像实例化出多个实现该服务功能的容器实例。这些容器实例可分布式地部署在多个物理机中,每个物理机中部署至少一个容器实例,以供远程调用。
36.目前,针对上述容器实例的单实例故障诊断多是采用机器学习模型诊断。机器学习模型诊断依赖于大量的训练样本和复杂的训练过程,并且存在召回率和准确率低的问题。另外,相关技术中还会采用人工诊断的方式进行故障诊断。但是,人工诊断则耗时耗力,诊断效率低。此外,即便有针对容器实例迁移或销毁的相关技术方案,其也不是检测容器实例故障,而是从容器资源利用率优化或成本优化等角度触发某些容器实例的销毁,以减少容器实例数量。
37.基于上述情况,本公开实施例提供一种容器实例的故障诊断方法、装置、设备和存储介质,实现在对容器实例进行故障诊断的过程中,利用对目标服务的调用请求失败的相关数据,以及该相关数据对应的预设条件和第一比重值来综合诊断容器实例是否故障,提高容器实例故障诊断的速度和准确率。
38.下面首先结合图1-2对本公开实施例提供的容器实例的故障诊断方法进行说明。
39.在本公开实施例中,该容器实例的故障诊断方法可以由容器实例的故障诊断装置执行,该容器实例的故障诊断装置集成在具有较强运算能力的容器实例的故障诊断设备中。该容器实例的故障诊断设备可以包括但不限于诸如笔记本电脑、台式计算机、服务器等。
40.图1示出了本公开实施例提供的一种容器实例的故障诊断方法的流程示意图。如图1所示,该容器实例的故障诊断方法可以包括如下步骤:
41.s110、获取目标容器实例的故障诊断请求。
42.其中,目标容器实例是需要进行故障诊断的某一服务的容器实例。
43.具体地,容器实例的故障诊断设备触发执行故障诊断流程的条件是接收到对目标容器实例进行故障诊断的请求(即故障诊断请求)。该故障诊断请求可以是某一服务(即目标服务)运营商主动发起的,即该目标容器实例的上游服务发起的故障诊断请求。该故障诊断请求也可以是目标容器实例对应的目标服务的自动故障诊断触发而生成的。例如,某一服务设置了轮询式或周期性的故障诊断,那么当轮询到目标容器实例,或者当定时周期达到后,会生成目标容器的故障诊断请求。该故障诊断请求中至少包含目标容器实例的容器实例标识及其对应服务的服务标识。
44.需要说明的是,不同方式触发生成的故障诊断请求可能会出现数据格式不统一的情况,所以为了提高后续处理效率,本公开会将故障诊断请求进行格式化,以将所有的故障诊断请求转换为设定的规范化数据格式。
45.s120、基于故障诊断请求,确定目标容器实例所属的目标服务,并查询设定时间段内的调用失败数据集合,且确定目标容器实例在设定时间段内的调用失败数据子集。
46.其中,设定时间段是指预先确定的时长,其是收集目标容器实例的远程调用请求(或称远程过程调用请求)的相关数据的时长。设定时间段可以是预先设定的时长。例如,对于自动触发容器实例的故障诊断的情况,可以预先设置该设定时间段。设定时间段也可以是故障诊断请求中携带的参数。例如,对于上游服务主动发起故障诊断请求的情况,可以在故障诊断请求中设置该设定时间段。
47.调用失败数据是指目标服务的远程调用请求处理失败的流量指标数据。调用失败数据集合是指设定时间段内目标服务的调用失败数据组成的数据集,其是调用失败数据的时序数据。例如,可以在目标服务的相应程序位置埋点,以统计得到该调用失败数据集合。调用失败数据子集是指由目标容器实例的调用失败数据组成的数据集,其是调用失败数据集合的一部分。
48.具体地,对于目标服务或目标容器实例而言,其远程调用请求的处理情况是能够直接反映其业务处理能力的数据,而远程调用请求的处理情况中请求处理失败的数据是可以反映其是否存在故障的直接数据。所以,本公开实施例中没有统计服务或容器实例对应的负载数据(如cpu、内存、带宽等),而是直接来获取调用失败数据。
49.具体实施时,容器实例的故障诊断设备根据故障诊断请求中携带的服务标识,确定出目标服务。然后,从获得的埋点统计数据中查询得到设定时间段内目标服务的调用失败数据集合,并且获得设定时间段内目标容器实例的调用失败数据子集。该调用失败数据子集可以根据故障诊断请求中携带的服务标识和目标容器实例的容器实例标识从埋点统计数据中查询得到,也可以根据容器实例标识从调用失败数据集合中提取得到。
50.在一些实施例中,因为调用失败数据集合中包含了目标服务对应的所有埋点统计数据,而这些数据中包含一些对故障诊断无用的噪声数据。所以,在获取目标服务的调用失败数据集合之后,基于调用失败类型和调用方信息对调用失败数据集合进行噪声过滤,以更新调用失败数据集合。
51.其中,调用失败类型是指远程调用请求处理失败的类型,也可以称为是调用请求失败的错误类型,例如可以是没有访问权限而导致的调用请求失败的权限类型,也可以是请求超时等原因而导致的请求失败的超时类型等。调用方信息是指发起目标服务的远程调用请求的调用方的信息,例如可以是测试方信息、用户方信息等。
52.具体地,本公开实施例获取调用失败数据的目的是为了诊断容器实例是否存在故障,所以只需关注与容器实例实际运行情况相关的调用失败数据。基于此,在获取调用失败数据集合之后,从该调用失败数据集合中过滤掉调用失败类型为权限类型或者调用方信息为测试方信息等的无关数据,以降低部分噪声数据的干扰,从而降低后续数据计算量、提高故障诊断效率的同时,进一步提高故障诊断的准确性。
53.s130、若调用失败数据子集中每个单位时间窗口对应的调用失败数据的第一统计值满足预设条件,则确定调用失败数据子集在调用失败数据集合中的第一比重值。
54.其中,单位时间窗口是指预先设定的、进行数据处理的时间单位。本公开实施例中将设定时间段划分为第一数量的单位时间窗口。第一数量是预先设置的数量值。第一统计值是对单位时间窗口内的调用失败数据进行统计后所得的数值,其可以是均值、中位数等表示多个调用失败数据的整体分布情况的统计指标的值。预设条件是预先设定的、用于初步判断容器实例大概率存在故障的条件,例如可以是预先设置的统计值的固定阈值,也可以是统计值的变化趋势等。
55.具体地,因为调用失败数据子集的数据量较多,为了提高数据处理效率,本公开实施例中设置了单位时间窗口,以便将调用失败数据子集划分为第一数量个数据段进行处理。另外,调用失败数据子集的数据分布中存在个别与整体数据分布不一致的数据跳变点,为了避免这些数据跳变点的影响,本公开实施例中又计算了每个单位时间窗口内的数据段的第一统计值。例如,计算每个单位时间窗口内的各调用失败数据的均值,便可得到第一数量个均值,其数据量相对于调用失败数据子集要小很多,且能够反映调用失败数据子集的数据分布情况。
56.然后,判断各第一统计值是否满足了预设条件。如果满足预设条件,说明目标容器实例在设定时间段内的运行情况很可能是存在故障的。之后,再进一步计算调用失败数据子集在调用失败数据集合中的占比(即第一比重值),以确定目标容器实例导致的调用请求失败的次数在整个目标服务的调用请求失败的次数中的比重。
57.在一些实施例中,预设条件包括第一阈值和单调非递减趋势。那么,上述确定调用失败数据子集中每个单位时间窗口对应的调用失败数据的第一统计值满足预设条件可为:确定每个第一统计值均超过第一阈值,且各第一统计值的数据变化趋势符合单调非递减趋势。
58.其中,第一阈值是指预先设置的统计值的临界值,其用于判断调用请求失败的数据量是否达到容器实例可能故障的情况。第一阈值可以是经验设定的数值,也可以是由故障诊断的需求方在故障诊断请求设定的参数。
59.具体地,判断各第一统计值是否满足预设条件时,可以先判断每个第一统计值是否超过了第一阈值。如果有至少一个第一统计值未超过第一阈值,说明目标容器实例在设定时间段内的运行情况可能是不存在故障的,其后续诊断流程见后续实施例的说明。如果所有第一统计值均超过了第一阈值,说明目标容器实例在设定时间段内的运行情况可能是存在故障的。
60.然后,进一步分析各第一统计值构成的数据变化趋势(如拟合曲线)是否符合单调非递减趋势。这是因为目标容器实例的调用失败数据量处于持续增多或至少保持数值较大的情况下,目标容器实例故障的概率会更大。如果各第一统计值构成的数据变化趋势符合单调非递减趋势,那么说明目标容器实例存在故障的概率比较大。这样的设置,相对于设置固定阈值直接诊断的相关技术,增加了容器实例故障诊断的诊断条件,进一步提高了故障诊断准确率。
61.s140、若确定第一比重值超过第一比重阈值,则确定目标容器实例故障。
62.其中,第一比重阈值是预先确定的比重的临界值,其可以是经验设定的数值,也可以是由故障诊断的需求方在故障诊断请求设定的参数。
63.具体地,如果上述计算的第一比重值超过了第一比重阈值,说明目标容器实例导
致的调用请求失败的次数在整个目标服务的调用请求失败的次数中的比重较大,那么可认为该目标容器实例已经发生故障。此时,可对该目标容器实例进行故障处理,例如发出警报信息,以便管理人员进行处理;再如销毁该目标容器实例,以减少目标服务的调用请求失败的次数;又如迁移该目标容器实例,以在减少目标服务的调用请求失败次数的同时,确保目标服务的容器实例的数量保持不变,从而确保目标服务的运行效率。
64.在一些实施例中,对于目标容器实例迁移的情况,其可实现为:向目标服务对应的容器管理系统发送目标容器实例的迁移请求,以使容器管理系统基于迁移请求销毁目标容器实例并重新生成新的容器实例,完成目标容器实例的迁移。即容器实例的故障诊断设备向管理目标服务的容器实例的容器管理系统发送目标容器实例的迁移请求。容器管理系统接收到迁移请求后,便销毁该目标容器实例,并根据目标服务对应的容器镜像重新生成一个新的容器实例,来替代目标容器实例,完成目标容器实例的迁移。
65.在一些实施例中,若确定第一比重值未超过第一比重阈值,则确定目标容器实例无故障。
66.具体地,如果上述计算的第一比重值未超过第一比重阈值,说明目标容器实例的调用失败数据的分布虽然存在一些问题,但是其并不是导致目标服务的调用请求失败的次数较大的主要原因,则可认为该目标容器实例未发生故障。
67.上述各实施例提供的容器实例的故障诊断的技术方案,能够在对容器实例进行故障诊断的过程中,获取对目标服务的调用请求失败的相关数据,即调用失败数据集合和属于目标容器实例的调用失败数据子集,从而利用调用失败数据这一更加直接地反映容器实例运行情况的指标进行容器实例的故障诊断,提高容器实例故障诊断的效率和准确性。并且,能够在对容器实例进行故障诊断的过程中,在判断调用失败数据子集中每个单位时间窗口对应的调用失败数据的第一统计值满足预设条件时,确定调用失败数据子集在调用失败数据集合中的第一比重值,进而在确定第一比重值超过第一比重阈值时确定目标容器实例故障,降低了容器实例被误诊断为故障的概率,进一步提高了容器实例故障诊断的准确性。
68.图2示出了本公开实施例提供的另一种容器实例的故障诊断方法的流程示意图。如图2所示,该容器实例的故障诊断方法可以包括如下步骤:
69.s201、获取目标容器实例的故障诊断请求。
70.s202、检测目标容器实例在历史时间段内是否被诊断为故障。
71.具体地,如果目标容器实例在过去一定时间段(即历史时间段)内曾被诊断为故障,但是该目标容器实例仍然保持运行,那么需要判断是否是运行该目标容器实例的物理机存在故障。所以,在获取故障诊断请求后,容器实例的故障诊断设备便根据请求中的目标容器实例的容器实例标识查询故障诊断记录中,该目标容器实例是否曾被诊断为故障。若是,则执行s203;若否,则执行s206。
72.s203、统计历史时间段内目标容器实例对应的物理机中的故障容器实例的第三数量。
73.其中,故障容器实例为部署于物理机中且被诊断为故障的容器实例。
74.具体地,如果目标容器实例在历史时间段内被诊断为故障,那么根据容器实例部署的历史记录,查找出运行目标容器实例的物理机中曾经部署的容器实例、以及现在部署
的容器实例。然后,根据故障诊断记录,统计这些查找出的容器实例中曾被诊断为故障的故障容器实例的数量(即第三数量)。
75.s204、判断第三数量是否超过第二阈值。
76.其中,第二阈值指预先设置的数量值,其可以是经验设定的数值,也可以是由故障诊断的需求方在故障诊断请求设定的参数。
77.具体地,比较第三数量和第二阈值,以判断物理机中运行过的容器实例的故障数量是否达到判断物理机故障的临界值。若是,则执行s205;若否,则执行s206。
78.s205、确定物理机故障,并确定目标容器实例故障。
79.具体地,如果物理机中的故障容器实例的第三数量大于第二阈值,说明该物理机中的多数容器实例都存在大量调用请求失败的情况,则可认为该物理机存在故障。这种情况下,可认为运行于该物理机上,且具有调用请求的目标容器实例存在故障。
80.s206、基于故障诊断请求,获得目标容器实例所属的目标服务在设定时间段内的调用失败数据集合,并获得目标容器实例在设定时间段内的调用失败数据子集。
81.s207、判断调用失败数据子集中每个单位时间窗口对应的调用失败数据的第一统计值是否满足预设条件。
82.若是,则执行s208;若否,则执行s212。
83.在一些实施例中,在预设条件为第一阈值和单调非递减趋势的情况下,上述判断各第一统计值未满足预设条件可实现为:确定任一个第一统计值未超过第一阈值;或者,确定各第一统计值的数据变化趋势不符合单调非递减趋势。
84.具体地,根据上述说明,在各第一统计值均超过第一阈值、且各第一统计值的变化趋势符合单调非递减趋势的情况下,认为各第一统计值满足预设条件。那么,在第一阈值和单调非递减趋势中有至少一个未达到上述情况时,便可认为各第一统计值未满足预设条件。即,当各第一统计值中有至少一个第一统计值小于或等于第一阈值时,可确定各第一统计值未满足预设条件;当各第一统计值的变化趋势未符合单调非递减趋势时,可确定各第一统计值未满足预设条件;当各第一统计值中有至少一个第一统计值小于或等于第一阈值,且各第一统计值的变化趋势未符合单调非递减趋势时,也可确定各第一统计值未满足预设条件。
85.s208、确定调用失败数据子集在调用失败数据集合中的第一比重值。
86.s209、判断第一比重值是否超过第一比重阈值。
87.若是,则执行s210;若否,则执行s211。
88.s210、确定目标容器实例故障。
89.s211、确定目标容器实例无故障。
90.s212、确定调用失败数据子集中的连续第二数量的单位时间窗口对应的调用失败数据的第二统计值。
91.其中,第二数量是预先设置的数量值,该第二数量小于第一数量。第二统计值也是对单位时间窗口内的调用失败数据进行统计后所得的数值,其可以是均值、中位数等表示多个调用失败数据的整体分布情况的统计指标的值。第二统计值的统计指标与第一统计值的统计指标可以相同,也可以不相同。
92.具体地,根据上述说明,如果任一个第一统计值未超过第一阈值,和/或各第一统
计值的数据变化趋势不符合单调非递减趋势,说明在设定时间段内无法判断目标容器实例是否存在故障。此时,缩小数据处理的时间范围,以进一步诊断目标容器实例是否故障。即从调用失败数据子集中抽取出连续第二数量的单位时间窗口对应的调用失败数据。例如,调用失败数据子集包含第一数量n个单位时间窗口的调用失败数据,此时获取调用失败数据子集这一时序数据中任意位置处的连续第二数量k个(k《n)单位时间窗口的调用失败数据。
93.然后,计算每个单位时间窗口内调用失败数据的第二统计值。如果第二统计值的统计指标与第一统计值的统计指标相同,例如都是均值,那么可以从第一统计值中直接抽取出对应顺序位置的第二数量个第一统计值,作为相应第二统计值。
94.在一些实施例中,上述连续第二数量的单位时间窗口对应的调用失败数据是调用失败数据子集中排序靠前的连续第二数量的单位时间窗口对应的调用失败数据。例如,对于上述n个单位时间窗口的调用失败数据的时序数据,从中提取前k个单位时间窗口的调用失败数据。这是因为:第一,排序靠前的连续第二数量的单位时间窗口对应的调用失败数据的采样时间相对于当前时刻比较久,其存在误差的可能性较小,可以提高第二统计值及后续对其判断的准确性,从而进一步提高故障诊断的准确性;第二,相比于提取排序靠后的连续第二数量的单位时间窗口对应的调用失败数据,提取排序靠前的连续第二数量的单位时间窗口对应的调用失败数据,更能提高利用各第二统计值进行后续故障诊断的严格程度,在提高故障诊断准确率的基础上,避免过度的容器实例迁移操作。
95.s213、判断各第二统计值的变化趋势是否符合尾部骤降趋势。
96.其中,尾部骤降趋势为按照小于斜率阈值(预先设置的一个斜率值,其为负值)的斜率下降的变化趋势,其表示调用请求失败的次数在设定时间段的末尾阶段以较大的速度减少。
97.具体地,各第二统计值的数据分布可构成又一数据变化趋势。分析该数据变化趋势是否符合尾部骤降趋势。若是,则执行s214;若否,则执行s215。
98.s214、确定目标容器实例无故障。
99.具体地,如果各第二统计值的变化趋势符合尾部骤降趋势,说明该目标容器实例在设定时间段的末尾阶段的调用请求失败的次数急剧减少,其因某些原因正在恢复正常的调用请求处理,则认为该目标容器实例具有自愈趋势,故判定该目标容器实例无故障。
100.s215、确定连续第二数量的单位时间窗口对应的调用失败数据在调用失败数据集合中的第二比重值。
101.具体地,如果各第二统计值的变化趋势不符合尾部骤降趋势,说明该目标容器实例的运行情况没有自愈趋势。此时,计算调用失败数据子集中的连续第二数量的单位时间窗口的调用失败数据在调用失败数据集合中的占比(即第二比重值),以确定目标容器实例在其运行阶段的后期中导致的调用请求失败的次数在整个目标服务的调用请求失败的次数中的比重。
102.s216、判断第二比重值是否超过第二比重阈值。
103.其中,第二比重阈值是又一预先确定的比重的临界值,其可以是经验设定的数值,也可以是由故障诊断的需求方在故障诊断请求设定的参数。
104.具体地,比较第二比重值和第二比重阈值的大小。如果第二比重值大于第二比重
阈值,则执行s217;反之,则执行s218。
105.s217、标记目标容器实例为疑似故障实例。
106.具体地,如果第二比重值大于第二比重阈值,说明目标容器实例在其运行阶段的后期导致的调用请求失败的次数在整个目标服务的调用请求失败的次数中的比重较大,那么可认为该目标容器实例疑似发生故障,此时对其进行标记,以便后续转由人工进行进一步诊断。
107.s218、确定目标容器实例无故障。
108.具体地,如果第二比重值小于或等于第二比重阈值,说明目标容器实例的调用失败数据的分布虽然存在一些问题,但是其并不是导致目标服务的调用请求失败的次数较大的主要原因,则可认为该目标容器实例未发生故障。
109.上述实施例提供的容器实例的故障诊断方法,能够在单实例故障诊断之前,先检测目标容器实例在历史时间段内是否被诊断为故障,并在其被诊断为故障的情况下统计历史时间段内目标容器实例对应的物理机中的故障容器实例的第三数量,且在第三数量超过第二阈值时确定物理机故障,继而确定目标容器实例故障,节省了后续的故障诊断流程,进一步提高了容器实例的故障诊断效率。另外,能够在任一个第一统计值未超过第一阈值,或者各第一统计值的数据变化趋势不符合单调非递减趋势的情况下,确定调用失败数据子集中的连续第二数量的单位时间窗口对应的调用失败数据的第二统计值,并在确定各第二统计值的变化趋势符合尾部骤降趋势时确定目标容器实例无故障,实现了目标容器实例的调用请求在快速恢复正常的情况下,判定容器实例无故障,完善了容器实例故障诊断流程,进一步提高容器实例故障诊断的准确性。此外,能够在确定各第二统计值的变化趋势不符合尾部骤降趋势的情况下,确定连续第二数量的单位时间窗口对应的调用失败数据在调用失败数据集合中的第二比重值,并在第二比重值超过第二比重阈值时标记目标容器实例为疑似故障实例;且在第二比重值未超过第二比重阈值时确定目标容器实例无故障,进一步完善了容器实例故障诊断流程,更进一步提高容器实例故障诊断的准确性。
110.图3示出了本公开实施例提供的一种容器实例的故障诊断装置的结构示意图。如图3所示,该容器实例的故障诊断装置300可以包括33:
111.故障诊断请求获取模块310,用于获取目标容器实例的故障诊断请求;
112.调用失败数据获得模块320,用于基于故障诊断请求,确定目标容器实例所属的目标服务,并查询设定时间段内的调用失败数据集合,且确定目标容器实例在设定时间段内的调用失败数据子集;
113.第一比重值确定模块330,用于若确定调用失败数据子集中每个单位时间窗口对应的调用失败数据的第一统计值满足设定条件,则确定调用失败数据子集在调用失败数据集合中的第一比重值;其中,设定时间段被划分为第一数量的单位时间窗口;
114.故障诊断模块340,用于若确定第一比重值超过第一比重阈值,则确定目标容器实例故障。
115.上述容器实例的故障诊断装置,能够在对容器实例进行故障诊断的过程中,获取对目标服务的调用请求失败的相关数据,即调用失败数据集合和属于目标容器实例的调用失败数据子集,从而利用调用失败数据这一更加直接地反映容器实例运行情况的指标进行容器实例的故障诊断,提高容器实例故障诊断的效率和准确性。并且,能够在对容器实例进
行故障诊断的过程中,在判断调用失败数据子集中每个单位时间窗口对应的调用失败数据的第一统计值满足预设条件时,确定调用失败数据子集在调用失败数据集合中的第一比重值,进而在第一比重值超过第一比重阈值时确定目标容器实例故障,降低了容器实例被误诊断为故障的概率,进一步提高了容器实例故障诊断的准确性。
116.在一些实施例中,该容器实例的故障诊断装置300还包括:
117.第二统计值确定模块,用于在基于故障诊断请求,确定目标容器实例所属的目标服务,并查询设定时间段内目标服务的调用失败数据集合,且确定目标容器实例在设定时间段内的调用失败数据子集之后,若确定各第一统计值未满足预设条件,则确定调用失败数据子集中的连续第二数量的单位时间窗口对应的调用失败数据的第二统计值;其中,第二数量小于第一数量;
118.相应地,故障诊断模块340还用于:
119.若确定各第二统计值的变化趋势符合尾部骤降趋势,则确定目标容器实例无故障;其中,尾部骤降趋势为按照小于斜率阈值的斜率下降的变化趋势。
120.在一些实施例中,第一比重值确定模块330具体用于:
121.若确定每个第一统计值均超过第一阈值,且各第一统计值的数据变化趋势符合单调非递减趋势,则确定调用失败数据子集在调用失败数据集合中的第一比重值;
122.相应地,第二统计值确定模块具体用于:
123.若确定任一个第一统计值未超过第一阈值,和/或确定各第一统计值的数据变化趋势不符合单调非递减趋势,则确定调用失败数据子集中的连续第二数量的单位时间窗口对应的调用失败数据的第二统计值。
124.在一些实施例中,该容器实例的故障诊断装置300还包括:
125.第二比重值确定模块,用于在若确定各第一统计值未满足预设条件,则确定调用失败数据子集中的连续第二数量的单位时间窗口对应的调用失败数据的第二统计值之后,若确定各第二统计值的变化趋势不符合尾部骤降趋势,则确定连续第二数量的单位时间窗口对应的调用失败数据在调用失败数据集合中的第二比重值;
126.相应地,故障诊断模块340还用于:
127.若确定第二比重值超过第二比重阈值,则标记目标容器实例为疑似故障实例。
128.进一步地,故障诊断模块340还用于:
129.若确定第二比重值未超过第二比重阈值,则确定目标容器实例无故障。
130.在一些实施例中,故障诊断模块340还用于:
131.在确定调用失败数据子集在调用失败数据集合中的第一比重值之后,若确定第一比重值未超过第一比重阈值,则确定目标容器实例无故障。
132.在一些实施例中,该容器实例的故障诊断装置300还包括数据过滤模块,用于:
133.在基于故障诊断请求,确定目标容器实例所属的目标服务,并查询设定时间段内目标服务的调用失败数据集合之后,基于调用失败类型和调用方信息对调用失败数据集合进行噪声过滤,以更新调用失败数据集合。
134.在一些实施例中,该容器实例的故障诊断装置300还包括物理机故障诊断模块,用于:
135.在获取目标容器实例的故障诊断请求之后,若检测到目标容器实例在历史时间段
内被诊断为故障,则统计历史时间段内目标容器实例对应的物理机中的故障容器实例的第三数量;其中,故障容器实例为部署于物理机中且被诊断为故障的容器实例;
136.若第三数量超过第二阈值,则确定物理机故障,并确定目标容器实例故障。
137.在一些实施例中,该容器实例的故障诊断装置300还包括容器实例迁移模块,用于:
138.在确定目标容器实例故障之后,向目标服务对应的容器管理系统发送目标容器实例的迁移请求,以使容器管理系统基于迁移请求销毁目标容器实例并重新生成新的容器实例,完成目标容器实例的迁移。
139.需要说明的是,图3所示的容器实例的故障诊断装置300可以执行图1至图2所示的方法实施例中的各个步骤,并且实现图1至图2所示的方法实施例中的各个过程和效果,在此不做赘述。
140.本公开实施例还提供了一种容器实例的故障诊断设备,该容器实例的故障诊断设备可以包括处理器和存储器,存储器可以用于存储可执行指令。其中,处理器可以用于从存储器中读取可执行指令,并执行可执行指令以实现上述任意实施例中的容器实例的故障诊断方法的步骤。
141.本公开实施例中的容器实例的故障诊断设备可以包括但不限于诸如笔记本电脑、台式计算机、服务器等。
142.图4示出了本公开实施例提供的一种容器实例的故障诊断设备的结构示意图。图4示出的容器实例的故障诊断设备400仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
143.下面具体参考图4,其示出了适于用来实现本公开实施例中的容器实例的故障诊断设备400的结构示意图。
144.如图4所示,该容器实例的故障诊断设备400可以包括处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(rom)402中的程序或者从存储装置408加载到随机访问存储器(ram)403中的程序而执行各种适当的动作和处理。在ram 403中,还存储有信息处理设备400操作所需的各种程序和数据。处理装置401、rom 402以及ram 403通过总线404彼此相连。输入/输出接口(i/o接口)405也连接至总线404。
145.通常,以下装置可以连接至i/o接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408;以及通信装置409。通信装置409可以允许容器实例的故障诊断设备400与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的容器实例的故障诊断设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
146.本公开实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现上述任意实施例中的容器实例的故障诊断方法的步骤。
147.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这
样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从rom 402被安装。在该计算机程序被处理装置401执行时,执行本公开实施例的容器实例的故障诊断方法中限定的上述功能。
148.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
149.在一些实施方式中,客户端、服务器可以利用诸如http之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
150.上述计算机可读介质可以是上述容器实例的故障诊断设备中所包含的;也可以是单独存在,而未装配入该容器实例的故障诊断设备中。
151.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该容器实例的故障诊断设备执行时,使得该容器实例的故障诊断设备执行本公开任意实施例所说明的容器实例的故障诊断方法的步骤。
152.在本公开实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
153.附图中的流程图和框图,图示了按照本公开各种实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标
注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
154.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
155.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
156.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
157.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
158.此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
159.尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献