链路数据的跟踪方法、装置、设备及存储介质与流程

文档序号:26278544发布日期:2021-08-13 19:34阅读:163来源:国知局
链路数据的跟踪方法、装置、设备及存储介质与流程

本发明涉及大数据的数据处理领域,尤其涉及一种链路数据的跟踪方法、装置、设备及存储介质。



背景技术:

随着微服务架构技术的发展,微服务架构所涉及的服务接口数量也越来越多,但由于微服务架构本身的特性,会存在调用失败、调用过程响应很慢和快速分析业务处理中的响应慢等问题,为了解决这些问题,采用了链路追踪技术。目前的链路追踪,一般都是字节码增强方式。

但是,字节码增强方式会拦截所有的方法,且拦截过滤的数据量大,无效冗余数据较多,拦截过滤范围广泛,缺乏针对性,因而,链路追踪的定位准确性低。



技术实现要素:

本发明提供一种链路数据的跟踪方法、装置、设备及存储介质,用于提高链路追踪的定位准确性。

本发明第一方面提供了一种链路数据的跟踪方法,包括:

通过预置的监控系统客户端,对业务应用服务的调用参数进行抓取并上报至预置进程,得到已上报链路数据;

通过所述预置进程,对所述上已报链路数据进行标准化处理,并将标准化处理后的已上报链路数据存储至预置的卡夫卡系统,得到已存储链路数据;

通过预置的分布式实时大数据处理框架,对所述已存储链路数据进行调用链聚合处理并存储至所述卡夫卡系统,得到聚合数据,所述聚合数据包括调用链的数据、调用分析的数据、调用趋势的数据、网关异常数据和接口依赖数据;

调用预置的收集器,对所述卡夫卡系统的已存储链路数据和聚合数据进行采集,得到目标链路数据;

将所述目标链路数据存储至预置的搜索引擎集群节点,得到链路跟踪数据。

可选的,在本发明第一方面的第一种实现方式中,所述通过预置的分布式实时大数据处理框架,对所述已存储链路数据进行调用链聚合处理并存储至所述卡夫卡系统,得到聚合数据,包括:

通过预置的分布式实时大数据处理框架中的组件,对所述已存储链路数据进行分类和统计分析,得到已分析链路数据;

生成所述已分析链路数据对应的初始链路树,并对所述初始链路树进行索引添加处理和序列化处理,得到序列数据,并将所述序列数据存储至所述卡夫卡系统,得到聚合数据。

可选的,在本发明第一方面的第二种实现方式中,所述通过预置的分布式实时大数据处理框架中的组件,对所述已存储链路数据进行分类和统计分析,得到已分析链路数据,包括:

通过预置的分布式实时大数据处理框架中的组件,基于预设的滑动窗口,对所述已存储链路数据进行滑动读取,得到窗口链路数据;

获取所述窗口链路数据的调用链路身份标识号,并按照所述调用链路身份标识号,对所述窗口链路数据进行分类,得到待聚合链路数据;

对所述待聚合链路数据进行统计分析得到已分析数据,并将所述待聚合链路数据和所述已分析数据确定为已分析链路数据。

可选的,在本发明第一方面的第三种实现方式中,所述生成所述已分析链路数据对应的初始链路树,并对所述初始链路树进行索引添加处理和序列化处理,得到序列数据,并将所述序列数据存储至所述卡夫卡系统,得到聚合数据,包括:

通过预置的拓扑结构,生成所述已分析链路数据对应的初始链路树,并生成预置搜索引擎的存入索引时间;

获取所述初始链路树的对象,将所述存入索引时间添加至所述对象,并对添加后的对象进行对象简谱序列化,得到目标链路树;

将所述目标链路树存储至所述卡夫卡系统,得到聚合数据。

可选的,在本发明第一方面的第四种实现方式中,所述通过预置的监控系统客户端,对业务应用服务的调用参数进行抓取并上报至预置进程,得到已上报链路数据,包括:

与预置的监控系统客户端建立连接,并通过所述监控系统客户端,调用预置的监控系统,对业务应用服务的调用进行监测,并记录监测的调用参数,所述调用参数包括跨进程的调用参数、进程内部的调用参数和数据库的调用参数;

