CN117742900B - 一种服务调用图的构造方法、装置、设备及存储介质 - Google Patents
一种服务调用图的构造方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117742900B CN117742900B CN202410161220.6A CN202410161220A CN117742900B CN 117742900 B CN117742900 B CN 117742900B CN 202410161220 A CN202410161220 A CN 202410161220A CN 117742900 B CN117742900 B CN 117742900B
- Authority
- CN
- China
- Prior art keywords
- service
- call
- historical
- graph
- index data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 239000011159 matrix material Substances 0.000 claims abstract description 93
- 230000005540 biological transmission Effects 0.000 claims abstract description 49
- 230000001364 causal effect Effects 0.000 claims abstract description 28
- 238000010276 construction Methods 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 16
- 238000005457 optimization Methods 0.000 claims description 10
- 238000003780 insertion Methods 0.000 abstract description 4
- 230000037431 insertion Effects 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明涉及计算机技术领域,公开了一种服务调用图的构造方法、装置、设备及存储介质。该方法包括:当检测到服务调用图的构造请求,获取当前时刻对应的历史传输控制协议连接数据和历史调用量指标数据,并根据历史调用量指标数据,获取多个服务名称;获取每个服务名称对应的服务标识,并根据历史传输控制协议连接数据、历史调用量指标数据和每个服务名称对应的服务标识,生成邻接矩阵;通过因果图重构算法,根据邻接矩阵和历史调用量指标数据,建立服务调用图。本实施例的技术方案,可以在不需要插码且对内核版本没有要求的情况下,重构出服务调用图,可以提升服务调用图的构造效率和准确度。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种服务调用图的构造方法、装置、设备及存储介质。
背景技术
由于分布式***规模和复杂性的增加,服务之间的调用关系变得越来越庞大和错综复杂,这种复杂性使得分析和理解***的整体结构以及服务之间的交互关系变得困难和耗时。
目前,现有的服务调用图的构造方法,通常采用由开发和运维人员维护,例如,配置管理数据库,或者采用服务插码获取服务间调用信息,或者使用内核级别的扩展的伯克利包过滤器获取服务间的调用包。但是,在现有技术中,采用开发和运维人员维护,其本身需要有维护,且随着***的迭代往往会变得不准确;而采用服务插码方式需要修改代码,增加了开发难度;其次,对于扩展的伯克利包过滤器,其需要linux内核版本大于4.1,存在使用范围限制。
发明内容
本发明提供了一种服务调用图的构造方法、装置、设备及存储介质,可以在不需要插码且对内核版本没有要求的情况下,重构出服务调用图,可以提升服务调用图的构造效率和准确度。
根据本发明的一方面,提供了一种服务调用图的构造方法,包括:
当检测到服务调用图的构造请求,获取当前时刻对应的历史传输控制协议连接数据和历史调用量指标数据,并根据所述历史调用量指标数据,获取多个服务名称;
获取每个所述服务名称对应的服务标识,并根据所述历史传输控制协议连接数据、所述历史调用量指标数据和每个所述服务名称对应的服务标识,生成邻接矩阵;
通过因果图重构算法,根据所述邻接矩阵和所述历史调用量指标数据,建立服务调用图。
根据本发明的另一方面,提供了一种服务调用图的构造装置,包括:
数据获取模块,用于当检测到服务调用图的构造请求,获取当前时刻对应的历史传输控制协议连接数据和历史调用量指标数据,并根据所述历史调用量指标数据,获取多个服务名称;
邻接矩阵生成模块,用于获取每个所述服务名称对应的服务标识,并根据所述历史传输控制协议连接数据、所述历史调用量指标数据和每个所述服务名称对应的服务标识,生成邻接矩阵;
服务调用图建立模块,用于通过因果图重构算法,根据所述邻接矩阵和所述历史调用量指标数据,建立服务调用图。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的服务调用图的构造方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的服务调用图的构造方法。
本发明实施例的技术方案,通过当检测到服务调用图的构造请求,获取当前时刻对应的历史传输控制协议连接数据和历史调用量指标数据,并根据历史调用量指标数据,获取多个服务名称;然后,获取每个服务名称对应的服务标识,并根据历史传输控制协议连接数据、历史调用量指标数据和每个服务名称对应的服务标识,生成邻接矩阵;最后,通过因果图重构算法,根据邻接矩阵和历史调用量指标数据,建立服务调用图;通过根据传输控制协议连接数据构造邻接矩阵,并结合因果图重构算法重构服务调用图,可以在不需要插码且对内核版本没有要求的情况下,重构出服务调用图,可以提升服务调用图的构造效率和准确度。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种服务调用图的构造方法的流程图;
图2是根据本发明实施例二提供的一种服务调用图的构造装置的结构示意图;
图3是实现本发明实施例的服务调用图的构造方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供了一种服务调用图的构造方法的流程图,本实施例可适用于构造服务间调用关系图的情况,该方法可以由服务调用图的构造装置来执行,该服务调用图的构造装置可以采用硬件和/或软件的形式实现,典型的,该服务调用图的构造装置可配置于电子设备中,例如,计算机设备或者服务器等。如图1所示,该方法包括:
S110、当检测到服务调用图的构造请求,获取当前时刻对应的历史传输控制协议连接数据和历史调用量指标数据,并根据所述历史调用量指标数据,获取多个服务名称。
其中,历史传输控制协议连接数据,可以是各主机在各历史时刻所建立的传输控制协议(Transmission Control Protocol,TCP)连接相关的数据,例如,可以包括TCP连接类型、两端主机的互联网协议(Internet Protocol,IP)地址和端口号等。历史调用量指标数据,可以是在各历史时刻各服务对应的被调用量指标数据,可以包括服务所在主机的IP地址和端口号、服务名称、调用时间、调用量等内容。在本实施例中,可以预先采集得到不同时刻的TCP连接数据和调用量指标数据,并将其存储到数据库中。
具体的,用户可以通过点击预设的功能按钮向客户端发送服务调用图的构造请求,客户端在检测到服务调用图的构造请求时,可以通过时钟模块确定当前时刻,并从数据库中读取当前时刻前一小时或者前一天的TCP连接数据和调用量指标数据,以作为当前时刻对应的历史TCP连接数据和历史调用量指标数据。进一步的,客户端可以对获取的历史调用量指标数据进行内容解析,以获取其包含的服务名称。
S120、获取每个所述服务名称对应的服务标识,并根据所述历史传输控制协议连接数据、所述历史调用量指标数据和每个所述服务名称对应的服务标识,生成邻接矩阵。
具体的,可以按照设定规则为每个服务名称配置对应的服务标识,例如,服务a对应服务标识1,服务b对应服务标识2等;然后,基于历史调用量指标数据和每个服务名称对应的服务标识,将历史TCP连接数据中TCP连接转化为服务标识间的连接关系,并基于服务标识间的连接关系构造邻接矩阵。
可以理解的是,由于历史TCP连接数据包含TCP连接两端主机的IP地址和端口号,而历史调用量指标数据包含服务名称与服务所在主机的IP地址和端口号之间的对应关系,通过利用IP地址和端口号作为中介,可以将TCP连接转化为服务名称间的连接关系;然后,根据服务名称对应的服务标识,可以将服务名称间的连接关系,转换为服务标识间的连接关系。
其中,邻接矩阵,可以是基于TCP连接的对称矩阵,例如,邻接矩阵为A,其第i行第j列元素a_ij,表示标识为i的服务和标识为j的服务是否有连接,由于是对称矩阵,a_ij=a_ji=0,而且因为不关注同一个服务到自己是否有调用,故将所有的a_ii置为0。
S130、通过因果图重构算法,根据所述邻接矩阵和所述历史调用量指标数据,建立服务调用图。
其中,因果图重构算法可以包括彼得-克拉克(Peter-Clark,PC)算法和/或优化有向无环图算法。典型的,优化有向无环图算法可以是DAG with no tears算法。在本实施例中,对因果图重构算法的类型可以不作具体限定,只要其支持不从完全图开始重构因果图即可。
具体的,可以利用因果图重构算法,基于邻接矩阵和历史调用量指标数据,构建全景图,以作为服务调用图;其中,服务调用图可以由多个节点和节点间的链接组成,每个节点对应一个服务标识,节点间的链接表示节点对应的服务标识间存在调用关系。
本发明实施例的技术方案,通过当检测到服务调用图的构造请求,获取当前时刻对应的历史传输控制协议连接数据和历史调用量指标数据,并根据历史调用量指标数据,获取多个服务名称;然后,获取每个服务名称对应的服务标识,并根据历史传输控制协议连接数据、历史调用量指标数据和每个服务名称对应的服务标识,生成邻接矩阵;最后,通过因果图重构算法,根据邻接矩阵和历史调用量指标数据,建立服务调用图;通过根据传输控制协议连接数据构造邻接矩阵,并结合因果图重构算法重构服务调用图,可以在不需要插码且对内核版本没有要求的情况下,重构出服务调用图,可以提升服务调用图的构造效率和准确度。
在本实施例的一个可选的实施方式中,在当检测到服务调用图的构造请求,获取当前时刻对应的历史传输控制协议连接数据和历史调用量指标数据之前,还可以包括:
从各主机处采集得到传输控制协议连接数据和调用量指标数据存储到数据库中;
其中,传输控制协议连接数据可以包括采集时间,以及传输控制协议连接的两端主机的互联网协议地址和端口号,例如,TCP连接数据可以是tcp6 0 0 192.168.1.119:50228 192.168.1.122:50060 ESTABLISHED 60628/jav,其中,第4项和第5项为TCP连接的两端主机的IP地址和端口号,在此基础上可以将该数据的采集时间新增至数据中;调用量指标数据可以包括服务名称、服务所在主机的互联网协议地址和端口号、服务调用时间和服务调用量,例如,调用量指标数据可以是{service:web_page,metric:traffic,timestamp:1703174400,host:192.168.1.119,port:50228,value:100},该条数据描述了web_page这个服务,在1703174400往前1分钟的调用量是100,对应的IP地址和端口是192.168.1.119:50228。
在一个具体的例子中,可以通过netstat,定期(例如,每分钟一次等)从各主机处对已建立的TCP连接进行数据采集,以获取TCP连接数据;同时,可以通过cbpf(ClassicBerkeley Packet Filter,传统伯克利包过滤器)技术采集得到调用量指标数据。其中,cbpf对linux内核要求很低,linux内核大于2.12即可。
在本实施例的另一个可选的实施方式中,获取当前时刻对应的历史传输控制协议连接数据和历史调用量指标数据,可以包括:
获取所述当前时刻对应的历史时间区间;
根据所述数据库中各所述传输控制协议连接数据对应的采集时间,以及所述历史时间区间,从所述数据库中读取所述当前时刻对应的历史传输控制协议连接数据;
根据所述数据库中各所述调用量指标数据对应的服务调用时间,以及所述历史时间区间,从所述数据库中读取所述当前时刻对应的历史调用量指标数据。
在本实施例中,可以基于预设的历史时间区间规则,获取当前时刻对应的历史时间区间,例如,可以将当前时刻的前一天作为历史时间区间。然后,可以将该历史时间区间作为数据查找条件,从数据库中查找得到采集时间位于该历史时间区间的TCP连接数据,以作为历史TCP连接数据,以及查找得到服务调用时间位于该历史时间区间的调用量指标数据,以作为历史调用量指标数据。
在本实施例的另一个可选的实施方式中,根据所述历史传输控制协议连接数据、所述历史调用量指标数据和每个所述服务名称对应的服务标识,生成邻接矩阵,可以包括:
根据所述历史传输控制协议连接数据中传输控制协议连接的两端主机的互联网协议地址和端口号,以及所述历史调用量指标数据中各服务名称对应的服务所在主机的互联网协议地址和端口号,获取服务名称间的连接关系;
根据所述服务名称间的连接关系,以及每个所述服务名称对应的服务标识,生成所述邻接矩阵;
其中,所述邻接矩阵中各第一元素对应的行值和列值表示服务标识,各所述第一元素对应的数值表示是否存在连接关系。存在连接关系和不存在连接关系可以采用不同的预设数值进行表示,例如,邻接矩阵为A,由第一元素a_ij组成,i和j分别对应行值和列值,表示服务标识,如果服务i和服务j间存在连接关系,则a_ij=1,如果不存在连接关系,则a_ij=0。
在一个具体的例子中,可以根据服务名称与服务所在主机的互联网协议地址和端口号之间的对应关系,将TCP连接的两端主机的IP地址和端口号,分别转换为对应的服务名称,从而获取服务名称间的连接关系;例如,TCP连接的两端主机的IP地址和端口号分别是192.168.1.119:50228和192.168.1.122:50060,若192.168.1.119:50228对应web_page1服务,192.168.1.122:50060对应web_page2服务,则web_page1服务和web_page2服务间存在连接关系。
然后,根据每个服务名称对应的服务标识,可以将服务名称间的连接关系,转化为服务标识间的连接关系,并可以基于该服务标识间的连接关系,构造得到一个对称矩阵,以作为邻接矩阵。
在本实施例的另一个可选的实施方式中,通过因果图重构算法,根据所述邻接矩阵和所述历史调用量指标数据,建立服务调用图,可以包括:
根据所述历史调用量指标数据,生成服务调用量矩阵;
通过所述优化有向无环图算法,根据所述邻接矩阵和所述服务调用量矩阵,计算得到初始调用关系矩阵;
根据所述初始调用关系矩阵和预设阈值,获取目标调用关系矩阵,并根据所述目标调用关系矩阵,建立所述服务调用图。
在一个具体的例子中,采用优化有向无环图算法DAG with no tears,基于邻接矩阵和历史调用量指标数据建立因果图,以作为服务调用图。其中,因果模型反应的是变量之间的因果关系,具体而言,在因果图上的两个节点之间,如果节点a有指向节点b的边,那么节点a对应的变量就是节点b的对应的变量的因变量。对于DAG with no tears算法,重构因果图用的是解一个组合优化问题的方式,重构的结果就是对最优化问题的解。
其中,最优化问题可以表示为:
;
其中,F(W)表示在某一个邻接矩阵W的条件下,现在的数据中的总误差,误差越小,代表对应的因果图越能解释数据。优化目标是得到在什么W的情况下F(W)最小,下面的限制条件代表的是期望有一种方式限制W为DAG(Directed acyclic graph,有向无环图),因为因果图一定是有向无环图,与一般认知中的服务的调用关系一致。
具体的,可以根据下述公式计算得到F(W);
,其中,X表示服务调用量矩阵,当历史调用量指标数据为当前时刻前一天的调用量指标数据时,1分钟1个数据点,则有1440个数据点,故X为1440行d列的矩阵,d表示服务数量,X_ij表示第i个时间点第j个服务标识的调用量。
其中,W=U*.A,U属于R^(d×d),A表示邻接矩阵,*.表示哈达玛积,即矩阵的按元素乘积。由此,最优化问题调整为F(U*.A) subject to G(U *.A) 属于DAG。然后,采用拉格朗日乘子法和拟牛顿法对该最优化问题进行求解,以获取最优化问题的解U',并重新用 U'*.A就能得到初始调用关系矩阵S'。
最后,在获取到初始调用关系矩阵S'之后,可以基于预设阈值对其进行元素值的重置,以获取目标调用关系矩阵S,并根据目标调用关系矩阵S重构服务调用图。
可选的,根据所述初始调用关系矩阵和预设阈值,获取目标调用关系矩阵,可以包括:
若检测到所述初始调用关系矩阵中第二元素对应的数值的绝对值小于所述预设阈值,则将所述第二元素对应的数值重设为表示不存在调用关系的第一预设数值;
以及,若检测到所述初始调用关系矩阵中第二元素对应的数值的绝对值大于或者等于所述预设阈值,则将所述第二元素对应的数值重设为表示存在调用关系的第二预设数值。
典型的,第一预设数值可以是0,第二预设数值可以是1。在一个具体的例子中,在获取到初始调用关系矩阵S'之后,若S'中第二元素s_ij的绝对值小于预设阈值,例如,0.5等,则将s_ij的数值重设为0;而若s_ij的绝对值大于或者等于预设阈值,则将s_ij的数值重设为1。由此,在完成对所有第二元素的判断和重置后,可以获取目标调用关系矩阵S。
可以理解的是,对于目标调用关系矩阵S中数值为1的第二元素,可以获取其对应的行值i和列值j;然后,根据服务名称与服务标识间的对应关系,可以确定i对应的服务名称为调用方,j对应的服务名称为被调用方。由此,可以确定服务间的调用关系,并可以基于服务间的调用关系重构得到服务调用图。
实施例二
图2为本发明实施例二提供的一种服务调用图的构造装置的结构示意图。如图2所示,该装置包括:数据获取模块210、邻接矩阵生成模块220和服务调用图建立模块230;其中,
数据获取模块210,用于当检测到服务调用图的构造请求,获取当前时刻对应的历史传输控制协议连接数据和历史调用量指标数据,并根据所述历史调用量指标数据,获取多个服务名称;
邻接矩阵生成模块220,用于获取每个所述服务名称对应的服务标识,并根据所述历史传输控制协议连接数据、所述历史调用量指标数据和每个所述服务名称对应的服务标识,生成邻接矩阵;
服务调用图建立模块230,用于通过因果图重构算法,根据所述邻接矩阵和所述历史调用量指标数据,建立服务调用图。
本发明实施例的技术方案,通过当检测到服务调用图的构造请求,获取当前时刻对应的历史传输控制协议连接数据和历史调用量指标数据,并根据历史调用量指标数据,获取多个服务名称;然后,获取每个服务名称对应的服务标识,并根据历史传输控制协议连接数据、历史调用量指标数据和每个服务名称对应的服务标识,生成邻接矩阵;最后,通过因果图重构算法,根据邻接矩阵和历史调用量指标数据,建立服务调用图;通过根据传输控制协议连接数据构造邻接矩阵,并结合因果图重构算法重构服务调用图,可以在不需要插码且对内核版本没有要求的情况下,重构出服务调用图,可以提升服务调用图的构造效率和准确度。
可选的,服务调用图的构造装置,还包括:
数据采集模块,用于从各主机处采集得到传输控制协议连接数据和调用量指标数据存储到数据库中;
其中,所述传输控制协议连接数据包括采集时间,以及传输控制协议连接的两端主机的互联网协议地址和端口号;所述调用量指标数据包括服务名称、服务所在主机的互联网协议地址和端口号、服务调用时间和服务调用量。
可选的,数据获取模块210,具体用于获取所述当前时刻对应的历史时间区间;
根据所述数据库中各所述传输控制协议连接数据对应的采集时间,以及所述历史时间区间,从所述数据库中读取所述当前时刻对应的历史传输控制协议连接数据;
根据所述数据库中各所述调用量指标数据对应的服务调用时间,以及所述历史时间区间,从所述数据库中读取所述当前时刻对应的历史调用量指标数据。
可选的,邻接矩阵生成模块220,具体用于根据所述历史传输控制协议连接数据中传输控制协议连接的两端主机的互联网协议地址和端口号,以及所述历史调用量指标数据中各服务名称对应的服务所在主机的互联网协议地址和端口号,获取服务名称间的连接关系;
根据所述服务名称间的连接关系,以及每个所述服务名称对应的服务标识,生成所述邻接矩阵;
其中,所述邻接矩阵中各第一元素对应的行值和列值表示服务标识,各所述第一元素对应的数值表示是否存在连接关系。
可选的,所述因果图重构算法包括彼得-克拉克算法和/或优化有向无环图算法。
可选的,服务调用图建立模块230,具体用于根据所述历史调用量指标数据,生成服务调用量矩阵;
通过所述优化有向无环图算法,根据所述邻接矩阵和所述服务调用量矩阵,计算得到初始调用关系矩阵;
根据所述初始调用关系矩阵和预设阈值,获取目标调用关系矩阵,并根据所述目标调用关系矩阵,建立所述服务调用图。
可选的,服务调用图建立模块230,具体用于若检测到所述初始调用关系矩阵中第二元素对应的数值的绝对值小于所述预设阈值,则将所述第二元素对应的数值重设为表示不存在调用关系的第一预设数值;
以及,若检测到所述初始调用关系矩阵中第二元素对应的数值的绝对值大于或者等于所述预设阈值,则将所述第二元素对应的数值重设为表示存在调用关系的第二预设数值。
本发明实施例所提供的服务调用图的构造装置可执行本发明任意实施例所提供的服务调用图的构造方法,具备执行方法相应的功能模块和有益效果。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
实施例三
图3示出了可以用来实施本发明的实施例的电子设备30的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图3所示,电子设备30包括至少一个处理器31,以及与至少一个处理器31通信连接的存储器,如只读存储器(ROM)32、随机访问存储器(RAM)33等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器31可以根据存储在只读存储器(ROM)32中的计算机程序或者从存储单元38加载到随机访问存储器(RAM)33中的计算机程序,来执行各种适当的动作和处理。在RAM 33中,还可存储电子设备30操作所需的各种程序和数据。处理器31、ROM 32以及RAM 33通过总线34彼此相连。输入/输出(I/O)接口35也连接至总线34。
电子设备30中的多个部件连接至I/O接口35,包括:输入单元36,例如键盘、鼠标等;输出单元37,例如各种类型的显示器、扬声器等;存储单元38,例如磁盘、光盘等;以及通信单元39,例如网卡、调制解调器、无线通信收发机等。通信单元39允许电子设备30通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器31可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器31的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器31执行上文所描述的各个方法和处理,例如服务调用图的构造方法。
在一些实施例中,服务调用图的构造方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元38。在一些实施例中,计算机程序的部分或者全部可以经由ROM 32和/或通信单元39而被载入和/或安装到电子设备30上。当计算机程序加载到RAM 33并由处理器31执行时,可以执行上文描述的服务调用图的构造方法的一个或多个步骤。备选地,在其他实施例中,处理器31可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行服务调用图的构造方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的***和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (8)
1.一种服务调用图的构造方法,其特征在于,包括:
从各主机处采集得到传输控制协议连接数据和调用量指标数据存储到数据库中;
其中,所述传输控制协议连接数据包括采集时间,以及传输控制协议连接的两端主机的互联网协议地址和端口号;所述调用量指标数据包括服务名称、服务所在主机的互联网协议地址和端口号、服务调用时间和服务调用量;
当检测到服务调用图的构造请求,获取当前时刻对应的历史传输控制协议连接数据和历史调用量指标数据,并根据所述历史调用量指标数据,获取多个服务名称;
获取每个所述服务名称对应的服务标识,并根据所述历史传输控制协议连接数据中传输控制协议连接的两端主机的互联网协议地址和端口号,以及所述历史调用量指标数据中各服务名称对应的服务所在主机的互联网协议地址和端口号,获取服务名称间的连接关系;
根据所述服务名称间的连接关系,以及每个所述服务名称对应的服务标识,生成邻接矩阵;
其中,所述邻接矩阵中各第一元素对应的行值和列值表示服务标识,各所述第一元素对应的数值表示是否存在连接关系;
通过因果图重构算法,根据所述邻接矩阵和所述历史调用量指标数据,建立服务调用图。
2.根据权利要求1所述的方法,其特征在于,获取当前时刻对应的历史传输控制协议连接数据和历史调用量指标数据,包括:
获取所述当前时刻对应的历史时间区间;
根据所述数据库中各所述传输控制协议连接数据对应的采集时间,以及所述历史时间区间,从所述数据库中读取所述当前时刻对应的历史传输控制协议连接数据;
根据所述数据库中各所述调用量指标数据对应的服务调用时间,以及所述历史时间区间,从所述数据库中读取所述当前时刻对应的历史调用量指标数据。
3.根据权利要求1所述的方法,其特征在于,所述因果图重构算法包括彼得-克拉克算法和/或优化有向无环图算法。
4.根据权利要求3所述的方法,其特征在于,通过因果图重构算法,根据所述邻接矩阵和所述历史调用量指标数据,建立服务调用图,包括:
根据所述历史调用量指标数据,生成服务调用量矩阵;
通过所述优化有向无环图算法,根据所述邻接矩阵和所述服务调用量矩阵,计算得到初始调用关系矩阵;
根据所述初始调用关系矩阵和预设阈值,获取目标调用关系矩阵,并根据所述目标调用关系矩阵,建立所述服务调用图。
5.根据权利要求4所述的方法,其特征在于,根据所述初始调用关系矩阵和预设阈值,获取目标调用关系矩阵,包括:
若检测到所述初始调用关系矩阵中第二元素对应的数值的绝对值小于所述预设阈值,则将所述第二元素对应的数值重设为表示不存在调用关系的第一预设数值;
以及,若检测到所述初始调用关系矩阵中第二元素对应的数值的绝对值大于或者等于所述预设阈值,则将所述第二元素对应的数值重设为表示存在调用关系的第二预设数值。
6.一种服务调用图的构造装置,其特征在于,包括:
数据采集模块,用于从各主机处采集得到传输控制协议连接数据和调用量指标数据存储到数据库中;
其中,所述传输控制协议连接数据包括采集时间,以及传输控制协议连接的两端主机的互联网协议地址和端口号;所述调用量指标数据包括服务名称、服务所在主机的互联网协议地址和端口号、服务调用时间和服务调用量;
数据获取模块,用于当检测到服务调用图的构造请求,获取当前时刻对应的历史传输控制协议连接数据和历史调用量指标数据,并根据所述历史调用量指标数据,获取多个服务名称;
邻接矩阵生成模块,用于获取每个所述服务名称对应的服务标识,并根据所述历史传输控制协议连接数据中传输控制协议连接的两端主机的互联网协议地址和端口号,以及所述历史调用量指标数据中各服务名称对应的服务所在主机的互联网协议地址和端口号,获取服务名称间的连接关系;
根据所述服务名称间的连接关系,以及每个所述服务名称对应的服务标识,生成邻接矩阵;
其中,所述邻接矩阵中各第一元素对应的行值和列值表示服务标识,各所述第一元素对应的数值表示是否存在连接关系;
服务调用图建立模块,用于通过因果图重构算法,根据所述邻接矩阵和所述历史调用量指标数据,建立服务调用图。
7.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的服务调用图的构造方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-5中任一项所述的服务调用图的构造方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410161220.6A CN117742900B (zh) | 2024-02-05 | 2024-02-05 | 一种服务调用图的构造方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410161220.6A CN117742900B (zh) | 2024-02-05 | 2024-02-05 | 一种服务调用图的构造方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117742900A CN117742900A (zh) | 2024-03-22 |
CN117742900B true CN117742900B (zh) | 2024-05-14 |
Family
ID=90281664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410161220.6A Active CN117742900B (zh) | 2024-02-05 | 2024-02-05 | 一种服务调用图的构造方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117742900B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094157A (zh) * | 2021-02-25 | 2021-07-09 | 青岛海尔科技有限公司 | 调用拓扑图的生成方法和装置、存储介质及电子装置 |
CN114881124A (zh) * | 2022-04-21 | 2022-08-09 | 北京百度网讯科技有限公司 | 因果关系图的构建方法、装置、电子设备和介质 |
CN115525440A (zh) * | 2021-06-24 | 2022-12-27 | 腾讯科技(深圳)有限公司 | 微服务调用数据处理方法、装置、介质及设备 |
CN115858277A (zh) * | 2022-10-17 | 2023-03-28 | 复旦大学 | 基于图神经网络与pu学习的分布式***调用链异常检测方法 |
CN116483899A (zh) * | 2023-04-07 | 2023-07-25 | 中国工商银行股份有限公司 | 融合服务接口的调用方法及其装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230069074A1 (en) * | 2021-08-20 | 2023-03-02 | Nec Laboratories America, Inc. | Interdependent causal networks for root cause localization |
-
2024
- 2024-02-05 CN CN202410161220.6A patent/CN117742900B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094157A (zh) * | 2021-02-25 | 2021-07-09 | 青岛海尔科技有限公司 | 调用拓扑图的生成方法和装置、存储介质及电子装置 |
CN115525440A (zh) * | 2021-06-24 | 2022-12-27 | 腾讯科技(深圳)有限公司 | 微服务调用数据处理方法、装置、介质及设备 |
CN114881124A (zh) * | 2022-04-21 | 2022-08-09 | 北京百度网讯科技有限公司 | 因果关系图的构建方法、装置、电子设备和介质 |
CN115858277A (zh) * | 2022-10-17 | 2023-03-28 | 复旦大学 | 基于图神经网络与pu学习的分布式***调用链异常检测方法 |
CN116483899A (zh) * | 2023-04-07 | 2023-07-25 | 中国工商银行股份有限公司 | 融合服务接口的调用方法及其装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117742900A (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112084179B (zh) | 一种数据处理的方法、装置、设备及存储介质 | |
CN116225769A (zh) | 一种***故障根因的确定方法、装置、设备及介质 | |
CN117149894A (zh) | 一种调用链路的展示方法、装置、电子设备及存储介质 | |
CN117271467A (zh) | 一种日志的查询以及转发方法、装置、设备及存储介质 | |
CN116545905A (zh) | 一种服务健康检测方法、装置、电子设备及存储介质 | |
CN117742900B (zh) | 一种服务调用图的构造方法、装置、设备及存储介质 | |
CN110740153B (zh) | 一种监测数据获取方法、***及装置 | |
CN118170430B (zh) | 一种调用链路的处理方法、装置、设备及存储介质 | |
CN115858325B (zh) | 一种项目日志的调整方法、装置、设备和存储介质 | |
CN115361290B (zh) | 配置比对方法、装置、电子设备及存储介质 | |
CN113836291B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN118170430A (zh) | 一种调用链路的处理方法、装置、设备及存储介质 | |
CN115757928A (zh) | 数据查询方法、装置、电子设备和存储介质 | |
CN117455684A (zh) | 一种数据处理方法、装置、电子设备、存储介质及产品 | |
CN115686517A (zh) | 基于移动开发平台的前端页面埋点方法、装置、电子设备和存储介质 | |
CN116319716A (zh) | 信息处理方法、无服务***、电子设备及存储介质 | |
CN117668113A (zh) | 一种数据同步方法、装置、设备及介质 | |
CN117667092A (zh) | 一种页面展示方法、装置、设备和存储介质 | |
CN115983222A (zh) | 基于EasyExcel的文件数据读取方法、装置、设备及介质 | |
CN117251167A (zh) | 一种软件物料清单构建方法、装置、设备及介质 | |
CN116382640A (zh) | 微服务的治理方法、装置、设备及存储介质 | |
CN117749614A (zh) | 一种协议规则确定方法、装置、电子设备及存储介质 | |
CN117032756A (zh) | 软件更新方法、装置、电子设备及存储介质 | |
CN117806604A (zh) | 一种基于spring boot框架的TLV数据的解析方法及装置 | |
CN114564514A (zh) | 数据仓库的构建方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |