跨地区的网络链路的检测方法、装置和计算机存储介质与流程

文档序号:26589763发布日期:2021-09-10 20:31阅读:54来源:国知局
跨地区的网络链路的检测方法、装置和计算机存储介质与流程

1.本发明涉及网络通信技术领域,特别涉及一种跨地区的网络链路的检测方法、装置和计算机存储介质。


背景技术:

2.在全球范围的网络通信中,由于网络隔离或者网络带宽有限等原因,不同地区的网络节点(如个人电脑,业务服务器等)之间的直接通信往往效果较差。目前的解决办法是,在不同地区设立中转服务器,不同地区的网络节点通过中转服务器的转发进行跨地区通信。不同地区的网络节点和中转服务器,构成一条跨地区的网络链路。
3.为了提高用户体验,需要在跨地区的网络链路的运行期间,定期对跨地区的网络链路进行检测以及时发现故障。目前的检测方法是,定时采集网络链路的特定的性能指标,根据性能指标的当前值以及一定周期之前(如一天前)的值,计算得到性能指标在一个周期的周期波动,通过比较性能指标的周期波动和预设的阈值,确定各项性能指标是否异常,若性能指标异常则认为出现故障。
4.这种方法的问题在于,上述阈值一般是根据经验人为设定的,往往无法准确的匹配特定的跨地区的网络链路的实际运行情况,导致这种方法容易出现误报,漏报等现象。


技术实现要素:

