掌桥专利:专业的专利平台
掌桥专利
首页

一种软件运行监控方法、系统、电子设备及存储介质

文献发布时间:2024-04-18 19:59:31


一种软件运行监控方法、系统、电子设备及存储介质

技术领域

本发明涉及计算机技术领域,更具体地说,涉及一种软件运行监控方法、系统、电子设备及存储介质。

背景技术

GTP是目标使用最广泛的文件传输类产品之一,可以提供稳定的点对点文件传输能力;一个GTP的传输网络中的节点数量可能成百上千,为了保证文件传输的时效,需要对当前的各个节点、通道和队列的运行情况进行监控,以便针对存在异常状态通道和队列及时发出相应的预警。

通常产品自身对具备自愈能力的异常场景存在一定的容错能力,也就是说,具备自愈能力的异常场景不在发出对应的预警,但是由于受GTP产品特性的限值,只要GTP的传输网络中的任意一个节点重启或网络抖动,都可能会造成关联节点瞬时的连接失败,并发出相应的预警。

因此,如何提供一种软件运行监控方式,以避免因GTP发生瞬时连接失败、节点重启、网络抖动等具备自愈能力的异常场景所触发相应的预警,提高运维智能化水平和效率,是本申请当前亟需解决的问题。

发明内容

有鉴于此,本发明提供一种软件运行监控方法、系统、电子设备及存储介质,以避免因GTP发生瞬时连接失败、节点重启、网络抖动等具备自愈能力的异常场景所触发相应的预警,提高运维智能化水平和效率为目的。

本发明第一方面提供一种软件运行监控方法,适用于GTP,所述方法包括:

当检测到所述GTP的进程,获取所述GTP在第一预设时间段内的连通性状态矩阵;其中,所述连通性状态矩阵包括所述GTP的每个的通道在所述第一预设时间段内依次采集的多个通道信息;

遍历各个所述通道,从各个所述通道中确定目标通道;其中,所述目标通道为未进行过通道异常检测的通道;

根据所述目标通道的各个通道信息,判断所述目标通道是否存在异常;

若所述目标通道存在异常,输出所述目标通道对应的预警指示,将所述目标通道标记为已进行过通道异常检测的通道,并返回执行遍历各个所述通道,从各个所述通道中确定目标通道这一步骤;

若所述目标通道不存在异常,生成所述目标通道对应的队列列表;

遍历所述队列列表,从所述队列列表中确定未进行状态监测的队列,并获取所述未进行状态监测的队列的第一排队消息数;

若所述第一排队消息数大于预设消息数阈值,获取所述未进行状态监测的队列在所述第二预设时间段内的队列状态矩阵;其中,所述第二预设时间段小于所述第一预设时间段;

根据所述未进行状态监测的队列的队列状态矩阵,判断所述未进行状态监测的队列是否存在异常;

若所述未进行状态监测的队列存在异常,输出所述未进行状态监测的队列对应的预警指示,将所述未进行状态监测的队列更新为已进行状态监测的队列,并返回执行遍历所述队列列表,从所述队列列表中获取未进行状态监测的队列的第一排队消息数这一步骤。

可选的,所述目标通道的通道信息至少包括端口连通性和通道状态;

根据所述目标通道的各个通道信息,判断所述目标通道是否存在异常,包括:

根据所述目标通道的各个端口连通性,判断所述目标通道是否存在端口异常;

若所述目标通道存在端口异常,输出相应的预警提示;

若所述目标通道不存在端口异常,根据所述目标通道的各个通道状态,判断所述目标通道是否存在通道状态异常;

若所述目标通道存在通道状态异常,确定所述目标通道存在异常。

可选的,根据所述目标通道的各个端口连通性,判断所述目标通道是否存在端口异常,包括:

判断所述目标通道的各个端口连通性是否均为开通状态;

若所述目标通道存在不为开通状态的端口连通性,确定所述目标通道存在端口异常;

若所述目标通道的各个端口连通性均为开通状态,确定所述目标通道不存在端口异常。

可选的,所述若所述目标通道不存在端口异常,根据所述目标通道的各个通道状态,判断所述目标通道是否存在通道状态异常,包括:

所述若所述目标通道不存在端口异常,判断所述目标通道是否存在至少预设数值个表征连接异常的通道状态;

若所述目标通道存在至少预设数值个表征连接异常的通道状态,确定所述目标通道存在通道状态异常;

若所述目标通道不存在至少预设数值个表征连接异常的通道状态,确定所述目标通道不存在通道状态异常。

