链路追踪方法、装置、电子设备和存储介质与流程

未命名 09-18 阅读:150 评论:0


1.本技术涉及链路追踪技术领域,更具体而言,涉及一种链路追踪方法、链路追踪装置、电子设备及非易失性计算机可读存储介质。


背景技术:

2.云原生技术是基于分布部署和统一运管的分布式云,以容器、微服务、devops等技术为基础建立的一套云技术产品体系。在使用云原生技术后,开发者无需考虑底层的技术实现,可以充分发挥云平台的弹性和分布式优势,实现快速部署、按需伸缩、不停机交付等。
3.目前,云原生技术的业务架构因为分工问题,容易出现服务数量多、调用协议和关系非常复杂的现象,导致相关开放人员无法准确清晰了解、掌控全局的系统运行架构,也无法回答应用之间的连通性是否正确。


技术实现要素:

4.本技术实施方式提供一种链路追踪方法、链路追踪装置、电子设备及非易失性计算机可读存储介质。
5.本技术实施方式提供了一种链路追踪方法,用于ebpf程序,所述链路追踪方法包括:
6.向分布式系统发送第一请求以使所述分布式系统部署智能体和控制器,所述分布式系统在所述操作系统中运行,所述智能体以守护程序集的方式部署,所述智能体监听并处理操作系统的内核事件以生成事件数据,,所述控制器创建自定义控制器以获取所述分布式系统的集群资源对象,并将所述集群资源对象和所述事件数据绑定;和
7.根据绑定结果对所述内核事件进行聚合处理以生成链路追踪结果,所述链路追踪结果为多个应用之间的关联。
8.在某些实施方式中,所述链路追踪方法还包括:
9.向所述分布式系统发送第二请求以使所述分布式系统中部署数据库并将所述链路追踪结果存储至所述数据库中。
10.在某些实施方式中,所述链路追踪方法还包括:
11.向所述分布式系统发送第三请求以使所述控制器读取所述数据库中的目标链路追踪结果并将所述目标链路追踪结果发送至用户界面。
12.在某些实施方式中,所述向所述分布式系统发送第三请求以使所述控制器读取所述数据库中的目标链路追踪结果,包括:
13.根据所述集群资源对象对所述链路追踪结果进行筛选以得到所述目标链路追踪结果。
14.在某些实施方式中,所述智能体监听并处理操作系统的内核事件以生成事件数据,包括:
15.在所述操作系统在的内核构建执行引擎;
16.将所述执行引擎贴合在所述内核事件上以监听所述内核事件;
17.根据网络协议对所述内核事件进行处理以生成所述事件数据。
18.在某些实施方式中,所述根据网络协议对所述内核事件进行处理以生成所事件数据,包括:
19.对所述网络协议进行协议推导以筛选出目标网络协议;
20.根据所述目标网络协议对所述内核事件进行处理,生成所述事件数据;
21.发送所述事件数据至环形缓冲器/数据结构中。
22.本技术还提供了一种链路追踪方法,用于分布式系统,所述分布式系统在操作系统中运行,所述链路追踪方法包括:
23.接收ebpf程序发送的第一请求以根据所述第一请求部署智能体和控制器,所述智能体以守护程序集的方式部署;
24.通过所述智能体监听并处理所述操作系统的内核事件以生成事件数据;
25.通过所述控制器创建自定义控制器以获取集群资源对象;
26.通过所述控制器将所述集群资源对象和所述事件数据绑定;和
27.发送绑定结果至所述ebpf程序,以使所述ebpf对所述内核事件进行聚合处理生成链路追踪结果,所述链路追踪结果为多个应用之间的关联。
28.在某些实施方式中,所述链路追踪方法还包括:
29.接收所述ebpf程序发送的第二请求并根据所述第二请求部署数据库将所述链路追踪结果存储至所述数据库中。
30.在某些实施方式中,所述链路追踪方法还包括:
31.接收所述ebpf程序发送的第三请求以使所述控制器读取所述数据库中的目标链路追踪结果并发送所述目标链路追踪结果至用户界面。
32.在某些实施方式中,所述接收所述ebpf程序发送的第三请求以使所述控制器读取所述数据库中的链路追踪结果,包括:
33.通过所述控制器根据所述集群资源对象对所述链路追踪结果进行筛选以得到所述目标链路追踪结果。
34.在某些实施方式中,所述通过所述智能体监听并处理所述操作系统的内核事件以生成事件数据包括:
35.通过所述智能体在所述操作系统在的内核构建执行引擎;
36.通过所述智能体将所述执行引擎贴合在所述内核事件上以监听所述内核事件;
37.通过所述智能体根据网络协议对所述内核事件进行处理以生成所述事件数据。
38.在某些实施方式中,所述通过所述智能体根据网络协议对所述内核事件进行处理以生成所事件数据,包括:
39.对所述网络协议进行协议推导以筛选出目标网络协议;
40.根据所述目标网络协议对所述内核事件进行处理,生成所述事件数据;
41.发送所述事件数据至环形缓冲器/数据结构中。
42.本技术还提供了一种链路追踪装置,用于ebpf程序,所述链路追踪装置包括:
43.第一发送模块,用于向分布式系统发送第一请求以使所述分布式系统部署智能体和控制器,所述分布式系统在所述操作系统中运行,所述智能体以守护程序集的方式部署,
所述智能体监听并处理操作系统的内核事件以生成事件数据,所述控制器创建自定义控制器以获取所述分布式系统的集群资源对象,并将所述集群资源对象和所述事件数据绑定;
44.聚合模块,用于根据绑定结果对所述内核事件进行聚合处理以生成链路追踪结果,所述链路追踪结果为多个应用之间的关联。
45.本技术还提供了一种链路追踪装置,用于分布式系统,所述分布式系统在所述操作系统中运行,所述链路追踪装置包括:
46.接收模块,用于接收ebpf程序发送的第一请求以根据所述第一请求部署智能体和控制器,所述智能体以守护程序集的方式部署;
47.生成模块,用于通过所述智能体监听并处理所述操作系统的内核事件以生成事件数据;
48.获取模块,用于通过所述控制器创建自定义控制器以获取集群资源对象;
49.绑定模块,用于通过所述控制器将所述集群资源对象和所述事件数据绑定;和
50.第二发送模块,用于发送绑定结果至所述ebpf程序,以使所述ebpf对所述内核事件进行聚合处理生成链路追踪结果,所述链路追踪结果为多个应用之间的关联。
51.本技术还提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行上述任一项所述的链路追踪方法。
52.本技术还提供了一种包括计算机程序的非易失性计算机可读存储介质,所述计算机程序被处理器执行时,使得所述处理器执行上述任意一项所述的链路追踪方法。
53.本技术基于ebpf在分布式系统部署智能体(agent)和控制器(controller),智能体可以监听和处理内核事件得到事件数据,控制器可以生成自定义控制器获取分布式系统的集群资源对象,通过控制器可以将集群资源对象和事件数据进行绑定,从而根据绑定结果对内核事件进行处理生成链路追踪结果,如此,将分布式系统中的应用与应用之间进行关联形成链路,相关人员可以掌握分布式系统的运行架构以及应用之间的连通性,使得分布式系统的网络服务和安全性可观察,从而快速诊断相关的网络问题。
54.本技术的实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实施方式的实践了解到。
附图说明
55.本技术的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
56.图1是本技术某些实施方式的链路追踪方法的流程示意图;
57.图2是本技术某些实施方式的链路追踪装置的模块示意图;
58.图3是本技术某些实施方式的框架原理示意图;
59.图4是本技术某些实施方式的链路追踪方法的流程示意图;
60.图5是本技术某些实施方式的链路追踪方法的流程示意图;
61.图6是本技术某些实施方式的链路追踪方法的流程示意图;
62.图7是本技术某些实施方式的链路追踪方法的流程示意图;
63.图8是本技术某些实施方式的链路追踪方法的流程示意图;
64.图9是本技术某些实施方式的链路追踪装置的模块示意图;
65.图10是本技术某些实施方式的链路追踪方法的流程示意图;
66.图11是本技术某些实施方式的链路追踪方法的流程示意图;
67.图12是本技术某些实施方式的链路追踪方法的流程示意图。
具体实施方式
68.下面详细描述本技术的实施方式,实施方式的示例在附图中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本技术的实施方式,而不能理解为对本技术的实施方式的限制。
69.请参阅图1,本技术实施方式提供了一种链路追踪方法,链路追踪方法用于ebpf程序,链路追踪方法包括:
70.s10:向分布式系统发送第一请求以使分布式系统部署智能体和控制器,分布式系统在操作系统中运行,智能体以守护程序集的方式部署,智能体监听并处理操作系统的内核事件以生成事件数据,控制器创建自定义控制器以获取分布式系统的集群资源对象,并将集群资源对象和事件数据绑定;
71.s20:根据绑定结果对内核事件进行聚合处理以生成链路追踪结果,链路追踪结果为多个应用之间的关联。
72.请参阅图2,本技术还提供了一种链路追踪装置100,链路追踪装置100用于ebpf程序,链路追踪装置100包括第一发送模块10和聚合模块20,s10可以由第一发送模块10实现,s20可以由聚合模块20实现,也即是,第一发送模块10用于向分布式系统发送第一请求以使分布式系统部署智能体和控制器,分布式系统在操作系统中运行,智能体以守护程序集的方式部署,智能体监听并处理操作系统的内核事件以生成事件数据,控制器创建自定义控制器以获取分布式系统的集群资源对象,并将集群资源对象和事件数据绑定,聚合模块20用于根据绑定结果对内核事件进行聚合处理以生成链路追踪结果。
73.本技术还提供了一种电子设备,电子设备包括处理器和存储器,存储器中存储有计算机程序,当处理器执行计算机程序时实现上述的链路追踪方法,也即是,当处理器执行计算机程序时,处理器可以用于向分布式系统发送第一请求以使分布式系统部署智能体和控制器,分布式系统在操作系统中运行,智能体以守护程序集的方式部署,智能体监听并处理操作系统的内核事件以生成事件数据,控制器创建自定义控制器以获取分布式系统的集群资源对象,并将集群资源对象和事件数据绑定,以及用于根据绑定结果对内核事件进行聚合处理以生成链路追踪结果,链路追踪结果为多个应用之间的关联。
74.具体地,请结合图3,本技术的链路追踪方法是基于ebpf(extended berkeley packet filter)程序实现的,ebpf可以高效灵活地从操作系统内核中抓取网络数据包,操作系统可以是linux。分布式系统是建立在网络之上的软件系统,分布式系统可以处理各项协助的任务,然后整合出结果。分布式系统可以包括kubernetes(k8s),k8s是一个轻便的和可扩展的的开源平台,用于管理容器化应用和服务,在k8s中,可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理,k8s通过在集群之
上形成一个抽象层,使得部署和管理微服务架构应用程序变得简单,并允许开发团队平滑地部署应用程序。
75.ebpf可以向k8s发送第一请求,k8s根据第一请求部署智能体和控制器,智能体以守护程序集(daemonset)的方式部署,守护程序集的主要作用是在k8s集群中运行一个daemon pod,守护程序集只管理pod对象,并保证每个节点有且只有一个pod,pod是k8s中最小的单元,pod可以由一组、一个或多个容器组成。内核是操作系统的核心,内核可以管理操作系统的进程、内存、设备驱动程序、文件和网络系统,决定着操作系统的性能和稳定性,ebpf可以在内核中运行沙盒程序,从而对内核进行监控,也即是,智能体可以监听内核中的事件,并对内核事件进行处理生成事件数据。
76.进一步地,控制器可以创建分布式系统的自定义控制器,通过自定义控制器自动获取分布式系统的集群资源对象,集群资源对象可以包括k8s对象、应用、云服务等各种上下文,通过控制器将集群资源对象和事件数据进行绑定,从而根据绑定结果对内核事件进行聚合处理,生成链路追踪结果,链路可以是多个应用之间进行业务活动的链条和路径。
77.在一些实施例中,链路追踪方法可以用于换电站,换电站的换电运营平台可搭建于分布式k8s系统中,用户可以通过向换电运营平台发起充电请求,操作系统的内核获取充电请求,并发送充电指令至充电站。其中,内核事件的事件数据可以是获取充电请求和发送充电指令,集群资源对象可以是充电开始时间、充电桩编号、充电时长、充电费用等各种充电数据,进一步地,将事件数据和集群资源对象进行绑定,从而可以通过搜索充电数据显示换电运营平台的服务与网络之间的通信关系。
78.本技术基于ebpf在分布式系统部署智能体和控制器,智能体可以监听和处理内核事件得到事件数据,控制器可以生成自定义控制器获取分布式系统的集群资源对象,通过控制器可以将集群资源对象和事件数据进行绑定,从而根据绑定结果对内核事件进行处理生成链路追踪结果,如此,将分布式系统中的应用与应用之间进行关联形成链路,相关人员可以掌握分布式系统的运行架构以及应用之间的连通性,使得分布式系统的网络服务和安全性可观察,从而快速诊断相关的网络问题。
79.请参阅图4,在某些实施方式中,链路追踪方法还包括:
80.s30:向分布式系统发送第二请求以使分布式系统部署数据库并将链路追踪结果存储至数据库中;
81.s40:向分布式系统发送第三请求以使控制器读取数据库中的目标链路追踪结果并将目标链路追踪结果发送至用户界面。
82.在某些实施方式中,处理器用于向分布式系统发送第二请求以使分布式系统部署数据库并将链路追踪结果存储至数据库中,及用于向分布式系统发送第三请求以使控制器读取数据库中的目标链路追踪结果并将目标链路追踪结果发送至用户界面。
83.具体地,数据库可以是mysql、postgresql等,ebpf程序向k8s发送第二请求,使得k8s部署数据库,并将链路追踪结果存储至数据库中,进一步地,控制器可以提供web的用户界面,用户界面用于筛选和显示目标链路追踪结果,ebpf程序可以向k8s发送第三请求,使得控制器读取数据库中的链路追踪结果,并将目标链路追踪结果发送至用户界面,用户可以通过用户界面查看和筛选数据。
84.进一步地,请参阅图5,s40包括:
85.s41:根据集群资源对象对链路追踪结果进行筛选以得到目标链路追踪结果。
86.在某些实施方式中,处理器用于根据集群资源对象对链路追踪结果进行筛选以得到目标链路追踪结果。
87.具体地,用户可以在用户界面输入对应的集群资源对象,例如,用户可以输入对应的充电开始时间、充电桩编号等集群资源对象进行筛选,控制器可以根据用户输入的集群资源对象获取对应的充电数据以及事件数据,并将充电数据和事件数据发送至用户界面,使得用户可以通过用户界面查看目标链路追踪结果。
88.如此,通过将链路追踪结果存储至数据库,并通过控制器将数据库中的链路追踪结果发送至用户界面,用户可以通过用户界面查看链路追踪结果,直观的显示出网路和服务之间的通信关系。
89.请参阅图6,在某些实施方式中,s10包括:
90.s11:在操作系统在的内核构建执行引擎;
91.s12:将执行引擎贴合在内核事件上以监听内核事件;
92.s13:根据网络协议对内核事件进行处理以生成事件数据。
93.在某些实施方式中,s11、s12和s13可以由第一发送模块10实现,也即是,第一发送模块10用于在操作系统在的内核构建执行引擎,及用于将执行引擎贴合在内核事件上以监听内核事件,以及用于根据网络协议对内核事件进行处理以生成事件数据。
94.在某些实施方式中,处理器用于在操作系统在的内核构建执行引擎,及用于将执行引擎贴合在内核事件上以监听内核事件,以及用于根据网络协议对内核事件进行处理以生成事件数据。
95.具体地,智能体可以在操作系统的内核构建一个执行引擎,执行引擎用于监听,在内核的调用下,将执行引擎贴合在某个内核事件上,实现监听内核事件,内核事件可以包括多个,用户可以选择将执行引擎贴合到一个或多个内核事件上,例如,在链路追踪方法用于换电站的情况下,内核事件可以是获取充电请求、发送充电指令等,用户可以在换电运营平台选择将执行引擎贴合在获取充电请求的内核事件和发送充电指令的内核事件。进一步地,根据网络协议对监听到的内核事件进行处理,从而生成事件数据。其中,监听到的内核事件可以是多个应用之间的链路,并根据网络协议将多个应用之间关联形成的链路进行处理,以数据的形式进行保存。
96.如此,通过在操作系统的内核构建执行引擎,可以采用内核将执行引擎贴合至内核事件,对内核事件进行监听,并通过网络协议对监听到的内核事件进行处理,从而可以获取事件数据。
97.请参阅图7,在某些实施方式中,s13包括:
98.s131:对网络协议进行协议推导以筛选出目标网络协议;
99.s132:根据目标网络协议对内核事件进行处理,生成事件数据;
100.s133:发送事件数据至环形缓冲器/数据结构中。
101.在某些实施方式中,s131、s132和s133可以由第一发送模块10实现,也即是,第一发送模块10用于对网络协议进行协议推导以筛选出目标网络协议,及用于根据目标网络协议对内核事件进行处理,生成事件数据,以及用于发送事件数据至环形缓冲器/数据结构中。
102.在某些实施方式中,处理器用于对网络协议进行协议推导以筛选出目标网络协议,及用于根据目标网络协议对内核事件进行处理,生成事件数据,以及用于发送事件数据至环形缓冲器/数据结构中。
103.具体地,网络协议是计算机网络中进行数据交换而建立的规则、标准或约定的集合,不同的计算机之间必须使用相同的网络协议才能进行通信。本技术的智能体可以对网络协议进行协议推导,筛选出与分布式系统的内核事件对应的目标网络协议,并根据目标网络协议对内核事件进行处理,从而可以生成事件数据。
104.进一步地,将事件数据发送至环形缓冲器(ringbuffer)或数据结构map中进行存储,例如,可以将事件数据发送至环形缓冲器进行存储,环形缓冲器是一种数据结构用于表示一个固定尺寸、头尾相连的缓冲区,适合缓存数据流,用户可以读取环形缓冲器中存储的数据,也可以将待存储数据写入环形缓冲器。其中,环形缓冲器设置于内核中,数据结构map设置于ebpf中。
105.如此,通过对网络协议进行推导获取目标网络协议,并根据目标网络协议处理内核事件,使得生成的事件数据存储至环形缓冲器或数据结构map中,从而可以通过环形缓冲器或数据结构map读取事件数据。
106.请参阅图8,本技术实施方式提供了一种链路追踪方法,链路追踪方法用于分布式系统,分布式系统在操作系统中运行,链路追踪方法包括:
107.s01:接收ebpf程序发送的第一请求以根据第一请求部署智能体和控制器,智能体以守护程序集的方式部署;
108.s02:通过智能体监听并处理操作系统的内核事件以生成事件数据;
109.s03:通过控制器创建自定义控制器以获取集群资源对象;
110.s04:通过控制器将集群资源对象和事件数据绑定;和
111.s05:发送绑定结果至ebpf程序,以使ebpf对内核事件进行聚合处理以生成链路追踪结果,链路追踪结果为多个应用之间的关联。
112.请参阅图9,本技术还提供了一种链路追踪装置200,链路追踪装置200用于分布式系统,链路追踪装置200包括接收模块01、生成模块02、获取模块03、绑定模块04和第二发送模块05,s01可以由接收模块01实现,s02可以由生成模块02实现,s03可以由获取模块03实现,s04可以由绑定模块04实现,s05可以由第二发送模块05实现,也即是,接收模块01用于接收ebpf程序发送的第一请求以根据第一请求部署智能体和控制器,智能体以守护程序集的方式部署,生成模块02用于通过智能体监听并处理操作系统的内核事件以生成事件数据,获取模块03用于通过控制器创建自定义控制器以获取集群资源对象,绑定模块04用于通过控制器将集群资源对象和事件数据绑定,第二发送模块05用于发送绑定结果至ebpf程序,以使ebpf对内核事件进行聚合处理以生成链路追踪结果。
113.本技术还提供了一种电子设备,电子设备包括处理器和存储器,存储器中存储有计算机程序,当处理器执行计算机程序时实现上述的链路追踪方法,也即是,当处理器执行计算机程序时,处理器可以用于接收ebpf程序发送的第一请求以根据第一请求部署智能体和控制器,智能体以守护程序集的方式部署,及用于通过智能体监听并处理操作系统的内核事件以生成事件数据,及用于通过控制器创建自定义控制器以获取集群资源对象,及用于通过控制器将集群资源对象和事件数据绑定,以及用于发送绑定结果至ebpf程序,以使
ebpf对内核事件进行聚合处理以生成链路追踪结果。
114.具体地,分布式系统可以包括kubernetes(k8s),k8s是一个轻便的和可扩展的的开源平台,用于管理容器化应用和服务,在k8s中,可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理,k8s通过在集群之上形成一个抽象层,使得部署和管理微服务架构应用程序变得简单,并允许开发团队平滑地部署应用程序。ebpf可以高效灵活地从操作系统内核中抓取网络数据包,操作系统可以是linux。
115.k8s可以接收ebpf发送的第一请求,使得k8s根据第一请求部署智能体和控制器,智能体以守护程序集(daemonset)的方式部署,守护程序集的主要作用是在k8s集群中运行一个daemon pod,守护程序集只管理pod对象,并保证每个节点有且只有一个pod,pod是k8s中最小的单元,pod可以由一组、一个或多个容器组成。内核是操作系统linux的核心,内核可以管理操作系统的进程、内存、设备驱动程序、文件和网络系统,决定着操作系统的性能和稳定性。k8s可以通过智能体监听内核,并对内核事件进行处理生成事件数据。
116.进一步地,k8s可以通过控制器创建自定义控制器并获取集群资源对象,集群资源对象可以包括k8s对象、应用、云服务等各种上下文,通过控制器将集群资源对象和事件数据进行绑定,从而将绑定结果发送至ebpf,使得ebpf可以对内核事件进行聚合处理,生成链路追踪结果,链路可以是多个应用之间进行业务活动的链条和路径。
117.本技术基于ebpf在分布式系统部署智能体和控制器,智能体可以监听和处理内核事件得到事件数据,控制器可以生成自定义控制器获取分布式系统的集群资源对象,通过控制器可以将集群资源对象和事件数据进行绑定,从而根据绑定结果对内核事件进行处理生成链路追踪结果,如此,将分布式系统中的应用与应用之间进行关联形成链路,相关人员可以掌握分布式系统的运行架构以及应用之间的连通性,使得分布式系统的网络服务和安全性可观察,从而快速诊断相关的网络问题。
118.请参阅图10,在某些实施方式中,链路追踪方法还包括:
119.s06:接收ebpf程序发送的第二请求并根据第二请求部署数据库将链路追踪结果存储至数据库中;
120.s07:接收ebpf程序发送的第三请求以使控制器读取数据库中的目标链路追踪结果并发送目标链路追踪结果至用户界面。
121.在某些实施方式中,处理器用于接收ebpf程序发送的第二请求并根据第二请求部署数据库将链路追踪结果存储至数据库中,以及用于接收ebpf程序发送的第三请求以使控制器读取数据库中的目标链路追踪结果并发送目标链路追踪结果至用户界面。
122.具体地,数据库可以是mysql、postgresql等,k8s接收到ebpf程序发送的第二请求,并根据第二请求部署数据库,以将链路追踪结果存储至数据库中。进一步地,控制器可以提供web的用户界面,用户界面用于筛选和显示目标链路追踪结果,k8s再接收到ebpf程序发送的第三请求,使得控制器读取数据库中的链路追踪结果,并将链路追踪结果发送至用户界面,例如,用户可以输入对应的充电开始时间、充电桩编号等集群资源对象进行筛选,控制器可以根据用户输入的集群资源对象获取对应的充电数据以及事件数据,并将充电数据和事件数据发送至用户界面,使得用户可以通过用户界面查看目标链路追踪结果。
123.如此,k8s通过将链路追踪结果存储至数据库,并通过控制器将数据库中的链路追
踪结果发送至用户界面,用户可以通过用户界面查看链路追踪结果,直观的显示出网路和服务之间的通信关系。
124.请参阅图11,在某些实施方式中,s02包括:
125.s021:通过智能体在操作系统在的内核构建执行引擎;
126.s022:通过智能体将执行引擎贴合在内核事件上以监听内核事件;
127.s023:通过智能体根据网络协议对内核事件进行处理以生成事件数据。
128.在某些实施方式中,s021、s022和s023可以由生成模块02实现,也即是,生成模块02用于通过智能体在操作系统在的内核构建执行引擎,及用于通过智能体将执行引擎贴合在内核事件上以监听内核事件,以及用于通过智能体根据网络协议对内核事件进行处理以生成事件数据。
129.在某些实施方式中,处理器用于通过智能体在操作系统在的内核构建执行引擎,及用于通过智能体将执行引擎贴合在内核事件上以监听内核事件,以及用于通过智能体根据网络协议对内核事件进行处理以生成事件数据。
130.具体地,k8s可以通过智能体在操作系统的内核构建一个执行引擎,执行引擎用于监听,在内核的调用下,将执行引擎贴合在某个内核事件上,实现监听内核事件,内核事件可以包括多个,用户可以选择将执行引擎贴合到一个或多个内核事件上,例如,在链路追踪方法用于换电站的情况下,内核事件可以是获取充电请求、发送充电指令等,用户可以在换电运营平台选择将执行引擎贴合在获取充电请求的内核事件和发送充电指令的内核事件。进一步地,根据网络协议对监听到的内核事件进行处理,从而生成事件数据。其中,监听到的内核事件可以是多个应用之间的链路,并根据网络协议将多个应用之间关联形成的链路进行处理,以数据的形式进行保存。
131.如此,通过在操作系统的内核构建执行引擎,可以采用内核将执行引擎贴合至内核事件,对内核事件进行监听,并通过网络协议对监听到的内核事件进行处理,从而可以获取事件数据。
132.请参阅图12,在某些实施方式中,s023包括:
133.s0231:对网络协议进行协议推导以筛选出目标网络协议;
134.s0232:根据目标网络协议对内核事件进行处理,生成事件数据;
135.s0233:发送事件数据至环形缓冲器/数据结构中。
136.在某些实施方式中,s0231、s0232和s0233可以由生成模块02实现,也即是,生成模块02用于对网络协议进行协议推导以筛选出目标网络协议,及用于根据目标网络协议对内核事件进行处理,生成事件数据,以及用于发送事件数据至环形缓冲器/数据结构中。
137.在某些实施方式中,处理器用于对网络协议进行协议推导以筛选出目标网络协议,及用于根据目标网络协议对内核事件进行处理,生成事件数据,以及用于发送事件数据至环形缓冲器/数据结构中。
138.具体地,网络协议是计算机网络中进行数据交换而建立的规则、标准或约定的集合,不同的计算机之间必须使用相同的网络协议才能进行通信。本技术的智能体可以对网络协议进行协议推导,筛选出与分布式系统的内核事件对应的目标网络协议,并根据目标网络协议对内核事件进行处理,从而可以生成事件数据。
139.进一步地,将事件数据发送至环形缓冲器(ringbuffer)或数据结构map中进行存
储,例如,可以将事件数据发送至环形缓冲器进行存储,环形缓冲器是一种数据结构用于表示一个固定尺寸、头尾相连的缓冲区,适合缓存数据流,用户可以读取环形缓冲器中存储的数据,也可以将待存储数据写入环形缓冲器。其中,环形缓冲器设置于内核中,数据结构map设置于ebpf中。
140.如此,通过对网络协议进行推导获取目标网络协议,并根据目标网络协议处理内核事件,使得生成的事件数据存储至环形缓冲器或数据结构map中,从而可以通过环形缓冲器或数据结构map读取事件数据。
141.本技术实施方式还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当计算机可执行指令被一个或多个处理器执行时,使得处理器执行上述任一实施方式的方法。
142.如此,本发明提供的计算机程序的非易失性计算机可读存储介质,存储有计算机程序,当计算机程序被一个或多个处理器执行时,使得处理器执行链路追踪方法。
143.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序完成,程序可存储于一非易失性计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等。
144.在本说明书的描述中,参考术语“某些实施方式”、“一个例子中”、“示例地”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
145.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
146.尽管上面已经示出和描述了本技术的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施方式进行变化、修改、替换和变型。