发送上报指令给所述监控系统客户端,以使得所述监控系统客户端基于预设的统计时段和所述上报指令,对记录的调用参数进行抓取,得到初始链路数据;

通过所述监控系统客户端获取与所述初始链路数据对应的预置业务方编码信息,并将所述预置业务方编码信息添加至所述初始链路数据,得到候选链路数据;

通过所述监控系统客户端,将所述候选链路数据上报至预置进程,得到已上报链路数据。

可选的,在本发明第一方面的第五种实现方式中,所述通过所述预置进程,对所述已上报链路数据进行标准化处理,并将标准化处理后的已上报链路数据存储至预置的卡夫卡系统,得到已存储链路数据,包括:

通过所述预置进程,按照网关类型对所述已上报链路数据进行分类,得到分类的链路数据;

通过预置的数据交换格式,将所述分类的链路数据转换为统一的接口参数,得到转换参数;

通过预置卡夫卡消息队列,将所述转换参数发送至预置的卡夫卡系统,得到已存储链路数据。

可选的,在本发明第一方面的第六种实现方式中,所述将所述目标链路数据存储至预置的搜索引擎集群节点,得到链路跟踪数据之后,还包括:

接收预置终端发送的查询请求,通过预置的递归算法和所述查询请求,对所述链路跟踪数据进行查询并渲染至预置的显示页面。

本发明第二方面提供了一种链路数据的跟踪装置,包括:

抓取上报模块,用于通过预置的监控系统客户端,对业务应用服务的调用参数进行抓取并上报至预置进程,得到已上报链路数据;

第一存储模块,用于通过所述预置进程,对所述已上报链路数据进行标准化处理,并将标准化处理后的已上报链路数据存储至预置的卡夫卡系统,得到已存储链路数据;

第二存储模块,用于通过预置的分布式实时大数据处理框架,对所述已存储链路数据进行调用链聚合处理并存储至所述卡夫卡系统,得到聚合数据,所述聚合数据包括调用链的数据、调用分析的数据、调用趋势的数据、网关异常数据和接口依赖数据;

采集模块,用于调用预置的收集器,对所述卡夫卡系统的已存储链路数据和聚合数据进行采集,得到目标链路数据;

第三存储模块,用于将所述目标链路数据存储至预置的搜索引擎集群节点,得到链路跟踪数据。

可选的,在本发明第二方面的第一种实现方式中,所述第二存储模块包括:

分类统计单元,用于通过预置的分布式实时大数据处理框架中的组件,对所述已存储链路数据进行分类和统计分析,得到已分析链路数据;

添加序列化单元,用于生成所述已分析链路数据对应的初始链路树,并对所述初始链路树进行索引添加处理和序列化处理,得到序列数据,并将所述序列数据存储至所述卡夫卡系统,得到聚合数据。

可选的,在本发明第二方面的第二种实现方式中,所述分类统计单元具体用于:

通过预置的分布式实时大数据处理框架中的组件,基于预设的滑动窗口,对所述已存储链路数据进行滑动读取,得到窗口链路数据;

获取所述窗口链路数据的调用链路身份标识号,并按照所述调用链路身份标识号,对所述窗口链路数据进行分类,得到待聚合链路数据;

对所述待聚合链路数据进行统计分析得到已分析数据,并将所述待聚合链路数据和所述已分析数据确定为已分析链路数据。

可选的,在本发明第二方面的第三种实现方式中,所述添加序列化单元具体用于:

通过预置的拓扑结构,生成所述已分析链路数据对应的初始链路树,并生成预置搜索引擎的存入索引时间;

获取所述初始链路树的对象,将所述存入索引时间添加至所述对象,并对添加后的对象进行对象简谱序列化,得到目标链路树;

将所述目标链路树存储至所述卡夫卡系统,得到聚合数据,所述聚合数据包括调用链的数据、调用分析的数据、调用趋势的数据、网关异常数据和接口依赖数据。

可选的,在本发明第二方面的第四种实现方式中,所述抓取上报模块具体用于:

与预置的监控系统客户端建立连接,并通过所述监控系统客户端,调用预置的监控系统,对业务应用服务的调用进行监测,并记录监测的调用参数,所述调用参数包括跨进程的调用参数、进程内部的调用参数和数据库的调用参数;

