System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于hashmod的prometheus-agent分片采集模式管理方法技术_技高网

一种基于hashmod的prometheus-agent分片采集模式管理方法技术

技术编号:40903911 阅读:2 留言:0更新日期:2024-04-18 14:35
本发明专利技术提供一种基于hashmod的prometheus‑agent分片采集模式管理方法,涉及存储技术领域,包括以下步骤:S1、建立资源对象:初始化一个config‑map,并设置对应参数。通过本申请步骤可做到agent自动感知节点数量,并且自动修改配置参数,整个过程无需人工干预,prometheus‑agent分片采集模式下共享同一份配置文件,prometheus‑agent分片采集模式下扩缩容无需人工干预,方便管理和部署基于hashmod的prometheus‑agent分片采集方案,修改采集配置的时候只需要改动一次配置文件,agent扩缩容的时候无需手工修改配置。

【技术实现步骤摘要】

本专利技术涉及存储,具体为一种基于hashmod的prometheus-agent分片采集模式管理方法


技术介绍

1、hashmod是一个用于将输入(如字符串)映射到给定模数(如质数)的散列函数,这种映射通常用于在哈希表中创建散列地址,以便通过键值快速访问记录,hashmod通过使用模运算来确保哈希地址在给定的范围内。

2、prometheus-agent是prometheus生态里面的一个模块,专门用来抓取监控数据发送到远端,本地不存储,是一个无状态的模块。

3、在超大规模的监控场景下面,单个agent无法把所有targets全部拉取完、因此需要创建多个agent进行拉取,prometheus-agent本身也是支持多个agent同时工作的,只需要在配置文件里面新增hashmode配置就可以做到把多个targets打散到各个采集agent里面。

4、但是这种模式问题在于当agent扩缩容、修改采集配置的时候需要手动一个个去改配置,当遇到agent数量很多、需要频繁扩所容、需要频繁修改抓取任务、某个agent宕掉这些场景的时候,手动改配置是极其困难的事情

5、例如:当新增一个节点的时候前面所有节点的modulus、hashmod值都得加1。当缩掉其中某一个节点的时候所有modulus都得减1,部分hashmod值保持不变,部分得减1,可见这操作极其繁琐。

6、为了解决多个实例分片采集带来的扩缩容和配置修改问题,本专利技术提供一种多agent共享同一个配置文件,自动感知集群agent数量,当agent数量变化的时候自动更新配置文件的方法,能力和特性包括:

7、(1)如何自动感知prometheus-agent数量变化;

8、(2)如何自动更新prometheus-agent配置文件;

9、(3)多个prometheus-agent共享同一份配置文件。


技术实现思路

1、本专利技术提供的专利技术目的在于提供一种基于hashmod的prometheus-agent分片采集模式管理方法。通过本申请步骤可做到agent自动感知节点数量,并且自动修改配置参数,整个过程无需人工干预,prometheus-agent分片采集模式下共享同一份配置文件,prometheus-agent分片采集模式下扩缩容无需人工干预,方便管理和部署基于hashmod的prometheus-agent分片采集方案,修改采集配置的时候只需要改动一次配置文件,agent扩缩容的时候无需手工修改配置,多个agent能共享一份配置,agent能自动感知数量变化,当抓取配置有变更只需要修改一次配置文件。

2、为了实现上述的效果,本专利技术提供如下技术方案:一种基于hashmod的prometheus-agent分片采集模式管理方法,包括以下步骤:

3、步骤一、建立资源对象:初始化一个config-map,并设置对应参数。

4、步骤二、部署agent:根据config-map的信息进行agent的加载,并且进行master竞选。

5、步骤三、新增httphandle:用于修改实例内存中config-map的信息。

6、步骤四、节点判断:判断竞选的结果,并根据判断结果进行对应的处理。

7、步骤五、使用:判断当前etcd有多少个agent实例,并根据实例的变化进行对应的运算。