5.基于上述现有技术缺点,本技术提供一种跨地区的网络链路的检测方法、装置和计算机存储介质,以提供一种更准确的跨地区的网络链路的检测方案。
6.本技术第一方面提供一种跨地区的网络链路的检测方法,应用于检测服务器,所述检测服务器预先设定有对应的至少一项网络链路的检测指标,所述检测方法包括:
7.针对所述检测服务器对应的检测指标中的每一项检测指标,获取网络链路的与所述检测指标对应的第一特征序列;其中,所述第一特征序列包括与第一预设时间内的各个时间戳对应的特征数据,所述特征数据表示所述网络链路在对应的时间戳的检测指标的数值;
8.若所述网络链路的运行时长大于或等于预设的阈值,针对每一项所述检测指标,利用异常点检测算法检测所述网络链路的与所述检测指标对应的第二特征序列,得到所述检测指标对应的第二特征序列中的异常数据;其中,所述第二特征序列包括与第二预设时间内的各个时间戳对应的特征数据,所述第二预设时间大于所述第一预设时间,并且,所述第二预设时间包括所述第一预设时间;
9.针对所述检测服务器对应的检测指标中的每一项检测指标,若所述检测指标对应的第一特征序列中存在所述异常数据,输出所述检测指标对应的告警信息。
10.可选的,针对所述检测服务器对应的检测指标中的每一项检测指标,获取网络链路的与所述检测指标对应的第一特征序列之后,还包括:
11.若所述网络链路的运行时长小于预设的阈值,针对所述检测服务器对应的检测指
标中的每一项检测指标,计算所述检测指标对应的第一特征序列中的每一个特征数据的周期波动,并根据所述特征数据的周期波动判断所述特征数据是否为异常数据。
12.可选的,生成所述特征数据的方法包括:
13.实时接收所述网络链路的中转服务器和网络节点运行过程中上报的业务数据;
14.针对所述检测服务器对应的检测指标中的每一项检测指标,计算当前时间戳和前一个时间戳之间收到的所述检测指标关联的业务数据,得到所述检测指标对应的当前时间戳的特征数据。
15.可选的,所述利用异常点检测算法检测所述网络链路的与所述检测指标对应的第二特征序列,得到所述检测指标对应的第二特征序列中的异常数据,包括:
16.利用时间序列分解算法提取出所述第二特征序列的每一个特征数据的余项分量,得到所述第二特征序列的余项序列;
17.将所述第二特征序列的余项序列作为待计算序列;
18.计算所述待计算序列,得到所述待计算序列的统计指标;其中所述统计指标包括:所述待计算序列的多个临界值,所述待计算序列的最大偏离残差,以及所述待计算序列的每一个余项分量的偏差;所述余项分量的偏差,等于所述余项分量和所述待计算序列包含的所有余项分量的平均值之间的偏差;所述临界值的数量是预设的正整数;
19.判断所述待计算序列的最大偏离残差,是否小于或等于所述待计算序列的每一个临界值;
20.若所述待计算序列的最大偏离残差大于所述待计算序列的任意一个临界值,将所述待计算序列中偏差最大的余项分量确定为异常点,并且,将所述第二特征序列的余项序列中除异常点以外的余项分量确定为待计算序列,返回执行所述计算得到所述待计算序列的统计指标,直至所述待计算序列的最大偏离残差小于或等于所述待计算序列的每一个临界值;
21.将所述检测指标对应的第二特征序列中,对应的余项分量被确定为异常点的特征数据,确定为所述检测指标对应的第二特征序列的异常数据。
22.可选的,所述针对所述检测服务器对应的检测指标中的每一项检测指标,若所述检测指标对应的第一特征序列中存在所述异常数据,输出所述检测指标对应的告警信息之前,还包括:
23.针对所述检测服务器对应的检测指标中的每一项检测指标,若所述检测指标对应的第一特征序列中存在所述异常数据,判断所述检测指标对应的第一特征序列是否满足预设的过滤规则;
24.其中,所述针对所述检测服务器对应的检测指标中的每一项检测指标,若所述检测指标对应的第一特征序列中存在所述异常数据,输出所述检测指标对应的告警信息,包括:
25.针对所述检测服务器对应的检测指标中的每一项检测指标,若所述检测指标对应的第一特征序列中存在所述异常数据,并且所述检测指标对应的第一特征序列满足所述过滤规则,输出所述检测指标对应的告警信息。
26.可选的,所述网络链路的检测指标,包括:
27.所述网络链路的第一区间内的平均线路延迟和丢包率,所述网络链路的第二区间
内的平均线路延迟和丢包率,以及所述网络链路的单位时间内的用户打点率。
28.本技术第二方面提供一种跨地区的网络链路的检测装置,应用于检测服务器,所述检测服务器预先设定有对应的至少一项网络链路的检测指标,包括:
29.获取单元,用于针对所述检测服务器对应的检测指标中的每一项检测指标,获取网络链路的与所述检测指标对应的第一特征序列;其中,所述检测指标包括网络链路的任意一种或多种性能指标;所述第一特征序列包括与第一预设时间内的各个时间戳对应的特征数据,所述特征数据表示所述网络链路在对应的时间戳的检测指标的数值;
30.检测单元,用于若所述网络链路的运行时长大于或等于预设的阈值,针对每一项所述检测指标,利用异常点检测算法检测所述网络链路的与所述检测指标对应的第二特征序列,得到所述检测指标对应的第二特征序列中的异常数据;其中,所述第二特征序列包括与第二预设时间内的各个时间戳对应的特征数据,所述第二预设时间大于所述第一预设时间,并且,所述第二预设时间包括所述第一预设时间;
31.输出单元,用于针对所述检测服务器对应的检测指标中的每一项检测指标,若所述检测指标对应的第一特征序列中存在所述异常数据,输出所述检测指标对应的告警信息。
32.可选的,所述检测单元还用于:
33.若所述网络链路的运行时长小于预设的阈值,针对所述检测服务器对应的检测指标中的每一项检测指标,计算所述检测指标对应的第一特征序列中的每一个特征数据的周期波动,并根据所述特征数据的周期波动判断所述特征数据是否为异常数据。
34.可选的,所述检测单元利用异常点检测算法检测所述网络链路的与所述检测指标对应的第二特征序列,得到所述检测指标对应的第二特征序列中的异常数据时,具体用于:
35.利用时间序列分解算法提取出所述第二特征序列的每一个特征数据的余项分量,得到所述第二特征序列的余项序列;
36.将所述第二特征序列的余项序列作为待计算序列;
37.计算所述待计算序列,得到所述待计算序列的统计指标;其中所述统计指标包括:所述待计算序列的多个临界值,所述待计算序列的最大偏离残差,以及所述待计算序列的每一个余项分量的偏差;所述余项分量的偏差,等于所述余项分量和所述待计算序列包含的所有余项分量的平均值之间的偏差;所述临界值的数量是预设的正整数;
38.判断所述待计算序列的最大偏离残差,是否小于或等于所述待计算序列的每一个临界值;
39.若所述待计算序列的最大偏离残差大于所述待计算序列的任意一个临界值,将所述待计算序列中偏差最大的余项分量确定为异常点,并且,将所述第二特征序列的余项序列中除异常点以外的余项分量确定为待计算序列,返回执行所述计算得到所述待计算序列的统计指标,直至所述待计算序列的最大偏离残差小于或等于所述待计算序列的每一个临界值;
40.将所述检测指标对应的第二特征序列中,对应的余项分量被确定为异常点的特征数据,确定为所述检测指标对应的第二特征序列的异常数据。
41.本技术第三方面提供一种计算机存储介质,用于存储程序,所述程序被执行时,用于实现如本技术第一方面任意一项提供的跨地区的网络链路的检测方法。
42.本技术提供一种跨地区的网络链路的检测方法、装置和计算机存储介质,针对每项检测指标,获取网络链路的与检测指标对应的第一特征序列;第一特征序列包括对应于第一预设时间的各个时间戳的特征数据,特征数据表示在对应的时间戳时检测指标的数值;用异常点检测算法检测每一检测指标对应的第二特征序列,得到第二特征序列中的异常数据;第二特征序列包括对应于第二预设时间的各个时间戳的特征数据,第二预设时间大于第一预设时间;若任意检测指标对应的第一特征序列包含异常数据,输出告警信息。本方案利用异常点检测算法分析网络链路近期各项检测指标的变化,以制定动态的检测标准,因而能够准确的发现检测指标的异常,避免误报或漏报。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
44.图1为本技术实施例提供的检测方法所适用的一种跨地区的网络链路的架构示意图;
45.图2为本技术实施例提供的一种生成特征序列中的特征数据的方法的流程图;
46.图3为本技术实施例提供的一种跨地区的网络链路的检测方法的流程图;
47.图4为本技术实施例提供的一种告警信息的显示界面的示意图;
48.图5为本技术实施例提供的一种根据特征数据的周期波动检测异常数据的方法的流程图;
49.图6为本技术实施例提供的一种异常点检测算法的流程图;
50.图7为本技术实施例提供的一种跨地区的网络链路的检测装置的结构示意图;
51.图8为本技术实施例提供的一种生成特征数据的装置的结构示意图。
具体实施方式
52.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
53.首先,为了便于理解本技术提供的跨地区的网络链路的检测方法,下面结合具体的应用场景以及图1所示的一种跨地区的网络链路的架构进一步介绍跨地区的网络链路。
54.结合背景技术,跨地区的网络链路是一种用于改善不同地区的部分网络节点之间的通信情况,实现跨地区的网络通信的加速的方案。该方案可以应用于网络游戏的加速,跨地区的网络办公平台等方面。
55.以网络游戏为例,参考图1,图1中的a地区的客户端101运行有一款网络游戏,该网络游戏运行时需要实时的与设置于b地区的业务服务器进行游戏数据的交互。为了提高游戏数据交互的速度,用户可以向提供游戏加速服务的网络运行上购买加速服务,然后在客户端101上安装对应的加速器。加速器将客户端101产生的游戏数据转发至运营商设置于a
地区的中转服务器102,中转服务器102通过运营商的专有的网络线路将游戏数据发送至b地区的中转服务器103,再由中转服务器103将游戏数据发送给业务服务器,另一方面,业务服务器提供的游戏数据也由中转服务器103通过专有的线路发送给中转服务器102,再由中转服务器102转发至客户端。
56.需要说明的是,上述场景仅仅是跨地区的网络链路的多种应用场景中的一种。一方面,需要进行跨地区的网络通信的网络节点,并不限于图1所示的客户端和服务器,也可以是不同地区的两个客户端之间进行通信,还可以是不同地区的两个服务器之间进行通信。同时,跨地区的网络通信也并不限于网络游戏的场景中,例如,图1中的业务服务器也可以是一个邮件服务器,用于接收a地区的客户端发送的邮件并将其转发给b地区的特定客户端,或者用于将特定邮件转发给a地区的客户端。
57.还需要说明的是,图1所示的中转服务器应当理解为运营商设置的中转服务器集群中的某台服务器。运营商可以将用户分流至不同的中转服务器,也可以在其中某些服务器故障时启动集群中的备用服务器。
58.本技术提供一种用于实时检测图1所示的跨地区的网络链路是否出现故障的方法,该方法主要包括两个环节,其中第一个环节是数据生成环节,包括实时接收跨地区的网络链路中的网络节点以及中转服务器上报的业务数据,并将这些业务数据整合为反映网络链路近期的性能的特征数据,第二个环节是检测环节,主要是利用预设的分析方法对定期分析上述特征数据,从而检测最近网络链路是否出现故障。
59.需要说明的是,本技术中数据生成环节和检测环节均由独立于跨地区的网络链路中的网络节点和中转服务器的专用的服务器集群执行,具体的,服务器集群中可以划分为专门用于执行数据生成环节并存储特征数据的数据服务器以及专门用于执行检测环节的检测服务器,检测服务器需要分析特征数据时再从数据服务器拉取所需的数据,也可以不进行划分,服务器集群中的各个服务器均同时具有数据生成,存储和分析的功能。
60.下面,首先介绍数据生成环节的具体实现过程,请参考图2,本技术实施例提供的生成特征数据的方法包括以下步骤:
61.s201、实时收集网络链路中的网络节点和中转服务器上报的业务数据。
62.在本技术中,以图1为例,一条网络链路,是指,a地区的中转服务器102,b地区的中转服务器103,中转服务器102所连接的所有客户端,以及b地区的中转服务器103所连接的所有业务服务器连接成的网络链路。
63.需要说明的是,本实施例所述的网络链路,应当理解为每一条需要进行检测的跨地区的网络链路。也就是说,本实施例提供的方法可以同时接收多条跨地区的网络链路的网络节点和中转服务器上报的业务数据,并对应的生成每一条跨地区的网络链路的特征数据。
64.需要说明的是,步骤s201中的网络节点指代需要通过中转服务器进行跨地区的通信的网络节点,如图1中的客户端和业务服务器就是两个网咯节点。
65.各地区的网络节点需要通过中转服务器进行通信,就需要安装对应的转发程序,转发程序用于将网络节点产生的原本要直接发往另一个网络节点的数据转发至中转服务器,同时,每转发或者收到一个数据包,转发程序就可以上报相关的业务数据,例如,数据包的大小,接收或发送的时间,接收或发送是否成功,数据包的目标地址和源地址等。
66.另一方面,中转服务器也设置有上报程序,用于上报中转服务器运行过程中产生的业务数据,具体的,中转服务器上报的业务数据可以包括上述数据包的大小,接收或发送的时间,接收或发送是否成功,数据包的目标地址和源地址,还可以包括中转服务器当前接入的网络节点的数量,或者说当前使用这个中转服务器的用户数量。
67.s202、从上报的业务数据中筛选出与检测指标关联的业务数据。
68.一条网络链路可以用多种性能指标描述,本技术所述的检测指标,是从这些性能指标中预先指定的任意一个或多个与网络链路的故障情况关联性较强的性能指标。与故障情况关联性较强的性能指标主要包括:平均线路延迟,丢包率和单位时间的用户打点率,其中,跨地区的网络链路又分为多段线路(本地节点和本地中转服务器之间,以及本地中转服务器和异地中转服务器之间),根据线路的不同,平均线路延迟又可以分为第一区间的平均线路延迟和第二区间的平均线路延迟,丢包率也可以分为第一区间的丢包率和第二区间的丢包率。本实施例所述的检测指标,可以是上述5种性能指标中的任意一种或多种,本实施例中,将上述5种性能指标均指定为检测指标。
69.其中,第一区间指代本地节点和本地中转服务器之间的线路,具体的,在游戏加速场景中,第一区间特指游戏客户端和本地中转服务器之间的线路;第二区间指代本地节点-本地中转服务器-异地中转服务器这一段线路,具体的,在游戏加速场景中,第二区间特指游戏客户端至游戏服务器所在地的中转服务器之间的线路。
70.对特定的一段线路,线路延迟指代一个数据包从线路的一段传输到另一端所用的时间,平均线路延迟,则是单位时间内这段线路所传输的每一个数据包的所用的时间的平均值。例如,一分钟内一段线路累计传输10个数据包,前5个数据包每个用时60ms,后5个数据包每个用时40ms,那么这一分钟的平均线路延迟就是这些时间的平均值,即50ms。
71.丢包率是指,单位时间内,该线路传输失败的数据包,占线路两端的节点发出的的数据包的比例。例如,一分钟内,线路起点发出了20个数据包,终点成功接收15个,另外5个数据包丢失,同时终点也发出30个数据包,起点收到20个,丢失10个,那么,这一分钟内该线路的丢包率等于累计丢失数15除以累计发包数50,也就是30%。
72.单位时间的用户打点率用于描述单位时间内特定网络链路的用户量的变动。具体的,对于9:30:00至9:31:00这一分钟,9:30:00时使用一条网络链路进行跨地区网络通信的用户数量记为x1,9:31:00时使用这条网络链路的用户数量记为x2,x2和x1之比(可以用x2除以x1),就是9:30:00至9:31:00这一分钟的用户打点率。
73.结合上述检测指标的定义,以及前文介绍的网络节点和中转服务器上报的业务数据,可以理解的,收到的业务数据中,一部分是计算检测指标的数值的依据,一部分则与检测指标无关,例如,网络节点和中转服务器上报的数据包接收或发送的时间,数据包接收或发送是否成功,数据包的目标地址和源地址等数据,可以用于计算一定时间内的平均线路延迟和丢包率,中转服务器上报的当前接入的网络节点的数量,可以用于计算用户打点率,而数据包的大小则与上述检测指标的关联性较弱。因此,以前文所述的业务数据为例,步骤s202所述的筛选,就是丢弃包括数据包的大小在内的与检测指标关联性较弱的业务数据,而保留其中用于计算近期的检测指标的业务数据,包括网络节点和中转服务器上报的数据包接收或发送的时间,数据包接收或发送是否成功,数据包的目标地址和源地址等数据,以及中转服务器上报的当前接入的网络节点的数量。
74.s203、计算每一个数据汇集周期内的筛选后的业务数据,得到该数据汇集周期对应的时间戳的多个特征数据。
75.步骤s203所述的数据汇集周期是一个预先指定的时间段,本实施例中,设定每一分钟为一个数据汇集周期,换言之,步骤s203就是每经过一分钟,就计算筛选后的过去的这一分钟内的业务数据,得到这一分钟对应的时间戳的特征数据。其中,一个数据汇集周期对应的时间戳,定义为这个数据汇集周期结束的时刻,例如,若计算的是9:30:00至9:31:00这一分钟内的业务数据,对应的时间戳就是9:31:00。当然,在本技术其他可选的实施例中,一个数据汇集周期对应的时间戳也可以定义为该周期的起始时刻,或者周期中的某个时刻。
76.显然,步骤s203需要在每一个数据汇集周期执行一次,具体在本实施例中,也就是每分钟计算一次特征数据,为了能够稳定的实现这一高频率的计算任务,本技术采用spark streaming计算引擎来执行上述计算任务,以确保每分钟的特征数据的稳定输出。
77.spark是一种现有的开源集群计算环境,spark streaming计算引擎则是现有的一种基于spark环境开发的计算引擎,该引擎扩展了spark环境处理大规模流式数据的能力,以吞吐量高和容错能力强而著称。在本技术中,只需要在spark streaming计算引擎中预先设定好相应的计算方法以及计算结果的存储位置,然后将筛选后的业务数据以数据流的形式实时提供于spark streaming引擎,spark streaming引擎就可以输出每个数据汇集周期的时间戳的特征数据。
78.需要说明的是,步骤s203所述的多个特征特征数据,其实就是某条网络链路在对应的时间戳时上述各个检测指标的数值,因此,步骤s203的具体实现过程就是,每经过一个数据汇集周期(本实施例中,就是每经过一分钟),针对每一个检测指标,利用最近的这个数据汇集周期内与这个检测指标相关的业务数据,按前述检测指标的定义计算得到当前的时间戳对应的该检测指标的数值,该数值就是当前的时间戳对应的一个特征数据。
79.假设当前的时间戳为9:31:00,以一分钟为一个数据汇集周期,则当前时间戳对应的当前数据汇集周期就是9:30:00至9:31:00这段时间。结合图1所示的网络链路,执行步骤s203时,具体计算9:31:00这一时间戳的各个检测指标的特征数据的过程是:
80.计算第一区间,即客户端-本地中转服务器这一线路的平均线路延迟时,针对中转服务器102在当前数据汇集周期内发出的每一个数据包,统计对应的客户端收到给数据包的时间和中转服务器发出该数据包的时间,得到中转服务器102发出的每个数据包的延迟,并且,统计中转服务器102在当前数据汇集周期内收到的每一个数据包的接收时间,以及对应的客户端发出这些数据包的时间,得到中转服务器102收到的每个数据包的延迟,然后计算当前数据汇集周期内中转服务器102接收和发送的所有数据包的延迟的算术平均值,得到的结果就是当前的时间戳对应的表示该网络链路的第一区间当前的平均线路延迟的特征数据。
81.计算第一区间的丢包率时,针对中转服务器102在当前数据汇集周期内发出的每个数据包,统计这些数据包是否被对应的客户端成功接收,从而获得当前数据汇集周期内中转服务器102发出的数据包的总数y1以及被成功接收的数据包的数量y2。另一方面,统计中转服务器102所连接的所有客户端在当前数据汇集周期内发出的目标地址为中转服务器102的ip地址的数据包的总数y3,以及中转服务器102在当前数据汇集周期内从客户端接收的数据包的总量y4,然后用y2与y4的和除以y1与y3的和,得到的结果就是当前的时间戳对
应的表示该网络链路的第一区间当前的丢包率的特征数据。
82.计算第二区间,即客户端-本地中转服务器-异地中转服务器这一线路的平均线路延迟和丢包率的方法与第一区间的计算方法类似,分别统计当前数据汇集周期内,客户端和中转服务器103之间传输的每个数据包的延迟,以及双方累计发出的数据包的数量和接收成功的数据包数量,然后按前述检测指标的定义计算,就可以得到当前的时间戳对应的表示该网络链路的第二区间当前的平均线路延迟和丢包率的特征数据。
83.计算用户打点率时,收集在前一个时间戳(也就是9:30:00)时中转服务器102接入的客户端的数量,以及当前中转服务器102接入的客户端的数量,用后者除以前者,就得到当前时间戳的用户打点率。
84.针对任意一条网络链路,在该网络链路开始运行后本实施例就实时接收该网络链路中的网络节点和中转服务器上报的业务数据,并定期执行(即针对每个数据汇集周期执行一次)前述计算方法,得到该网络链路运行过程中每个时间戳的,用于表示当时各个检测指标的数值的特征数据。
85.本技术实施例提供的基于特征数据的检测方法(参考后续实施例),实际是分别分析网络链路每一项检测指标在过去一段时间内的各个时间戳的数值以判断最近一段时间内各项检测指标,进而发现网络链路的故障。因此,本实施例中,为了后续分析方便,每次计算得到当前运行的所有网络链路在一个时间戳的特征数据后,可以将这些特征数据根据对应检测指标的不同分别保存在文件系统的不同文件中,后续进行检测时直接从检测指标对应的文件中拉取特征数据即可。
86.可选的,本实施例中用于保存特征数据的文件系统可以是hdfs(hadoop distributed file system,一种现有的分布式文件系统)系统,该系统可以部署于每一个数据生成服务器上。
87.下面结合图3介绍本技术提供的检测方案中根据特征数据进行检测的方法,该方法具体包括以下步骤:
88.首先需要说明的是,本实施例所提供的方法可以由多台用于执行数据检测的服务器并行执行。例如,可以设置由5个用于执行本实施例提供的检测方法的检测服务器构成的服务器集群,其中每一个检测服务器均指定用于检测前述实施例中提及的若干项(每个服务器检测一项,或者每个服务器检测多项)检测指标的特征数据。服务器集群开始运行后,每一台检测服务器均用于按一定的检测间隔执行本实施例所提供的检测方法,从前述文件系统中获取这一检测服务器对应的检测指标的特征数据并进行检测。
89.当然,在本技术其他实施例中,也可以将若干条网络链路分配给服务器集群中的各个检测服务器,每一个检测服务器分别用于检测指定的这些网络链路的每一项检测指标的特征数据。
90.s301、针对每一项预先指定的检测指标,获取网络链路的与检测指标对应的第一特征序列。
91.如前文所述,根据执行本实施例的检测服务器的不同,上述预先指定的检测指标可以不同。例如,可以设置三台检测服务器,其中检测服务器1用于检测第一区间的平均线路延迟和丢包率,检测服务器2用于第二区间的平均线路延迟和丢包率,检测服务器3用于检测网络链路的用户打点率。那么,检测服务器1执行本实施例提供的方法时所述预先指定
的检测指标就是第一区间的平均线路延迟和丢包率这两项检测指标,检测服务器2和检测服务器3的情况类似。
92.同理,本实施例所述的网络链路,是预先指定的执行本实施例所述的方法的检测服务器所需要检测的每一条网络链路。
93.每一个第一特征序列,均对应有一条网络链路和一个检测指标,这个第一特征序列包括对应的时间戳位于第一预设时间内,且表示这个特征序列所对应的网络链路在这些时间戳时对应的检测指标的数值的各个特征数据。
94.上述第一预设时间,是根据检测需要预先指定的从当前时刻开始的一段时间,例如,若需要检测网络链路在最近半小时内有无故障,那么上述第一预设时间就是最近半小时。具体的,假设当前时刻是10:00,那么上述第一预设时间就是9:30至10:00的这段时间。
95.对应的,针对特定的一条网络链路a的某一项检测指标(例如,可以是网络链路的第一区间的平均线路延迟),上述第一特征序列就是,9:30至10:00这一段时间内,网络链路a在9:30:00,9:31:00,9:32:00
……
直至10:00:00这些时刻时的第一区间的平均线路延迟的数值构成的一个数据序列,执行本实施例提供的方法是,检测服务器按特征数据的时间戳从文件系统中拉取上述数据,就可以得到网络链路a在9:30至10:00这段时间内第一区间的平均线路延迟的所对应的第一特征序列。
96.s302、判断网络链路的运行时长是否小于预设的阈值。
97.若网络链路的运行时长小于预设的阈值,则执行步骤s303;若网络链路的运行时长大于或等于预设的阈值,则执行步骤s304。
98.为了确保本技术所用的异常点检测算法准确性,使用异常点检测算法时需要提供一段较长的时间内(例如,最近20天内)的每个时间戳的特征数据,使得该算法能够根据被检测的网络链路的检测指标随时间变化的规律实现动态的检测,也就是说,使用异常点检测算法进行检测需要被检测的网络链路的运行时间足够长。而在实际场景中某些网络链路当前的持续运行时长不足的情况,例如,可能有新增的网络链路近期才投入运行,也可能因为某一条常用网络链路检修而启用平时不使用的备用网络链路,这时就会出现被检测网络链路持续运行时间不足以满足异常点检测算法的准确度要求的情况。
99.因此,需要执行步骤s302,筛选出持续运行时长不足的网络链路,并对这些网络链路采用其他方法检测,而对持续运行时长满足条件的网络链路使用异常点检测算法进行检测。
100.具体的,步骤s302所述的阈值可以是确保异常点检测算法的准确性所需得到时长,即前述20天,当然,也可以设置其他时长。
101.也就是说,执行步骤s302时,需要判断当前被检测的网络链路是否已经持续运行20天或20天以上,若被检测的网络链路是最近20天内才启用的网络链路,则采用后续步骤s303所述的方法检测,若被检测的网络链路运行时间大于或等于20天,则采用步骤s304所述的异常点检测算法检测。
102.s303、针对每个第一特征序列,根据特征数据的周期波动检测该第一特征序列中的每个特征数据是否为异常数据。
103.这里的周期可以是一天,也可以是一周,对应的周期波动可以是日波动或周波动。针对任意一个特征数据,该特征数据的周期波动,表示这个特征数据相对于该特征数据对
应的时间戳的一个周期之前的那个时间戳对应的特征数据的变化。具体的,若以一天为1个周期,则一个对应的时间戳为1月3日9:30:00的特征数据的日波动,就表示这个特征数据相对于1月2日9:30:00的时间戳对应的特征数据的变化。
104.可选的,步骤s303所述的判断可以根据日波动或周波动进行,也可以分别根据日波动和周波动进行判断。
105.可选的,在本技术另一实施例中,还可以在根据周期波动进行判断之前先检测特征数据是否在对应的绝对异常阈值所规定的范围内,若被检测的特征数据不在上述范围内,则直接确定这个特征数据是异常数据,若被检测的特征数据在上述范围内,则根据周期波动进行进一步的判断。
106.s304、针对每个第一特征序列,利用异常点检测算法检测该第一特征序列对应的第二特征序列,得到第二特征序列中的异常数据。
107.对于一个第一特征序列,这个第一特征序列对应的第二特征序列,指代与这个第一特征序列对应于同一条网络链路的同一个检测指标,并且包括这条网络链路的这个检测指标在第二预设时间内的每个时间戳对应的特征数据的特征数据序列。
108.需要说明的是,第二预设时间是预先指定的,覆盖了前述第一预设时间并且时长大于第一预设时间的时长的一段时间。
109.例如,前述第一预设时间可以是最近半小时,那么,第二预设时间,可以包括当天的0时到当前时刻这段时间,以及最近的20天。
110.例如,若当前是1月21日10:00:00,第一预设时间就是,1月21日9:30:00至1月21日10:00:00,那么,对应于网络链路a的第一区间的平均线路延迟的第一特征序列,所对应的第二特征序列,就是由1月1日0:00:00至1月21日10:00:00这段时间内的每一个时间戳所对应的网络链路a的第一区间的平均线路延迟所构成的特征数据序列。
111.可以理解的,一个第一特征序列所对应的第二特征序列,其实就是包括这个第一特征序列在内,并且覆盖的时间为第二预设时间的特征数据序列。
112.如前文所述,本实施例所述的方法可以按一定的检测间隔反复执行,并且该检测间隔一般较短,例如,可以每10分钟检测一次。为了确保能够在10分钟内完成检测任务,步骤s302至步骤s304所述的过程可以分配给检测服务器内的多个检测进程执行。
113.例如,若某个检测服务器指定检测n条网络链路的第一区间内的平均线路延迟,那么检测服务器可以预先创建多个检测进程,每次检测时,将这n条网络链路所对应的n个第一特征序列平均分配个这些检测进程,由这些检测进程分别执行步骤s302至步骤s304所述的检测过程。
114.可选的,上述异常点检测算法可以从多种现有的异常点检测算法中选择一种,例如,可以是周期性混合极端学生化偏离(seasonal hybrid extreme studentized deviate test,s-h-esd)算法。s-h-esd算法是对格鲁布斯假设检验(grubbs test)扩展到多异常值检验,并考虑时间序列数据的周期性和趋势性后得到的算法。
115.s-h-esd算法的基本原理是,假设被检测的特征数据序列符合特定的分布情况(例如,t分布),先提取特征数据序列中各个特征数据的余项分量,得到这个特征数据序列的余项序列,然后计算余项序列的统计指标,用统计指标判断余项序列是否满足这一特定的分布情况,若不满足,则更新余项序列,也就是将余项序列中偏差最大的余项分量确定为异常
分量并从余项序列剔除,再计算更新后的余项序列的统计指标以验证更新后的余项序列是否满足前述分布情况,若不满足则再次更新,以此类推,直至某次更新后的余项序列满足前述分布情况为止。最后就相当于从余项序列中按余项分量的偏差从大到小的确定出前m个余项分量作为异常分量,这些异常分量对应的特征数据序列中的特征数据,就是被检测的特征数据序列中的异常数据。
116.可选的,本技术其他实施例中,上述异常点检测算法也可以是prophet算法,相比于前述s-h-esd算法,该算法可以发现特征数据序列中的拐点,有利于工作人员定位故障时间点。
117.s305、判断每个第一特征序列是否存在异常数据。
118.若有至少一个第一特征序列中存在异常数据,说明这个第一特征序列对应的网络链路在第一预设时间内发生故障,执行步骤s306,若每一个第一特征序列中均不存在异常数据,表明当前被检测的网络链路没有故障,本次检测结束。
119.具体的,对于任意一个第一特征序列,若这个第一特征序列采用步骤s303所述的方法检测,则上述判断就是,判断这个第一特征序列内有没有被确定异常数据的特征数据,若这个第一特征序列采用步骤204所述的方法检测,则上述判断就是,判断从对应的第二特征序列中检测得到的所有异常数据中,有没有对应的时间戳位于第一预设时间内的异常数据。
120.s306、输出告警信息。
121.具体的,告警信息可以用于指示存在异常数据的第一特征序列所对应的检测指标,以及对应的网络链路中的中转服务器的ip地址,还可以包括其他的信息。
122.可选的,告警信息可以通过社交媒体或邮件的形式推送给相关人员。
123.如图4所示,就是本技术实施例提供的一种可选的告警信息显示界面的示意图。
124.图4所示的告警信息显示界面用于显示每一次检测所产生的所有告警信息,如图所示,每一个矩形框内就是一条告警信息。其中的告警时间是产生后续告警信息的检测发生的时间,以图4的时间为例,就表示图中显示的告警信息均是在2019年11月5日的19:20:00时检测发现的。
125.图4所示的告警信息显示界面是针对游戏加速场景下的网络链路检测所提供的显示界面,在游戏加速场景下,经常会同时为多个不同的游戏提供加速服务,并且每个游戏分别占用专用的几条跨地区的网络链路。图4的游戏打点率6,就是指,本次检测(本次检测指代在界面中显示的告警时间执行的检测)发现最近半小时内,编号为6的游戏对应的网络链路的用户打点率出现异常。
[0126]“告警持续”表示,后续的三条告警信息所指示的异常状态在之前的检测中已经发现且已经输出对应的告警信息,并且对应的异常状态本次检测时依然存在。以“告警持续”部分第一条告警信息为例,t1+t2线路就是指前述第二区间的线路,即客户端-本地中转服务器-异地中转服务器的线路,丢包是指存在异常数据的第一特征序列是第二区间的丢包率所对应的第一特征序列,118.126.71.134则是存在异常数据的第一特征序列的网络链路中本地中转服务器的ip地址,换言之,这条告警信息意思是,ip地址为118.126.71.134的中转服务器所在的网络链路在最近半小时内的第二区间的线路的丢包率出现异常,后续的开始时间表示这一异常状态最早在2019年11月5日的17:50:00被检测发现,持续时间则表示
从开始时间到执行本次检测时,这一异常状态已经持续的时间为1小时30分钟。
[0127]“告警结束”表示,后续的告警信息所指示的异常状态在之前的检测中已经发现且已经输出对应的告警信息,并且本次检测时未发现这些异常状态。以“告警结束”部分的第二条告警信息为例,这条告警信息意思是,ip地址为115.159.130.139的中转服务器所在的网络链路在2019年11月5日的18:50:00时检测发现第二区间的丢包率出现异常,而本次检测时上述网络链路的第二区间的丢包率所对应的第一特征序列未发现异常,持续时间则表示该异常状态被发现到本次检测时结束共持续了20分钟。
[0128]
可选的,若存在多个检测服务器同时执行本实施例提供的方法,则各个检测服务器可以先将各自的检测消息输出至一个用于汇总消息的服务器,汇总后一并输出给相关的维护人员。
[0129]
本技术提供一种跨地区的网络链路的检测方法,针对每项检测指标,获取网络链路的与检测指标对应的第一特征序列;第一特征序列包括对应于第一预设时间的各个时间戳的特征数据,特征数据表示在对应的时间戳时检测指标的数值;用异常点检测算法检测每一检测指标对应的第二特征序列,得到第二特征序列中的异常数据;第二特征序列包括对应于第二预设时间的各个时间戳的特征数据,第二预设时间大于第一预设时间;若任意检测指标对应的第一特征序列包含异常数据,输出告警信息。本方案利用异常点检测算法分析网络链路近期各项检测指标的变化,以制定动态的检测标准,因而能够准确的发现检测指标的异常,避免误报或漏报。
[0130]
可选的,在本技术的另一个实施例中,还可以在上述实施例的步骤s305至步骤s306之间增加一个规则过滤步骤,在步骤s305判断出若干个存在异常数据的第一特征序列后,进一步判断这些存在异常数据的第一特征序列是否满足预设的过滤规则,若有一个或多个第一特征序列存在异常数据并且满足上述过滤规则,则输出这些第一特征序列对应的告警信息,若本次被检测的所有存在异常数据的第一特征序列均不满足上述过滤规则,则本次检测结束,不输出告警信息。
[0131]
具体的,上述过滤规则可以包括以下三部分:
[0132]
(1)对于每个异常数据,若该异常数据所对应的网络链路,在这个异常数据对应的时间戳时的用户数量少于50,则该异常数据无效,执行后续过滤规则时不予考虑。
[0133]
(2)若第一特征序列包含的有效特征数据少于20个,则这个第一特征序列不满足规则(2),不需要告警,也就是不需要输出这个第一特征序列对应的告警信息。反之,若第一特征序列包含的有效特征数据的数量大于或等于20,则第一特征序列满足规则(2),继续判断是否满足后续规则(3)。
[0134]
一条网络链路运行时,可能出现空闲状态,也就是没有用户使用该网络链路的状态,这种状态下收集的特征数据就是无效特征数据,在非空闲状态下收集的特征数据就是有效特征数据。
[0135]
(3)若满足上述规则(2)的第一特征序列同时满足以下条件:异常数据的数量大于8,并且对应的时间戳位于最近10分钟的异常数据的数量大于3,则确定这个第一特征序列满足过滤规则,需要输出对应的告警信息,反之,若第一特征序列满足规则(2)但不满足上述条件,则这个第一特征序列不需要告警。
[0136]
下面结合图5介绍前述实施例中根据特征数据的周期波动判断特征数据是否为异
常数据的具体方法,该方法包括以下步骤:
[0137]
s501、判断特征数据是否大于对应的绝对异常阈值。
[0138]
若被检测的特征数据大于对应的绝对异常阈值,执行步骤s506,确定该特征数据是异常数据,若被检测的特征数据小于或等于对应的绝对异常阈值,执行步骤s502。
[0139]
步骤s501所述的特征数据,指代需要检测的第一特征序列中的每一个特征数据。
[0140]
需要说明的是,每一项检测指标均配置有对应的绝对异常阈值,步骤s501所述的被检测的特征数据是否大于对应的绝对异常阈值,是指,获取和被检测的特征数据对应于同一检测指标的绝对异常阈值,然后比较被检测的特征数据和对应于同一检测指标的绝对异常阈值。
[0141]
对于某项检测指标,其对应的绝对异常阈值表示,在特定业务场景下,若这一检测指标的数值超过对应的绝对异常阈值,则这一数据肯定是异常数据,无需进行后续判断。
[0142]
例如,针对平均线路延迟这一指标,若一条网络链路在某一时间戳时的平均线路延迟大于200ms,则使用这一网络链路的用户体验必然受到严重影响,可以确定此时这条网络链路发生故障。
[0143]
每一项检测指标对应的绝对异常阈值,可以根据具体的业务情况设定。
[0144]
s502、判断是否存在计算特征数据的周期波动所需的参考数据。
[0145]
若存在计算特征数据的周期波动所需的参考数据,执行步骤s503,若不存在计算特征数据的周期波动所需的参考数据,执行步骤s505。
[0146]
如前文所述,计算一个特征数据的周期波动时,其参考数据是指,一定周期之前的对应时间戳的参考数据。在本实施例中,可以根据网络链路的运行时长从一天和一周两种周期中选择一种计算对应的日波动或者周波动。因此,以1月10日9:00:00的一个表示特定网络链路的第一区间的平均线路延迟的特征数据为例,步骤s502的判断,相当于:
[0147]
查找是否存在1月3日9:00:00的表示该网络链路的上述检测指标的特征数据,以及查找是否存在1月9日9:00:00的表示该网络链路的上述检测指标的特征数据,若存在这两个特征数据中任意一个或两个,则确定存在计算特征数据的周期波动所需的参考数据,若两者均不存在,则确定不存在计算特征数据的周期波动所需的参考数据。
[0148]
可选的,可以判断出存在前者(即一周前的特征数据)后,不查找后者,直接执行步骤s503计算特征数据的周波动,
[0149]
s503、利用参考数据计算特征数据的周期波动。
[0150]
具体的,若只存在距离当前需要检测的特征数据一天前的特征数据,则以一天前的特征数据作为参考数据,计算当前被检测的特征数据的日波动,若存在距离当前需要检测的特征数据一周前的特征数据,则以一周前的特征数据作为参考数据,计算当前被检测的特征数据的周波动。
[0151]
确定参考数据后,将被检测的特征数据和参考数据代入下述公式,就可以计算得到被检测的特征数据的周期波动:
[0152]
r=(d
c-d
s
)
÷
d
s
[0153]
其中,d
c
表示被检测的特征数据,d
s
表示参考数据,r就是需要计算的周期波动。若计算的是周波动,那么d
s
就是对应的时间戳在d
c
对应的时间戳的一周之前的特征数据,若计算的是日波动,那么d
s
就是对应的时间戳在d
c
对应的时间戳的一天之前的特征数据。
[0154]
例如,被检测的特征数据d
c
是1月10日9:00:00时网络链路a的第一区间的平均线路延迟,那么,若计算日波动,则上述d
s
是1月9日9:00:00时网络链路a的第一区间的平均线路延迟,若计算周波动,则上述d
s
是1月3日9:00:00时网络链路a的第一区间的平均线路延迟。
[0155]
s504、判断特征数据的周期波动是否大于对应的相对异常阈值。
[0156]
与前述绝对异常阈值类似,每一项检测指标均根据业务场景预先配置有对应的相对异常阈值,进一步的,针对一项检测指标,还可以分别设置日波动的相对异常阈值和周波动的相对异常阈值,执行步骤s504时,根据特征数据所对应的检测指标以及计算周期波动时使用的周期选择对应的相对异常阈值即可。
[0157]
若特征数据的周期波动大于对应的相对异常阈值,则执行步骤s506。
[0158]
若特征数据的周期波动小于或等于对应的相对异常阈值,则执行步骤s505。
[0159]
s505、将特征数据确定为正常数据。
[0160]
s506、将特征数据确定为异常数据。
[0161]
下面结合图6介绍一种利用异常点检测算法检测前述第二特征序列中的异常数据的方法,该方法所利用的异常点检测算法是前述s-h-esd算法,应当理解,本技术的其他实施例中还可以采用其他的异常点检测算法进行检测,对应的,根据使用的算法的不同,具体的检测过程也会存在差异,也就是说,利用异常点检测算法检测前述第二特征序列中的异常数据的方法并不限于下面将要介绍的这种方法,下述方法仅仅是一种可选的检测方法。
[0162]
本实施例提供的检测方法具体包括如下步骤:
[0163]
s601、利用时间序列分解算法提取第二特征序列的每个特征数据的余项分量,得到第二特征序列的余项序列。
[0164]
时间序列,指代将某一统计指标的数值按其发生的时间先后顺序排列而成的数据序列。本技术中网络链路在第二预设时间内的每个时间戳的检测指标的数值构成的第二特征序列,就是一个时间序列。针对时间数据序列的周期性和趋势性的特点,检测时间序列中的异常数据时可以先对时间序列进行分解,然后再根据分解后的结果进行检测,从而提高检测结果的可信度。
[0165]
时间序列分解算法指代一类现有的用于对时间序列进行分解的算法,这类算法一般可以将时间序列中的每个数据均分解为由时间序列的周期性决定的周期分量,由时间序列的长期趋势决定的趋势分量以及由不规则波动决定的余项分量,分解后的结果可以用下述公式(1)表示:
[0166]
x=rx+sx+tx
……
(1)
[0167]
其中,x就表示第二特征序列中的任意一个特征数据,rx表示分解这个特征数据得到的余项分量,sx表示分解这个特征数据数据得到的周期分量,tx表示分解这个特征数据得到的趋势分量。
[0168]
可选的,本实施例中使用的时间序列分解算法可以是基于局部加权回归的季节和周期分解(seasonal and trend decomposition using loess,stl)算法。根据需要,stl算法可以将时间序列中的每个数据分解为周期分量,趋势分量和余项分量之和,也可以用时间序列的中位数替代趋势分量,将时间序列中的每个数据分解为周期分量,中位数和余项分量之和。
[0169]
本实施例采用第二种分解方法,分解得到的第二特征序列中每个特征数据的余项分量就可以表示为下述公式(2):
[0170][0171]
其中,x就是第二特征序列中的任意一个特征数据,rx就是特征数据的余项分量,sx表示特征数据的周期分量,表示特征数据序列的中位数。
[0172]
利用stl算法逐一计算第二特征序列中的每一个特征数据,就可以分解出每一个特征数据的余项分量,然后将这些余项分量按对应的特征数据在第二特征序列中的顺序组合就得到了第二特征序列的余项序列。
[0173]
s602、将第二特征序列的余项序列确定为待计算数据序列。
[0174]
s603、计算得到待计算序列的统计指标。
[0175]
待计算数据序列的统计指标包括:待计算数据序列的k个临界值,待计算数据序列的最大偏离残差,以及待计算数据序列的每一个数据的偏差。
[0176]
k的取值由预设的比例值和待计算数据序列中数据的个数决定。可选的,比例值最大可以设置为49%,当然也可以根据需要设置为小于49%的数值,将比例值乘以待计算数据序列中数据的个数,就得到k的取值。例如,以比例值等于49%为例,若待计算数据序列当前包括10000个数据,那么k的取值等于10000乘以49%,也就是4900。
[0177]
k个临界值的计算公式见下述公式:
[0178][0179]
其中,p是预先设定的概率值,一般设为95%,n是待计算数据序列当前包含的数据的个数,t
p,n-k-1
是从t分布临界值表中,用p和n-k-1查找得到的临界值,λ
i
就是计算得到的待计算数据序列的第i个临界值,i是临界值的下标,是一个大于或等于1,小于或等于k的正整数,依次将i设置为1至k,代入上述公式,就可以计算出待计算数据序列的k个临界值。
[0180]
待计算数据序列的最大偏离残差c的计算公式见下述公式:
[0181][0182]
其中,x
j
表示待计算数据序列中的第j个数据,median(x)表示待计算数据序列的中位数,mad表示待计算数据序列的绝对中位差,c就是需要计算的待计算数据序列的偏离残差。上述公式的分子表示:确定待计算数据序列的中位数之后,计算待计算数据序列中每个数据和中位数的差值,并取计算得到的所有差值的绝对值,其中最大的绝对值就是上述公式的分子。
[0183]
mad的计算公式如下:
[0184]
mad=median(|x
j-median(x)|)
[0185]
上述公式表示,计算待计算数据序列中每个数据和待计算数据序列的中位数的差值,并取计算得到的所有差值的绝对值,这一系列绝对值中的中位数,就是待计算数据序列的绝对中位差。
[0186]
待计算数据序列的每一个数据的偏差的计算方法是:
[0187]
计算待计算数据序列当前包含的所有数据的算术平均值,然后,针对待计算数据序列包含的每一个数据,用这个数据减去上述算术平均值,再对差值取绝对值,得到的结果就是这个数据的偏差。
[0188]
s604、判断待计算数据序列的最大偏离残差是否小于或等于每一个临界值。
[0189]
若当前待计算数据序列的最大偏离残差小于或等于当前待计算数据序列的每一个临界值,执行步骤s606。
[0190]
若当前待计算数据序列的k个临界值中,有至少一个临界值小于当前待计算数据序列的最大偏离残差,换言之,也就是当前待计算数据序列的最大偏离残差大于当前待计算数据序列的任意一个或多个临界值,则执行步骤s605。
[0191]
s605、将待计算数据序列中偏差最大的数据标记为异常点,并更新待计算数据序列。
[0192]
任意一个数据的偏差,等于这个数据和待计算数据序列的算术平均值的差的绝对值。
[0193]
具体在本实施例中,步骤s605的具体执行过程是:
[0194]
将待计算数据序列更新为,前述第二特征序列的余项序列中,未被标记为异常点的所有余项分量的集合。例如,假设某一次循环中待计算数据序列包括h个余项分量,经过步骤s604的判断后,将其中偏差最大的余项分量标记为异常点,于是,从待计算数据序列中除去这个被标记为异常点的余项分量,也就是将剩余的h-1个余项分量确定为待计算数据序列。
[0195]
步骤s605执行之后,返回执行步骤s603,直至某一次循环中判断出待计算数据序列的最大偏离残差小于或等于当时的待计算数据序列的每一个临界值为止。
[0196]
s606、将当前被标记为异常点的余项分量所对应的特征数据确定为第二特征序列的异常数据。
[0197]
综上所述,本实施例所提供的方法可以理解为,将第二特征序列的余项序列作为待计算数据序列,对待计算数据序列执行若干次的循环,每一次循环均检测一次待计算数据序列是否满足循环结束条件,若不满足循环结束条件则认为待计算数据序列存在异常点,于是将当前待计算数据序列中偏差最大的数据确定为异常点并从待计算数据序列中移除,然后进入下一次循环,直至某一次满足循环结束条件后,循环结束,此时,循环的次数m就是第二特征序列中的异常点的数量,第二特征序列中按各个特征数据的余项分量的偏差从大到小选取的m个特征数据,就是第二特征序列的异常数据。
[0198]
下面,结合具体的业务场景说明本技术提供的检测方案的应用过程。
[0199]
以游戏加速场景为例,假设提供加速服务的运营商支持3种游戏的加速,每种游戏配置了一条常用链路(分别记为常用链路a,b和c)和一条备用链路(分别记为备用链路a,b和c),备用链路用于在常用链路不可用时(检修或故障时)代替常用链路,并设置了用于执行前述数据生成环节的数据生成服务器,以及5台检测服务器,依次编号为1至5,每台检测服务器仅用于检测所有当前运行的网络链路的某一项检测指标。
[0200]
上述数据生成服务器和检测服务器启动后,数据生成服务器实时接收当前运行的网络链路中的客户端和中转服务器上报的业务数据,以一分钟为数据汇集周期计算每个数据汇集周期的业务数据,得到每条网络链路运行期间各个时间戳的对应于不同检测指标的
特征数据。
[0201]
另一方面,上述各个检测服务器同时启动后,每经过10分钟(即预设的检测间隔)就同时执行前述实施例所述的检测方法,分别从数据生成服务器中拉取自身所需要检测的那个检测指标对应的特征数据,并进行检测。
[0202]
例如,检测第一区间的平均线路延迟的服务器,每经过10分钟,就从数据生成服务器拉取每一条当前运行的网络链路最近30分钟内各个时间戳的第一区间的平均线路延迟,得到三个第一特征序列。
[0203]
若当前运行的网络链路均是持续运行时间较长的常用链路,则进一步拉取三条网络链路的第二特征序列,然后分别用异常点检测算法检测第二特征序列中的异常数据,最后判断每个第一特征序列有没有异常数据,也就是针对每个第二特征序列,判断其中有没有对应的时间戳位于第一预设时间内的异常数据。例如,若发现常用链路a对应的第一特征序列中有异常数据,且这个第一特征满足前述过滤规则,则认为常用链路a在最近30分钟内第一区间的平均线路延迟出现异常,该链路可能发生故障,于是输出对应的告警信息。
[0204]
若当前运行的网络链路中有备用链路,如备用链路b,并且发现备用链路b运行时长不足(结合前述实施例,运行时长不足定义为运行时长少于20天),那么针对备用链路b的异常序列,采用图5对应的实施例提供的根据周期波动实现的方法判断备用链路b的第一特征序列是否存在异常数据,若检测出备用链路b的第一特征序列中有若干个特征数据是异常数据,且备用链路b的第一特征序列满足过滤规则,则认为备用链路b在最近30分钟内第一区间的平均线路延迟出现异常,该链路可能发生故障,输出对应的告警信息。
[0205]
结合本技术任一实施例提供的检测方法,本技术实施例还提供一种跨地区的网络链路的检测装置,本实施例提供的装置可以认为是一个检测服务器,请参考图7,该装置包括如下单元:
[0206]
获取单元701,用于针对检测服务器对应的检测指标中的每一项检测指标,获取网络链路的与检测指标对应的第一特征序列。
[0207]
网络链路的检测指标,包括:
[0208]
网络链路的第一区间内的平均线路延迟和丢包率,网络链路的第二区间内的平均线路延迟和丢包率,以及网络链路的单位时间内的用户打点率。
[0209]
其中,检测指标包括网络链路的任意一种或多种性能指标;第一特征序列包括与第一预设时间内的各个时间戳对应的特征数据,特征数据表示网络链路在对应的时间戳的检测指标的数值。
[0210]
检测单元702,用于若网络链路的运行时长大于或等于预设的阈值,针对每一项检测指标,利用异常点检测算法检测网络链路的与检测指标对应的第二特征序列,得到检测指标对应的第二特征序列中的异常数据。
[0211]
其中,第二特征序列包括与第二预设时间内的各个时间戳对应的特征数据,第二预设时间大于第一预设时间。
[0212]
输出单元703,用于针对检测服务器对应的检测指标中的每一项检测指标,若检测指标对应的第一特征序列中存在异常数据,输出检测指标对应的告警信息。
[0213]
检测单元702还用于:若网络链路的运行时长小于预设的阈值,针对检测服务器对应的检测指标中的每一项检测指标,计算检测指标对应的第一特征序列中的每一个特征数
据的周期波动,并根据特征数据的周期波动判断特征数据是否为异常数据。
[0214]
检测单元702利用异常点检测算法检测网络链路的与检测指标对应的第二特征序列,得到检测指标对应的第二特征序列中的异常数据时,具体用于:
[0215]
利用时间序列分解算法提取出第二特征序列的每一个特征数据的余项分量,得到第二特征序列的余项序列;
[0216]
将第二特征序列的余项序列作为待计算序列;
[0217]
计算待计算序列,得到待计算序列的统计指标;其中统计指标包括:待计算序列的多个临界值,待计算序列的最大偏离残差,以及待计算序列的每一个余项分量的偏差;余项分量的偏差,等于余项分量和待计算序列包含的所有余项分量的平均值之间的偏差;临界值的数量是预设的正整数;
[0218]
判断待计算序列的最大偏离残差,是否小于或等于待计算序列的每一个临界值;
[0219]
若待计算序列的最大偏离残差大于待计算序列的任意一个临界值,将待计算序列中偏差最大的余项分量确定为异常点,并且,将第二特征序列的余项序列中除异常点以外的余项分量确定为待计算序列,返回执行计算得到待计算序列的统计指标,直至待计算序列的最大偏离残差小于或等于待计算序列的每一个临界值;
[0220]
将检测指标对应的第二特征序列中,对应的余项分量被确定为异常点的特征数据,确定为检测指标对应的第二特征序列的异常数据。
[0221]
可选的,本实施例提供检测装置还包括过滤单元704,用于:
[0222]
针对检测服务器对应的检测指标中的每一项检测指标,若检测指标对应的第一特征序列中存在异常数据,判断检测指标对应的第一特征序列是否满足预设的过滤规则。
[0223]
其中,输出单元703具体用于:
[0224]
针对检测服务器对应的检测指标中的每一项检测指标,若检测指标对应的第一特征序列中存在异常数据,并且检测指标对应的第一特征序列满足过滤规则,输出检测指标对应的告警信息。
[0225]
本技术另一实施例还提供一种特征数据的生成装置,如前文所述,该装置可以认为是一个独立于前述检测服务器的数据生成服务器,也可以认为是前述检测服务器的一个功能模块,也可以认为该装置就是前述实施例中的获取单元701,请参考图8,该装置包括:
[0226]
接收单元801,用于实时接收所述网络链路的中转服务器和网络节点运行过程中上报的业务数据。
[0227]
筛选单元802,用于从收到的业务数据中筛选出与检测指标关联性较强的业务数据。
[0228]
计算单元803,用于计算每两个相邻的时间戳之间的筛选得到的业务数据,得到每个时间戳的特征数据。
[0229]
本技术任一实施例提供的检测装置和数据生成装置,其具体工作原理均可以参考本技术对应的实施例所提供的方法,此处不再赘述。
[0230]
本技术提供一种跨地区的网络链路的检测装置,针对每项检测指标,获取单元701获取网络链路的与检测指标对应的第一特征序列;第一特征序列包括对应于第一预设时间的各个时间戳的特征数据,特征数据表示在对应的时间戳时检测指标的数值;检测单元702用异常点检测算法检测每一检测指标对应的第二特征序列,得到第二特征序列中的异常数
据;第二特征序列包括对应于第二预设时间的各个时间戳的特征数据,第二预设时间大于第一预设时间;若任意检测指标对应的第一特征序列包含异常数据,输出单元703输出告警信息。本方案利用异常点检测算法分析网络链路近期各项检测指标的变化,以制定动态的检测标准,因而能够准确的发现检测指标的异常,避免误报或漏报。
[0231]
本技术实施例还提供一种计算机存储介质,用于存储程序,存储的程序被执行时,用于实现本技术任一实施例所提供的网络链路的检测方法。
[0232]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0233]
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
[0234]
专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1