发送上报指令给所述监控系统客户端,以使得所述监控系统客户端基于预设的统计时段和所述上报指令,对记录的调用参数进行抓取,得到初始链路数据;

通过所述监控系统客户端获取与所述初始链路数据对应的预置业务方编码信息,并将所述预置业务方编码信息添加至所述初始链路数据,得到候选链路数据;

通过所述监控系统客户端,将所述候选链路数据上报至预置进程,得到已上报链路数据。

可选的,在本发明第二方面的第五种实现方式中,所述第一存储模块具体用于:

通过所述预置进程,按照网关类型对所述已上报链路数据进行分类,得到分类的链路数据;

通过预置的数据交换格式,将所述分类的链路数据转换为统一的接口参数,得到转换参数;

通过预置卡夫卡消息队列,将所述转换参数发送至预置的卡夫卡系统,得到已存储链路数据。

可选的,在本发明第二方面的第六种实现方式中,所述链路数据的跟踪装置,还包括:

查询渲染模块,用于接收预置终端发送的查询请求,通过预置的递归算法和所述查询请求,对所述链路跟踪数据进行查询并渲染至预置的显示页面。

本发明第三方面提供了一种链路数据的跟踪设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述链路数据的跟踪设备执行上述的链路数据的跟踪方法。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的链路数据的跟踪方法。

本发明提供的技术方案中,通过预置的监控系统客户端,对业务应用服务的调用参数进行抓取并上报至预置进程,得到已上报链路数据;通过预置进程,对已上报链路数据进行标准化处理,并将标准化处理后的已上报链路数据存储至预置的卡夫卡系统,得到已存储链路数据;通过预置的分布式实时大数据处理框架,对已存储链路数据进行调用链聚合处理并存储至卡夫卡系统,得到聚合数据,聚合数据包括调用链数据、调用分析数据、调用趋势数据、网关异常数据和接口依赖数据;调用预置的收集器,对卡夫卡系统的已存储链路数据和聚合数据进行采集,得到目标链路数据;将目标链路数据存储至预置的搜索引擎集群节点,得到链路跟踪数据。本发明实施例中,通过采用结合业务的中间件(业务应用服务)链路跟踪,有针对性地进行拦截过滤,减少了数据量和无效冗余数据,从而提高了链路追踪的定位准确性。

附图说明

图1为本发明实施例中链路数据的跟踪方法的一个实施例示意图;

图2为本发明实施例中链路数据的跟踪方法的另一个实施例示意图;

图3为本发明实施例中链路数据的跟踪装置的一个实施例示意图;

图4为本发明实施例中链路数据的跟踪装置的另一个实施例示意图;

图5为本发明实施例中链路数据的跟踪设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种链路数据的跟踪方法、装置、设备及存储介质,提高了链路追踪的定位准确性。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中链路数据的跟踪方法的一个实施例包括:

101、通过预置的监控系统客户端,对业务应用服务的调用参数进行抓取并上报至预置进程,得到已上报链路数据。

可以理解的是,本发明的执行主体可以为链路数据的跟踪装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。

服务器发送上报指令给预置的监控系统skyline客户端troy-agent,skyline客户端接收到上报指令后,基于上报指令调用预置的监控系统skyline,对业务应用服务的调用状况进行监测和参数记录,得到记录的调用参数,业务应用服务可包括但不限于中间件和数据库的调用;服务器获得用户授权后,基于预设的统计时段和预先配置的正则表达式,对记录的调用参数进行检索和匹配,得到抓取后的链路数据,对抓取后的链路数据进行数据冗余检测和冗余处理(冗余处理可为合并处理或去重处理),其中,该预设的统计时段为一天内24小时的各小时、一个月内的每一天。服务器预先创建预置进程,该预置进程可为troy-client,监控系统客户端将抓取后的链路数据上报至预置进程,通过预置进程将抓取后的链路数据将发送至服务器,服务器从而获得已上报链路数据。

102、通过预置进程,对已上报链路数据进行标准化处理,并将标准化处理后的已上报链路数据存储至预置的卡夫卡系统,得到已存储链路数据。