8、步骤六、数据更新:根据运算结果,对config-map内的字段进行对应的修改。

9、进一步的,在步骤一中,所述config-map中需要设置参数的模块为hashmod和modulus,所述hashmod和modulus的参数分别设置为0和1。

10、进一步的,在步骤二中,所述config-map信息加载到agent的内存后向etcd注册ip和port端口信息。

11、进一步的,在步骤四中,所述竞选的结果若是master节点则开始监听节点数量变化。

12、进一步的,在步骤四中,所述竞选的结果若不是master节点,则等待master节点对自己发出修改配置文件的请求。

13、进一步的,在步骤五中,每当所述agent实例的个数发生变化,master节点则会获取到所有节点ip和端口信息。

14、进一步的,在步骤五中,所述master节点获取到所有ip和端口信息后进行取模运算,得到取模后的值作为hashmod参数的值。

15、进一步的,所述步骤五中,把节点总数作为modulus的值,遍历所有节点,请求修改config-map的handle。

16、进一步的,在步骤六中,所述config-map内的字段进行对应的修改的模块为modulus和hashmod。

17、进一步的,在步骤六中,所述config-map内的字段进行对应修改后开始数据拉取操作。

18、本专利技术提供了一种基于hashmod的prometheus-agent分片采集模式管理方法,具备以下有益效果:通过本申请步骤可做到agent自动感知节点数量,并且自动修改配置参数,整个过程无需人工干预,prometheus-agent分片采集模式下共享同一份配置文件,prometheus-agent分片采集模式下扩缩容无需人工干预,方便管理和部署基于hashmod的prometheus-agent分片采集方案,修改采集配置的时候只需要改动一次配置文件,agent扩缩容的时候无需手工修改配置,多个agent能共享一份配置,agent能自动感知数量变化,当抓取配置有变更只需要修改一次配置文件。

本文档来自技高网...

【技术保护点】

1.一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,在步骤S1中,所述config-map中需要设置参数的模块为hashmod和modulus,所述hashmod和modulus的参数分别设置为0和1。

3.根据权利要求1所述的一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,在步骤S2中,所述config-map信息加载到agent的内存后向etcd注册ip和port端口信息。

4.根据权利要求1所述的一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,在步骤S4中,所述竞选的结果若是master节点则开始监听节点数量变化。

5.根据权利要求1所述的一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,在步骤S4中,所述竞选的结果若不是master节点,则等待master节点对自己发出修改配置文件的请求。

6.根据权利要求1所述的一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,在步骤S5中,每当所述agent实例的个数发生变化,master节点则会获取到所有节点ip和端口信息。

7.根据权利要求1所述的一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,在步骤S5中,所述master节点获取到所有ip和端口信息后进行取模运算,得到取模后的值作为hashmod参数的值。

8.根据权利要求1所述的一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,所述步骤S5中,所述节点总数作为modulus的值,遍历所有节点,请求修改config-map的handle。

9.根据权利要求1所述的一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,在步骤S6中,所述config-map内的字段进行对应的修改的模块为modulus和hashmod。

10.根据权利要求1所述的一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,在步骤S6中,所述config-map内的字段进行对应修改后开始数据拉取操作。

...

【技术特征摘要】

1.一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,在步骤s1中,所述config-map中需要设置参数的模块为hashmod和modulus,所述hashmod和modulus的参数分别设置为0和1。

3.根据权利要求1所述的一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,在步骤s2中,所述config-map信息加载到agent的内存后向etcd注册ip和port端口信息。

4.根据权利要求1所述的一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,在步骤s4中,所述竞选的结果若是master节点则开始监听节点数量变化。

5.根据权利要求1所述的一种基于hashmod的prometheus-agent分片采集模式管理方法,其特征在于,在步骤s4中,所述竞选的结果若不是master节点,则等待master节点对自己发出修改配置文件的请求。

6.根据权利要求1所述的一种基于ha...

【专利技术属性】
技术研发人员:李文涛
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1