技术特征:
1.一种链路追踪方法,用于ebpf程序,其特征在于,所述链路追踪方法包括:向分布式系统发送第一请求以使所述分布式系统部署智能体和控制器,所述分布式系统在操作系统中运行,所述智能体以守护程序集的方式部署,所述智能体监听并处理操作系统的内核事件以生成事件数据,所述控制器创建自定义控制器以获取所述分布式系统的集群资源对象,并将所述集群资源对象和所述事件数据绑定;和根据绑定结果对所述内核事件进行聚合处理以生成链路追踪结果,所述链路追踪结果为多个应用之间的关联。2.根据权利要求1所述的链路追踪方法,其特征在于,所述链路追踪方法还包括:向所述分布式系统发送第二请求以使所述分布式系统部署数据库并将所述链路追踪结果存储至所述数据库中。3.根据权利要求2所述的链路追踪方法,其特征在于,所述链路追踪方法还包括:向所述分布式系统发送第三请求以使所述控制器读取所述数据库中的目标链路追踪结果并将所述目标链路追踪结果发送至用户界面。4.根据权利要求3所述的链路追踪方法,其特征在于,所述向所述分布式系统发送第三请求以使所述控制器读取所述数据库中的目标链路追踪结果,包括:根据所述集群资源对象对所述链路追踪结果进行筛选以得到所述目标链路追踪结果。5.根据权利要求1所述的链路追踪方法,其特征在于,所述智能体监听并处理操作系统的内核事件以生成事件数据,包括:在所述操作系统在的内核构建执行引擎;将所述执行引擎贴合在所述内核事件上以监听所述内核事件;根据网络协议对所述内核事件进行处理以生成所述事件数据。6.根据权利要求5所述的链路追踪方法,其特征在于,所述根据网络协议对所述内核事件进行处理以生成所事件数据,包括:对所述网络协议进行协议推导以筛选出目标网络协议;根据所述目标网络协议对所述内核事件进行处理,生成所述事件数据;发送所述事件数据至环形缓冲器/数据结构中。7.一种链路追踪方法,用于分布式系统,其特征在于,所述分布式系统在操作系统中运行,所述链路追踪方法包括:接收ebpf程序发送的第一请求以根据所述第一请求部署智能体和控制器,所述智能体以守护程序集的方式部署;通过所述智能体监听并处理所述操作系统的内核事件以生成事件数据;通过所述控制器创建自定义控制器以获取集群资源对象;通过所述控制器将所述集群资源对象和所述事件数据绑定;和发送绑定结果至所述ebpf程序,以使所述ebpf对所述内核事件进行聚合处理生成链路追踪结果,所述链路追踪结果为多个应用之间的关联。8.根据权利要求7所述的链路追踪方法,其特征在于,所述链路追踪方法还包括:接收所述ebpf程序发送的第二请求并根据所述第二请求部署数据库将所述链路追踪结果存储至所述数据库中。9.根据权利要求8所述的链路追踪方法,其特征在于,所述链路追踪方法还包括:
接收所述ebpf程序发送的第三请求以使所述控制器读取所述数据库中的目标链路追踪结果并发送所述目标链路追踪结果至用户界面。10.根据权利要求9所述的链路追踪方法,其特征在于,所述接收所述ebpf程序发送的第三请求以使所述控制器读取所述数据库中的链路追踪结果,包括:通过所述控制器根据所述集群资源对象对所述链路追踪结果进行筛选以得到所述目标链路追踪结果。11.根据权利要求7所述的链路追踪方法,其特征在于,所述通过所述智能体监听并处理所述操作系统的内核事件以生成事件数据包括:通过所述智能体在所述操作系统在的内核构建执行引擎;通过所述智能体将所述执行引擎贴合在所述内核事件上以监听所述内核事件;通过所述智能体根据网络协议对所述内核事件进行处理以生成所述事件数据。12.根据权利要求11所述的链路追踪方法,其特征在于,所述通过所述智能体根据网络协议对所述内核事件进行处理以生成所事件数据,包括:对所述网络协议进行协议推导以筛选出目标网络协议;根据所述目标网络协议对所述内核事件进行处理,生成所述事件数据;发送所述事件数据至环形缓冲器/数据结构中。13.一种链路追踪装置,用于ebpf程序,其特征在于,所述链路追踪装置包括:第一发送模块,用于向分布式系统发送第一请求以使所述分布式系统部署智能体和控制器,所述分布式系统在操作系统中运行,所述智能体以守护程序集的方式部署,所述智能体监听并处理操作系统的内核事件以生成事件数据,所述控制器创建自定义控制器以获取所述分布式系统的集群资源对象,并将所述集群资源对象和所述事件数据绑定;聚合模块,用于根据绑定结果对所述内核事件进行聚合处理以生成链路追踪结果,所述链路追踪结果为多个应用之间的关联。14.一种链路追踪装置,用于分布式系统,其特征在于,所述分布式系统在操作系统中运行,所述链路追踪装置包括:接收模块,用于接收ebpf程序发送的第一请求以根据所述第一请求部署智能体和控制器,所述智能体以守护程序集的方式部署;生成模块,用于通过所述智能体监听并处理所述操作系统的内核事件以生成事件数据;获取模块,用于通过所述控制器创建自定义控制器以获取集群资源对象;绑定模块,用于通过所述控制器将所述集群资源对象和所述事件数据绑定;和第二发送模块,用于发送绑定结果至所述ebpf程序,以使所述ebpf对所述内核事件进行聚合处理生成链路追踪结果,所述链路追踪结果为多个应用之间的关联。15.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现权利要求1-12任一项所述的链路追踪方法。16.一种包含计算机程序的非易失性计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,使得所述处理器实现权利要求1-12任一项所述的链路追踪方法。

技术总结
本申请公开一种链路追踪方法、链路追踪装置、电子设备及非易失性计算机可读存储介质。链路追踪方法包括向分布式系统发送第一请求以使分布式系统部署智能体和控制器,智能体以守护程序集的方式部署;通过智能体监听并处理操作系统的内核事件以生成事件数据,分布式系统在操作系统中运行;通过控制器创建自定义控制器以获取分布式系统的集群资源对象;通过控制器将集群资源对象和事件数据绑定;和根据绑定结果对内核事件进行聚合处理以生成链路追踪结果。如此,将分布式系统中应用与应用之间进行关联形成链路,相关人员可以掌握分布式系统的运行架构以及应用之间的连通性,使得分布式系统的网络服务和安全性可观察,从而快速诊断相关的网络问题。断相关的网络问题。断相关的网络问题。


技术研发人员:朱钰峰 彭涛 温金雄 郭春辉
受保护的技术使用者:协鑫电港云科技(海南)有限公司
技术研发日:2023.06.29
技术公布日:2023/9/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