服务器通过预置进程,该预置进程可为troy-client,对已上报链路数据进行归类,其中,对已上报链路数据进行归类的执行过程具体可包括按照已上报链路数据的网关类型和/或数据类型,对已上报链路数据进行分类、合并处理。服务器对归类后的已上报链路数据进行数据格式转换,得到标准化处理后的已上报链路数据,并获取已上报链路数据的应用用户信息,根据该应用用户信息生成标准化处理后的已上报链路数据的主题,按照生成的主题,将标准化处理后的已上报链路数据存储至预置的卡夫卡系统中对应的存储空间,从而得到已存储链路数据。

103、通过预置的分布式实时大数据处理框架,对已存储链路数据进行调用链聚合处理并存储至卡夫卡系统,得到聚合数据,聚合数据包括调用链数的据、调用分析的数据、调用趋势的数据、网关异常数据和接口依赖数据。

其中,调用链的数据包括调用链以及对调用链进行分析的数据,调用链包括调用链路身份标识号tid/请求身份标识号cid,调用分析的数据包括服务数据和方法数据,调用趋势的数据包括接口/方法调用趋势数据,网关异常数据包括网关服务异常数据和网关方法异常数据,接口依赖数据包括服务的入口来源数据和接口依赖度。

服务器调用预置的分布式实时大数据处理框架storm集群,调用组件debugbolts或组件normalbolts,对已存储链路数据依次进行流式计算、拓扑图创建和序列化处理,得到处理后的数据,按照预置的存储策略,将处理后的数据存储至卡夫卡系统,得到聚合数据,其中,流式计算的具体执行过程可为:对已存储链路数据中的调用链的数据、调用分析的数据、调用趋势的数据、网关异常数据和接口依赖数据进行实时数据计算。预置的存储策略可包括但不限于存储比例和存储比例分别对应的存储位置,和/或不同的业务应用服务对应的存储方式和存储空间。

104、调用预置的收集器,对卡夫卡系统的已存储链路数据和聚合数据进行采集,得到目标链路数据。

其中,该收集器的数量包括一个或一个以上,若收集器的数量为一个以上,则一个收集器可对应一个调用链路身份标识号(目标链路树)。服务器建立与预置的收集器的连接,发送采集指令给收集器,以使得收集器基于采集指令和预设采集策略,对卡夫卡系统的已存储链路数据和聚合数据进行采集,得到目标链路数据,预设采集策略包括但不限于采集时段、采集范围和采集条件等。通过对卡夫卡系统的已存储链路数据和聚合数据进行采集,实现了卡夫卡系统kafka+搜索引擎(elasticsearch,es)数据元存储方案,以便于追溯问题。提高了已存储链路数据和聚合数据采集的效率、准确性和针对性。

105、将目标链路数据存储至预置的搜索引擎集群节点,得到链路跟踪数据。

服务器获取目标链路数据对应的应用类型,以及应用类型对应的数据量,并通过应用类型和数据量,对预置的分片数量进行匹配,得到对应的目标分片数量;根据目标分片数量,对目标链路数据进行分片处理,得到分片数据;创建分片数据的索引,根据应用类型从预置的搜索引擎存储节点集中匹配对应的存储节点信息,从预置的搜索引擎集群中获取与存储节点信息对应的目标存储节点,将创建索引的分片数据存储至预置的搜索引擎集群节点中的目标存储节点,得到链路跟踪数据。

本发明实施例中,通过采用结合业务的中间件(业务应用服务)链路跟踪,有针对性地进行拦截过滤,减少了数据量和无效冗余数据,从而提高了链路追踪的定位准确性。本方案可应用于智慧医疗领域中,从而推动智慧城市的建设。

请参阅图2,本发明实施例中链路数据的跟踪方法的另一个实施例包括:

201、通过预置的监控系统客户端,对业务应用服务的调用参数进行抓取并上报至预置进程,得到已上报链路数据。

具体地,服务器与预置的监控系统客户端建立连接,并通过监控系统客户端,调用预置的监控系统,对业务应用服务的调用进行监测,并记录监测的调用参数,调用参数包括跨进程的调用参数、进程内部的调用参数和数据库的调用参数;发送上报指令给监控系统客户端,以使得监控系统客户端基于预设的统计时段和上报指令,对记录的调用参数进行抓取,得到初始链路数据;通过监控系统客户端获取与初始链路数据对应的预置业务方编码信息,并将预置业务方编码信息添加至初始链路数据,得到候选链路数据;通过监控系统客户端,将候选链路数据上报至预置进程,得到已上报链路数据。