可选的,所述队列状态矩阵包括所述未进行状态监测的队列在所述第二预设时间段内依次采集的多个队列信息;所述队列消息包括第二排队消息数、发送中消息数、消息id和ReadSeq变化率;

根据所述未进行状态监测的队列的队列状态矩阵,判断所述队列是否存在异常,包括:

判断各个所述队列信息中的最后一个队列消息中的第二排队消息数是否大于所述预设消息数阈值;

若最后一个队列消息中的第二排队消息数大于所述预设消息数阈值,根据所述未进行状态监测的队列的各个队列消息中的发送中消息数、消息id和ReadSeq变化率,判断所述队列是否存在异常。

可选的,所述根据所述未进行状态监测的队列的各个队列消息中的发送中消息数、消息id和ReadSeq变化率,判断所述队列是否存在异常,包括:

判断所述未进行状态监测的各个队列消息中的发送中消息数是否均等于目标阈值的;

若各个队列消息中存在不等于所述目标阈值的发送中消息数,确定所述未进行状态监测的队列存在发送链表异常;

若各个队列消息中的发送中消息数据均等于所述目标阈值,判断各个所述队列消息中的消息id是否一致;

若各个队列消息中的消息id一致,确定所述未进行状态监测的队列存在发送状态异常;

若各个队列消息中的消息id不一致,计算各个所述队列消息中的ReadSeq变化率之间的差值;

若存在不大于预设ReadSeq变化率的差值,确定所述未进行状态监测的队列存在发送速率异常。

可选的,所述方法还包括:

若最后一个队列消息中的第二排队消息数不大于所述预设消息数阈值,确定所述所述未进行状态监测的队列不存在异常;

将所述未进行状态监测的队列更新为已进行状态监测的队列,并返回执行遍历所述队列列表,从所述队列列表中获取未进行状态监测的队列的第一排队消息数。

本发明第二方面提供一种软件运行监控系统,适用于GTP,所述系统包括:

第一获取单元,用于当检测到所述GTP的进程,获取所述GTP在第一预设时间段内的连通性状态矩阵;其中,所述连通性状态矩阵包括所述GTP的每个的通道在所述第一预设时间段内依次采集的多个通道信息;

第一遍历单元,用于遍历各个所述通道,从各个所述通道中确定目标通道;其中,所述目标通道为未进行过通道异常检测的通道;

第一判断单元,用于根据所述目标通道的各个通道信息,判断所述目标通道是否存在异常;

第一输出单元,用于若所述目标通道存在异常,输出所述目标通道对应的预警指示,将所述目标通道标记为已进行过通道异常检测的通道,并返回执行第一遍历单元;

队列列表生成单元,用于若所述目标通道不存在异常,生成所述目标通道对应的队列列表;

第二遍历单元,用于遍历所述队列列表,从所述队列列表中确定未进行状态监测的队列,并获取所述未进行状态监测的队列的第一排队消息数;

第二获取单元,用于若所述第一排队消息数大于预设消息数阈值,获取所述未进行状态监测的队列在所述第二预设时间段内的队列状态矩阵;其中,所述第二预设时间段小于所述第一预设时间段;

第二判断单元,用于根据所述未进行状态监测的队列的队列状态矩阵,判断所述未进行状态监测的队列是否存在异;

第二输出单元,用于若所述未进行状态监测的队列存在异常,输出所述未进行状态监测的队列对应的预警指示,将所述未进行状态监测的队列更新为已进行状态监测的队列,并返回执行第二遍历单元。

本发明第三方面提供一种电子设备,包括:处理器以及存储器,所述处理器以及存储器通过通信总线相连;其中,所述处理器,用于调用并执行所述存储器中存储的程序;所述存储器,用于存储程序,所述程序用于实现如本发明第一方面提供的软件运行监控方法。

本发明第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行如本发明第一方面提供的软件运行监控方法。

本发明提供一种软件运行监控方法、系统、电子设备及存储介质,本发明提供一种软件运行监控方法,适用于GTP,可以当检测到GTP的进程,获取GTP在第一预设时间段内的连通性状态矩阵;其中,连通性状态矩阵包括GTP的每个的通道在第一预设时间段内依次采集的多个通道信息;遍历各个通道,从各个通道中确定目标通道;其中,目标通道为未进行过通道异常检测的通道;根据目标通道的各个通道信息,判断目标通道是否存在异常;若目标通道存在异常,输出目标通道对应的预警指示,将目标通道标记为已进行过通道异常检测的通道,并返回遍历各个通道,从各个通道中确定目标通道这一步骤;若目标通道不存在异常,生成目标通道对应的队列列表;遍历队列列表,从队列列表中确定未进行状态监测的队列,并获取未进行状态监测的队列的第一排队消息数;若第一排队消息数大于预设消息数阈值,获取未进行状态监测的队列在第二预设时间段内的队列状态矩阵;其中,第二预设时间段小于第一预设时间段;根据未进行状态监测的队列的队列状态矩阵,判断未进行状态监测的队列是否存在异常;若未进行状态监测的队列存在异常,输出未进行状态监测的队列对应的预警指示,将未进行状态监测的队列更新为已进行状态监测的队列,并返回执行遍历队列列表,从队列列表中获取未进行状态监测的队列的第一排队消息数这一步骤。本发明提供的技术方案,通过将时间维度引入软件运行监控中,以便尽量压缩的第一预设时间段内的时间窗口中,通过根据第一预设时间段内的连通性状态矩阵的目标通道的多个通道信息,综合评估对应的目标通道是否存在异常,只有在目标通道存在异常的情况下,才输出对应的预警指示;以及对于不存在异常的通道,可以进一步根据该目标通道下的每个队列在第二预设时间段内的队列状态矩阵,综合评估该队列是否存在异常,只有在该队列存在异常的情况下,才输出对应的预警指示,对于具备自愈能力的异常场景,则不进行预警指示,能够有效避免因GTP发生瞬时连接失败、节点重启、网络抖动等具备自愈能力的异常场景触发相应的预警,进而达到提高运维智能化水平和效率的目的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种软件运行监控方法的流程示意图;

图2为本发明实施例提供的一种GTP的连通型状态矩阵的示例图;

图3为本发明实施例提供的一种A队列的队列状态矩阵示例图;

图4为本发明实施例提供的一种软件运行监控方法的示例图;

图5为本发明实施例提供的一种软件运行监控系统的结构示意图;

图6为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。

需要注意,本发明公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本发明公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

为了更好对本发明实施例进行理解,下面对本发明实施例涉及的技术用语进行解释说明:

TongGTP:简称GTP,一种通用文件传输软件,可跨平台提供稳定的文件收发功能。

通道:消息中间件两个节点间相互通讯的逻辑通讯连接。

队列:GTP发送文件时用来存放消息的容器,通常为先进先出,顺序发送。

ReadSeq:GTP产品存在正在发送的消息时,可以通过产品接口查询并反映其当前处理进度的指标。

参见图1,示出了本发明实施例提供的一种软件运行监控方法的流程示意图,该软件运行监控方法适用于GTP,该软件运行监控方法具体包括以下步骤:

S101:当检测到GTP的进程时,获取GTP在第一预设时间段内的连通性状态矩阵;其中,连通性状态矩阵包括GTP的每个通道在第一预设时间段内依次采集的多个通道信息。

在具体执行步骤S101的过程中,可以检测当前是否存在GTP的进程,当检测到当前存在GTP的进程的情况下,针对GTP的每个通道而言,可以周期性采集该通道在第一预设时间段内的多个通道信息,并根据采集到的每个通道的多个通道信息生成相应的连通性状态矩阵。

需要说明的是,采集通道在第一预设时间段内的多个通道信息的一个周期的时间大于等于第一预设时间段,例如,此处的一个周期的时间可以为1分钟、2分钟、3分钟等等,在此本申请实施例不加以限定。

还需要说明的是,通道的通道信息可以包括该通道的通道名称、端口连通性和通道状态。其中,端口联通性可以为开通状态(open)或关闭状态(close),通道状态可以为连接异常(close),或者为连接等待(unlink),或者为传输中(link),可以根据实际应用进行设置,在此本发明实施例不加以限定。

在本实施例中,针对每个通道而言,在第一预设时间段内,可以每隔第一目标时间段采集一次该通道的通道信息。其中,第一目标时间段小于第一预设时间段。

例如,第一预设时间段为1分钟时,第一目标时间段可以为20秒,进而可以在第一预设时间段内完成GTP中的每个通道的四次采样,得到每个通道对应的4个通道信息,也就是说,可以分别在0秒、20秒、40秒和60秒时采集GTP中的每个通道的通道信息,如图2所示。

进一步的,在本申请实施例中,在检测当前是否存在GTP的进程之前,可以初始化GTP的监控阈值;其中,GTP的监控阈值包括GTP的每个队列的排队消息数和ReadSeq变化率。

