一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

采集任务的部署方法及相关设备与流程

2022-11-23 17:44:01 来源:中国专利 TAG:


1.本公开涉及数据处理领域,具体涉及数据采集和互联网运维等技术领域,可应用于基础设施监控、中间件监控、应用监控、以及业务监控等场景,尤其涉及一种采集任务的部署方法及相关设备。


背景技术:

2.普罗米修斯(prometheus)是一款基于时序数据库的开源监控告警系统。prometheus的基本原理是通过超文本协议(hypertext transfer protocol,http)周期性抓取被监控的程序吐出的监控数据。被监控的程序可以称为exporter,而exporter的一个实例可以称为target。
3.target吐出的监控数据是分行的,每一行代表一个时间序列。一个target可以吐出多达几万甚至几十万的监控数据。
4.通常一个prometheus会对多个target进行采集,该多个target可以称为一个采集任务。


技术实现要素:

5.本公开提供了一种采集任务的部署方法及相关设备,可以通过预设的亲和性规则对采集任务打上标签,并将具有相同标签的采集任务集中部署,提高采集任务的部署的灵活性和汇聚比。
6.根据本公开的第一方面,提供了一种采集任务的部署方法,该方法包括:获取第一采集任务的标签,标签是基于预设的亲和性规则生成的;根据第一采集任务的标签,确定与第一采集任务标签相同的第二采集任务;将第一采集任务和第二采集任务部署在第一采集实例。
7.根据本公开的第二方面,提供了一种采集任务的部署装置,该装置包括:获取模块,用于获取第一采集任务的标签,所述标签是基于预设的亲和性规则生成的。处理模块,用于根据所述第一采集任务的标签,确定与所述第一采集任务标签相同的第二采集任务;将所述第一采集任务和所述第二采集任务部署在第一采集实例。
8.根据本公开的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的方法。
9.根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行根据第一方面所述的方法。
10.根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面所述的方法。
11.本公开提供的采集任务的部署方法,可以基于预设的亲和性规则,对多个采集任
务打上标签,并将多个具有相同标签的采集任务集中部署在一个采集实例中,从而实现对多个采集任务的灵活调度,以及对多个采集任务的汇聚计算,提高了汇聚比,便于后续在采集实例的网页界面(user interface,ui)或者其他软件(例如grafana)以图形化展示采集数据相关的统计情况。
12.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
13.附图用于更好地理解本方案,不构成对本公开的限定。其中:
14.图1为本公开实施例提供的采集任务的部署方法的流程示意图;
15.图2为本公开实施例提供的采集任务的部署方法的另一种流程示意图;
16.图3为本公开实施例提供的采集任务的部署系统的组成示意图;
17.图4为本公开实施例提供的采集任务的部署装置的组成示意图;
18.图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。
具体实施方式
19.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
20.应当理解,在本公开各实施例中,字符“/”一般表示前后关联对象是一种“或”的关系。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
21.prometheus是一款基于时序数据库的开源监控告警系统。prometheus的基本原理是通过http周期性抓取被监控的程序吐出的监控数据。被监控的程序可以称为exporter,而exporter的一个实例可以称为target。target吐出的监控数据是分行的,每一行代表一个时间序列。一个target可以吐出多达几万甚至几十万的监控数据。
22.例如,target可以通过设置一个http端口,并通过该http端口向外暴露。prometheus可以通过配置文件中的target的地址信息来周期性地从target采集监控数据。其中,target的地址信息可以包括target的网际协议(internet protocol,ip)地址、端口号、以及统一资源定位符(uniform resource locator,url)。
23.通常一个prometheus会对多个target进行采集,该多个target可以称为一个采集任务。
24.但是,目前的采集任务在prometheus上的部署配置较为固定,灵活性较差。
25.在此基础上,本公开实施例提供了一种采集任务的部署方法,可以适用于基础设施监控、中间件监控、应用监控、以及业务监控等场景中。该方法可以在部署采集任务时通过预设的亲和性规则对采集任务打上标签,并将具有相同标签的采集任务集中部署,提高了采集任务的部署的灵活性和汇聚比。
26.本公开实施例提供的采集任务的部署方法的执行主体可以是计算机,也可以是服
务器或其他具有数据处理能力的计算设备。例如,前述计算机、服务器、或者计算设备等可以是前述任意一种应用场景的后台服务设备。本公开实施例对采集任务的部署方法的执行主体不作限制。
27.一些实施例中,服务器可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本公开对服务器的具体实现方式也不作限制。
28.图1为本公开实施例提供的采集任务的部署方法的流程示意图。如图1所示,该方法可以包括s101至s103。
29.s101、获取第一采集任务的标签。
30.其中,第一采集任务可以是任意一个采集任务。标签是基于预设的亲和性规则生成的。亲和性规则可以由用户设置在上述计算机、服务器、或其他具有数据处理能力的计算设备中。
31.s102、根据第一采集任务的标签,确定与第一采集任务标签相同的第二采集任务。
32.s103、将第一采集任务和第二采集任务部署在第一采集实例。
33.其中,第一采集实例可以用于执行上述第一采集任务和第二采集任务等采集任务。例如,第一采集实例可以是上述prometheus实例、洛基(loki)实例、石墨(graphite)实例、弹性搜索(elasticsearch)实例、或者涌入/时序数据库(influx database,influxdb)实例等。本技术实施例对第一采集实例的具体种类不作限制。第一采集实例可以部署在kubernetes集群中。kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用。用“8”代替“kubernetes”中间的8个字符“ubernete”,可以简称为k8s。k8s在部署应用服务时,可以记录部署的应用服务的版本,用户可以根据k8s记录的版本进行版本回退。
34.示例性地,以采集任务1的标签为标签1、采集任务2的标签为标签2、以及采集任务3的标签为标签1为例,则可以将具有相同标签(也即标签1)的采集任务1和采集任务3部署至同一个采集实例中,将具有不同标签(也即标签2)的采集任务2部署至另一个采集实例中。
35.需要说明的是,上述以第一采集任务和第二采集任务为例进行了介绍。具有相同的标签的采集任务还可以包括多个,该多个具有相同的标签的采集任务也可以部署在同一个采集实例(例如该采集实例可以是上述第一采集实例)中。
36.本公开实施例提供的采集任务的部署方法,可以基于预设的亲和性规则,对多个采集任务打上标签,并将多个具有相同标签的采集任务集中部署在一个采集实例中,从而实现对多个采集任务的汇聚计算,提高了汇聚比,便于后续在采集实例的网页界面(user interface,ui)或者其他软件(例如grafana)以图形化展示采集数据相关的统计情况。
37.一些可能的实施例中,在将第一采集任务和第二采集任务部署在在第一采集实例之后,还可以对第一采集实例的相关运行状态信息进行检测。图2为本公开实施例提供的采集任务的部署方法的另一种流程示意图。如图2所示,在s103之后,该方法还可以包括s201至s203。
38.s201、获取第一采集实例的运行状态信息。
39.其中,运行状态信息可以包括负载,和/或,监控数据。对于第一采集实例来说,第一采集实例的负载可以包括第一采集实例的中央处理器(central processing unit,cpu)
利用率,和/或,内存利用率等。第一采集实例的cpu利用率和内存利用率可以通过部署第一采集实例的平台(例如上述k8s)直接采集获取。第一采集实例采集的监控数据可以包括target的cpu利用率、内存占用总量、以及网络上下行参数等。
40.示例性地,以第一采集实例为prometheus实例,且prometheus实例的负载为cpu利用率为例,则监控数据可以为“node_cpu_seconds_total{instance=~\"$node:$port\",label_key=~\"$label_value\"}1659584873 3”。其中,字段“node_cpu_seconds_tota l”是监控数据的种类名称cpu利用率。字段“instance=~\"$node:$port\",label_key=~\"$label_value\"”是监控数据的内容。字段“1659584873”为采集监控数据的时间戳。字段“3”为采集的cpu利用率的具体数值。
41.示例性地,以第一采集实例为prometheus实例,且prometheus实例的负载为内存利用率为例,则监控数据可以为“node_memory_memtotal_bytes{instance=~"$node:$port",label_key=~"$la bel_value"})1659584873 4”。其中,字段“node_memory_memtotal_bytes”是监控数据的种类名称内存占用总量。字段“{instance=~"$node:$port",label_key=~"$label_value"}”是监控数据的的内容。字段“1659584873”为采集监控数据的时间戳。字段“4”为采集的内存占用总量的具体数值。
42.s202、当第一采集实例的运行状态信息满足预设条件时,在第一采集实例所在的采集集群池中确定第二采集实例。
43.其中,第二采集实例可以是第一采集实例与第一采集实例的一个或多个副本中的一个副本。例如,在s101之前,创建第一采集实例时,可以同时创建第一采集实例的一个或多个(或者说至少一个)实例,第一采集实例、第一采集实例的一个或多个采集实例、以及其他实例可以组成一个采集集群池,该采集集群池也即第一采集实例所在的采集集群池。示例性地,如上所述,第一采集实例可以部署在kubernetes集群中。在这种情况下,第一采集实例可以基于kubernetes环境创建。例如,可以调用对外暴露的k8s应用程序编程接口(application program interface,api)服务器(server)接口创建第一采集实例、以及第一采集实例的副本,具体创建过程可以参照相关技术所述,此处不再赘述。
44.需要说明的是,上述以s101之前创建第一采集实例的副本为例进行了介绍,可选地,第一采集实例的一个或多个副本也可以在上述s202之前创建。本公开实施例对此不作限制。
45.可选地,第一采集实例的一个或多个副本中的任意一个副本用于与第一采集实例同时采集监控数据。
46.示例性地,以创建了prometheus实例1之后,又创建了prometheus实例1的副本1和副本2为例,假设prometheus实例1用于根据部署的采集任务,采集target 1和target 2的监控数据,则prometheus实例1、副本1、以及副本2可以同时采集target 1和target 2的监控数据,并由执行采集任务的prometheus实例1将采集到的监控数据上传并保存至存储服务器中。
47.可选地,如上所述,运行状态信息包括负载,和/或,监控数据。当运行状态信息为负载时,上述s202中的预设条件包括:负载大于第一负载阈值;当运行状态信息为监控数据时,上述s202中的预设条件包括:监控数据指示第一采集实例采集异常;当运行状态信息为负载和监控数据时,上述s202中的预设条件包括:监控数据指示第一采集实例采集异常;或
者,监控数据指示第一采集实例采集正常、且负载大于第一负载阈值。
48.其中,第一负载阈值可以由管理人员预设。例如,第一负载阈值可以是80%、85%、或则90%等。本公开实施例对第一负载阈值的具体数值不作限制。
49.应理解,一个target可以吐出多达几万行甚至几十万行的监控数据,对于采集实例来说,采集监控数据需要占用cpu、内存、以及网络带宽。如果target吐出的监控数据行数较少,则采集实例的采集压力较小;如果target吐出的监控数据行数较多,则采集实例的采集压力较大。实际情况中由于无法实现估计target吐出的监控数据的行数,就会有可能出现一个采集实例采集较少的监控数据,采集压力较小,造成采集资源浪费的情况;或者也有可能出现另一个采集实例采集大量的监控数据,采集压力较大,可能会出现内存溢出(out of memory,oom)或者其它采集异常,造成采集中断。本公开实施例提供的采集任务的部署方法提供了一种检测采集实例采集压力的机制,可以根据第一采集实例的负载和第一负载阈值的大小关系对部署在第一采集实例上的采集任务进行灵活调度,负载较大的采集实例中的采集任务调度至负载较小的采集中,释放了负载较大的采集实例的部分采集压力,并将负载较大采集实例的部分采集压力转移至负载较小的采集实例中,确保了采集资源的不浪费和采集任务的不中断。
50.可选地,如上所述,第一采集实例所在的采集集群池包括第一采集实例的至少一个副本。在这种情况下,当运行状态信息为监控数据,或者,当运行状态信息为负载和监控数据、预设条件为监控数据指示第一采集实例采集异常时,在第一采集实例所在的采集集群池中确定第二采集实例,包括:从第一采集实例的副本中确定第二采集实例。
51.应理解,第一采集实例的副本可以与第一采集实例同时采集相同的监控数据,在负载压力不大的情况下,监控数据由第一采集实例上传,在负载压力较大的情况下,直接将第一采集实例中的采集任务部署至任意一个副本中,由该副本上传。由于第一采集实例的副本和第一采集实例在同时采集相同的监控数据,当第一采集实例采集异常时,直接由副本上传持续获取的监控数据可以避免采集任务调度至其他实例时造成的采集中断,从而保障了采集任务的不中断。
52.可选地,监控数据指示采集实例采集异常可以包括:监控数据的监控格式与预设数据格式不匹配,和/或,监控数据中断。
53.参照上述监控数据为cpu利用率和内存占用总量为例的监控数据,监控数据可以包括采集监控数据的时间戳。如上所述,prometheus可以通过http周期性抓取被监控的程序吐出来的监控数据,在这种情况下,可以根据采集监控数据的时间戳和周期性抓取监控数据的采集周期来判断采集的监控数据是否中断。
54.例如,以prometheus实例的采集周期为2分钟为例,假设2022年8月7日17:48采集了一次监控数据,当2022年8月7日17:50之后没有获取到监控数据时,可以确定prometheus实例采集的监控数据中断,进而确定prometheus实例采集的监控数据异常。
55.本公开实施例提供的采集任务的部署方法,在第一采集实例采集的监控数据异常的情况下,将第一采集实例中的采集任务部署至第二采集实例,第二采集实例可以继续执行第一采集实例的采集任务,以此保障采集任务的不中断。
56.一种可能的实现方式中,当运行状态信息为负载时,或者,当运行状态信息为负载和监控数据、预设条件为监控数据指示第一采集实例采集正常、且负载大于第一负载阈值
时,在第一采集实例所在的采集集群池中确定第二采集实例,包括:从第一采集实例所在的采集集群池中,获取负载低于第一负载阈值的目标采集实例作为第二采集实例。
57.本公开实施例提供的采集任务的部署方法,在选取分担第一采集实例的采集压力的第二采集实例时,可以选取负载低于第一负载阈值的采集实例作为第二采集实例,选取的第二采集实例的负载压力较小,可以承担额外的采集任务,采用可以承担额外的采集任务的第二采集实例分担第一采集实例的采集压力,可以避免因为第二采集实例负载较高而无法承载额外的采集任务而导致的第一采集实例的采集任务中断的情况。
58.可选地,若第一采集实例所在的采集集群池中,存在负载低于第二负载阈值的采集实例,则从第一采集实例所在的采集集群池中,获取负载低于第一负载阈值的目标采集实例,包括:从负载低于第二负载阈值的采集实例中,确定目标采集实例。
59.其中,第二负载阈值小于第一负载阈值。第二负载阈值也可以由管理人员预设。例如,第二负载阈值为30%、25%、或者20%等。本公开实施例对第二负载阈值的具体数值不作限制。
60.需要说明的是,从负载低于第二负载阈值的采集实例中确定目标采集实例,可以是确定负载低于第二负载阈值的采集实例中负载最低的一个采集实例作为目标采集实例,或者,也可以是确定负载低于第二负载阈值的采集实例中的任意一个采集实例作为目标实例。本技术实施例对此不作限制。
61.本公开实施例提供的采集任务的部署方法,在选取分担第一采集实例的采集压力的第二采集实例时,还可以选取负载低于第二负载阈值的采集实例作为第二采集实例,第二负载阈值小于第一负载阈值,因此选取的第二采集实例的负载压力更小,可承担的采集任务更多,采用负载压力更小的第二采集实例分担第一采集实例的采集压力,进一步保证了采集任务的不中断。
62.可选地,若第一采集实例所在的采集集群池中,不存在负载低于第二负载阈值的采集实例、但存在负载低于第一负载阈值的采集实例,则从第一采集实例所在的采集集群池中,获取负载低于第一负载阈值的目标采集实例,包括:创建一个新的采集实例作为目标采集实例,或者,从存在负载低于第一负载阈值的采集实例中确定目标采集实例。
63.需要说明的是,从存在负载低于第一负载阈值的采集实例中确定目标采集实例,可以是确定负载低于第一负载阈值的采集实例中负载最低的采集实例作为目标采集实例,或者,也可以是确定负载低于第一负载阈值的采集实例中的任意一个采集实例作为目标实例。本技术实施例对此不作限制。
64.可选地,若第一采集实例所在的采集集群池中,不存在负载低于第一负载阈值的采集实例,则从第一采集实例所在的采集集群池中,获取负载低于第一负载阈值的目标采集实例,包括:创建一个新的采集实例作为目标采集实例。
65.本公开实施例提供的采集任务的部署方法,在选取分担第一采集实例的采集压力的第二采集实例时,当第一采集实例所在的采集集群池中的采集实例的负载压力均较高时,还可以自动创建一个新的采集实例来分担第一采集实例的采集压力,该新建的采集实例的负载压力较小,可以承载的采集任务较多,利用该新建的采集实例部署第一采集实例的采集任务可以保障采集任务不中断。
66.s203、将第一采集实例中的至少一个采集任务部署至第二采集实例。
67.一种可能的实现方式中,在将采集任务部署至第二采集实例之前,还可以对部署了采集任务之后的第二采集实例的负载进行预测,在这种情况下,上述s203可以具体包括:确定第一采集实例中需要部署至第二采集实例的目标采集任务;确定目标采集任务部署至第二采集实例后,第二采集实例的预测负载;当第二采集实例的预测负载大于第三负载阈值时,创建一个新的采集实例作为第三采集实例,并将目标采集任务部署至第三采集实例;当第二采集实例的预测负载小于第三负载阈值时,将目标采集任务部署至第二采集实例。
68.其中,第三负载阈值小于或等于第一负载阈值。
69.可选地,确定第二采集实例在部署了目标采集任务之后的预测负载可以利用预设的神经网络模型来实现。例如,在s101之前,该方法还可以获取训练样本集,并基于训练样本集对预设的神经网络进行训练得到负载预测模型,在这种情况下,上述确定目标采集任务部署至第二采集实例后,第二采集实例的预测负载,可以包括:利用负载预测模型预测第二采集实例在部署了目标采集任务之后的预测负载。
70.其中,训练样本集可以包括多个训练样本,每个训练样本可以包括一个采集任务以及标签,标签为采集任务对应的负载。预设的神经网络可以是长短期记忆(long short-term memory,lstm)网络或者其他记忆网络(memory network)等,本公开实施例对此不作限制。
71.本公开实施例提供的采集任务的部署方法,在将采集任务部署至第二采集实例之前,还可以对部署了采集任务之后的第二采集实例的负载进行预测,当预测到部署了第一采集实例的采集任务的第二采集实例的负载较大时,新建第三采集实例来承载第一采集实例的采集任务,可以避免第二采集实例的负载压力较大无法承载第一采集实例的采集任务而导致的第一采集实例的采集任务中断。
72.可选地,确定第一采集实例中需要部署至第二采集实例的目标采集任务,包括:从第一采集实例中确定与第二采集实例中的采集任务具有相同标签的第一目标采集任务;确定第一目标采集任务部署至第二采集实例后,第一采集实例的预测负载;当第一采集实例的预测负载小于第一负载阈值时,将第一目标采集任务作为目标采集任务;当第一采集实例的预测负载大于第一负载阈值时,将第一目标采集任务和第一采集实例中的第二目标采集任务作为目标采集任务。
73.其中,第二目标采集任务的标签与第二采集实例中的采集任务的标签不同,且目标采集任务部署至第二采集实例后,第一采集实例的预测负载小于第一负载阈值。第一采集实例的预测负载的获取方式可以参照上述第二采集实例的预测负载的获取方式,此处不再赘述。
74.应理解,当第一采集实例中的第一目标采集任务部署至第二采集实例后,第一采集实例的预测负载小于第一负载阈值,此时第一采集实例的负载压力较小,优先将具有相同标签的采集任务部署至第二采集实例,从而优先保证具有相同标签的采集任务部署在同一个采集实例中,实现在采集任务调度场景下的汇聚计算,进一步提高了汇聚比。
75.本公开实施例提供的采集任务的部署方法,还可以根据预设条件对采集实例的运行状态信息来对采集任务进行灵活调度,与现有的较为固定的部署配置相比,提高了采集任务部署的灵活性。
76.下面以一个具体的示例对本公开实施例提供的采集任务的部署方法进行示例性
说明。
77.示例性地,本公开实施例提供一种可以实现上述采集任务的部署方法的采集任务的部署系统。
78.图3为本公开实施例提供的采集任务的部署系统的组成示意图。如图3所示,该系统可以包括采集目标(target)310、第一普罗米修斯(prometheus)实例320、第二普罗米修斯实例330、普罗米修斯管理服务器340、以及监控数据处理服务器350。
79.其中,采集目标310可以包括多个,图3中以采集目标1、采集目标2、采集目标3、采集目标4、以及采集目标5为例示出。
80.第一普罗米修斯实例320中部署有采集任务1、采集任务2、以及采集任务3。其中,采集任务1和采集任务2具有相同的标签1。
81.第一普罗米修斯实例320可以按照采集任务1、采集任务2、以及采集任务3指示的采集目标,分别采集采集目标1、采集目标2、以及采集目标3的监控数据,并将采集目标1、采集目标2、以及采集目标3的监控数据上传至监控数据处理服务器350。
82.第二普罗米修斯实例330中部署有采集任务4。
83.第二普罗米修斯实例330可以按照采集任务4指示的采集目标,分别采集采集目标4和采集目标5的监控数据,并将采集目标4和采集目标5的监控数据上传至监控数据处理服务器350并保存。
84.普罗米修斯管理服务器340,用于管理第一普罗米修斯实例320和第二普罗米修斯实例330。
85.例如,在第一普罗米修斯实例320和第二普罗米修斯实例330开始执行采集任务,采集采集目标310的监控数据之前,普罗米修斯管理服务器340可以获取采集任务1的标签为标签1,确定具有相同的标签1的采集任务2,将具有相同标签1的采集任务1和采集任务2部署在同一个普罗米修斯实例也即第一普罗米修斯实例320中。
86.再例如,当第一普罗米修斯实例320的负载大于预设的第一负载阈值时,普罗米修斯管理服务器340可以将具有相同标签的采集任务1,和/或采集任务2部署至第二普罗米修斯实例330中,以使得第一普罗米修斯实例320的负载小于或等于第一负载阈值。
87.又例如,当第一普罗米修斯实例320采集的监控数据异常时,普罗米修斯管理服务器340可以将采集任务1、采集任务2、以及采集任务3均部署至第二普罗米修斯实例330。
88.在一些实施例中,第一普罗米修斯实例320和第二普罗米修斯实例530为同一个普罗米修斯采集集群池中的普罗米修斯实例。
89.在另一些实施例中,第二普罗米修斯实例330为第一普罗米修斯实例320的副本,第二普罗米修斯实例330可以与第一普罗米修斯实例320采集相同的采集目标的监控数据,并由第一普罗米修斯实例320向监控数据处理服务器350上传采集到的监控数据。当第一普罗米修斯实例320的运行状态信息满足预设条件时,普罗米修斯管理服务器340可以将第一普罗米修斯实例320中的采集任务全部部署至第二普罗米修斯实例330。此时由第二普罗米修斯实例330将采集的监控数据上传至监控数据处理服务器350。
90.上述主要从方法的角度对本公开实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术目标应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本公开能够以硬件或
硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术目标可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
91.示例性实施例中,本公开实施例还提供一种采集任务的部署装置,可以用于实现如前述实施例所述的采集任务的部署方法。
92.图4为本公开实施例提供的采集任务的部署装置的组成示意图。如图4所示,该装置可以包括:获取模块401和处理模块402。
93.获取模块401,用于获取第一采集任务的标签,标签是基于预设的亲和性规则生成的。
94.处理模块402,用于根据第一采集任务的标签,确定与第一采集任务标签相同的第二采集任务;将第一采集任务和第二采集任务部署在第一采集实例。
95.一些可能的实施例中,获取模块401,还用于获取第一采集实例的运行状态信息。处理模块402,还用于当第一采集实例的运行状态信息满足预设条件时,在第一采集实例所在的采集集群池中确定第二采集实例;将第一采集实例中的至少一个采集任务部署至第二采集实例。
96.另一些可能的实施例中,运行状态信息包括:负载,和/或,监控数据。当运行状态信息为负载时,预设条件包括:负载大于第一负载阈值;当运行状态信息为监控数据时,预设条件包括:监控数据指示第一采集实例采集异常;当运行状态信息为负载和监控数据时,预设条件包括:监控数据指示第一采集实例采集异常;或者,监控数据指示第一采集实例采集正常、且负载大于第一负载阈值。
97.又一些可能的实施例中,当运行状态信息为负载时,或者,当运行状态信息为负载和监控数据、预设条件为监控数据指示第一采集实例采集正常、且负载大于第一负载阈值时,处理模块402,具体用于从第一采集实例所在的采集集群池中,获取负载低于第一负载阈值的目标采集实例作为第二采集实例。
98.又一些可能的实施例中,若第一采集实例所在的采集集群池中,存在负载低于第二负载阈值的采集实例,则处理模块402,具体用于从负载低于第二负载阈值的采集实例中,确定目标采集实例;其中,第二负载阈值小于第一负载阈值。
99.又一些可能的实施例中,若第一采集实例所在的采集集群池中,不存在负载低于第二负载阈值的采集实例、但存在负载低于第一负载阈值的采集实例,则处理模块402,具体用于创建一个新的采集实例作为目标采集实例,或者,从存在负载低于第一负载阈值的采集实例中确定目标采集实例。
100.又一些可能的实施例中,若第一采集实例所在的采集集群池中,不存在负载低于第一负载阈值的采集实例,则处理模块402,具体用于创建一个新的采集实例作为目标采集实例。
101.又一些可能的实施例中,处理模块402,具体用于确定第一采集实例中需要部署至第二采集实例的目标采集任务;确定目标采集任务部署至第二采集实例后,第二采集实例的预测负载;当第二采集实例的预测负载大于第三负载阈值时,创建一个新的采集实例作为第三采集实例,并将目标采集任务部署至第三采集实例;当第二采集实例的预测负载小于第三负载阈值时,将目标采集任务部署至第二采集实例。
102.又一些可能的实施例中,处理模块402,具体用于从第一采集实例中确定与第二采集实例中的采集任务具有相同标签的第一目标采集任务;确定第一目标采集任务部署至第二采集实例后,第一采集实例的预测负载;当第一采集实例的预测负载小于第一负载阈值时,将第一目标采集任务作为目标采集任务;当第一采集实例的预测负载大于第一负载阈值时,将第一目标采集任务和第一采集实例中的第二目标采集任务作为目标采集任务;其中,第二目标采集任务的标签与第二采集实例中的采集任务的标签不同,且目标采集任务部署至第二采集实例后,第一采集实例的预测负载小于第一负载阈值。
103.又一些可能的实施例中,第一采集实例所在的采集集群池包括所述第一采集实例的至少一个副本;当运行状态信息为监控数据,或者,当运行状态信息为负载和监控数据、预设条件为监控数据指示第一采集实例采集异常时,处理模块402,具体用于从第一采集实例的副本中确定第二采集实例。
104.又一些可能的实施例中,从第一采集实例的副本中确定第二采集实例之前,处理模块402,还用于为第一采集实例创建至少一个副本。
105.又一些可能的实施例中,第一采集实例采集异常,包括:监控数据的数据格式与预设数据格式不匹配;和/或,监控数据中断。需要说明的是,图4中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,还可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
106.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
107.示例性实施例中,电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如以上实施例所述的方法。
108.示例性实施例中,可读存储介质可以是存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行根据以上实施例所述的方法。
109.示例性实施例中,计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现根据以上实施例所述的方法。
110.图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
111.如图5所示,电子设备500包括计算单元501,其可以根据存储在只读存储器(rom)502中的计算机程序或者从存储单元505加载到随机访问存储器(ram)503中的计算机程序,来执行各种适当的动作和处理。在ram 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
112.电子设备500中的多个部件连接至i/o接口505,包括:输入单元506,例如键盘、鼠标等;输出单元505,例如各种类型的显示器、扬声器等;存储单元505,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许电子设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
113.计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如采集任务的部署方法。例如,在一些实施例中,采集任务的部署方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元505。在一些实施例中,计算机程序的部分或者全部可以经由rom 502和/或通信单元509而被载入和/或安装到电子设备500上。当计算机程序加载到ram 503并由计算单元501执行时,可以执行上文描述的采集任务的部署方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行采集任务的部署方法。
114.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
115.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
116.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
117.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的
反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
118.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
119.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
120.尽管在此结合各实施例对本公开进行了描述,然而,在实施所要求保护的本公开过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
121.尽管结合具体特征及其实施例对本公开进行了描述,显而易见的,在不脱离本公开的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本公开的示例性说明,且视为已覆盖本公开范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
122.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献