服务器将服务器端的网际互连协议(internetprotocol,ip)地址和端口数据,发送至预置的监控系统客户端,监控系统客户端接收服务器的ip地址和端口数据后,对服务器的ip地址和端口数据进行基于安全性和授权的验证,验证通过后,基于ip地址和端口数据,连接服务器,以实现服务器与预置的监控系统客户端的连接建立。

其中,调用参数包括业务应用服务的跨进程的调用参数、进程内部的调用参数和数据库的调用参数,跨进程的调用参数为业务应用服务之间的传递参数,即中间件dubbo和/或超文本传输协议(hypertexttransferprotocol,http)传递时的参数,进程内部的调用参数为线程传递的参数,数据库的调用参数为数据连接池内部的参数。服务器与预置的监控系统客户端建立连接后,通过监控系统客户端,调用预置的监控系统,基于预置的监控池,对业务应用服务的调用进行参数生成和更新的监测,并记录生成和更新的调用参数。

服务器发送上报指令给监控系统客户端,以使得监控系统客户端基于预设的统计时段和上报指令,对记录的调用参数中的业务应用服务之间的传递参数进行过滤拦截,得到第一链路数据,对记录的调用参数中的进程内部的传递参数进行读取,得到第二链路数据,获取预置数据库的数据库连接池,对记录的调用参数中数据库连接池的获取参数进行读取,得到第三链路数据,并按照应用类型对第一链路数据、第二链路数据和第三链路数据进行归类处理,得到初始链路数据。

服务器通过监控系统客户端获取与初始链路数据对应的预置业务方编码信息,并将预置业务方编码信息与初始链路数据进行拼接,或创建预置业务方编码信息与初始链路数据之间的对应关系,从而得到候选链路数据,将候选链路写入至预置的消息队列,得到链路消息队列,调用预置的接口或协议,将链路消息队列发送至预置进程,并通过预置进程将链路消息队列发送至服务器,从而得到已上报链路数据。通过上述操作,减少了无效冗余数据,以及提高了已上报链路数据的准确性。

202、通过预置进程,对已上报链路数据进行标准化处理,并将标准化处理后的已上报链路数据存储至预置的卡夫卡系统,得到已存储链路数据。

具体地,服务器通过预置进程,按照网关类型对已上报链路数据进行分类,得到分类的链路数据;通过预置的数据交换格式,将分类的链路数据转换为统一的接口参数,得到转换参数;通过预置卡夫卡消息队列,将转换参数发送至预置的卡夫卡系统,得到已存储链路数据。

服务器通过预置进程获取已上报链路数据的网关类型,并按照网关类型,对已上报链路数据进行分类,得到分类的链路数据,其中,服务器可通过预置进程,将已上报链路数据与预置的网关类型关键信息(网关类型信息包括网关类型标识信息和/或网关类型字段)进行对比分析,对比分析的具体步骤可包括:通过预置的网关类型关键信息,对已上报链路数据进行遍历,并判断已上报链路数据是否存在与网关类型关键信息对应的数据,若是,则将网关类型关键信息对应的网关类型确定为该已上报链路数据对应的网关类型,若否,则停止执行,该已上报链路数据的网关类型的字段值为空值;或计算已上报链路数据与预置的网关类型关键信息的之间相似度,判断该相似度是否大于预设阈值,若是,则将网关类型关键信息对应的网关类型确定为该已上报链路数据对应的网关类型,若否,则停止执行,该已上报链路数据的网关类型的字段值为空值,实现已上报链路数据的网关类型的获取,根据网关类型对已上报链路数据进行分类,得到分类链路数据;服务器也可通过预置进程,调用预置的网关类型分类模型,对已上报链路数据进行网关类型概率值计算,得到各网关类型对应的网关类型概率值,按照值从大到小的顺序,将网关类型概率值进行排序,将排序第一的网关类型概率值对应的网关类型确定为目标网关类型,根据目标网关类型将已上报链路数据进行归类,得到分类的链路数据。