S102:遍历各个通道,从各个通道中确定目标通道;其中,目标通道为未进行过通道异常检测的通道,并根据目标通道的各个通道信息,判断目标通道是否存在异常;若目标通道存在异常,执行步骤S103;若通道不存在异常,执行步骤S104。

在具体执行步骤S102的过程中,在获取到GTP的连通性状态矩阵后,可以按照各个通道的通道名称依序遍历各个通道,并从GTP的连通性状态矩阵获取目标通道的多个通道信息,以便根据获取到的目标通道的各个通道信息,判断该目标通道是否存在异常,若目标通道存在异常,执行步骤S103;若目标通道不存在异常,执行步骤S104。其中,目标通道为未进行过通道异常检测的通道。

可选的,根据目标通道的各个通道信息,判断目标通道是否存在异常的过程具体可以为:根据目标通道的各个端口连通性判断目标通道是否存在端口异常;若目标通道存在端口异常,输出相应的预警提示;若目标通道不存在端口异常,根据目标通道的各个通道状态,判断目标通道是否存在通道状态异常;若目标通道存在通道状态异常,确定目标通道存在异常。

作为本申请实施例的一种优选方式,根据目标通道的各个端口连通性判断目标通道是否存在端口异常的过程具体可以为:判断目标通道的各个端口连通性是否均为开通状态;若目标通道存在不为开通状态的端口连通性,确定目标通道存在端口异常,并输出相应的预警提示,以便对应的技术人员可以根据相应的预警提示进行相应的处理;若目标通道的各个端口连通性均为开通状态,确定目标通道不存在端口异常。

作为本申请实施例的一种优选方式,根据目标通道的各个通道状态,判断目标通道是否存在通道状态异常的过程具体可以为:判断目标通道是否存在至少预设数值个表征连接异常的通道状态;若目标通道存在至少预设数值个表征连接异常的通道状态,确定目标通道存在通道状态异常,并输出相应的预警指示;若目标通道不存在至少预设数值个表征连接异常的通道状态,确定目标通道不存在通道状态异常。

需要说明的是,预设数值可以为3,可以根据实际应用进行设置,在此本发明实施例不加以限定。

例如,以图2为例,假设预设数值为3,可以判断目标通道(conn_A)的A_port_1、A_port_2、A_port_3和A_port_4是否均为开通状态(open),如果A_port_1、A_port_2、A_port_3和A_port_4中的A_port_1不为开通状态(open),那么可以确定该目标通道(conn_A)存在端口异常,输出相应的预警提示;如果A_port_1、A_port_2、A_port_3和A_port_4均为开通状态(open),判断A_stat_1、A_stat__2、A_stat__3和A_stat__4中是否存在至少3个为连接异常(close),如果A_stat_1和A_stat__2不为连接异常(close),说明该目标通道断开后重连未恢复,进而可以确定目标该通道存在通道状态异常,输出相应的预警指示。

S103:输出通道对应的预警指示。

在具体执行步骤S103的过程中,在确定目标通道出现异常的情况下,可以输出相应的预警指示,将该目标通道标记为已经过异常检测的通道,并返回执行步骤S102;其中,目标通道的预警指示可以为通道状态异常的预警指示。

S104:遍历该目标通道对应的队列列表,从队列列表中获取未进行状态监测的队列的第一排队消息数。

在具体执行步骤S104的过程中,在确定目标通道不存在异常的情况下,可以生成该目标通道对应的队列列表,并遍历该目标通道对应的队列列表,从队列列表中获取未进行状态监测的队列的排队消息数(为了便于区分,将此时获取到的排队消息数称为第一排队消息数)。

需要说明的是,目标通道的队列列表中包括该目标通道的依序排列的多个队列,其中,多个队列可以包括至少一个未进行状态监测的队列。

在一些实施例中,可以依序遍历队列列表中的各个队列,并确定出队列列表中未进行状态监测的队列;如果存在多个未进行状态监测的队列,则可以获取当前排在最前面的未进行状态监测的队列的第一排队消息数。

需要说明的是,未进行状态监测的队列的第一排队消息数可以指示该未进行状态监测的队列的队列深度。

S105:判断第一排队消息数是否大于预设消息数阈值;若第一排队消息数大于预设消息数阈值,执行步骤S106;若第一排队消息数不大于预设消息数阈值,将未进行状态监测的队列更新为已进行状态监测的队列,并返回执行步骤S104。

在本申请实施例中,可以预先设置相应的预设消息数阈值,即设置相应的队列深度阈值,以便在获取到未进行状态监测的队列的第一排队消息数后,可以进一步判断该第一排队消息数是否大于预设消息数阈值;若第一排队消息数大于预设消息数阈值,执行步骤S106;若第一排队消息数不大于预设消息数阈值,将未进行状态监测的队列更新为已进行状态监测的队列,并返回执行步骤S104。

例如,预先设置的队列深度阈值可以为60%,即预先设置的预设消息数阈值可以为60%,当未进行状态监测的队列的队列深度超过60%时,可以将该未进行状态监测的队列纳入预警评估范围,即执行步骤S106,以进一步检该未进行状态监测的队列是否存在异常;如果该未进行状态监测的队列的队列深度未超过60%,说明该未进行状态监测的队列不存在异常风险,无需纳入预警评估范围,进而可以将未进行状态监测的队列更新为已进行状态监测的队列,并返回执行步骤S104。

S106:获取未进行状态监测的队列在第二预设时间段内的队列状态矩阵,并根据未进行状态监测的队列的队列状态矩阵判断未进行状态监测的队列是否存在异常;若未进行状态监测的队列不存在异常,将未进行状态监测的队列更新为已进行状态监测的队列,返回执行步骤S104;若未进行状态监测的队列存在异常,执行步骤S107。

在具体执行步骤S106的过程中,在确定未进行状态检测的队列的第一排队消息数大于预设消息数阈值的情况下,可以采集在第二预设时间段内该未进行状态监测的队列的多个队列消息,并根据采集到的多个队列消息生成该未进行状态监测的队列的队列状态矩阵,以便后续可以根据该未进行状态监测的队列的队列状态矩阵判断该未进行状态监测的队列是否存在异常。

作为本申请实施例一种实现方式,可以在第一预设时间段内周期性采集才第二预设时间段内未进行状态监测的队列的多个队列消息。例如,采集未进行状态监测的队列在第二预设时间段内的多个队列信息的一个周期的时间可以为1秒、2秒、3秒等等,在此本申请实施例不加以限定。

在本实施例中,在第二预设时间段内,可以每隔第二目标时间段采集一次未进行状态监测的队列的队列消息。其中,第二目标时间段不大于第二预设时间段。

例如,第二预设时间段为1分钟,第二目标时间段可以为1秒,进而可以在第二预设时间段内完成对未进行状态监测的队列的两次采样,得到未进行状态监测的队列对应的2个队列信息,也就是说,可以分别在0秒和1秒时采集未进行状态监测的队列的队列信息,如图3所示。

在本实施例中,队列消息包括第二排队消息数、发送中消息数、消息id和ReadSeq变化率。

可选的,根据未进行状态监测的队列的队列状态矩阵判断队列是否存在异常的过程具体可以为:判断各个队列信息中的最后一个队列消息中的第二排队消息数是否大于预设消息数阈值;若最后一个队列消息中的第二排队消息数大于预设消息数阈值,根据未进行状态监测的队列的各个队列消息中的发送中消息数、消息id和ReadSeq变化率,判断队列是否存在异常。

在本实施例中,在获取到未进行状态监测的队列的队列状态矩阵后,可以判断一下该未进行状态监测的队列的排队消息数是否已经恢复,即重新判断队列状态矩阵的最后一个队列消息中的第二排队消息数是否大于预设消息数阈值;若未大于,说明该未进行状态监测的队列的排队消息数已经恢复,即说明该未进行状态监测的队列不存在异常风险,则可以预警评估范围中剔除该未进行状态监测的队列,进而可以返回执行步骤S101;若大于,说明该未进行状态监测的队列的排队消息数未恢复,即说明该未进行状态监测的队列任然存在异常风险,进而可以继续进行异常判断。

例如,以图3为例,可以判断A队列中的A_sending_2是否大于预设消息数阈值;如果A_sending_2大于预设消息数阈值,说明该未进行状态监测的队列的排队消息数未恢复,即说明该未进行状态监测的队列任然存在异常风险,进而可以继续进行异常判断;如果A_sending_2不大于预设消息数阈值,说明该未进行状态监测的队列的排队消息数已经恢复,即说明该未进行状态监测的队列不存在异常风险,则可以预警评估范围中剔除该未进行状态监测的队列,进而可以返回执行步骤S104。

