System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及存储,具体为一种基于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共享同一个配置文件,自动感知
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节
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...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。