服务器获得分类的链路数据后,通过预置的数据交换格式json,将分类的链路数据转换为统一的接口参数表示方式,从而得到转换参数。服务器获取已上报链路数据的应用用户信息和数据量,根据应用用户信息和数据量匹配对应的预置卡夫卡消息队列,该预置卡夫卡消息队列包括存储方式和存储位置,将转换参数写入至预置卡夫卡消息队列,得到目标卡夫卡消息队列,并通过目标卡夫卡消息队列,按照对应的存储方式和存储位置,将转换参数存储至预置的卡夫卡系统,得到已存储链路数据。

203、通过预置的分布式实时大数据处理框架中的组件,对已存储链路数据进行分类和统计分析,得到已分析链路数据。

具体地,服务器通过预置的分布式实时大数据处理框架中的组件,基于预设的滑动窗口,对已存储链路数据进行滑动读取,得到窗口链路数据;获取窗口链路数据的调用链路身份标识号,并按照调用链路身份标识号,对窗口链路数据进行分类,得到待聚合链路数据;对待聚合链路数据进行统计分析得到已分析数据,并将待聚合链路数据和已分析数据确定为已分析链路数据。

例如,服务器调用预置的分布式实时大数据处理框架中的组件normalbolts中的子组件calltracemergebolt,组件normalbolts包括子组件calltracemergebolt,基于窗口大小为60秒的预设的滑动窗口,对已存储链路数据进行滑动读取,得到每分钟的窗口链路数据,获取窗口链路数据的调用链路身份标识号tid,将调用链路身份标识号tid相同的窗口链路数据归类为一个数据集合,从而得到多个数据集合,即待聚合链路数据,以待聚合链路数据中的服务数据、方法数据、接口/方法调用趋势数据和调用链分析数据为例说明,对待聚合链路数据中服务数据的调用次数、成功率、平均耗时、最小耗时、最大耗时、平均发包、平均回包和平均响应分布,方法数据的调用次数、成功率、平均耗时、最小耗时、最大耗时、平均发包、平均回包和平均响应分布,接口/方法调用趋势数据的调用次数、成功率、平均耗时、最小耗时、最大耗时、平均发包和平均回包,以及调用链分析数据的调用次数、最大耗时、最小耗时、平均耗时、成功率和依赖度进行统计分析,从而得到分析数据,将待聚合链路数据和已分析数据确定为已分析链路数据。

204、生成已分析链路数据对应的初始链路树,并对初始链路树进行索引添加处理和序列化处理,得到序列数据,并将序列数据存储至卡夫卡系统,得到聚合数据,聚合数据包括调用链的数据、调用分析的数据、调用趋势的数据、网关异常数据和接口依赖数据。

具体地,服务器通过预置的拓扑结构,生成已分析链路数据对应的初始链路树,并生成预置搜索引擎的存入索引时间;获取初始链路树的对象,将存入索引时间添加至对象,并对添加后的对象进行对象简谱序列化,得到目标链路树;将目标链路树存储至卡夫卡系统,得到聚合数据,聚合数据包括调用链的数据、调用分析的数据、调用趋势的数据、网关异常数据和接口依赖数据。

例如,组件normalbolts还包括子组件calltracekafkatreebolt和子组件calltracetraceserialbolt,服务器通过子组件calltracemergebolt,调用函数skylineinfotree.addnodeobject()merge,基于预置的拓扑结构,生成已分析链路数据对应的初始链路树skylinetree,需要说明的是如果下一个相同tid的已分析链路数据在一分钟后到达该子组件calltracemergebolt,会将下一个相同tid的已分析链路数据生成一个新的初始链路树skylinetree;

并将初始链路树skylinetree分别提交到子组件calltracekafkatreebolt和子组件calltracetraceserialbolt,获取初始链路树的对象,通过子组件calltracekafkatreebolt,将初始链路树的对象序列化为对象简谱json,得到第一链路树,通过子组件calltracetraceserialbolt,调用函数skylineinfo.skylineinfostate.na,对初始链路树的数据进行是否存入unknow的索引的判断,得到判断结果,根据预置时间csts或者时间ssts生成搜索引擎的存入索引时间,并将存入索引时间添加至判断结果为存入unknow的索引的初始链路树的数据的对象,得到第二链路树,将第一链路树和第二链路树确定为目标链路树;

或者将初始链路树skylinetree依次提交到子组件calltracetraceserialbolt和子组件calltracekafkatreebolt,获取初始链路树的对象,通过子组件calltracetraceserialbolt,生成搜索引擎的存入索引时间,并将搜索引擎的存入索引时间添加至初始链路树的对象,得到候选链路树,通过子组件calltracekafkatreebolt,将候选链路树的对象序列化为对象简谱json,从而得到目标链路树,并生成目标链路树的索引哈希值(index:hash),得到待存储链路树,将待存储链路树存储至卡夫卡系统,得到聚合数据,其中,需要说明的是,初始链路树和目标链路树的数量均包括一个或一个以上。

205、调用预置的收集器,对卡夫卡系统的已存储链路数据和聚合数据进行采集,得到目标链路数据。

206、将目标链路数据存储至预置的搜索引擎集群节点,得到链路跟踪数据。

该步骤205-206的执行过程与上述步骤104-105的执行过程类似,在此不再赘述。

207、接收预置终端发送的查询请求,通过预置的递归算法和查询请求,对链路跟踪数据进行查询并渲染至预置的显示页面。

服务器接收查询终端或查询页面发送的查询请求时,对查询请求进行解析得到查询信息,该查询信息包括调用链查询信息、服务实时显示图topn的查询信息、方法实时显示图topn的查询信息、接口/方法调用趋势查询信息、网关服务异常查询信息、网关方法异常查询信息、调用链的分析查询信息和接口依赖的查询信息;通过预置的递归算法和查询信息,依据目标链路树中每个节点的父子关系,对链路跟踪数据进行遍历和子运算函数计算,得到与查询信息对应的全链路数据,根据全链路数据生成可视化图表(可视化图表包括服务实时显示图topn和方法实时显示图topn),并将可视化图表显示在预置的显示页面上。提高了链路跟踪数据查询的准确性和多样性,以及增强了对链路跟踪数据的查询结果的清晰明了度。

本发明实施例中,不仅通过采用结合业务的中间件(业务应用服务)链路跟踪,有针对性地进行拦截过滤,减少了数据量和无效冗余数据,从而提高了链路追踪的定位准确性,还提高了链路跟踪数据查询的准确性和多样性,以及增强了对链路跟踪数据的查询结果的清晰明了度。本方案可应用于智慧医疗领域中,从而推动智慧城市的建设。

上面对本发明实施例中链路数据的跟踪方法进行了描述,下面对本发明实施例中链路数据的跟踪装置进行描述,请参阅图3,本发明实施例中链路数据的跟踪装置一个实施例包括:

抓取上报模块301,用于通过预置的监控系统客户端,对业务应用服务的调用参数进行抓取并上报至预置进程,得到已上报链路数据;

第一存储模块302,用于通过预置进程,对已上报链路数据进行标准化处理,并将标准化处理后的已上报链路数据存储至预置的卡夫卡系统,得到已存储链路数据;

第二存储模块303,用于通过预置的分布式实时大数据处理框架,对已存储链路数据进行调用链聚合处理并存储至卡夫卡系统,得到聚合数据,聚合数据包括调用链的数据、调用分析的数据、调用趋势的数据、网关异常数据和接口依赖数据;

采集模块304,用于调用预置的收集器,对卡夫卡系统的已存储链路数据和聚合数据进行采集,得到目标链路数据;

第三存储模块305,用于将目标链路数据存储至预置的搜索引擎集群节点,得到链路跟踪数据。

上述链路数据的跟踪装置中各个模块的功能实现与上述链路数据的跟踪方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。

本发明实施例中,通过采用结合业务的中间件(业务应用服务)链路跟踪,有针对性地进行拦截过滤,减少了数据量和无效冗余数据,从而提高了链路追踪的定位准确性。本方案可应用于智慧医疗领域中,从而推动智慧城市的建设。

请参阅图4,本发明实施例中链路数据的跟踪装置的另一个实施例包括:

抓取上报模块301,用于通过预置的监控系统客户端,对业务应用服务的调用参数进行抓取并上报至预置进程,得到已上报链路数据;

第一存储模块302,用于通过预置进程,对已上报链路数据进行标准化处理,并将标准化处理后的已上报链路数据存储至预置的卡夫卡系统,得到已存储链路数据;

第二存储模块303,用于通过预置的分布式实时大数据处理框架,对已存储链路数据进行调用链聚合处理并存储至卡夫卡系统,得到聚合数据,聚合数据包括调用链的数据、调用分析的数据、调用趋势的数据、网关异常数据和接口依赖数据;

其中,第二存储模块303具体包括:

分类统计单元3031,用于通过预置的分布式实时大数据处理框架中的组件,对已存储链路数据进行分类和统计分析,得到已分析链路数据;

添加序列化单元3032,用于生成已分析链路数据对应的初始链路树,并对初始链路树进行索引添加处理和序列化处理,得到序列数据,并将序列数据存储至卡夫卡系统,得到聚合数据,聚合数据包括调用链的数据、调用分析的数据、调用趋势的数据、网关异常数据和接口依赖数据;

采集模块304,用于调用预置的收集器,对卡夫卡系统的已存储链路数据和聚合数据进行采集,得到目标链路数据;

第三存储模块305,用于将目标链路数据存储至预置的搜索引擎集群节点,得到链路跟踪数据;

查询渲染模块306,用于接收预置终端发送的查询请求,通过预置的递归算法和查询请求,对链路跟踪数据进行查询并渲染至预置的显示页面。

可选的,分类统计单元3031还可以具体用于:

通过预置的分布式实时大数据处理框架中的组件,基于预设的滑动窗口,对已存储链路数据进行滑动读取,得到窗口链路数据;

获取窗口链路数据的调用链路身份标识号,并按照调用链路身份标识号,对窗口链路数据进行分类,得到待聚合链路数据;

对待聚合链路数据进行统计分析得到已分析数据,并将待聚合链路数据和已分析数据确定为已分析链路数据。

可选的,添加序列化单元3032还可以具体用于:

通过预置的拓扑结构,生成已分析链路数据对应的初始链路树,并生成预置搜索引擎的存入索引时间;

获取初始链路树的对象,将存入索引时间添加至对象,并对添加后的对象进行对象简谱序列化,得到目标链路树;

将目标链路树存储至卡夫卡系统,得到聚合数据。

可选的,抓取上报模块301还可以具体用于:

与预置的监控系统客户端建立连接,并通过监控系统客户端,调用预置的监控系统,对业务应用服务的调用进行监测,并记录监测的调用参数,调用参数包括跨进程的调用参数、进程内部的调用参数和数据库的调用参数;

发送上报指令给监控系统客户端,以使得监控系统客户端基于预设的统计时段和上报指令,对记录的调用参数进行抓取,得到初始链路数据;

通过监控系统客户端获取与初始链路数据对应的预置业务方编码信息,并将预置业务方编码信息添加至初始链路数据,得到候选链路数据;

通过监控系统客户端,将候选链路数据上报至预置进程,得到已上报链路数据。

可选的,第一存储模块302还可以具体用于:

通过预置进程,按照网关类型对已上报链路数据进行分类,得到分类的链路数据;

通过预置的数据交换格式,将分类的链路数据转换为统一的接口参数,得到转换参数;

通过预置卡夫卡消息队列,将转换参数发送至预置的卡夫卡系统,得到已存储链路数据。

上述链路数据的跟踪装置中各模块和各单元的功能实现与上述链路数据的跟踪方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。

本发明实施例中,不仅通过采用结合业务的中间件(业务应用服务)链路跟踪,有针对性地进行拦截过滤,减少了数据量和无效冗余数据,从而提高了链路追踪的定位准确性,还提高了链路跟踪数据查询的准确性和多样性,以及增强了对链路跟踪数据的查询结果的清晰明了度。本方案可应用于智慧医疗领域中,从而推动智慧城市的建设。

上面图3和图4从模块化功能实体的角度对本发明实施例中的链路数据的跟踪装置进行详细描述,下面从硬件处理的角度对本发明实施例中链路数据的跟踪设备进行详细描述。

图5是本发明实施例提供的一种链路数据的跟踪设备的结构示意图,该链路数据的跟踪设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对链路数据的跟踪设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在链路数据的跟踪设备500上执行存储介质530中的一系列指令操作。

链路数据的跟踪设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如windowsserve,macosx,unix,linux,freebsd等等。本领域技术人员可以理解,图5示出的链路数据的跟踪设备结构并不构成对链路数据的跟踪设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行链路数据的跟踪方法的步骤。

进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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