实现可观测性的方法及装置、可读存储介质、电子设备与流程

专利2023-03-29  8



1.本公开涉及云计算技术领域,尤其涉及一种实现可观测性的方法与实现可观测性的装置、计算机可读存储介质及电子设备。


背景技术:

2.随着业务应用持续微服务化,系统变得更加复杂,需要可观测性来描述业务和应用的全貌。
3.在相关技术中,开发人员和运维人员除了关注应用本身之外,还需要根据基础设施提供的可观测性软件架构开发相应的功能,这种依赖和耦合的关系使得可观测性能力建设的效率低下。不仅如此,由于这种依赖和耦合的关系还增加了开发人员和运维人员之间的认知成本、协同成本以及适配成本,还无法避免的对大量相同指标进行了重复的开发。
4.鉴于此,本领域亟需开发一种新的实现可观测性的方法及装置。
5.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

6.本公开的目的在于提供一种实现可观测性的方法、实现可观测性的装置、计算机可读存储介质及电子设备,进而至少在一定程度上克服由于相关技术导致的可观测性能力建设的效率低下的问题。
7.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
8.根据本发明实施例的第一个方面,提供了一种实现可观测性的方法,所述方法包括:确定可观测性需求,并根据所述可观测性需求创建可观测性资源声明;对所述可观测性资源声明进行解析得到单元信息,并根据所述单元信息创建可观测性组件和观测单元;将所述可观测性组件部署至所述观测单元,运行所述观测单元,以采集满足所述可观测性需求的数据。
9.在本发明的一种示例性实施例中,所述可观测性资源声明用于定义与所述可观测性需求对应的采集指标信息以及与所述采集指标信息对应的采集行为信息;所述采集指标信息包括采集指标集合、指标明细声明以及自定义指标;所述采集行为信息包括采集频率、采集时间范围、服务入口、目标负载以及部署方式;所述服务入口为导出可观测性资源的入口,所述目标负载为所述可观测性资源应用的负载,所述部署方式用于声明所述可观测性资源部署的模式。
10.在本发明的一种示例性实施例中,所述对所述可观测性资源声明进行解析得到单元信息,包括:对应用程序编程接口服务器进行监听;若监听到可观测性资源变化信息,确定与所述可观测性资源变化信息对应的可观测性资源声明;对所述可观测性资源声明进行解析得到单元信息。
11.在本发明的一种示例性实施例中,所述对所述可观测性资源声明进行解析得到单元信息,包括:获取与所述可观测性资源声明对应的预设关键字段;若在所述可观测性资源声明中存在与所述预设关键字段一一对应的目标关键字段,则对所述可观测性资源声明进行解析得到单元信息。
12.在本发明的一种示例性实施例中,所述运行所述观测单元,以采集满足所述可观测性需求的数据,包括:对所述观测单元进行资源调度,确定出目标工作节点,以建立所述观测单元和所述目标工作节点之间的绑定关系;基于所述绑定关系,使用与所述目标工作节点对应的容器进程运行所述观测单元,以采集满足所述可观测性需求的数据。
13.在本发明的一种示例性实施例中,所述方法还包括:若所述容器进程接收到停止信号,则对所述观测单元进行终止,以终止对满足所述可观测性需求的所述数据的采集。
14.在本发明的一种示例性实施例中,所述方法还包括:为所述观测单元分配标签;获取具有相同所述标签的目标观测单元,并确定所述目标观测单元中采集到的满足目标可观测性需求的目标数据;所述目标观测性需求与所述目标观测单元对应;将所述目标数据存储至同一存储区域。
15.根据本发明实施例的第二个方面,提供一种实现可观测性的装置,所述装置包括:声明模块,被配置为确定可观测性需求,并根据所述可观测性需求创建可观测性资源声明;控制模块,被配置为对所述可观测性资源声明进行解析得到单元信息,并根据所述单元信息创建可观测性组件和观测单元;节点模块,被配置为将所述可观测性组件部署至所述观测单元,运行所述观测单元,以采集满足所述可观测性需求的数据。
16.根据本发明实施例的第三个方面,提供一种电子设备,包括:处理器和存储器;其中,存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现上述任意示例性实施例的实现可观测性的方法。
17.根据本发明实施例的第四个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意示例性实施例中的实现可观测性的方法。
18.由上述技术方案可知,本发明示例性实施例中的实现可观测性的方法、实现可观测性的装置、计算机存储介质及电子设备至少具备以下优点和积极效果:
19.在本公开的示例性实施例提供的方法及装置中,根据可观测性需求创建可观测性资源声明,对可观测性资源声明进行解析得到单元信息,并根据单元信息创建可观测性组件,一方面,通过上述过程解耦了采集可观测性资源的过程中各个团队之间的依赖关系,进而提升了采集满足可观测性需求的数据的效率;另一方面,开发人员和运维人员不需要关心基础设施所使用的监控软件和架构,就可以创建出可观测性资源声明,减少了不同可观测性软件对运维人员以及开发人员带来的认知成本、协同成本以及适配成本;再一方面,可以灵活根据不同的可观测性需求创建可观测性资源声明,实现了精细化的采集控制。
20.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
21.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施
例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1示意性示出本公开实施例中实现可观测性的方法的流程示意图;
23.图2示意性示出本公开实施例中一种对可观测性资源声明进行解析得到单元信息的流程示意图;
24.图3示意性示出本公开实施例中另一种对可观测性资源声明进行解析得到单元信息的流程示意图;
25.图4示意性示出本公开实施例中采集满足可观测性需求的数据的流程示意图;
26.图5示意性示出本公开实施例中运行观测单元的流程示意图;
27.图6示意性示出本公开实施例中将目标数据存储至同一存储区域的流程示意图;
28.图7示出了一应用场景下实现可观测性的方法的流程示意图;
29.图8示意性示出本公开实施例中一种实现可观测性的装置的结构示意图;
30.图9示意性示出本公开实施例中一种用于实现可观测的方法的电子设备;
31.图10示意性示出本公开实施例中一种用于实现可观测性的方法的计算机可读存储介质。
具体实施方式
32.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
33.本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
34.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
35.针对相关技术中存在的问题,本公开提出了一种实现可观测性的方法。图1示出了实现可观测性的方法的流程示意图,如图1所示,实现可观测性的方法至少包括以下步骤:
36.步骤s110.确定可观测性需求,并根据可观测性需求创建可观测性资源声明。
37.步骤s120.对可观测性资源声明进行解析得到单元信息,并根据单元信息创建可观测性组件和观测单元。
38.步骤s130.将可观测性组件部署至观测单元,运行观测单元,以采集满足可观测性
需求的数据。
39.在本公开的示例性实施例提供的方法及装置中,根据可观测性需求创建可观测性资源声明,对可观测性资源声明进行解析得到单元信息,并根据单元信息创建可观测性组件,一方面,通过上述过程解耦了采集可观测性资源的过程中各个团队之间的依赖关系,进而提升了采集满足可观测性需求的数据的效率;另一方面,开发人员和运维人员不需要关心基础设施所使用的监控软件和架构,就可以创建出可观测性资源声明,减少了不同可观测性软件对运维人员以及开发人员带来的认知成本、协同成本以及适配成本;再一方面,可以灵活根据不同的可观测性需求创建可观测性资源声明,实现了精细化的采集控制。
40.下面对实现可观测性的方法的各个步骤进行详细说明。
41.在步骤s110中,确定可观测性需求,并根据可观测性需求创建可观测性资源声明。
42.在本公开的示例性实施例中,可观测性指的是可以输出完全反映系统状态的特性。具体的,系统可以是容器集群管理系统,还可以是任何一种系统,本示例性实施例对此不做特殊限定。
43.可观测性需求指的是预先设置的,描述管理人员或运维人员对于需要获取的反映系统状态的特性的数据的需求。可观测性资源声明用于定义后续采集到的满足可观测性需求的数据。
44.举例而言,确定的可观测性需求为采集与中央处理器相关的指标的需求,基于此,可以创建出与采集中央处理器相关的指标的需求对应的可观测性资源声明。
45.在可选的实施例中,可观测性资源声明用于定义与可观测性需求对应的采集指标信息以及与采集指标信息对应的采集行为信息;采集指标信息包括采集指标集合、指标明细声明以及自定义指标;采集行为信息包括采集频率、采集时间范围、服务入口、目标负载以及部署方式;服务入口为导出可观测性资源的入口,目标负载为可观测性资源应用的负载,部署方式用于声明可观测性资源部署的模式。
46.其中,在可观测性资源声明中定义着两项内容,其中,一项内容为与可观测性需求对应的采集指标信息,另一项内容为与采集指标信息对应的采集行为信息。
47.具体的,采集指标信息中包括采集指标集合(即所需要采集的所有指标,举例而言,采集指标集合可以是与中央处理器相关的指标所组成的集合)。采集指标信息中还包括指标明细声明,指标明细声明指的是具体采集的是与采集指标集合对应的哪一个信息,举例而言,指标明细声明可以是与中央处理器相关的指标中,网元应用对网络代理组件中ip(网际协议地址)虚拟服务器的压力。采集指标信息中还包括自定义指标。在系统中本身存在指标库,并且,在指标库中存在一些预先设置的指标。当这些预先设置的指标中不存在满足可观测性需求的指标时,可以通过自定义的方式定义满足可观测性需求的指标,此时,通过自定义的方式定义出的满足可观测性需求的指标为自定义指标。
48.采集行为信息可以包括采集频率(即采集的频次)。采集行为信息中还可以包括采集时间范围(即采集开始时刻和采集结束时刻所组成的时间范围)。采集行为信息还包括服务入口(即导出满足可观测性需求的数据的服务入口)。其中,可观测性资源即满足可观测性需求的数据。
49.采集行为信息还包括目标负载(即可观测性资源将应用的负载)。采集行为信息还包括部署方式(即可观测性资源部署的模式)。
50.举例而言,根据可观测性需求,可以创建出一个yaml(另一种标记语言)文件格式的可观测性资源声明。之所以将可观测性资源声明以yaml文件格式创建出来,是因为,yaml文件格式是一个直观的能够被电脑识别的数据序列化格式。并且,若系统为容器集群管理系统,由于容器集群管理系统默认的文件格式就是yaml文件格式,因此,创建出格式为yaml格式的可观测性资源声明,系统可以更高效的对该可观测性资源声明进行后续处理。
51.具体地,创建出的可观测性资源声明为
[0052]“modular:”cpu”[0053]
detail:”node_ipvs_backend_connections_active”[0054]
selector:
[0055]
app:demo
[0056]
deployment:side-car
[0057]
interval:3s
[0058]
exporters:prometheus-server.svc
[0059]
time:
[0060]
starttime:8:05
[0061]
endtime:9:23”[0062]
其中,modular:”cpu”表示在可观测性资源声明中的采集指标集合为与cpu相关的指标的集合;detail:”node_ipvs_backend_connection s_active”表示在可观测性资源声明中的指标明细信息为只采集网元应用对网络代理组件中ip(网际协议地址)虚拟服务器的压力;ap p:demo表示的是在可观测性资源声明中目标负载为demo;deployme nt:side-car表示的是在可观测性资源声明中部署方式为将应用程序的功能分化为单独进程的部署方式;interval:3s表示的是在可观测性资源声明中采集频率为3秒;exporters:prometheus-server.svc表示的是在可观测性资源声明中服务入口为prometheus-server.svc;starttim e:8:05endtime:9:23”表示的是在可观测性资源声明中的采集时间范围。
[0063]
在可选的实施例中,可观测性资源声明中定义着采集指标信息和采集行为信息,一方面,这为后续根据可观测性资源声明创建可观测性组件以及观测单元奠定了基础;另一方面,开发人员和运维人员只需创建可观测性资源声明,不再需要学习如何编程代码,不需要与基础的采集框架协同,降低了开发人员以及运维人员的认知成本、协同成本以及适配成本。
[0064]
在步骤s120中,对可观测性资源声明进行解析得到单元信息,并根据单元信息创建可观测性组件和观测单元。
[0065]
在本公开的示例性实施例中,单元指的是系统中可以创建和管理的最小单元,对应的,单元信息就是创建该最小单元时所使用的信息。
[0066]
可观测性组件指的是采集满足可观测性需求的数据的采集组件以及处理满足可观测性需求的数据的处理组件。观测单元指的是部署着上述可观测性组件的单元。
[0067]
举例而言,系统为容器集群管理系统,则对可观测性资源声明进行解析后可以得到单元信息(即pod信息)。根据解析出的pod信息可以创建出采集组件、处理组件以及pod单元。
[0068]
在可选的实施例中,图2示出了实现可观测性的方法中一种对可观测性资源声明进行解析得到单元信息的流程示意图,如图2所示,该方法至少包括以下步骤:在步骤s210中,对应用程序编程接口服务器进行监听。
[0069]
其中,应用程序编程接口服务器(即api server)指的是容器集群管理系统中的一种服务器。举例而言,容器集群管理系统可以利用消息通知机制(即list-watch机制)对api serve进行监听。
[0070]
在步骤s220中,若监听到可观测性资源变化信息,确定与可观测性资源变化信息对应的可观测性资源声明。
[0071]
其中,可观测性资源变化信息指的是描述可观测性资源声明发生变化的信息。值得说明的是,当存在可观测性资源变化信息时,证明此时在api server中存在可观测性资源声明。
[0072]
举例而言,利用list-watch机制对api serve进行监听,当监听到可观测性资源变化信息a时,确定此时与可观测性变化信息a对应的可观测性资源声明。
[0073]
在步骤s230中,对可观测性资源声明进行解析得到单元信息。
[0074]
其中,在确定出可观测性资源声明之后,可以对可观测性资源声明进行解析,得到后续创建观测单元时会使用到的单元信息。
[0075]
举例而言,对刻观测性资源声明进行解析可以得到pod信息,具体的,pod信息中可以包括采集指标信息和采集行为信息。
[0076]
在本示例性实施例中,当监听到可观测性资源变化信息时,才确定与可观测性资源变化信息对应的可观测性资源声明,进而可以在可观测性资源声明创建后立刻对可观测性资源进行解析得到单元信息,提升了后续采集满足可观测性需求的数据的效率。
[0077]
在可选的实施例中,图3示出了实现可观测性的方法中另一种对可观测性资源声明进行解析得到单元信息的流程示意图,如图3所示,该方法至少包括以下步骤:在步骤s310中,获取与可观测性资源声明对应的预设关键字段。
[0078]
其中,预设关键字段指的是可观测性资源声明中必须存在的字段。
[0079]
举例而言,获取与可观测性资源声明对应的预设关键字段,具体的,预设关键字段可以包括apiversion字段(即描述应用程序编程接口的版本的字段),还可以包括spec字段(即描述采集指标信息的字段),还可以包括action字段(即描述采集行为信息的字段)。
[0080]
在步骤s320中,若在可观测性资源声明中存在与预设关键字段一一对应的目标关键字段,则对可观测性资源声明进行解析得到单元信息。
[0081]
其中,若在可观测性资源声明中存在与预设关键字段一一对应的目标关键字段,证明该可观测性资源声明是符合规范的,此时,才可以对可观测性资源声明进行解析。
[0082]
举例而言,获取的预设关键字段为apiversion字段、spec字段以及action字段。
[0083]
若在可观测性资源声明中存在与上述三个预设关键字段分别一一对应的目标关键字段,则可以对可观测性资源声明进行解析,进而得到pod信息。
[0084]
若在可观测性资源声明中不存在与上述三个预设关键字段中一个或多个分别对应的目标关键字段,则证明该可观测性资源声明不符合规范,此时不对该可观测性资源声明进行解析。
[0085]
在本示例性实施例中,若在可观测性资源声明中存在与预设关键字段一一对应的
目标关键字段,才对可观测性资源声明进行解析,完善了对可观测性资源解析的逻辑,避免了在可观测性资源声明不符合规范的情况下也对可观测性资源声明进行解析的情况发生,减少了不必要的资源消耗。
[0086]
在步骤s130中,将可观测性组件部署至观测单元,运行观测单元,以采集满足可观测性需求的数据。
[0087]
在本公开的示例性实施例中,将可观测性组件部署至观测单元。举例而言,可以按照可观测性资源声明中的部署方式将观测组件部署至pod单元。在将可观测性组件部署至观测单元后,对观测单元进行运行,此时就可以采集到满足可观测性需求的数据。
[0088]
举例而言,在可观测性资源声明中定义的部署方式为side-car(即将应用程序的功能划分为单独的进程),则可以采用side-car的方式将可观测性组件注入至pod单元中。在对pod单元进行运行后,就可以采集到有关中央处理器的数据。
[0089]
在可选的实施例中,图4示出了实现可观测性的方法中采集满足可观测性需求的数据的流程示意图,如图4所示,该方法至少包括以下步骤:在步骤s410中,对观测单元进行资源调度,确定出目标工作节点,以建立观测单元和目标工作节点之间的绑定关系。
[0090]
其中,在创建出观测单元之后,系统会利用调度器在工作节点中调度出空闲的目标工作节点,并且,在调度出目标空闲节点后,会建立空闲的目标工作节点与观测单元之间的绑定关系。
[0091]
举例而言,调度器调度出此时空闲的目标工作节点为worker node1,此时,建立pod单元与目标工作节点worker node1之间的绑定关系。
[0092]
在步骤s420中,基于绑定关系,使用与工作节点对应的容器进程运行观测单元,以采集满足可观测性需求的数据。
[0093]
其中,存在与目标工作节点对应的容器进程kubelet,此时可以使用容器进程kubelet运行观测单元,进而采集到满足可观测性需求的数据。
[0094]
举例而言,图5示意性示出了本公开实施例中运行观测单元的流程示意图,如图5所示,其中,对象510为运维人员或开发人员,声明520为可观测性资源声明,并且,声明520包括采集指标信息和采集行为信息。
[0095]
节点530为主节点,在主节点中存在控制器531可观测性资源控制器。可观测性资源控制器531对api server进行监听,若监听到可观测性资源变化信息,则对可观测性资源声明进行解析得到单元信息,并根据单元信息创建可观测性组件,具体的,可观测性组件包括采集组件541以及处理组件542。单元550观测单元为根据单元信息创建出的pod单元。
[0096]
将采集组件541以及处理组件542部署至pod单元550中,此时,确定出节点560目标工作节点worker node1,建立pod单元和目标工作节点560之间的绑定关系,基于绑定关系,使用与目标工作节点560对应的容器进程561kubelet,运行pod单元,进而实现对满足可观测性需求的数据的采集。
[0097]
在本示例性实施例中,对观测单元进行资源调度,确定出目标工作节点,并建立起观测单元与目标工作节点之间的绑定关系,基于绑定关系,使用容器进程对观测单元进行运行,实现了对满足可观测性需求的数据的采集。
[0098]
在可选的实施例中,方法还包括:若容器进程接收到停止信号,则对观测单元进行终止,以终止对满足可观测性需求的数据的采集。
[0099]
其中,当容器进程接收到停止信号时,证明此时容器进程将被结束。由于观测单元是通过容器进程运行的,因此,此时观测单元将被终止运行,进而此时不采集满足可观测性需求的数据。
[0100]
举例而言,当容器进程kubelet1接收到停止信号时,将不再运行pod单元,此时不再对和中央处理器有关的数据进行采集。
[0101]
在本示例性实施例中,当容器进程接收到停止信号时,终止对满足可观测性需求的数据的采集,进而通过管理观测单元的生命周期,实现了对部署在观测单元中的观测性组件的生命周期的管理。
[0102]
在可选的实施例中,图6示出了实现可观测性的方法中将目标数据存储至同一存储区域的流程示意图,如图6所示,该方法至少包括以下步骤:在步骤s610中,为观测单元分配标签。
[0103]
其中,标签指的是分配给观测单元的标签。具体的,标签可以用字母表示,可以用数字表示,还可以用字符串表示,本示例性实施例对此不做特殊限定。
[0104]
举例而言,若存在3个观测单元,分别为pod1单元、pod2单元以及pod3单元。基于此,可以为pod1单元分配标签1,可以为pod2单元分配标签1,还可以为pod3单元分配标签3。
[0105]
在步骤s620中,获取具有相同标签的目标观测单元,并确定目标观测单元中采集到的满足目标可观测性需求的目标数据;目标观测性需求与目标观测单元对应。
[0106]
其中,若多个观测单元具有相同的标签,则这多个观测单元为目标观测单元。确定出目标观测单元中采集到的满足目标可观测性需求的数据。
[0107]
举例而言,若存在3个观测单元,分别为pod1单元、pod2单元以及pod3单元。基于此,可以为pod1单元分配标签1,可以为pod2单元分配标签1,还可以为pod3单元分配标签3。
[0108]
显然,pod1单元和pod2单元是具有相同标签的目标观测单元。此时,确定出pod1单元采集到的满足目标可观测性需求的目标数据x-1,还确定出pod2单元采集到的满足目标可观测性需求的目标数据x-2。
[0109]
在步骤s630中,将目标数据存储至同一存储区域。
[0110]
其中,将目标数据存储至同一存储区域。
[0111]
举例而言,将确定出的pod1单元采集到的满足目标可观测性需求的目标数据x-1以及pod2单元采集到的满足目标可观测性需求的目标数据x-2存储至存储区域d-1中。
[0112]
在本示例性实施例中,获取具有相同标签的目标观测单元,并将目标观测单元中采集到的满足目标可观测性需求的目标数据存储至同一存储单元,进而可以关联不同的观测单元,解决了数据孤岛的问题。
[0113]
在本公开的示例性实施例提供的方法及装置中,根据可观测性需求创建可观测性资源声明,对可观测性资源声明进行解析得到单元信息,并根据单元信息创建可观测性组件,一方面,通过上述过程解耦了采集可观测性资源的过程中各个团队之间的依赖关系,进而提升了采集满足可观测性需求的数据的效率;另一方面,开发人员和运维人员不需要关心基础设施所使用的监控软件和架构,就可以创建出可观测性资源声明,减少了不同可观测性软件对运维人员以及开发人员带来的认知成本、协同成本以及适配成本;再一方面,可以灵活根据不同的可观测性需求创建可观测性资源声明,实现了精细化的采集控制。
[0114]
下面结合一应用场景对本公开实施例中实现可观测性的方法做出详细说明。
[0115]
图7示出了一应用场景下实现可观测性的方法的流程示意图,如图7所示,其中,服务器710为程序编程接口服务器,数据库720为etcd数据库,控制器730为可观测性资源控制器,进程740为容器进程。
[0116]
步骤s741为确定可观测性需求,并根据可观测需求创建可观测性资源声明,并将可观测性资源声明发送至服务器710中。
[0117]
步骤s742为服务器710将接收到的可观测性资源声明发送至数据库720中。步骤s743为控制器730对服务器710进行监听,若监听到可观测性资源变化信息,确定与可观测性资源变化信息对应的可观测性资源声明。
[0118]
步骤s744为判断可观测性资源声明是否符合规范的过程。步骤s745为当可观测性资源声明符合规范,对可观测性资源声明进行解析得到单元信息,并根据单元信息创建可观测组件和观测单元的过程。
[0119]
步骤s746为将单元信息回传至服务器710的过程。步骤s747为服务器将单元信息发送至数据库720的过程,此时,调度器会为观测单元调度出目标工作节点。步骤s747为与目标工作节点对应的容器进程运行观测单元,进而采集满足可观测性需求的数据的过程。
[0120]
在本应用场景中,根据可观测性需求创建可观测性资源声明,对可观测性资源声明进行解析得到单元信息,并根据单元信息创建可观测性组件,一方面,通过上述过程解耦了采集可观测性资源的过程中各个团队之间的依赖关系,进而提升了采集满足可观测性需求的数据的效率;另一方面,开发人员和运维人员不需要关心基础设施所使用的监控软件和架构,就可以创建出可观测性资源声明,减少了不同可观测性软件对运维人员以及开发人员带来的认知成本、协同成本以及适配成本;再一方面,可以灵活根据不同的可观测性需求创建可观测性资源声明,实现了精细化的采集控制。
[0121]
此外,在本公开的示例性实施例中,还提供一种实现可观测性的装置。图8示出了实现可观测性的装置的结构示意图,如图8所示,实现可观测性的装置800可以包括:声明模块810、控制模块820和节点模块830。其中:
[0122]
声明模块810,被配置为确定可观测性需求,并根据可观测性需求创建可观测性资源声明;控制模块820,被配置为对可观测性资源声明进行解析得到单元信息,并根据单元信息创建可观测性组件和观测单元;节点模块830,被配置为将可观测性组件部署至观测单元,运行观测单元,以采集满足可观测性需求的数据。
[0123]
上述实现可观测性的装置800的具体细节已经在对应的安全接入方法中进行了详细的描述,因此此处不再赘述。
[0124]
应当注意,尽管在上文详细描述中提及实现可观测性装置800的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0125]
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
[0126]
下面参照图9来描述根据本发明的这种实施例的电子设备900。图9显示的电子设备900仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0127]
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件
(包括存储单元920和处理单元910)的总线930、显示单元940。
[0128]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元910执行,使得所述处理单元910执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
[0129]
存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)921和/或高速缓存存储单元922,还可以进一步包括只读存储单元(rom)923。
[0130]
存储单元920还可以包括具有一组(至少一个)程序模块925的程序/使用工具924,这样的程序模块925包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包含网络环境的现实。
[0131]
总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0132]
电子设备900也可以与一个或多个外部设备970(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备900交互的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0133]
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
[0134]
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
[0135]
参考图10所示,描述了根据本发明的实施例的用于实现上述方法的程序产品1000,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0136]
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举
的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0137]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0138]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0139]
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0140]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

