拓扑关系展示方法、装置、服务器及存储介质与流程

文档序号:22928034发布日期:2020-11-13 16:24阅读:189来源:国知局
拓扑关系展示方法、装置、服务器及存储介质与流程

本发明涉及数据处理技术领域,尤其涉及一种拓扑关系展示方法、装置、服务器及存储介质。



背景技术:

在运维监控系统、调用链路系统等系统中经常需要可视化展示服务节点之间的依赖拓扑关系。服务依赖拓扑关系包含服务节点,以及服务节点之间的关系连线,可以直观可视化展示服务之间的调用关系。普通可视化方案需要梳理待展示的节点信息,定义数据结构,需针对展示需求开发数据获取服务、数据组装服务、前端绘制模块和前端入口功能页面,开发效率低。



技术实现要素:

有鉴于此,本发明实施例提供了一种拓扑关系展示方法、装置、服务器及存储介质,以实现对采集策略的统一管理,变更采集策略更方便快捷,降低应用运营维护成本。

第一方面,本发明实施例提供了一种拓扑关系展示方法,包括:

将服务节点的拓扑关系数据封装为静态数据;

将服务节点的状态数据封装为动态数据;

根据所述静态数据和所述动态数据绘制所述服务节点的拓扑关系图。

第二方面,本发明实施例还提供了一种拓扑关系展示装置,包括:

拓扑关系后端计算模块,用于将服务节点的拓扑关系数据封装为静态数据;

状态数据后端封装模块,用于将服务节点的状态数据封装为动态数据;

前端绘制模块,用于根据所述静态数据和所述动态数据绘制所述服务节点的拓扑关系图。

第三方面,本发明实施例还提供了一种服务器,包括存储器和处理器,所述存储器上存储有可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如前述的拓扑关系展示方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,存储介质存储有计算机程序,该计算机程序被处理器执行时实现如前述的拓扑关系展示方法。

本发明实施例提供的技术方案,将服务节点的拓扑关系数据封装为静态数据,将服务节点的状态数据封装为动态数据,根据所述静态数据和所述动态数据绘制所述服务节点的拓扑关系图,通过通用的静态数据和动态数据绘制拓扑关系图,其在变更需求时,使用静态数据和动态数据原有结构,只需要调整静态数据和动态数据的生成,而无需对其他模块进行重新开发,避免了代码重复,开发效率高。

附图说明

图1是本发明实施例一中的拓扑关系展示方法流程图;

图2是本发明实施例一中的拓扑关系展示方法的子流程图;

图3是本发明实施例一中的拓扑关系展示方法的子流程图;

图4是本发明实施例一中的拓扑关系展示方法的子流程图;

图5是发明实施例二中的拓扑关系展示方法流程图;

图6是本发明实施例三中的拓扑关系展示装置的结构示意图;

图7是本发明实施例四中的一种服务器的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。

此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”、“批量”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

实施例一

如图1为本发明实施例一的拓扑关系展示方法流程图,本实施例应用于运维监控系统或调用链路系统的终端或服务器。

实施例一步骤如下:

s110、将服务节点的拓扑关系数据封装为静态数据。

服务节点是指对于由客户端发起的请求,完成该请求涉及的服务所对应的节点。服务节点是运维监控系统和调用链路系统的分析基础。拓扑关系数据可以直接从服务节点获取,包括服务节点的身份信息以及服务节点间的关联信息。由于各个服务节点上获取的拓扑关系数据结构可能不同,针对性不同服务节点,设计用于根据拓扑关系数据绘制拓扑关系图的前端绘制模块,会带来代码重复。本实施例中,服务器直接获取所有服务节点的拓扑关系数据,并将拓扑关系数据封装为格式统一的静态数据,示例性的,拓扑关系数据可以为各个服务节点的服务记录。

示例性的,封装后的静态数据结构如下:

上述示例中,节点显示的名称、父结点名称、节点详细信息、节点类型和节点id用于描述服务节点的身份信息,标签信息、当前关系层级、标签状态、label上显示的信息、父节点id和子节点id用于描述服务节点间的关联信息。

本实施例提供的数据上报方法基于一应用于运维监控系统或调用链路系统的终端或服务器,终端或服务器可以获取所有相关服务节点的拓扑关系数据。在具体应用时,系统中的拓扑关系后端计算模块直接接入拓扑关系数据源,对拓扑关系数据封装得到静态数据。

s120、将服务节点的状态数据封装为动态数据。

状态数据用于表示服务节点的当前状态,当前状态包括服务节点的工作状态以及与其他服务节点的关联状态。动态数据同样是用于表示服务节点的当前状态,二者数据结构不同。

示例性的,动态数据可以分为节点状态数据和标签状态数据,节点状态数据为:

标签状态数据为:[{

"label":"标签显示的信息",

"labelstatus":0,

"labelinfo":"鼠标悬浮于标签时气泡显示信息",

"parentid":"父节点id,用于定位标签位置",

"childid":"子节点id,用于定位标签位置",

"level":"调用层级"

}]

上述动态数据结构示例中,节点id、节点状态和异常节点列表用于表示当前服务节点的工作状态,称为节点状态,对应节点状态数据;标签显示的信息、鼠标悬浮于标签时气泡显示信息、父节点id、子节点id和调用层级用于表示当前服务节点间的关联状态,称为标签状态,对应标签状态数据。

与步骤s110对应的,运维监控系统或调用链路系统中设置有状态数据后端封装模块,与状态数据源连接,对状态数据封装得到动态数据。

s130、根据所述静态数据和所述动态数据绘制所述服务节点的拓扑关系图。

拓扑关系图包括图形和文字,图形用于表示节点连接关系,包括节点以及连接节点的边,文字用于表示节点信息和边信息。

在绘制拓扑关系图时,根据静态数据确定了所有可出现的节点和边,再利用动态数据确定具体显示的节点和边以及节点和边的附属信息,附属信息包括样式和文字。

具体的,在一实施例中,如图2所示,步骤s130包括步骤s131-132;

s131、根据所述静态数据绘制包括节点和边的第一关系图。

第一关系图仅表示了服务节点间的关联关系,每个服务节点对应第一关系图上绘制的一个节点,第一关系图上两个节点间连接一条边表示对应的两个服务节点存在关联关系。

更具体的,步骤s131如图3所示,包括步骤s1311-1312:

s1311、确定所述静态数据确定点信息和边信息,所述点信息用于确定节点的位置,所述边信息用于确定节点间的关联关系。

s1312、根据所述点信息绘制节点,根据所述边信息绘制边,绘制完成得到第一关系图。

运维监控系统或调用链路系统中设置有用于获取数据的前端入口模块,以及用于绘制的前端绘制模块,前端入口模块一次性拉取静态数据,再由前端绘制模块根据静态数据绘制第一关系图。

s132、根据所述动态数据修改所述第一关系图得到所述拓扑关系图。

拓扑关系图反应了服务节点当前的依赖拓扑关系,其在第一关系图的基础上,根据动态数据对第一关系图上的节点和边的样式以及文字进行修改得到。

更具体的,如图4所示,步骤s132包括步骤s1321-1322:

s1321、确定所述动态数据中的节点状态数据和标签状态数据。

s1322、根据所述节点状态数据在所述第一关系图上修改对应节点的样式及文字,根据所述标签状态数据在所述第一关系图上修改对应边的样式及文字,修改完成后得到所述拓扑关系图。

运维监控系统或调用链路系统中的前端入口模块定时拉取动态数据,定时方式可以根据实际需求自行设置,如按照预设时间间隔,再由前端绘制模块根据动态数据在第一关系图的基础上改变节点样式及文字和边的样式及文字。

本实施例一的技术方案,将服务节点的拓扑关系数据封装为静态数据,将服务节点的状态数据封装为动态数据,根据所述静态数据和所述动态数据绘制所述服务节点的拓扑关系图,通过通用的静态数据和动态数据绘制拓扑关系图,其在变更需求时,使用静态数据和动态数据原有结构,只需要调整静态数据和动态数据的生成,而无需对其他模块进行重新开发,避免了代码重复,开发效率高。

实施例二

本实施例在实施例一的基础上对部分内容做了进一步补充,以提供更多功能满足用户的使用需求,具体提供了节点过滤功能,以方便对复杂依赖拓扑分析,具体如图5所示,在步骤s130之后,还包括步骤s210-230:

s210、获取过滤请求。

过滤请求用于确定过滤节点,包括过滤方式,本实施例中提供两种过滤方式,分别为选中节点过滤和异常节点过滤,对于选中节点过滤,过滤请求中应当还包括根据用户的选中信息,选中信息根据用户选择的服务节点生成。

具体的,终端或服务器可以提供交互界面获取用户的操作,根据用户的操作生成过滤请求,如通过一对话框由用户选择过滤方式。

s220、根据所述过滤请求确定过滤节点,在所述第一关系图中过滤经过所述过滤节点的上下游路径,得到第二关系图。

具体的,在一个实施例中,根据所述过滤请求确定过滤节点包括步骤s221-223(图未示):

s221、根据过滤请求确定对应的过滤方式为选中节点过滤和异常节点过滤中的一种。

s222、若所述过滤方式为选中节点过滤,则根据所述过滤请求确定用户的选中信息,将选中信息对应的节点作为过滤节点。

当用户需要选中节点过滤时,终端或服务器可以通过提供过滤列表的方式由用户选择需要过滤的服务器节点,并根据用户选择的服务节点生成选中信息。静态数据结构示例中,包含“info”对象,用于获取节点id以及对应的详细信息,在根据选中节点进行过滤时,过滤列表中可以提供所有服务节点的节点id和详细信息,用户通过两种方式都可以选择需要过滤的服务节点。

s223、若所述过滤方式为异常节点过滤,则根据所述动态数据中的节点状态数据确定一个错误节点,将所述错误节点作为过滤节点。

动态数据结构中包括“errornodes”对象,用于确定一个错误节点,这个错误节点就是过滤节点。

在确定了过滤节点后,服务器或终端以过滤节点为起始节点,从起始节点向上游寻找父结点,递归寻找直到入口节点结束,记录下经过的路径节点;从起始节点向下游寻找子节点,递归寻找直到叶子节点结束,记录下经过的路径节点;根据所有的路径节点确定经过过滤节点的上下游路径,将上下游路径过滤,得到第二关系图。

s230、根据所述动态数据修改所述第二关系图得到拓扑关系图。

在得到第二关系图之后,服务器或终端利用动态数据修改第二关系图上节点的样式及文字和边的样式及文字,绘制出最终显示的拓扑关系图。

本实施例提供的拓扑关系展示方法,在实施例一的基础上进一步增加了节点过滤的过程,其实现了:根据不同的节点过滤方式对特定的服务节点过滤得到过滤后的拓扑关系图,方便对复杂依赖拓扑的分析。

实施例三

图6为本发明实施例三提供的一种拓扑关系展示装置300,具体包括如下模块:

拓扑关系后端计算模块310,用于将服务节点的拓扑关系数据封装为静态数据。

状态数据后端封装模块320,用于将服务节点的状态数据封装为动态数据。

前端绘制模块330,用于根据所述静态数据和所述动态数据绘制所述服务节点的拓扑关系图。

更具体的,在一实施例中,前端绘制模块330包括第一绘制单元和第二绘制单元:

第一绘制单元,用于根据所述静态数据绘制包括节点和边的第一关系图。

第二绘制单元,用于根据所述动态数据修改所述第一关系图得到所述拓扑关系图。

更具体的,在一实施例中,第一绘制单元具体用于:

确定所述静态数据确定点信息和边信息,所述点信息用于确定节点的位置,所述边信息用于确定节点间的关联关系;

根据所述点信息绘制节点,根据所述边信息绘制边,绘制完成得到第一关系图。

更具体的,在一实施例中,第二绘制单元具体用于:

确定所述动态数据中的节点状态数据和标签状态数据;

根据所述节点状态数据在所述第一关系图上修改对应节点的样式及文字,根据所述标签状态数据在所述第一关系图上修改对应边的样式及文字,修改完成后得到所述拓扑关系图。

更具体的,在一实施例中,还包括:

过滤请求获取模块,用于获取过滤请求。

前端绘制模块还用于根据所述过滤请求确定过滤节点,在所述第一关系图中过滤经过所述过滤节点的上下游路径,得到第二关系图,前端绘制模块还用于根据所述动态数据修改所述第二关系图得到拓扑关系图。

更具体的,在一实施例中,前端绘制模块包括:

过滤方式确定单元,用于根据过滤请求确定对应的过滤方式为选中节点过滤和异常节点过滤中的一种。

第一过滤节点确定单元,用于若所述过滤方式为选中节点过滤,则根据所述过滤请求确定用户的选中信息,将选中信息对应的节点作为过滤节点。

第二过滤节点确定单元,用于若所述过滤方式为异常节点过滤,则根据所述动态数据中的节点状态数据确定一个错误节点,将所述错误节点作为过滤节点。

本实施例提供的拓扑关系展示装置,将服务节点的拓扑关系数据封装为静态数据,将服务节点的状态数据封装为动态数据,根据所述静态数据和所述动态数据绘制所述服务节点的拓扑关系图,通过通用的静态数据和动态数据绘制拓扑关系图,其在变更需求时,使用静态数据和动态数据原有结构,只需要调整静态数据和动态数据的生成,而无需对其他模块进行重新开发,避免了代码重复,开发效率高。

实施例四

图7为本发明实施例四提供的一种服务器的结构示意图,如图7所示,该服务器包括处理器70、存储器71、输入装置72和输出装置73;服务器中处理器70的数量可以是一个或多个,图中以一个处理器70为例;服务器中的处理器70、存储器71、输入装置72和输出装置73可以通过总线或其他方式连接,图7中以通过总线连接为例。

存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的拓扑关系展示方法对应的程序指令/模块(例如,拓扑关系展示装置中的拓扑关系后端计算模块310、状态数据后端封装模块320、前端绘制模块330等)。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行终端/服务器的各种功能应用以及数据处理,即实现上述的拓扑关系展示方法。

存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置72可用于接收输入的数字或字符信息,以及产生与终端/服务器的用户设置以及功能控制有关的键信号输入。输出装置73可包括显示屏等显示设备。

上述服务器可执行本发明实施例一或实施例二所提供的拓扑关系展示方法,具备执行方法对应的功能能模块和有益效果。

实施例五

本发明实施例五还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的一种拓扑关系展示方法,该方法可以包括:

将服务节点的拓扑关系数据封装为静态数据;

将服务节点的状态数据封装为动态数据;

根据所述静态数据和所述动态数据绘制所述服务节点的拓扑关系图。

更具体的,在一些实施例中,该程序被处理器执行时,还可以实现:

获取过滤请求;

根据所述过滤请求确定过滤节点,在所述第一关系图中过滤经过所述过滤节点的上下游路径,得到第二关系图;

根据所述动态数据修改所述第二关系图得到拓扑关系图。

本发明实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或终端上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1