作为本申请实施例的一种优选方式,根据未进行状态监测的队列的各个队列消息中的发送中消息数、消息id和ReadSeq变化率,判断队列是否存在异常的过程具体可以为:判断未进行状态监测的队列中的是否存在等于目标阈值的发送中消息数;若存在等于目标阈值的发送中消息数,确定未进行状态监测的队列存在链表异常;若不存在等于目标阈值的发送中消息数,判断各个队列消息中的消息id是否一致;若各个队列消息中的消息id一致,确定未进行状态监测的队列不存在状态异常;若各个队列消息中的消息id不一致,计算各个队列消息中的ReadSeq变化率之间的差值;若存在不大于预设ReadSeq变化率的差值,确定未进行状态监测的队列存在速率异常。

需要说明的是,可以将目标阈值预先设置为1,也就是说,如果未进行状态监测的队列的各个队列消息中的发送中消息数为1,说明该未进行状态监测的队列中当前存在一条正在发送的消息,进而可以说明该未进行状态监测的队列的发送链条正常,即该未进行状态监测的队列当前不存在异常;如果未进行状态监测的队列的各个队列消息中存在发送中消息数不为1,说明该未进行状态监测的队列中当前存在多条正在发送的消息或不存在正在发送的消息,进而可以说明该未进行状态监测的队列的发送链条异常,即该未进行状态监测的队列当前存在异常,进而可以输出相应的发送链条异常预警。

还需要说明的是,预设ReadSeq变化率可以预先设置为1000,也就是说,如果未进行状态监测的队列的两条队列消息中的ReadSeq变化率之间的差值不大于1000,说明该未进行状态监测的队列当前的ReadSeq变化率的发送效率较低,进而可以说明该未进行状态监测的队列存在发送速率异常,可以输出相应的发送速率异常预警。

S107:输出未进行状态监测的队列对应的预警指示。

在具体执行步骤S107的过程中,在确定未进行状态监测的队列存在异常的情况下,可以输出未进行状态监测的队列对应的预警指示,并将未进行状态监测的队列更新为已进行状态监测的队列,重新返回执行步骤S104,直至队列列表中不存在未进行状态监测的队列位置。

在本申请试试,如果目标通道的队列列表中已经不存在未进行状态检测的队列,则可以将该目标通道标记为已进行过通道异常检测的通道,并返回执行步骤S102,直至GTP的各个通道中不存在未进行过通道异常检测的目标通道为止。

本发明提供一种软件运行监控方法,通过将时间维度引入软件运行监控中,以便尽量压缩的第一预设时间段内的时间窗口中,通过根据第一预设时间段内的连通性状态矩阵的目标通道的多个通道信息,综合评估对应的目标通道是否存在异常,只有在目标通道存在异常的情况下,才输出对应的预警指示;以及对于不存在异常的通道,可以进一步根据该目标通道下的每个队列在第二预设时间段内的队列状态矩阵,综合评估该队列是否存在异常,只有在该队列存在异常的情况下,才输出对应的预警指示,对于具备自愈能力的异常场景,则不进行预警指示,能够有效避免因GTP发生瞬时连接失败、节点重启、网络抖动等具备自愈能力的异常场景触发相应的预警,进而达到提高运维智能化水平和效率的目的。

为了更好对本发明实施例进行理解,下面以具体的场景实施例进行解释说明,如图4所示。

A1:对GTP进行初始化监控阈值。

A2:实时检测当前是否存在GTP进程;如果不存在,则可以结束当前流程;如果存在,执行A3。

A3:获取GTP的连通性状态矩阵;其中连通性状态矩阵包括GTP的每个通道在一分钟(第一预设时间段)内的4个通道信息。

A4:遍历各个通道,从各个通道中确定目标通道;其中,目标通道为未进行过通道异常检测的通道。

A5:判断该目标通道的4个端口连接性是否均为开通状态(open);如果不是的话,可以输出相应的预警提示,将目标通道标记为已进行过通道异常检测的通道,并返回执行A4;如果均为开通状态(open),执行A6。

A6:判断该目标通道的4个通道状态中为连接异常(close)的通道状态的个数是否大于等于3;如果不大于等于3,则可以输出相应的通道状态异常预警指示,将目标通道标记为已进行过通道异常检测的通道,并返回执行A4。如果大于等于3,执行A7。

A7:生成该目标通道对应的队列列表。

A8:遍历该队列列表,以从队列列表中确定未进行状态监测的队列,并获取未进行状态监测的队列的第一排队消息数。

需要说明的是,如果队列列表中不存在未进行状态检测的队列,则可以将目标通道标记为已进行过通道异常检测的通道,同时可以控制已进行多通道异常检测的通道进入休眠装填,并返回执行A2。

A9:判断第一排队消息数是否大于预设消息数阈值;如果不大于,将未进行状态监测的队列更新为已进行状态监测的队列,返回执行A8;如果大于,执行A10。

A10:获取未进行状态监测的队列在1秒内的队列状态矩阵;其中,队列状态矩阵包括未进行状态监测的队列在1秒内的2个队列信息;队列消息包括第二排队消息数、发送中消息数、消息id和ReadSeq变化率。

A11:判断未进行状态监测的队列的2个队列信息中最后采集的按个队列消息中的第二排队消息数是否大于预设消息数阈值;如果不大于预设消息数阈值,将未进行状态监测的队列更新为已进行状态监测的队列,并返回执行A8;如果大于预设消息数阈值,执行A12。

A12:判断未进行状态监测的队列的2个发送消息数中是否均等于1;如果存在不等于1的发送中消息数,则输出对应的发送链条异常预警指示,将未进行状态监测的队列更新为已进行状态监测的队列,并返回执行A8;如果均等于1,执行A13。

A13:判断未进行状态监测的队列的2个消息id是否一致;如果一致,输出相应发送状态异常预警指示,将未进行状态监测的队列更新为已进行状态监测的队列,并返回执行A8;如果不一致,执行A14。

A14:计算未进行状态监测的队列的2个ReadSeq变化率之间的差值,并判断该差值是否大于预设ReadSeq变化率;如果大于,确定该未进行状态监测的队列不存在异常,将未进行状态监测的队列更新为已进行状态监测的队列,并返回执行A8;如果不大于,输出相应的发送速率异常预警指示,以及将未进行状态监测的队列更新为已进行状态监测的队列,并返回执行A8,直至队列列表中不存在未进行状态监测的队列为止。

由上述场景实施例可以知道,对于运维中具备自愈能力或者正常的文件发送洪峰,本发明不局限于简单的状态指标查看,而是基于通道和队列等多维数据,形成相应的预警评估,并输出对应的预警直至,问题导向更明确。

并且,在连通性状态评估中基于GTP的通道相关参数判断通道是否存在异常,同时还设置通道异常对应的判断方式和采样周期,综合考虑了连接重建间隔和连接超时时间,形成探测周期大于等于连接重建间隔+连接超时时间、采样间隔等于min(连接重建间隔,连接超时时间)的约束条件,形成了执行效率效果较为平衡且能准确反映GTP的运行状态的方式。

基于上述本发明实施例提供的一种软件运行监控方法,本发明实施例还相应提供一种软件运行监控系统,如图5所示,该软件运行监控系统包括:

第一获取单元51,用于当检测到GTP的进程,获取GTP在第一预设时间段内的连通性状态矩阵;其中,连通性状态矩阵包括GTP的每个的通道在第一预设时间段内依次采集的多个通道信息;

第一遍历单元52,用于遍历各个通道,从各个通道中确定目标通道;其中,目标通道为未进行过通道异常检测的通道;

第一判断单元53,用于根据目标通道的各个通道信息,判断目标通道是否存在异常;

第一输出单元54,用于若目标通道存在异常,输出目标通道对应的预警指示,将目标通道标记为已进行过通道异常检测的通道,并返回执行第一遍历单元;

队列列表生成单元55,用于若目标通道不存在异常,生成目标通道对应的队列列表;

第二遍历单元56,用于遍历队列列表,从队列列表中确定未进行状态监测的队列,并获取未进行状态监测的队列的第一排队消息数;

第二获取单元57,用于若第一排队消息数大于预设消息数阈值,获取未进行状态监测的队列在第二预设时间段内的队列状态矩阵;其中,第二预设时间段小于第一预设时间段;

第二判断单元58,用于根据未进行状态监测的队列的队列状态矩阵,判断未进行状态监测的队列是否存在异;

第二输出单元59,用于若未进行状态监测的队列存在异常,输出未进行状态监测的队列对应的预警指示,将未进行状态监测的队列更新为已进行状态监测的队列,并返回执行第二遍历单元。

上述本发明实施例公开的软件运行监控系统中各个单元具体的原理和执行过程,与上述本发明实施例图1公开的软件运行监控方法相同,可参见上述本发明实施例公开的软件运行监控方法中相应的部分,这里不再进行赘述。

本发明提供一种软件运行监控系统,适用于GTP,通过将时间维度引入软件运行监控中,以便尽量压缩的第一预设时间段内的时间窗口中,通过根据第一预设时间段内的连通性状态矩阵的目标通道的多个通道信息,综合评估对应的目标通道是否存在异常,只有在目标通道存在异常的情况下,才输出对应的预警指示;以及对于不存在异常的通道,可以进一步根据该目标通道下的每个队列在第二预设时间段内的队列状态矩阵,综合评估该队列是否存在异常,只有在该队列存在异常的情况下,才输出对应的预警指示,对于具备自愈能力的异常场景,则不进行预警指示,能够有效避免因GTP发生瞬时连接失败、节点重启、网络抖动等具备自愈能力的异常场景触发相应的预警,进而达到提高运维智能化水平和效率的目的。

可选的,目标通道的通道信息至少包括端口连通性和通道状态,第一判断单元,包括:

第三判断单元,用于根据目标通道的各个端口连通性,判断目标通道是否存在端口异常;

第三输出单元,用于若目标通道存在端口异常,输出相应的预警提示;

第四判断单元,用于若目标通道不存在端口异常,根据目标通道的各个通道状态,判断目标通道是否存在通道状态异常;

第一确定单元,用于若目标通道存在通道状态异常,确定目标通道存在异常。

可选的,第三判断单元,包括:

第三判断子单元,用于判断目标通道的各个端口连通性是否均为开通状态;

第二确定单元,用于若目标通道存在不为开通状态的端口连通性,确定目标通道存在端口异常;

第三确定单元,用于若目标通道的各个端口连通性均为开通状态,确定目标通道不存在端口异常。

可选的,第四判断单元,包括:

第四判断子单元,用于若目标通道不存在端口异常,判断目标通道是否存在至少预设数值个表征连接异常的通道状态;

第四确定单元,用于若目标通道存在至少预设数值个表征连接异常的通道状态,确定目标通道存在通道状态异常;

第五确定单元,用于若目标通道不存在至少预设数值个表征连接异常的通道状态,确定目标通道不存在通道状态异常。

可选的,队列状态矩阵包括未进行状态监测的队列在第二预设时间段内依次采集的多个队列信息;队列消息包括第二排队消息数、发送中消息数、消息id和ReadSeq变化率,第二判断单元,包括:

第五判断单元,用于判断各个队列信息中的最后一个队列消息中的第二排队消息数是否大于预设消息数阈值;

第六判断单元,用于若最后一个队列消息中的第二排队消息数大于预设消息数阈值,根据未进行状态监测的队列的各个队列消息中的发送中消息数、消息id和ReadSeq变化率,判断队列是否存在异常。

可选的,第六判断单元,包括:

第七判断单元,用于判断未进行状态监测的各个队列消息中的发送中消息数是否均等于目标阈值的;

第六确定单元,用于若各个队列消息中存在不等于目标阈值的发送中消息数,确定未进行状态监测的队列存在链表异常;

第八判断单元,用于若各个队列消息中的发送中消息数据均等于目标阈值,判断各个队列消息中的消息id是否一致;

第七确定单元,用于若各个队列消息中的消息id一致,确定未进行状态监测的队列存在状态异常;

计算单元,用于若各个队列消息中的消息id不一致,计算各个队列消息中的ReadSeq变化率之间的差值;

第八确定单元,用于若存在不大于预设ReadSeq变化率的差值,确定未进行状态监测的队列存在速率异常。

可选的,本发明提供的软件运行监控系统,还包括:

第九确定单元,用于若最后一个队列消息中的第二排队消息数不大于所述预设消息数阈值,确定所述所述未进行状态监测的队列不存在异常;

返回执行单元,用于将所述未进行状态监测的队列更新为已进行状态监测的队列,并返回执行第二遍历单元。

本申请实施例提供了一种电子设备,如图6所示,电子设备包括处理器601和存储器602,存储器602用于存储软件运行监控的程序代码和数据,处理器601用于调用存储器中的程序指令执行实现如上述实施例中软件运行监控方法所示的步骤。

本申请实施例提供了一种存储介质,存储介质包括存储程序,其中,在程序运行时控制存储介质所在设备执行上述实施例示出的软件运行监控方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 一种半柔性线路板的自动弯折测试设备
  • 一种自动下料上料的夹持机械手
  • 一种用于全自动钳子体钻铣加工的自动防错下料机构
  • 一种自动装盒机自动清洗下料装置及其工作方法
  • 一种自动上下料的线路板测试设备
  • 一种自动上下料的自动化声学测试设备
技术分类

06120116521931