技术特征:
1.一种实现可观测性的方法,其特征在于,所述方法包括:确定可观测性需求,并根据所述可观测性需求创建可观测性资源声明;对所述可观测性资源声明进行解析得到单元信息,并根据所述单元信息创建可观测性组件和观测单元;将所述可观测性组件部署至所述观测单元,运行所述观测单元,以采集满足所述可观测性需求的数据。2.根据权利要求1所述的实现可观测性的方法,其特征在于,所述可观测性资源声明用于定义与所述可观测性需求对应的采集指标信息以及与所述采集指标信息对应的采集行为信息;所述采集指标信息包括采集指标集合、指标明细声明以及自定义指标;所述采集行为信息包括采集频率、采集时间范围、服务入口、目标负载以及部署方式;所述服务入口为导出可观测性资源的入口,所述目标负载为所述可观测性资源应用的负载,所述部署方式用于声明所述可观测性资源部署的模式。3.根据权利要求1所述的实现可观测性的方法,其特征在于,所述对所述可观测性资源声明进行解析得到单元信息,包括:对应用程序编程接口服务器进行监听;若监听到可观测性资源变化信息,确定与所述可观测性资源变化信息对应的可观测性资源声明;对所述可观测性资源声明进行解析得到单元信息。4.根据权利要求3所述的实现可观测性的方法,其特征在于,所述对所述可观测性资源声明进行解析得到单元信息,包括:获取与所述可观测性资源声明对应的预设关键字段;若在所述可观测性资源声明中存在与所述预设关键字段一一对应的目标关键字段,则对所述可观测性资源声明进行解析得到单元信息。5.根据权利要求1所述的实现可观测性方法,其特征在于,所述运行所述观测单元,以采集满足所述可观测性需求的数据,包括:对所述观测单元进行资源调度,确定出目标工作节点,以建立所述观测单元和所述目标工作节点之间的绑定关系;基于所述绑定关系,使用与所述目标工作节点对应的容器进程运行所述观测单元,以采集满足所述可观测性需求的数据。6.根据权利要求5所述的实现可观测性的方法,其特征在于,所述方法还包括:若所述容器进程接收到停止信号,则对所述观测单元进行终止,以终止对满足所述可观测性需求的所述数据的采集。7.根据权利要求1所述的实现可观测性的方法,其特征在于,所述方法还包括:为所述观测单元分配标签;获取具有相同所述标签的目标观测单元,并确定所述目标观测单元中采集到的满足目标可观测性需求的目标数据;所述目标观测性需求与所述目标观测单元对应;将所述目标数据存储至同一存储区域。8.一种实现可观测性的装置,其特征在于,所述装置包括:声明模块,被配置为确定可观测性需求,并根据所述可观测性需求创建可观测性资源
声明;控制模块,被配置为对所述可观测性资源声明进行解析得到单元信息,并根据所述单元信息创建可观测性组件和观测单元;节点模块,被配置为将所述可观测性组件部署至所述观测单元,运行所述观测单元,以采集满足所述可观测性需求的数据。9.一种电子设备,其特征在于,包括:处理器;存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行权利要求1-7中的任意一项所述的实现可观测性的方法。10.一种计算机可读存储介质,其上存储计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中的任意一项所述的实现可观测性的方法。

技术总结
本公开属于云计算技术领域,涉及一种实现可观测性的方法及装置、可读存储介质、电子设备。该方法包括:确定可观测性需求,并根据可观测性需求创建可观测性资源声明;对可观测性资源声明进行解析得到单元信息,并根据单元信息创建可观测性组件和观测单元;将可观测性组件部署至观测单元,运行观测单元,以采集满足可观测性需求的数据。在本公开中,根据可观测性需求创建可观测性资源声明,对可观测性资源声明进行解析得到单元信息,并根据单元信息创建可观测性组件,解耦了在采集可观测性数据的过程中各个团队之间的依赖关系,提升了采集满足可观测性需求的数据的效率。可观测性需求的数据的效率。可观测性需求的数据的效率。


技术研发人员:王旭亮 全硕
受保护的技术使用者:中国电信股份有限公司
技术研发日:2022.09.14
技术公布日:2022/12/5
转载请注明原文地址: https://bbs.8miu.com/read-315704.html

最新回复(0)