本申请涉及数据检测领域,特别是涉及一种接口诊断方法、装置、设备和存储介质。
背景技术
目前,接口技术越来越多地应用在各个领域中。例如,在进行视频会议时,可能需要调用视频数据解析、共享桌面显示、音频捕捉等多个程序接口,以调用相应的程序功能。
实际应用中,如果接口调用的顺序存在缺陷,可能导致无法实现相应的程序功能,检测人员则需要对接口的调用顺序进行诊断。例如,在进行视频会议时,当某个会议参与者出现如无法接收视频数据、无法显示共享桌面等的故障,检测人员通常会查看视频会议服务器中的日志数据,在日志数据中,逐一诊断视频会议中各个接口的调用顺序是否存在缺陷。
然而,随着日志数据的日志数目增多,检测人员需要花费大量的时间和精力去对每条日志数据进行筛选、排查和分析,接口的诊断效率较低。
因此,目前的接口诊断方法存在着诊断效率较低的问题。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种能够提升接口诊断效率的接口诊断方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种接口诊断方法,包括:
获取诊断接口;
获取所述诊断接口匹配的模型节点路径;
获取所述模型节点路径的路径特征值;
根据所述模型节点路径的路径特征值,对所述诊断接口进行诊断。
其中一个实施例中,所述获取所述诊断接口匹配的模型节点路径,包括:
获取模型节点;所述模型节点具有对应的接口;
在所述模型节点中,获取与所述诊断接口对应的目标节点;
将所述目标节点组成所述模型节点路径。
其中一个实施例中,所述模型节点具有途经值,所述模型节点具有终点值,所述获取所述模型节点路径的路径特征值,包括:
确定所述模型节点路径的途经节点和终点节点;
获取所述途经节点的途经值,以及,获取所述终点节点的终点值;
计算所述终点节点的终点值与所述途经节点的途经值的比值,得到所述模型节点路径的路径特征值。
其中一个实施例中,所述根据所述模型节点路径的路径特征值,对所述诊断接口进行诊断,包括:
判断所述模型节点路径的路径特征值是否小于设定的特征值阈值;
若是,则判定所述诊断接口的接口顺序存在缺陷。
其中一个实施例中,所述模型节点包括父节点和子节点,所述父节点与所述子节点连接,所述在所述模型节点中,获取与所述诊断接口对应的目标节点,包括:
确定第一目标父节点;
选取待匹配诊断接口,并判断在所述第一目标父节点连接的子节点中,是否具有与所述待匹配诊断接口对应的子节点;
若是,则将与所述待匹配诊断接口对应的子节点,作为所述目标节点。
其中一个实施例中,还包括:
若在所述第一目标父节点连接的子节点中,不具有与所述待匹配诊断接口对应的子节点,判定不存在与所述诊断接口匹配的模型节点路径。
其中一个实施例中,所述获取诊断接口之前,还包括:
获取样本接口序列;所述样本接口序列由样本接口组成;
生成所述样本接口对应的模型节点;
针对同一样本接口序列的模型节点进行连接,得到所述样本接口序列对应的样本路径;
统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值;
统计以所述模型节点作为终点节点的样本路径的数量,得到所述模型节点的终点值。
其中一个实施例中,所述统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值,包括:
确定第二目标父节点;
在所述样本接口序列中,选取待标记样本接口,并判断在所述第二目标父节点连接的子节点中,是否具有与所述待标记样本接口对应的子节点;
若是,则对所述待标记样本接口对应的子节点进行途经标记;
当所述样本接口序列的样本接口均被选取为所述待标记样本接口,统计所述模型节点被进行途经标记的次数,作为所述模型节点的途经值。
其中一个实施例中,所述统计以所述模型节点作为路径终点的模型节点路径的数量,得到所述模型节点的终点值,包括:
判断所述待标记样本接口是否为所述样本接口序列的最后一个样本接口;
若是,则对所述待标记样本接口对应的子节点进行终点标记;
当所述样本接口序列的样本接口均被选取为所述待标记样本接口,统计所述模型节点被进行终点标记的次数,作为所述模型节点的终点值。
第二方面,本申请还提供了一种接口诊断方法,包括:
获取样本接口序列;所述样本接口序列由样本接口组成;
生成所述样本接口对应的模型节点,并针对同一样本接口序列的模型节点进行连接,得到所述样本接口序列对应的样本路径;所述模型节点用于确定诊断接口的模型节点路径;
统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值,以及,统计以所述模型节点作为终点节点的样本路径的数量,得到所述模型节点的终点值;所述模型节点的途经值和终点值用于确定所述模型节点路径的路径特征值;所述路径特征值用于判断所述诊断接口的接口顺序是否存在缺陷。
第三方面,本申请还提供了一种接口诊断装置,包括:
接口获取模块,用于获取诊断接口;
路径获取模块,用于获取所述诊断接口匹配的模型节点路径;
特征获取模块,用于获取所述模型节点路径的路径特征值;
诊断模块,用于根据所述模型节点路径的路径特征值,对所述诊断接口进行诊断。
其中一个实施例中,所述路径获取模块,包括:
节点获取子模块,用于获取模型节点;所述模型节点具有对应的接口;
目标节点子模块,用于在所述模型节点中,获取与所述诊断接口对应的目标节点;
路径确定子模块,用于将所述目标节点组成所述模型节点路径。
其中一个实施例中,所述模型节点具有途经值,所述模型节点具有终点值,所述特征获取模块,包括:
节点确定子模块,用于确定所述模型节点路径的途经节点和终点节点;
数值获取子模块,用于获取所述途经节点的途经值,以及,获取所述终点节点的终点值;
计算子模块,用于计算所述终点节点的终点值与所述途经节点的途经值的比值,得到所述模型节点路径的路径特征值。
第四方面,本申请还提供了一种接口诊断装置,包括:
序列获取模块,用于获取样本接口序列;所述样本接口序列由样本接口组成;
模型构建模块,用于生成所述样本接口对应的模型节点,并针对同一样本接口序列的模型节点进行连接,得到所述样本接口序列对应的样本路径;所述模型节点用于确定诊断接口的模型节点路径;
统计模块,用于统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值,以及,统计以所述模型节点作为终点节点的样本路径的数量,得到所述模型节点的终点值;所述模型节点的途经值和终点值用于确定所述模型节点路径的路径特征值;所述路径特征值用于判断所述诊断接口的接口顺序是否存在缺陷。
第五方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取诊断接口;
获取所述诊断接口匹配的模型节点路径;
获取所述模型节点路径的路径特征值;
根据所述模型节点路径的路径特征值,对所述诊断接口进行诊断。
所述处理器执行所述计算机程序时还实现以下步骤:
获取样本接口序列;所述样本接口序列由样本接口组成;
生成所述样本接口对应的模型节点,并针对同一样本接口序列的模型节点进行连接,得到所述样本接口序列对应的样本路径;所述模型节点用于确定诊断接口的模型节点路径;
统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值,以及,统计以所述模型节点作为终点节点的样本路径的数量,得到所述模型节点的终点值;所述模型节点的途经值和终点值用于确定所述模型节点路径的路径特征值;所述路径特征值用于判断所述诊断接口的接口顺序是否存在缺陷。
第五方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取诊断接口;
获取所述诊断接口匹配的模型节点路径;
获取所述模型节点路径的路径特征值;
根据所述模型节点路径的路径特征值,对所述诊断接口进行诊断。
所述计算机程序被处理器执行时还实现以下步骤:
获取样本接口序列;所述样本接口序列由样本接口组成;
生成所述样本接口对应的模型节点,并针对同一样本接口序列的模型节点进行连接,得到所述样本接口序列对应的样本路径;所述模型节点用于确定诊断接口的模型节点路径;
统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值,以及,统计以所述模型节点作为终点节点的样本路径的数量,得到所述模型节点的终点值;所述模型节点的途经值和终点值用于确定所述模型节点路径的路径特征值;所述路径特征值用于判断所述诊断接口的接口顺序是否存在缺陷。
上述接口诊断方法、装置、计算机设备和存储介质,通过接口模型匹配出诊断接口的模型节点路径,根据模型节点路径的路径特征值,判断诊断接口是否存在接口顺序的缺陷,无须检测人员花费大量的时间和精力去对每条日志数据进行筛选、排查和分析,提升了接口的诊断效率。
附图说明
图1是实施例一的一种接口诊断方法的流程图;
图2是本实施例的一种接口模型的示意图;
图3是实施例二的一种接口诊断方法的流程图;
图4是本实施例的一种构建接口模型的示意图;
图5是本实施例的一种接口模型统计流程的示意图;
图6是本实施例的一种模型节点路径匹配流程的示意图;
图7是实施例三提供的一种接口诊断方法的流程图;
图8是实施例四的一种接口诊断装置的结构框图;
图9是实施例五的一种接口诊断装置的结构框图;
图10是本实施例的一种计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
实施例一
图1是实施例一的一种接口诊断方法的流程图,所述接口诊断方法可以包括以下步骤:
步骤s101,获取诊断接口。
其中,诊断接口,可以为当前待诊断的程序接口。诊断接口可以从程序运行时产生的日志数据中获取得到。
其中,程序接口是由一套陈述、功能、选项、其它表达程序结构的形式、以及用户使用的程序或者程序语言提供的数据组成的。例如,在进行视频会议时,视频会议程序可能需要调用视频数据解析、共享桌面显示、音频捕捉等多个程序接口,以实现相应的程序功能。
需要说明的是,在运行某个程序时,会针对程序的运行情况记录成日志数据,并将日志数据存储在日志服务器上。该日志数据可以记录有程序运行时所调用的接口及其调用接口的时间。例如,在运行视频会议程序时,视频会议程序可以首先调用视频数据解析接口,然后再调用共享桌面显示接口,再调用音频捕捉接口。可以将调用的多个接口记录至日志数据中。
具体实现中,可以从日志服务器中获取日志数据,在日志数据中提取多个接口。例如,在视频会议的场景中,每个调用的接口可以具有对应用户id或会议id。当某个用户id或会议id,出现如无法接收视频数据、无法显示共享桌面等的故障,针对每个用户id或会议id,则可以从日志数据中提取对应的多个接口,作为诊断接口。
实际应用中,日志数据中还记录有各个接口的调用时间。可以根据诊断接口的调用时间,对各个诊断接口排序,形成诊断接口序列(interfacelist)。
步骤s102,获取所述诊断接口匹配的模型节点路径。
其中,模型节点路径,可以为接口模型上的一条路径。该路径由各个诊断接口对应的模型节点组成。
具体实现中,可以预先构建一个接口模型,该接口模型可以由多个模型节点组成,每个模型节点具有对应的接口。根据样本接口之间的调用关系,可以将各个模型节点进行连接。具有连接关系的各个模型节点形成一条模型节点路径。
根据诊断接口,可以在接口模型中,匹配出与诊断接口对应的多个模型节点,该多个模型节点形成一条模型节点路径,作为与诊断接口匹配的模型节点路径。
图2是本实施例的一种接口模型的示意图。从图中可见,一个接口模型由模型节点n1至n8组成。模型节点n1至n8分别与接口i1至i8对应。接口模型中的一条路径由相互连接的多个模型节点构成。如n2和n5连接,形成一条模型节点路径。
假设,当前的诊断接口包括[i1、i4、i8],在接口模型的多个模型节点中,可以查找到对应的模型节点n1、n4和n8,模型节点n1、n4和n8之间相互连接,形成一条模型节点路径,作为诊断接口匹配的模型节点路径。
假设,当前的诊断接口包括[i1、i5、i8],在接口模型的多个模型节点中,虽然可以查找到对应的模型节点n1、n5和n8,但模型节点n1、n5和n8之间并非相互连接,因此,诊断接口[i1、i5、i8]不存在匹配的模型节点路径。
步骤s103,获取所述模型节点路径的路径特征值。
其中,路径特征值,可以用于表示模型节点路径的特征。
具体实现中,可以针对模型节点路径计算路径特征值。计算路径特征值的方式可以有多种。
其中一种计算方式中,可以首先获取多个样本接口序列,每个样本接口序列由多个样本接口组成,针对同一样本接口序列的模型节点进行连接,得到样本接口序列对应的样本路径。
在一个样本路径中,样本路径途经的模型节点,可以作为该样本路径的途经节点,样本路径上最后一个模型节点,可以作为该样本路径的终点节点。
针对各个模型节点,统计以某个模型节点作为途经节点的样本路径的数量,得到模型节点的途经值;统计以某个模型节点作为终点节点的样本路径的数量,得到模型节点的终点值。
例如,对每个模型节点,初始化途经值counter_1=0和终点值counter_2=0。选取某个样本路径对应的样本接口序列,依次从中提取样本接口,针对每个样本接口,在接口模型中确定对应的模型节点,并在该模型节点的counter_1加1。当某个样本接口为样本路径最后一个接口,则在对应的模型节点的counter_2加1。
假设,存在有m条样本路径途经模型节点,即以模型节点作为途经节点,并有n条样本路径以模型节点作为终点节点,由此,模型节点的counter_1=m,counter_2=n。由此,得到模型节点的途经值m和终点值n。
在计算路径特征值时,确定模型节点路径的途经节点和终点节点,确定途经节点的途经值m,确定终点节点的终点值n,计算终点节点的终点值n与途经节点的途经值m的比值n/m,作为该模型节点路径的路径特征值。
当然,本领域技术人员可以采用其他方式计算模型节点路径的路径特征值,上述计算方式仅作示例说明,本实施例对路径特征值的具体计算方式不作限制。
步骤s104,根据所述模型节点路径的路径特征值,对所述诊断接口进行诊断。
具体实现中,根据模型节点路径的路径特征值,可以判断诊断接口的接口顺序是否存在缺陷。
例如,在计算得到模型节点路径的路径特征值之后,可以将该路径特征值与预设的特征值阈值进行比较,如果路径特征值小于特征值阈值,表明该则诊断接口的接口顺序存在缺陷的几率较大,如果路径特征值大于特征值阈值,表明该则诊断接口的接口顺序存在缺陷的几率较小。
需要说明的是,程序在运行时所调用的接口,通常具有较为固定的调用顺序。相应地,在接口模型中,当一条作为训练样本的模型节点路径以某一个或多个模型节点作为途经节点时,通常有较大几率,以另一个特定的模型节点作为终点节点。
由此可以得知,当有m个模型节点路径以某个模型节点作为途经节点,应该有n个模型节点路径,以另一个模型节点作为终点节点,即,在作为训练样本的模型节点路径中,终点节点的终点值n与途经节点的途经值m之间的比值n/m,即路径特征值,应该在一定的范围内。
假设,诊断接口匹配的模型节点路径中,途经节点为n1,终点节点为n7,n1的途经值为10,n7的终点值为1,其路径特征值为0.1,小于预设的阈值0.2,表明在10条以n1作为途经节点的模型节点路径中,9条模型节点路径不以n7作为终点节点,诊断接口匹配的模型节点路径,存在接口顺序的缺陷的几率则较高。
根据本实施例提供的接口诊断方法,通过接口模型匹配出诊断接口的模型节点路径,根据模型节点路径的路径特征值,判断诊断接口是否存在接口顺序的缺陷,无须检测人员花费大量的时间和精力去对每条日志数据进行筛选、排查和分析,提升了接口的诊断效率。
实施例二
图3是实施例二的一种接口诊断方法的流程图,所述接口诊断方法可以包括以下步骤:
步骤s201,获取样本接口序列;所述样本接口序列由样本接口组成。
其中,样本接口可以为样本账户在日志数据中所对应的接口。样本账户用于作为接口模型进行机器训练的训练样本。
其中,样本接口序列由多个具有时间顺序的多个样本接口组成。
具体实现中,可以从日志服务器中获取日志数据,在日志数据中提取与样本账户对应的多个接口,作为样本接口,按照样本接口的调用时间,对样本接口进行排序,得到样本接口序列。
例如,在视频会议的场景中,获取多个作为样本账户的用户id或会议id,在日志数据中查找对应的接口,作为样本接口,根据样本接口的调用时间,形成样本接口序列。针对不同的用户id或会议id,则可以得到多个样本接口序列。
其中,可以采用sql(结构化查询语言,structuredquerylanguage)原生语句查询或者https(安全超文本传输协议,hypertexttransferprotocoloversecuresocketlayer)请求的方式,在日志服务器获取日志数据。当然,本领域技术人员可以通过多种方式获取日志数据,本实施例对此不作限制。例如,将日志数据存储至本地服务器,在本地服务器获取日志数据。
其中,在日志数据中,包含有接口的日志记录具有特定的格式,对各条日志记录,通过正则表达式的方式,可以查找出特定用户id或会议id及其对应的接口。
步骤s202,生成所述样本接口对应的模型节点。
具体实现中,针对样本接口,生成模型节点,各个模型节点均具有对应的样本接口。
步骤s203,针对同一样本接口序列的模型节点进行连接,得到所述样本接口序列对应的样本路径。
具体实现中,可以将属于同一样本接口序列的模型节点进行连接,得到样本接口序列对应的样本路径,多条样本路径则可以形成树状结构的接口模型。
图4是本实施例的一种构建接口模型的示意图。假设,当前有多个样本接口序列,分别为[i1,i2,i3]、[i1,i2,i3]、[i1,i2,i4]、[i1,i2,i4,i5]、[i6,i7]和[i6,i8]。首先,创建接口模型的根节点root,从根节点root开始,针对样本接口序列[i1,i2,i3],将对应的模型节点n1、n2和n3进行连接,如此类推,得到了多条样本路径。
步骤s204,统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值。
其中,途经节点为某条样本路径途经的模型节点。
其中,途经值为模型节点被作为途经节点的样本路径的数量。
具体实现中,可以统计样本路径途经各个模型节点的次数,即以某个模型节点作为途经节点的样本路径的数量,将该数量作为模型节点的途经值。
可选地,所述步骤s204,包括:
确定第二目标父节点;在所述样本接口序列中,选取待标记样本接口,并判断在所述第二目标父节点连接的子节点中,是否具有与所述待标记样本接口对应的子节点;若是,则对所述待标记样本接口对应的子节点进行途经标记;当所述样本接口序列的样本接口均被选取为所述待标记样本接口,统计所述模型节点被进行途经标记的次数,作为所述模型节点的途经值。
统计模型节点的途经值,可以采用如下算法实现:
首先,确定接口模型的根节点root,以该根节点root,作为当前的目标父节点。为了区分说明,将该目标父节点,命名为第二目标父节点。
需要说明的是,根据节点的调用顺序,将对应的模型节点分为父节点和子节点,在先调用的接口对应的模型节点为父节点。相对地,在后调用的接口对应的模型节点为子节点。对于一个父节点,在不同的样本路径上,可能连接有多个子节点。
然后,在样本接口序列中,取出一个样本接口,作为待标记样本接口,并判断当前的第二目标父节点所连接的多个子节点中,是否具有与待标记样本接口对应的子节点。
若是,则对待标记样本接口对应的子节点,进行途经标记。例如,对每个模型节点,初始化途经值counter_1=0,当具有与待标记样本接口对应的子节点,对该子节点对应的counter_1加1。
若否,则可以新建一个与待标记样本接口对应的子节点,并将新建的子节点与当前的第二目标父节点进行连接。同时,对该新增的子节点进行途经标记。
在建立接口模型的过程中,可能有部分接口在接口模型中不存在对应的模型节点,因此,当没有查找到与待标记样本接口对应的子节点时,可以新建子节点,从而,对接口模型进行了完善,在利用接口模型进行接口诊断时,进一步提升了诊断的准确率。
对模型节点进行途经标记之后,将被途经标记的子节点,作为当前的第二目标父节点,并在样本接口序列中,取出下一个样本接口,进行下一轮的判断和途经标记处理,直至样本接口序列的样本接口,均被选取为待标记样本接口。
最后,对各个模型节点被进行途经标记的次数进行统计,被途经标记的次数,作为该模型节点的途经值。例如,模型节点n1的counter_1=10,即n1的途经值为10。
步骤s205,统计以所述模型节点作为终点节点的样本路径的数量,得到所述模型节点的终点值。
可选地,所述步骤s205,包括:
判断所述待标记样本接口是否为所述样本接口序列的最后一个样本接口;若是,则对所述待标记样本接口对应的子节点进行终点标记;当所述样本接口序列的样本接口均被选取为所述待标记样本接口,统计所述模型节点被进行终点标记的次数,作为所述模型节点的终点值。
具体实现中,针对待标记样本接口,可以判断其是否为当前的样本接口序列的最后一个样本接口。若是,则可以对待标记样本接口对应的子节点进行终点标记。例如,对每个模型节点,初始化终点值counter_2=0,当待标记样本接口为最后一个样本接口,对待标记样本接口对应的模型节点的counter_2加1。
实际应用中,可以在样本接口序列中取出样本接口之前,判断该样本接口序列是否还存在有未被选取为待标记样本接口的样本接口,若不存在有未被选取为待标记样本接口的样本接口,即上一次选取的待标记样本接口,为该样本接口序列的最后一个样本接口。
最后,对各个模型节点被进行终点标记的次数进行统计,被终点标记的次数,作为该模型节点的终点值。例如,模型节点n1的counter_2=2,即n1的终点值为2。
图5是本实施例的一种接口模型统计流程的示意图。
首先,确定当前的目标父节点为接口模型的根节点root。然后,针对当前的样本接口序列,判断剩余的样本接口是否为空,即是否存在有未被选取为待标记样本接口的样本接口。
若剩余的样本接口不为空,从剩余的样本接口中,选取待标记样本接口。针对当前的目标父节点连接的多个子节点,判断待标记样本接口是否具有对应的子节点。
若是,则对该子节点的途经值counter_1加1;
若否,则新建子节点,建立该子节点与目标父节点的连接关系,对新建的子节点的counter_1初始化为0,并对该子节点的counter_1加1。
更新当前的目标父节点为待标记样本接口对应的子节点,并返回至判断剩余的样本接口是否为空的步骤。
若剩余的样本接口为空,针对当前待标记样本接口对应的子节点,判断其是否为接口模型的根节点root,若是,表明该样本接口序列没有形成一个样本路径,统计流程结束;若否,则对待标记样本接口对应的子节点的counter_2加1,统计流程结束。
参考图4,示出了各个模型节点的途经值counter_1(c1)和终点值counter_2(c2)。例如,模型节点n4中,样本接口序列[i1,i2,i4]和[i1,i2,i4,i5]对应的样本路径均途经n4,即有2条样本路径以n4作为途经节点,n4的途经值counter_1(c1)=2。样本接口序列[i1,i2,i4]对应的样本路径以n4作为终点节点,即有1条样本路径以n4作为终点节点,n4的终点值counter_2(c2)=1。
由此,根据样本接口序列构建了接口模型,该接口模型可以匹配出诊断接口的模型节点路径,以便根据模型节点路径的路径特征值进行接口诊断。
步骤s206,获取诊断接口。
步骤s207,获取所述诊断接口匹配的模型节点路径。
可选地,所述步骤s207,包括:
获取模型节点;所述模型节点具有对应的接口;在所述模型节点中,获取与所述诊断接口对应的目标节点;将所述目标节点组成所述模型节点路径。
具体实现中,在获取到诊断接口之后,可以在接口模型中,获取与诊断接口对应的多个模型节点,作为上述的目标节点,由多个目标节点组成所述诊断接口匹配的模型节点路径。
可选地,所述模型节点包括父节点和子节点,所述父节点与所述子节点连接,所述在所述模型节点中,获取与所述诊断接口对应的目标节点,包括:
确定第一目标父节点;选取待匹配诊断接口,并判断在所述第一目标父节点连接的子节点中,是否具有与所述待匹配诊断接口对应的子节点;若是,则将与所述待匹配诊断接口对应的子节点,作为所述目标节点。
确定诊断接口匹配的模型节点路径,可以采用如下算法实现:
首先,确定接口模型的根节点root,以该根节点root,作为当前的目标父节点。为了区分说明,将该目标父节点,命名为第一目标父节点。
然后,从多个诊断接口中,取出一个接口,作为待匹配诊断接口,并判断当前的第一目标父节点所连接的多个子节点中,是否具有与待匹配诊断接口对应的子节点。
若是,则将与待匹配诊断接口对应的子节点,作为目标子节点。
可选地,判断当前的第一目标父节点所连接的多个子节点中,是否具有与待匹配诊断接口对应的子节点之后,还包括:
若在所述第一目标父节点连接的子节点中,不具有与所述待匹配诊断接口对应的子节点,判定不存在与所述诊断接口匹配的模型节点路径。
具体实现中,如果当前的第一目标父节点所连接的多个子节点中,不具有与待匹配诊断接口对应的子节点,可以判定在该接口模型中,不存在与诊断接口匹配的模型节点路径,该诊断接口的接口顺序存在缺陷的几率较高。
图6是本实施例的一种模型节点路径匹配流程的示意图。
首先,确定当前的目标父节点为接口模型的根节点root。然后,针对当前的多个诊断接口(interfacelist),判断剩余的诊断接口是否为空,即是否存在有未被选取为待匹配接口的诊断接口。
若剩余的诊断接口不为空,从剩余的诊断接口中,选取待匹配诊断接口,针对当前的目标父节点连接的多个子节点,判断待匹配诊断接口是否具有对应的子节点。
若是,则将与待匹配诊断接口对应的子节点,作为目标子节点,更新当前的目标父节点为所述目标子节点,并返回至判断剩余的诊断接口是否为空的步骤;
若否,则判定不存在与诊断接口匹配的模型节点路径,返回终点值counter_2=0。
若剩余的诊断接口为空,针对当前的目标子节点,判断其是否为接口模型的根节点root,若是,则判定不存在与诊断接口匹配的模型节点路径,返回终点值counter_2=0;若否,则获返回当前的目标子节点的终点值counter_2。
步骤s208,获取所述模型节点路径的路径特征值。
可选地,所述步骤s208,包括:
确定所述模型节点路径的途经节点和终点节点;获取所述途经节点的途经值,以及,获取所述终点节点的终点值;计算所述终点节点的终点值与所述途经节点的途经值的比值,得到所述模型节点路径的路径特征值。
具体实现中,可以确定诊断接口匹配的模型节点路径的途经节点和终点节点。确定途经节点的途经值,以及,确定终点节点的终点值。计算终点值与途经值的比值,得到路径特征值。
实际应用中,可以采用模型节点路径的第一个途经节点的途经值进行计算,当然,本领域技术人员可以根据实际情况,采用多个途经节点的途经值进行计算。
步骤s209,根据所述模型节点路径的路径特征值,对所述诊断接口进行诊断。
可选地,所述步骤s209,包括:
判断所述模型节点路径的路径特征值是否小于设定的特征值阈值;若是,则判定所述诊断接口的接口顺序存在缺陷。
具体实现中,可以将模型节点路径的路径特征值与预设的特征值阈值进行比较。当路径特征值小于特征值阈值,可以判定诊断接口的接口顺序存在缺陷;当路径特征值大于特征值阈值,可以判定诊断接口的接口顺序不存在缺陷。
例如,诊断接口匹配的模型节点路径中,第一途经节点的途经值为m`,终点节点的终点值为n`,其路径特征值即为n`/m`。特征值阈值为a,若n`/m`<a,可以判定诊断接口的接口顺序存在缺陷。
实际应用中,特征值阈值可以根据样本接口序列的接口顺序的正确率进行设定。当然,本领域技术人员可以根据实际情况,采用多种方式设定特征值阈值,本实施例对此不作限制。
根据本实施例提供的接口诊断方法,通过根据样本接口序列,构建由模型节点组成的接口模型,并统计各个模型节点的途经值和终点值,在进行接口诊断时,针对诊断接口确定匹配的模型节点路径,根据该模型节点路径的途经节点的途经值和终点节点的终点值,计算模型节点路径的路径特征值,根据路径特征值判断诊断接口是否存在接口顺序的缺陷,通过逆向判断接口顺序的方式定位接口缺陷,提升了接口诊断的准确率。
实施例三
图7是实施例三提供的一种接口诊断方法的流程图,所述接口诊断方法可以包括以下步骤:
步骤s301,获取样本接口序列;所述样本接口序列由样本接口组成。
步骤s302,生成所述样本接口对应的模型节点,并针对同一样本接口序列的模型节点进行连接,得到所述样本接口序列对应的样本路径;所述模型节点用于确定诊断接口的模型节点路径。
步骤s303,统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值,以及,统计以所述模型节点作为终点节点的样本路径的数量,得到所述模型节点的终点值;所述模型节点的途经值和终点值用于确定所述模型节点路径的路径特征值;所述路径特征值用于判断所述诊断接口的接口顺序是否存在缺陷。
由于构建接口模型和根据接口模型进行接口诊断的两个过程,在实施例一和实施例二中已有详细说明,在此不再赘述。
根据本实施例提供的接口诊断方法,通过根据样本接口序列,构建由模型节点组成的接口模型,并统计各个模型节点的途经值和终点值,从而,在进行接口诊断时,可以针对诊断接口确定匹配的模型节点路径,根据该模型节点路径的途经节点的途经值和终点节点的终点值,计算模型节点路径的路径特征值,根据路径特征值判断诊断接口是否存在接口顺序的缺陷,通过逆向判断接口顺序的方式定位接口缺陷,无须检测人员花费大量的时间和精力去对每条日志数据进行筛选、排查和分析,提升了接口的诊断效率。而且,通过逆向判断接口顺序的方式定位接口缺陷,提升了接口诊断的准确率。
实施例四
图8是实施例四的一种接口诊断装置的结构框图,所述接口诊断装置,包括以下模块:
接口获取模块401,用于获取诊断接口;
路径获取模块402,用于获取所述诊断接口匹配的模型节点路径;
特征获取模块403,用于获取所述模型节点路径的路径特征值;
诊断模块404,用于根据所述模型节点路径的路径特征值,对所述诊断接口进行诊断。
可选地,所述路径获取模块402,包括:
节点获取子模块,用于获取模型节点;所述模型节点具有对应的接口;
目标节点子模块,用于在所述模型节点中,获取与所述诊断接口对应的目标节点;
路径确定子模块,用于将所述目标节点组成所述模型节点路径。
可选地,所述模型节点具有途经值,所述模型节点具有终点值,所述特征获取模块403,包括:
节点确定子模块,用于确定所述模型节点路径的途经节点和终点节点;
数值获取子模块,用于获取所述途经节点的途经值,以及,获取所述终点节点的终点值;
计算子模块,用于计算所述终点节点的终点值与所述途经节点的途经值的比值,得到所述模型节点路径的路径特征值。
可选地,所述诊断模块404,包括:
阈值判断子模块,用于判断所述模型节点路径的路径特征值是否小于设定的特征值阈值;
缺陷判定模块,用于判定所述诊断接口的接口顺序存在缺陷。
可选地,所述模型节点包括父节点和子节点,所述父节点与所述子节点连接,所述目标节点子模块,包括:
父节点单元,用于确定第一目标父节点;
节点判断单元,用于选取待匹配诊断接口,并判断在所述第一目标父节点连接的子节点中,是否具有与所述待匹配诊断接口对应的子节点;
目标节点确定单元,用于将与所述待匹配诊断接口对应的子节点,作为所述目标节点。
可选地,所述缺陷判定模块,还用于若在所述第一目标父节点连接的子节点中,不具有与所述待匹配诊断接口对应的子节点,判定不存在与所述诊断接口匹配的模型节点路径。
可选地,还包括:
序列获取模块,用于获取样本接口序列;所述样本接口序列由样本接口组成;
模型构建模块,用于生成所述样本接口对应的模型节点,并针对同一样本接口序列的模型节点进行连接,得到所述样本接口序列对应的样本路径;
统计模块,用于统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值;统计以所述模型节点作为终点节点的样本路径的数量,得到所述模型节点的终点值。
可选地,所述统计模块,包括:
父节点子模块,用于确定第二目标父节点;
节点判断子模块,用于在所述样本接口序列中,选取待标记样本接口,并判断在所述第二目标父节点连接的子节点中,是否具有与所述待标记样本接口对应的子节点;
途经标记子模块,用于对所述待标记样本接口对应的子节点进行途经标记;
统计子模块,用于当所述样本接口序列的样本接口均被选取为所述待标记样本接口,统计所述模型节点被进行途经标记的次数,作为所述模型节点的途经值。
可选地,所述统计模块,包括:
接口判断子模块,用于判断所述待标记样本接口是否为所述样本接口序列的最后一个样本接口;
终点标记子模块,用于对所述待标记样本接口对应的子节点进行终点标记;
所述统计子模块,还用于当所述样本接口序列的样本接口均被选取为所述待标记样本接口,统计所述模型节点被进行终点标记的次数,作为所述模型节点的终点值。
根据本实施例提供的接口诊断装置,通过接口模型匹配出诊断接口的模型节点路径,根据模型节点路径的路径特征值,判断诊断接口是否存在接口顺序的缺陷,无须检测人员花费大量的时间和精力去对每条日志数据进行筛选、排查和分析,提升了接口的诊断效率。
实施例五
图9是实施例五的一种接口诊断装置的结构框图,所述接口诊断装置,包括以下模块:
序列获取模块501,用于获取样本接口序列;所述样本接口序列由样本接口组成;
模型构建模块502,用于生成所述样本接口对应的模型节点,并针对同一样本接口序列的模型节点进行连接,得到所述样本接口序列对应的样本路径;所述模型节点用于确定诊断接口的模型节点路径;
统计模块503,用于统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值,以及,统计以所述模型节点作为终点节点的样本路径的数量,得到所述模型节点的终点值;所述模型节点的途经值和终点值用于确定所述模型节点路径的路径特征值;所述路径特征值用于判断所述诊断接口的接口顺序是否存在缺陷。
根据本实施例提供的接口诊断方法,通过根据样本接口序列,构建由模型节点组成的接口模型,并统计各个模型节点的途经值和终点值,从而,在进行接口诊断时,可以针对诊断接口确定匹配的模型节点路径,根据该模型节点路径的途经节点的途经值和终点节点的终点值,计算模型节点路径的路径特征值,根据路径特征值判断诊断接口是否存在接口顺序的缺陷,通过逆向判断接口顺序的方式定位接口缺陷,无须检测人员花费大量的时间和精力去对每条日志数据进行筛选、排查和分析,提升了接口的诊断效率。而且,通过逆向判断接口顺序的方式定位接口缺陷,提升了接口诊断的准确率。
关于接口诊断装置的具体限定可以参见上文中对于接口诊断方法的限定,在此不再赘述。上述接口诊断装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储接口诊断处理相关的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口诊断方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取诊断接口;
获取所述诊断接口匹配的模型节点路径;
获取所述模型节点路径的路径特征值;
根据所述模型节点路径的路径特征值,对所述诊断接口进行诊断。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取模型节点;所述模型节点具有对应的接口;
在所述模型节点中,获取与所述诊断接口对应的目标节点;
将所述目标节点组成所述模型节点路径。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
确定所述模型节点路径的途经节点和终点节点;
获取所述途经节点的途经值,以及,获取所述终点节点的终点值;
计算所述终点节点的终点值与所述途经节点的途经值的比值,得到所述模型节点路径的路径特征值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
判断所述模型节点路径的路径特征值是否小于设定的特征值阈值;
若是,则判定所述诊断接口的接口顺序存在缺陷。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
确定第一目标父节点;
选取待匹配诊断接口,并判断在所述第一目标父节点连接的子节点中,是否具有与所述待匹配诊断接口对应的子节点;
若是,则将与所述待匹配诊断接口对应的子节点,作为所述目标节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若在所述第一目标父节点连接的子节点中,不具有与所述待匹配诊断接口对应的子节点,判定不存在与所述诊断接口匹配的模型节点路径。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取样本接口序列;所述样本接口序列由样本接口组成;
生成所述样本接口对应的模型节点;
针对同一样本接口序列的模型节点进行连接,得到所述样本接口序列对应的样本路径;
统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值;
统计以所述模型节点作为终点节点的样本路径的数量,得到所述模型节点的终点值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
确定第二目标父节点;
在所述样本接口序列中,选取待标记样本接口,并判断在所述第二目标父节点连接的子节点中,是否具有与所述待标记样本接口对应的子节点;
若是,则对所述待标记样本接口对应的子节点进行途经标记;
当所述样本接口序列的样本接口均被选取为所述待标记样本接口,统计所述模型节点被进行途经标记的次数,作为所述模型节点的途经值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
判断所述待标记样本接口是否为所述样本接口序列的最后一个样本接口;
若是,则对所述待标记样本接口对应的子节点进行终点标记;
当所述样本接口序列的样本接口均被选取为所述待标记样本接口,统计所述模型节点被进行终点标记的次数,作为所述模型节点的终点值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取样本接口序列;所述样本接口序列由样本接口组成;
生成所述样本接口对应的模型节点,并针对同一样本接口序列的模型节点进行连接,得到所述样本接口序列对应的样本路径;所述模型节点用于确定诊断接口的模型节点路径;
统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值,以及,统计以所述模型节点作为终点节点的样本路径的数量,得到所述模型节点的终点值;所述模型节点的途经值和终点值用于确定所述模型节点路径的路径特征值;所述路径特征值用于判断所述诊断接口的接口顺序是否存在缺陷。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取诊断接口;
获取所述诊断接口匹配的模型节点路径;
获取所述模型节点路径的路径特征值;
根据所述模型节点路径的路径特征值,对所述诊断接口进行诊断。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取模型节点;所述模型节点具有对应的接口;
在所述模型节点中,获取与所述诊断接口对应的目标节点;
将所述目标节点组成所述模型节点路径。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
确定所述模型节点路径的途经节点和终点节点;
获取所述途经节点的途经值,以及,获取所述终点节点的终点值;
计算所述终点节点的终点值与所述途经节点的途经值的比值,得到所述模型节点路径的路径特征值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
判断所述模型节点路径的路径特征值是否小于设定的特征值阈值;
若是,则判定所述诊断接口的接口顺序存在缺陷。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
确定第一目标父节点;
选取待匹配诊断接口,并判断在所述第一目标父节点连接的子节点中,是否具有与所述待匹配诊断接口对应的子节点;
若是,则将与所述待匹配诊断接口对应的子节点,作为所述目标节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若在所述第一目标父节点连接的子节点中,不具有与所述待匹配诊断接口对应的子节点,判定不存在与所述诊断接口匹配的模型节点路径。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取样本接口序列;所述样本接口序列由样本接口组成;
生成所述样本接口对应的模型节点;
针对同一样本接口序列的模型节点进行连接,得到所述样本接口序列对应的样本路径;
统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值;
统计以所述模型节点作为终点节点的样本路径的数量,得到所述模型节点的终点值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
确定第二目标父节点;
在所述样本接口序列中,选取待标记样本接口,并判断在所述第二目标父节点连接的子节点中,是否具有与所述待标记样本接口对应的子节点;
若是,则对所述待标记样本接口对应的子节点进行途经标记;
当所述样本接口序列的样本接口均被选取为所述待标记样本接口,统计所述模型节点被进行途经标记的次数,作为所述模型节点的途经值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
判断所述待标记样本接口是否为所述样本接口序列的最后一个样本接口;
若是,则对所述待标记样本接口对应的子节点进行终点标记;
当所述样本接口序列的样本接口均被选取为所述待标记样本接口,统计所述模型节点被进行终点标记的次数,作为所述模型节点的终点值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取样本接口序列;所述样本接口序列由样本接口组成;
生成所述样本接口对应的模型节点,并针对同一样本接口序列的模型节点进行连接,得到所述样本接口序列对应的样本路径;所述模型节点用于确定诊断接口的模型节点路径;
统计以所述模型节点作为途经节点的样本路径的数量,得到所述模型节点的途经值,以及,统计以所述模型节点作为终点节点的样本路径的数量,得到所述模型节点的终点值;所述模型节点的途经值和终点值用于确定所述模型节点路径的路径特征值;所述路径特征值用于判断所述诊断接口的接口顺序是否存在缺陷。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。