CN114866551A - Prometheus集群的处理方法、装置、设备及存储介质 - Google Patents
Prometheus集群的处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114866551A CN114866551A CN202210631582.8A CN202210631582A CN114866551A CN 114866551 A CN114866551 A CN 114866551A CN 202210631582 A CN202210631582 A CN 202210631582A CN 114866551 A CN114866551 A CN 114866551A
- Authority
- CN
- China
- Prior art keywords
- prometous
- node
- prometheus
- cluster
- monitoring object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请属于金融领域和云计算领域,具体涉及一种Prometheus集群的处理方法、装置、设备及存储介质。本申请通过遍历Prometheus集群的全量监控对象,确定全量监控对象中的目标监控对象;若已为目标监控对象分配过第一Prometheus节点,则将目标监控对象分配至第一Prometheus节点进行监控处理;若未为目标监控对象分配过Prometheus节点,则确定目标监控对象的负载探测值;根据负载探测值,确定Prometheus集群中是否存在可容纳目标监控对象的第二Prometheus节点;若Prometheus集群中不存在第二Prometheus节点,则在Prometheus集群中增加第三Prometheus节点,并将目标监控对象分配至第三Prometheus节点进行监控处理。本申请可以实现动态对Prometheus集群进行扩容/缩容的目的。
Description
技术领域
本申请涉及金融领域和云计算领域,尤其涉及一种Prometheus集群的处理方法、装置、设备及存储介质。
背景技术
Prometheus是云原生领域使用最为广泛的监控工具。部署有Prometheus的设备即Prometheus节点。其中,单个Prometheus节点已具备较为优秀的监控性能,但随着Kubernetes(简称:k8s)集群的容器数量不断增加,且监控指标的规模不断扩大,单个Prometheus节点的监控性能就会达到瓶颈。为了解决对超大容器规模的k8s集群进行监控的问题,Prometheus集群化的方案被提出和实践。
目前,Prometheus集群化的方案通常是基于配置文件分割的Prometheus集群化,也即,根据业务进行监控任务的分割,Prometheus集群中包括的不同Prometheus节点使用完全独立的采集配置,然后再通过集群联邦将不同Prometheus节点的监控数据聚合。但是这种方案无法动态对Prometheus集群进行扩容/缩容。
发明内容
本申请提供一种Prometheus集群的处理方法、装置、设备及存储介质,用以实现动态对Prometheus集群进行扩容/缩容。
第一方面,本申请提供一种Prometheus集群的处理方法,应用于监控负载控制服务器,该Prometheus集群的处理方法包括:遍历Prometheus集群的全量监控对象,确定全量监控对象中的目标监控对象,Prometheus集群包括Prometheus节点,全量监控对象包括Prometheus节点运行目标进程时所需的资源量;若已为目标监控对象分配过第一Prometheus节点,则将目标监控对象分配至第一Prometheus节点进行监控处理;若未为目标监控对象分配过Prometheus节点,则确定目标监控对象的负载探测值,负载探测值用于确定Prometheus节点运行目标进程时目标监控对象的资源消耗值;根据负载探测值,确定Prometheus集群中是否存在可容纳目标监控对象的第二Prometheus节点;若Prometheus集群中不存在第二Prometheus节点,则在Prometheus集群中增加第三Prometheus节点,并将目标监控对象分配至第三Prometheus节点进行监控处理。
在一种可能的实施方式中,在Prometheus集群中增加第三Prometheus节点时,包括:向Prometheus集群外的电子设备发送Prometheus节点创建请求,Prometheus节点创建请求用于指示电子设备进行Prometheus部署,得到第三Prometheus节点。
在一种可能的实施方式中,还包括:确定Prometheus集群中包括的Prometheus节点运行目标进程时的负载值;确定负载值小于预设阈值的目标Prometheus节点;将目标Prometheus节点监控处理的监控对象迁移至Prometheus集群中满足预设条件的Prometheus节点,预设条件包括负载值大于或者等于预设阈值,且负载值与预设阈值之间的差值最小;向目标Prometheus节点发送Prometheus节点删除请求,Prometheus节点删除请求用于指示目标Prometheus节点去部署Prometheus。
第二方面,本申请提供一种Prometheus集群的处理方法,应用于Prometheus节点,该Prometheus集群的处理方法包括:接收监控负载控制服务器发送的Prometheus节点创建请求,Prometheus节点创建请求是监控负载控制服务器未为第一监控对象分配第一Prometheus节点,且Prometheus集群中不存在满足第一监控对象的负载探测值的第二Prometheus节点发出的,负载探测值用于确定Prometheus节点运行目标进程时监控对象的资源消耗值;根据Prometheus节点创建请求对Prometheus进行部署,得到第三Prometheus节点,第三Prometheus节点用于对第一监控对象进行监控处理。
在一种可能的实施方式中,还包括:确定第三Prometheus节点运行目标进程时的负载值;在负载值小于第一阈值时,接收监控负载控制服务器分配的第二监控对象;在第三Prometheus节点的配置文件中增加第二监控对象,配置文件用于确定Prometheus节点的监控对象;和/或,周期性地向监控负载控制服务器发送第三Prometheus节点的负载状态,负载状态包括第三Prometheus节点运行目标进程时各监控对象的资源消耗值。
在一种可能的实施方式中,还包括:在第三Prometheus节点运行目标进程时的负载值小于第二阈值时,接收监控负载控制服务器发送的Prometheus节点删除请求;根据Prometheus节点创建请求,去部署Prometheus。
第三方面,本申请提供一种Prometheus集群的处理方法,应用于监控负载控制服务器,该Prometheus集群的处理方法包括:确定Prometheus集群中包括的Prometheus节点运行目标进程时的负载值;确定负载值小于预设阈值的目标Prometheus节点;将目标Prometheus节点监控处理的监控对象迁移至Prometheus集群中满足预设条件的Prometheus节点,预设条件包括负载值大于或者等于预设阈值,且负载值与预设阈值之间的差值最小;向目标Prometheus节点发送Prometheus节点删除请求,Prometheus节点删除请求用于指示目标Prometheus节点去部署Prometheus。
第四方面,本申请提供一种Prometheus集群的处理装置,应用于监控负载控制服务器,该Prometheus集群的处理装置包括:遍历模块,用于遍历Prometheus集群的全量监控对象,确定全量监控对象中的目标监控对象,Prometheus集群包括Prometheus节点,全量监控对象包括Prometheus节点运行目标进程时所需的资源量;第一分配模块,用于若已为目标监控对象分配过第一Prometheus节点,则将目标监控对象分配至第一Prometheus节点进行监控处理;第二分配模块,用于若未为目标监控对象分配过Prometheus节点,则确定目标监控对象的负载探测值,负载探测值用于确定Prometheus节点运行目标进程时目标监控对象的资源消耗值;根据负载探测值,确定Prometheus集群中是否存在可容纳目标监控对象的第二Prometheus节点;若Prometheus集群中不存在第二Prometheus节点,则在Prometheus集群中增加第三Prometheus节点,并将目标监控对象分配至第三Prometheus节点进行监控处理。
第五方面,本申请提供一种Prometheus集群的处理装置,应用于Prometheus节点,该Prometheus集群的处理装置包括:接收模块,用于接收监控负载控制服务器发送的Prometheus节点创建请求,Prometheus节点创建请求是监控负载控制服务器未为第一监控对象分配第一Prometheus节点,且Prometheus集群中不存在满足第一监控对象的负载探测值的第二Prometheus节点发出的,负载探测值用于确定Prometheus节点运行目标进程时监控对象的资源消耗值;部署模块,用于根据Prometheus节点创建请求对Prometheus进行部署,得到第三Prometheus节点,第三Prometheus节点用于对第一监控对象进行监控处理。
第六方面,本申请提供一种服务器,包括:处理器,以及与处理器通信连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现第一方面或第三方面的Prometheus集群的处理方法。
第七方面,本申请提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现第二方面的Prometheus集群的处理方法。
第八方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面至第三方面任一项的Prometheus集群的处理方法。
第九方面,本申请实施例提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现第一方面至第三方面任一项的Prometheus集群的处理方法。
本申请提供的Prometheus集群的处理方法、装置、设备及存储介质,通过监控负载控制服务器对Prometheus集群中的每个Prometheus节点进行控制,从而可以实时监控每个Prometheus节点的负载状态,当目标监控对象未分配Prometheus节点,且Prometheus集群中也不存在满足目标监控对象的负载探测值的Prometheus节点时,就需要新增加一个Prometheus节点,然后通过新增加的Prometheus节点对目标监控对象进行监控处理;当Prometheus集群中存在负载值较低的Prometheus节点时,为了避免资源浪费,可以将负载值较低的Prometheus节点中的监控对象迁移至其他Prometheus节点中,然后将负载值较低的Prometheus节点进行删除,这样就可以实现动态对Prometheus集群进行扩容/缩容。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为相关技术提供的Prometheus集群化处理的结构示意图;
图2为本申请实施例提供的Prometheus集群的处理方法的一种场景示意图;
图3为本申请实施例提供的Prometheus集群的处理方法实施例一的流程图;
图4为本申请实施例提供的Prometheus集群的处理方法实施例二的流程图;
图5为本申请实施例提供的Prometheus集群的处理装置实施例一的结构示意图;
图6为本申请实施例提供的Prometheus集群的处理装置实施例二的结构示意图;
图7为本申请实施例提供的一种服务器的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
Kubernetes:也即k8s,容器编排引擎,支持容器的自动化部署、大规模伸缩、应用容器化管理。
Prometheus:开源监控解决方案,用于收集和聚合指标作为时间序列数据。
监控对象:Prometheus中的监控指标。
背景技术中提供的相关技术中,至少存在以下技术问题:
Prometheus是云原生领域使用最为广泛的监控工具。单个Prometheus节点已具备较为优秀的监控性能,但随着k8s集群的容器数量不断增加,且监控指标的规模不断扩大,单个Prometheus节点的监控性能就会达到瓶颈。为了解决对超大容器规模的k8s集群进行监控的问题,Prometheus集群化的方案被提出和实践。目前,Prometheus集群化的方案通常是基于配置文件分割的Prometheus集群化,也即,根据业务进行监控任务的分割,Prometheus集群中包括的不同Prometheus节点使用完全独立的采集配置,然后再通过集群联邦将不同Prometheus节点的监控数据聚合,如图1所示。
图1为相关技术提供的Prometheus集群化处理的结构示意图,在图1中,Prometheus集群中有3个Prometheus节点,分别为Prometheus1,Prometheus2和Prometheus3,其中,Prometheus1对应采集配置文件1,Prometheus2对应采集配置文件2,Prometheus3对应采集配置文件3,Prometheus节点从采集配置文件中读取要监控的指标,Prometheus1,Prometheus2和Prometheus3的监控数据会汇总到Prometheus集群联邦处进行聚合。
但是,基于配置文件分割的Prometheus集群化,由于不同Prometheus节点使用完全独立的采集配置,故各节点的监控负载难以做到均衡,因此,存在节点负载不均衡的问题。此外,由于在使用过程中当监控对象增加或者减少时,无法动态调整Prometheus节点数量,因此,还存在无法动态扩缩容的问题。
针对上述的问题,本申请提出一种Prometheus集群的处理方法,通过监控负载控制服务器对Prometheus集群中的每个Prometheus节点进行控制,从而可以实时监控每个Prometheus节点的负载状态,以实现在Prometheus集群中不存在满足目标监控对象的负载探测值的Prometheus节点时,为目标监控对象新增Prometheus节点,在Prometheus集群中存在负载值较低的Prometheus节点时,将该Prometheus的节点的监控对象迁移之后进行删除,这样就可以实现动态对Prometheus集群进行扩容/缩容。
在一种实施例中,可以在一种应用场景中应用该Prometheus集群的处理方法。图2为本申请实施例提供的Prometheus集群的处理方法的一种场景示意图,如图2所示,Prometheus集群中包括了三个Prometheus节点,分别为Prometheus1,Prometheus2和Prometheus3,每个Prometheus节点中设置有配置文件和监控负载执行模块。Prometheus节点通过监控负载执行模块读取配置文件中的监控对象,确定需要监控哪些指标以及监控这些指标的频率。
在上述场景中,用户可以先向监控负载控制服务器下发全量监控对象,以确定Prometheus集群需要监控的所有指标,监控负载控制服务器在获取到全量监控对象之后,对全量监控对象进行遍历,确定出目标监控对象;然后确定是否已为该目标监控对象分配过Prometheus节点;若已为该目标监控对象分配过Prometheus节点,则监控负载控制服务器将目标监控对象分配给该Prometheus节点进行监控处理即可;若未为该目标监控对象分配过Prometheus节点,则监控负载控制服务器需要确定Prometheus集群中是否存在可以容纳该目标监控对象的Prometheus节点;若Prometheus集群中存在可以容纳该目标监控对象的Prometheus节点,则监控负载控制服务器将目标监控对象分配给该Prometheus节点进行监控处理;若Prometheus集群中不存在可以容纳该目标监控对象的Prometheus节点,则监控负载控制服务器需要扩容新Prometheus节点,然后将目标监控对象分配给新Prometheus节点进行监控处理。
在上述场景中,Prometheus节点中设置的监控负载执行模块可以周期性的将对应的Prometheus节点的负载情况上报给监控负载控制服务器,监控负载控制服务器在确定Prometheus集群中存在负载值较小的Prometheus节点时,可以将负载值较小的Prometheus节点的监控对象迁移至其他的Prometheus节点,然后将负载值较小的Prometheus节点进行删除,从而避免资源浪费。因此,本申请的方案可以实现动态对Prometheus集群进行扩容/缩容。
结合上述场景,下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请提供一种Prometheus集群的处理方法,该方法应用于监控负载控制服务器。图3为本申请实施例提供的Prometheus集群的处理方法实施例一的流程图,如图3所示,该方法包括以下步骤:
S301:遍历Prometheus集群的全量监控对象,确定全量监控对象中的目标监控对象。
在该步骤中,Prometheus集群包括Prometheus节点,全量监控对象包括Prometheus节点运行目标进程时所需的资源量,比如,中央处理器(central processingunit,简称CPU)资源、内存资源等。
可选地,用户可以周期性的向监控负载控制服务器下发Prometheus集群的全量监控对象,该全量监控对象可以以列表形式存在,以便于监控负载控制服务器可以确定Prometheus集群需要监控哪些指标。监控负载控制服务器可以周期性的获取全量监控对象,并对全量监控对象进行遍历,确定出当前需要处理的目标监控对象。
S302:若已为目标监控对象分配过第一Prometheus节点,则将目标监控对象分配至第一Prometheus节点进行监控处理。
在该步骤中,Prometheus节点可以存储监控对象,并对监控对象进行监控。Prometheus节点也可以称为Prometheus分片。监控负载控制服务器在确定出目标监控对象之后,可以先判断是否已为该目标监控对象分配过第一Prometheus节点,若已为该目标监控对象分配过第一Prometheus节点,则继续将目标监控对象分配至第一Prometheus节点进行监控处理。
S303:若未为目标监控对象分配过Prometheus节点,则确定目标监控对象的负载探测值;根据负载探测值,确定Prometheus集群中是否存在可容纳目标监控对象的第二Prometheus节点;若Prometheus集群中不存在第二Prometheus节点,则在Prometheus集群中增加第三Prometheus节点,并将目标监控对象分配至第三Prometheus节点进行监控处理。
在该步骤中,负载探测值用于确定Prometheus节点运行目标进程时目标监控对象的资源消耗值。
可选地,若监控负载控制服务器确定未为该目标监控对象分配过第一Prometheus节点,则需要确定出该目标监控对象的负载探测值,以便于获取Prometheus节点在运行目标进程时,该目标监控对象所需要的资源消耗值,这样就可以确定Prometheus节点当前的负载值是否可以容纳该目标监控对象。
可选地,若Prometheus集群中存在可以容纳该目标监控对象的第二Prometheus节点,则监控负载控制服务器可以将该目标监控对象分配至第二Prometheus节点进行监控处理;若Prometheus集群中不存在可以容纳该目标监控对象的第二Prometheus节点,则说明需要对Prometheus集群进行扩容,也即,在Prometheus集群中增加第三Prometheus节点,然后将目标监控对象分配给新增加的第三Prometheus节点进行监控处理。
本实施例提供的Prometheus集群的处理方法,当目标监控对象未分配Prometheus节点,且Prometheus集群中也不存在满足目标监控对象的负载探测值的Prometheus节点时,就需要通过监控负载控制服务器在Prometheus集群中新增加一个Prometheus节点,然后通过新增加的Prometheus节点对目标监控对象进行监控处理,这样就可以实现动态对Prometheus集群进行扩容。
在一种实施例中,在Prometheus集群中增加第三Prometheus节点时,包括:向Prometheus集群外的电子设备发送Prometheus节点创建请求,Prometheus节点创建请求用于指示电子设备进行Prometheus部署,得到第三Prometheus节点。
在该方案中,Prometheus集群外的电子设备可以是第三Prometheus节点中包括的监控负载执行设备,当需要在Prometheus集群中增加第三Prometheus节点时,可以向Prometheus集群外的电子设备发送Prometheus节点创建请求,以便于Prometheus集群外的电子设备可以部署Prometheus,从而得到第三Prometheus节点,进而可以实现动态对Prometheus集群进行扩容。
在一种实施例中,还包括:确定Prometheus集群中包括的Prometheus节点运行目标进程时的负载值;确定负载值小于预设阈值的目标Prometheus节点;将目标Prometheus节点监控处理的监控对象迁移至Prometheus集群中满足预设条件的Prometheus节点,预设条件包括负载值大于或者等于预设阈值,且负载值与预设阈值之间的差值最小;向目标Prometheus节点发送Prometheus节点删除请求,Prometheus节点删除请求用于指示目标Prometheus节点去部署Prometheus。
在该方案中,Prometheus节点中包括的监控负载执行设备可以周期性的向监控负载控制服务器上报对应的Prometheus节点的负载情况,监控负载控制服务器在确定了Prometheus集群中每个Prometheus节点的负载值之后,可以将负载值小于预设阈值的Prometheus节点确定为负载值较小的Prometheus节点;若Prometheus集群中负载值较小的Prometheus节点的数量较多,比如,超过Prometheus集群中所有Prometheus节点的总数量的一半,则监控负载控制服务器可以将负载值较小的Prometheus节点上的监控对象进行迁移,从而不仅可以避免Prometheus节点资源的浪费,还可以实现动态对Prometheus集群进行缩容。
可选地,监控负载控制服务器在将负载值较小的Prometheus节点上的监控对象进行迁移时,可以先确定Prometheus集群中负载值大于或者等于预设阈值的Prometheus节点,然后在负载值大于或者等于预设阈值的Prometheus节点中选择负载值最小的目标Prometheus节点,将负载值较小的Prometheus节点上的监控对象迁移至该目标Prometheus节点,直到该目标Prometheus节点的负载值达到规定阈值,则再在剩下的负载值大于或者等于预设阈值的Prometheus节点中选择下一个目标Prometheus节点,然后将剩下的监控对象迁移至该下一个目标Prometheus节点中,直到所有的监控对象迁移完毕,可以实现Prometheus集群中各个Prometheus节点负载的均衡。
本申请还提供一种Prometheus集群的处理方法,该方法应用于监控负载控制服务器。该方法包括:确定Prometheus集群中包括的Prometheus节点运行目标进程时的负载值;确定负载值小于预设阈值的目标Prometheus节点;将目标Prometheus节点监控处理的监控对象迁移至Prometheus集群中满足预设条件的Prometheus节点,预设条件包括负载值大于或者等于预设阈值,且负载值与预设阈值之间的差值最小;向目标Prometheus节点发送Prometheus节点删除请求,Prometheus节点删除请求用于指示目标Prometheus节点去部署Prometheus。
在该方案中,监控负载控制服务器对Prometheus集群的缩容过程可以在对Prometheus集群进行扩容之后进行,也可以单独进行。在单独进行Prometheus集群的缩容过程时,监控负载控制服务器可以周期性的获取Prometheus集群中当前已存在的所有Prometheus节点的负载值,然后将负载值较小的Prometheus节点的监控对象进行迁移之后,再将负载值较小的Prometheus节点进行删除,从而实现动态对Prometheus集群进行缩容,并实现Prometheus集群中各个Prometheus节点负载的均衡,另外还避免了资源浪费。具体实现方式在前文中已说明,此处不再重复阐述。
本申请还提供一种Prometheus集群的处理方法,该方法应用于Prometheus节点。图4为本申请实施例提供的Prometheus集群的处理方法实施例二的流程图,如图4所示,该方法包括以下步骤:
S401:接收监控负载控制服务器发送的Prometheus节点创建请求。
在该步骤中,Prometheus节点创建请求是监控负载控制服务器未为第一监控对象分配第一Prometheus节点,且Prometheus集群中不存在满足第一监控对象的负载探测值的第二Prometheus节点发出的,负载探测值用于确定Prometheus节点运行目标进程时监控对象的资源消耗值。
可选地,当Prometheus节点为第一Prometheus节点时,由于监控负载控制服务器已为第一Prometheus节点分配过第一监控对象,因此,第一Prometheus节点只需要接收监控负载控制服务器分配的第一监控对象,对第一监控对象进行存储并进行监控处理即可。
可选地,当Prometheus节点为第二Prometheus节点时,由于第二Prometheus节点可以满足第一监控对象的负载探测值,也即,第二Prometheus节点可以容纳第一监控对象,因此,第二Prometheus节点只需要接收监控负载控制服务器分配的第一监控对象,对第一监控对象进行存储并进行监控处理即可。
可选地,当Prometheus节点为将要新增进Prometheus集群中的第三Prometheus节点时,该第三Prometheus节点需要接收监控负载控制服务器发送的Prometheus节点创建请求,以便于可以部署Prometheus。
S402:根据Prometheus节点创建请求对Prometheus进行部署,得到第三Prometheus节点。
在该步骤中,第三Prometheus节点用于对第一监控对象进行监控处理。
可选地,可以通过电子设备接收监控负载控制服务器发送的Prometheus节点创建请求,该电子设备可以为第三Prometheus节点的监控负载执行设备。在接收到Prometheus节点创建请求之后,就可以进行Prometheus的部署,从而得到第三Prometheus节点。
本申请实施例提供的Prometheus集群的处理方法,在需要新增Prometheus节点,时,通过监控负载控制服务器发送的Prometheus节点创建请求,就可以进行Prometheus部署,从而得到新增加的Prometheus节点,因此,可以实现动态对Prometheus集群进行扩容。
在一种实施例中,还包括:确定第三Prometheus节点运行目标进程时的负载值;在负载值小于第一阈值时,接收监控负载控制服务器分配的第二监控对象;在第三Prometheus节点的配置文件中增加第二监控对象,配置文件用于确定Prometheus节点的监控对象。
在该方案中,第三Prometheus节点中的监控负载执行设备可以实时监控第三Prometheus节点的负载值,并将第三Prometheus节点的负载值上报给监控负载控制服务器。监控负载控制服务器在确定第三Prometheus节点的负载值小于第一阈值之后,可以认为第三Prometheus节点当前的负载值较小,可以继续分配其他的监控对象,从而避免的Prometheus节点资源的浪费。因此,可以接收监控负载控制服务器分配的第二监控对象。
可选地,Prometheus节点中的配置文件也可以称为采集配置文件,Prometheus节点中的配置文件可以用来确定Prometheus节点需要监控的监控对象,以及对监控对象进行监控的频率,因此,第三Prometheus节点在接收到第二监控对象之后,可以将第二监控对象增加到配置文件中,以对第三Prometheus节点的配置文件进行维护,实现动态调节第三Prometheus节点的监控对象。
在一种实施例中,还包括:周期性地向监控负载控制服务器发送第三Prometheus节点的负载状态,负载状态包括第三Prometheus节点运行目标进程时各监控对象的资源消耗值。
在该方案中,可以通过第三Prometheus节点的监控负载执行设备周期性的向监控负载控制服务器发送第三Prometheus节点的负载状态。
可选地,每个Prometheus节点的监控负载执行设备都可以周期性的向监控负载控制服务器发送对应的Prometheus节点的负载状态,以便于监控负载控制服务器可以根据Prometheus节点的负载状态,确定每个Prometheus节点的负载能力,从而实现动态的对Prometheus集群进行扩容/缩容。
在一种实施例中,还包括:在第三Prometheus节点运行目标进程时的负载值小于第二阈值时,接收监控负载控制服务器发送的Prometheus节点删除请求;根据Prometheus节点创建请求,去部署Prometheus。
在该方案中,当第三Prometheus节点的监控负载执行设备监控到第三Prometheus节点的负载值小于第二阈值时,将第三Prometheus节点的负载值上报至监控负载控制服务器,以便于监控负载控制服务器可以在综合考虑到Prometheus集群中的所有Prometheus节点的负载值之后,为了避免资源浪费,向第三Prometheus节点以及其他负载量小于第二阈值的Prometheus节点发送Prometheus节点删除请求,从而实现了动态对Prometheus集群进行缩容。
本实施例提供的Prometheus集群的处理方法,通过监控负载控制服务器对Prometheus集群中的每个Prometheus节点进行控制,从而可以实时监控每个Prometheus节点的负载状态,当目标监控对象未分配Prometheus节点,且Prometheus集群中也不存在满足目标监控对象的负载探测值的Prometheus节点时,就需要新增加一个Prometheus节点,然后通过新增加的Prometheus节点对目标监控对象进行监控处理;当Prometheus集群中存在负载值较低的Prometheus节点时,为了避免资源浪费,可以将负载值较低的Prometheus节点中的监控对象迁移至其他Prometheus节点中,然后将负载值较低的Prometheus节点进行删除,这样就可以实现动态对Prometheus集群进行扩容/缩容,同时,还可以实现Prometheus集群中各个Prometheus节点负载的均衡。
从总体上来说,本申请提供的技术方案,是一种既可以实现动态对Prometheus集群进行扩容/缩容,还可以实现Prometheus集群中各个Prometheus节点负载的均衡的技术方案。
本申请实施例还提供一种Prometheus集群的处理装置,应用于监控负载控制服务器。图5为本申请实施例提供的Prometheus集群的处理装置实施例一的结构示意图,如图5所示,该Prometheus集群的处理装置500包括:
遍历模块501,用于遍历Prometheus集群的全量监控对象,确定全量监控对象中的目标监控对象,Prometheus集群包括Prometheus节点,全量监控对象包括Prometheus节点运行目标进程时所需的资源量;
第一分配模块502,用于若已为目标监控对象分配过第一Prometheus节点,则将目标监控对象分配至第一Prometheus节点进行监控处理;
第二分配模块503,用于若未为目标监控对象分配过Prometheus节点,则确定目标监控对象的负载探测值,负载探测值用于确定Prometheus节点运行目标进程时目标监控对象的资源消耗值;根据负载探测值,确定Prometheus集群中是否存在可容纳目标监控对象的第二Prometheus节点;若Prometheus集群中不存在第二Prometheus节点,则在Prometheus集群中增加第三Prometheus节点,并将目标监控对象分配至第三Prometheus节点进行监控处理。
可选的,第二分配模块503在Prometheus集群中增加第三Prometheus节点时,可以具体用于:向Prometheus集群外的电子设备发送Prometheus节点创建请求,Prometheus节点创建请求用于指示电子设备进行Prometheus部署,得到第三Prometheus节点。
可选的,该Prometheus集群的处理装置500还包括:删除模块(未示出),该删除模块可以具体用于:确定Prometheus集群中包括的Prometheus节点运行目标进程时的负载值;确定负载值小于预设阈值的目标Prometheus节点;将目标Prometheus节点监控处理的监控对象迁移至Prometheus集群中满足预设条件的Prometheus节点,预设条件包括负载值大于或者等于预设阈值,且负载值与预设阈值之间的差值最小;向目标Prometheus节点发送Prometheus节点删除请求,Prometheus节点删除请求用于指示目标Prometheus节点去部署Prometheus。
本实施例提供的Prometheus集群的处理装置,用于执行前述方法实施例中的应用于监控负载控制服务器的Prometheus集群的处理方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
本申请实施例还提供一种Prometheus集群的处理装置,应用于Prometheus节点。图6为本申请实施例提供的Prometheus集群的处理装置实施例二的结构示意图,如图6所示,该Prometheus集群的处理装置600包括:
接收模块601,用于接收监控负载控制服务器发送的Prometheus节点创建请求,Prometheus节点创建请求是监控负载控制服务器未为第一监控对象分配第一Prometheus节点,且Prometheus集群中不存在满足第一监控对象的负载探测值的第二Prometheus节点发出的,负载探测值用于确定Prometheus节点运行目标进程时监控对象的资源消耗值;
部署模块602,用于根据Prometheus节点创建请求对Prometheus进行部署,得到第三Prometheus节点,第三Prometheus节点用于对第一监控对象进行监控处理。
可选的,该Prometheus集群的处理装置600还包括:第一处理模块(未示出),该第一处理模块可以具体用于:确定第三Prometheus节点运行目标进程时的负载值;在负载值小于第一阈值时,接收监控负载控制服务器分配的第二监控对象;在第三Prometheus节点的配置文件中增加第二监控对象,配置文件用于确定Prometheus节点的监控对象;和/或,周期性地向监控负载控制服务器发送第三Prometheus节点的负载状态,负载状态包括第三Prometheus节点运行目标进程时各监控对象的资源消耗值。
可选的,该Prometheus集群的处理装置600还包括:第二处理模块(未示出),该第二处理模块可以具体用于:在第三Prometheus节点运行目标进程时的负载值小于第二阈值时,接收监控负载控制服务器发送的Prometheus节点删除请求;根据Prometheus节点创建请求,去部署Prometheus。
本实施例提供的Prometheus集群的处理装置,用于执行前述方法实施例中的应用于Prometheus节点的Prometheus集群的处理方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
本申请实施例还提供一种服务器。图7为本申请实施例提供的一种服务器的结构示意图,如图7所示,服务器700可以包括处理组件701,其进一步包括一个或多个处理器,以及由存储器702所代表的存储器资源,用于存储可由处理组件701执行的计算机执行指令,例如应用程序。存储器702中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件701被配置为执行计算机执行指令,以执行上述应用于监控负载控制服务器的Prometheus集群的处理方法的实施例。
服务器700还可以包括一个电源组件703,电源组件703被配置为执行服务器700的电源管理,一个有线或无线网络接口704被配置为将函数计算平台700连接到网络,和一个输入输出(I/O)接口705。服务器700可以操作基于存储在存储器702的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请实施例还提供一种电子设备。图8为本申请实施例提供的一种电子设备的结构示意图,如图8所示,该电子设备800包括:
处理器811,与处理器811通信连接的存储器812,以及交互接口813;
存储器812用于存储处理器811可执行的计算机执行指令;
其中,处理器811配置为经由执行存储器812存储的计算机执行指令,以实现上述应用于Prometheus节点的Prometheus集群的处理方法的技术方案。
在上述电子设备800中,存储器812,处理器811,以及交互接口813之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线连接。存储器812中存储有实现应用于Prometheus节点的Prometheus集群的处理方法的计算机执行指令,包括至少一个可以软件或固件的形式存储于存储器中的软件功能模块,处理器811通过运行存储在存储器812内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器可以是,但不限于,随机存取存储器(Random Access Memory,简称:RAM),只读存储器(Read Only Memory,简称:ROM),可编程只读存储器(Programmable Read-OnlyMemory,简称:PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,简称:EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,简称:EEPROM)等。其中,存储器用于存储程序,处理器在接收到执行指令后,执行程序。进一步地,上述存储器内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
处理器可以是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称:CPU)、网络处理器(NetworkProcessor,简称:NP)等。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现前述方法实施例中提供的Prometheus集群的处理方法的技术方案。
本申请实施例还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时用于实现前述方法实施例中提供的Prometheus集群的处理方法的技术方案。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由本申请的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (12)
1.一种Prometheus集群的处理方法,其特征在于,应用于监控负载控制服务器,所述处理方法包括:
遍历所述Prometheus集群的全量监控对象,确定所述全量监控对象中的目标监控对象,所述Prometheus集群包括Prometheus节点,所述全量监控对象包括Prometheus节点运行目标进程时所需的资源量;
若已为所述目标监控对象分配过第一Prometheus节点,则将所述目标监控对象分配至所述第一Prometheus节点进行监控处理;
若未为所述目标监控对象分配过Prometheus节点,则确定所述目标监控对象的负载探测值,所述负载探测值用于确定Prometheus节点运行所述目标进程时所述目标监控对象的资源消耗值;根据所述负载探测值,确定所述Prometheus集群中是否存在可容纳所述目标监控对象的第二Prometheus节点;若所述Prometheus集群中不存在所述第二Prometheus节点,则在所述Prometheus集群中增加第三Prometheus节点,并将所述目标监控对象分配至所述第三Prometheus节点进行监控处理。
2.根据权利要求1所述的Prometheus集群的处理方法,其特征在于,在所述Prometheus集群中增加第三Prometheus节点时,包括:
向所述Prometheus集群外的电子设备发送Prometheus节点创建请求,所述Prometheus节点创建请求用于指示所述电子设备进行Prometheus部署,得到所述第三Prometheus节点。
3.根据权利要求1或2所述的Prometheus集群的处理方法,其特征在于,还包括:
确定所述Prometheus集群中包括的Prometheus节点运行所述目标进程时的负载值;
确定所述负载值小于预设阈值的目标Prometheus节点;
将所述目标Prometheus节点监控处理的监控对象迁移至所述Prometheus集群中满足预设条件的Prometheus节点,所述预设条件包括所述负载值大于或者等于所述预设阈值,且所述负载值与所述预设阈值之间的差值最小;
向所述目标Prometheus节点发送Prometheus节点删除请求,所述Prometheus节点删除请求用于指示所述目标Prometheus节点去部署Prometheus。
4.一种Prometheus集群的处理方法,其特征在于,应用于Prometheus节点,所述Prometheus集群包括所述Prometheus节点,所述处理方法包括:
接收监控负载控制服务器发送的Prometheus节点创建请求,所述Prometheus节点创建请求是所述监控负载控制服务器未为第一监控对象分配第一Prometheus节点,且所述Prometheus集群中不存在满足所述第一监控对象的负载探测值的第二Prometheus节点发出的,所述负载探测值用于确定Prometheus节点运行目标进程时监控对象的资源消耗值;
根据所述Prometheus节点创建请求对Prometheus进行部署,得到第三Prometheus节点,所述第三Prometheus节点用于对所述第一监控对象进行监控处理。
5.根据权利要求4所述的Prometheus集群的处理方法,其特征在于,还包括:
确定所述第三Prometheus节点运行所述目标进程时的负载值;在所述负载值小于第一阈值时,接收所述监控负载控制服务器分配的第二监控对象;在所述第三Prometheus节点的配置文件中增加所述第二监控对象,所述配置文件用于确定Prometheus节点的监控对象;
和/或,周期性地向所述监控负载控制服务器发送所述第三Prometheus节点的负载状态,所述负载状态包括所述第三Prometheus节点运行所述目标进程时各监控对象的资源消耗值。
6.根据权利要求4或5所述的Prometheus集群的处理方法,其特征在于,还包括:
在所述第三Prometheus节点运行所述目标进程时的负载值小于第二阈值时,接收所述监控负载控制服务器发送的Prometheus节点删除请求;根据所述Prometheus节点创建请求,去部署Prometheus。
7.一种Prometheus集群的处理装置,其特征在于,应用于监控负载控制服务器,所述处理装置包括:
遍历模块,用于遍历所述Prometheus集群的全量监控对象,确定所述全量监控对象中的目标监控对象,所述Prometheus集群包括Prometheus节点,所述全量监控对象包括Prometheus节点运行目标进程时所需的资源量;
第一分配模块,用于若已为所述目标监控对象分配过第一Prometheus节点,则将所述目标监控对象分配至所述第一Prometheus节点进行监控处理;
第二分配模块,用于若未为所述目标监控对象分配过Prometheus节点,则确定所述目标监控对象的负载探测值,所述负载探测值用于确定Prometheus节点运行所述目标进程时所述目标监控对象的资源消耗值;根据所述负载探测值,确定所述Prometheus集群中是否存在可容纳所述目标监控对象的第二Prometheus节点;若所述Prometheus集群中不存在所述第二Prometheus节点,则在所述Prometheus集群中增加第三Prometheus节点,并将所述目标监控对象分配至所述第三Prometheus节点进行监控处理。
8.一种Prometheus集群的处理装置,其特征在于,应用于Prometheus节点,所述处理装置包括:
接收模块,用于接收监控负载控制服务器发送的Prometheus节点创建请求,所述Prometheus节点创建请求是所述监控负载控制服务器未为第一监控对象分配第一Prometheus节点,且所述Prometheus集群中不存在满足所述第一监控对象的负载探测值的第二Prometheus节点发出的,所述负载探测值用于确定Prometheus节点运行目标进程时监控对象的资源消耗值;
部署模块,用于根据所述Prometheus节点创建请求对Prometheus进行部署,得到第三Prometheus节点,所述第三Prometheus节点用于对所述第一监控对象进行监控处理。
9.一种服务器,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至3任一项所述的Prometheus集群的处理方法。
10.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求4至6任一项所述的Prometheus集群的处理方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至6任一项所述的Prometheus集群的处理方法。
12.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的Prometheus集群的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210631582.8A CN114866551A (zh) | 2022-06-06 | 2022-06-06 | Prometheus集群的处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210631582.8A CN114866551A (zh) | 2022-06-06 | 2022-06-06 | Prometheus集群的处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114866551A true CN114866551A (zh) | 2022-08-05 |
Family
ID=82624019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210631582.8A Pending CN114866551A (zh) | 2022-06-06 | 2022-06-06 | Prometheus集群的处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114866551A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965879A (zh) * | 2021-03-17 | 2021-06-15 | 北京奇艺世纪科技有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN113051131A (zh) * | 2021-03-23 | 2021-06-29 | 北京沃东天骏信息技术有限公司 | 采集端、管理控制平台、Prometheus服务调整方法及系统 |
WO2021184587A1 (zh) * | 2020-03-18 | 2021-09-23 | 平安科技(深圳)有限公司 | 基于Prometheus的私有云监控方法、装置、计算机设备及存储介质 |
-
2022
- 2022-06-06 CN CN202210631582.8A patent/CN114866551A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021184587A1 (zh) * | 2020-03-18 | 2021-09-23 | 平安科技(深圳)有限公司 | 基于Prometheus的私有云监控方法、装置、计算机设备及存储介质 |
CN112965879A (zh) * | 2021-03-17 | 2021-06-15 | 北京奇艺世纪科技有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN113051131A (zh) * | 2021-03-23 | 2021-06-29 | 北京沃东天骏信息技术有限公司 | 采集端、管理控制平台、Prometheus服务调整方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11106560B2 (en) | Adaptive thresholds for containers | |
US11102281B2 (en) | Tool for managing and allocating resources in a clustered computing environment | |
CN110941481A (zh) | 资源调度方法、装置及系统 | |
US8191069B2 (en) | Method of monitoring performance of virtual computer and apparatus using the method | |
US9483288B2 (en) | Method and system for running a virtual appliance | |
US9244737B2 (en) | Data transfer control method of parallel distributed processing system, parallel distributed processing system, and recording medium | |
US8739169B2 (en) | Method for monitoring operating experiences of images to improve workload optimization in cloud computing environments | |
CN107656807B (zh) | 一种虚拟资源的自动弹性伸缩方法及装置 | |
CN111796908B (zh) | 一种资源自动弹性伸缩的系统、方法及云平台 | |
CN105049268A (zh) | 分布式计算资源分配系统和任务处理方法 | |
WO2015001850A1 (ja) | タスク割り当て判定装置、制御方法、及びプログラム | |
KR101696698B1 (ko) | 상호 의존 관계가 있는 컴포넌트 분배 및 관리 방법 | |
US20210105322A1 (en) | Distributed storage system and data migration method | |
CN111522636A (zh) | 应用容器的调整方法、调整系统、计算机可读介质及终端设备 | |
CN111526031A (zh) | 一种业务虚拟网络功能vnf的扩缩容方法及设备 | |
US20120144389A1 (en) | Optimizing virtual image deployment for hardware architecture and resources | |
CN112698952A (zh) | 计算资源统一管理方法、装置、计算机设备及存储介质 | |
CN116149846A (zh) | 一种应用性能优化方法、装置、电子设备及存储介质 | |
CN110389825B (zh) | 管理专用处理资源的方法、设备和计算机程序产品 | |
CN109960579B (zh) | 一种调整业务容器的方法及装置 | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
CN112214288B (zh) | 基于Kubernetes集群的Pod调度方法、装置、设备和介质 | |
CN114116173A (zh) | 动态调整任务分配的方法、装置和系统 | |
CN117369990A (zh) | 一种算力资源调度方法及装置、系统、设备、存储介质 | |
CN114866551A (zh) | Prometheus集群的处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |