本发明涉及监控数据处理领域,具体涉及一种动态调整监控数据处理速度的方法、系统及介质。
背景技术:
1、目前,运维监控方向的监控方案绝大部分都通过采集器和时序数据库去进行监控指标采集的采集和存储。监控数据上报一般由被监控端控制上报周期,且每台被监控端的监控数据采集器数量、类型都是不定的,即每台被监控端监控数据上报特征为不定时、不定量。如图1所示,当被监控主机规模足够大,该类监控数据一般会以类潮汐方式不定时不定量地涌入至数据库所在的服务端,造成服务端可能在某些时刻空转,在某些时刻负载极高,在时间线上出现负载忽高忽低的情况;若引入消费队列,由于无法探知被监控主机上报监控数据量的变化,数据库会以定量地方式消费监控数据,可能导致队列内数据积压和监控数据消费延迟的情况。一般情况下,服务端配置要求需要大于最高时负载,造成设备成本过高和监控服务端资源浪费。
技术实现思路
1、本发明要解决的技术问题:针对现有技术的上述问题,提供一种动态调整监控数据处理速度的方法、系统及介质,能够解决因监控数据不定时、不定量涌入服务端,导致服务端负载忽高忽低的问题,使服务端监控数据处理与被监控端数据上报解耦,根据被监控端数据上报状况,动态调整处理速度,尽量以相对平稳的方式进行监控数据消费和处理。
2、为了解决上述技术问题,本发明采用的技术方案为:
3、一种动态调整监控数据处理速度的方法,包括:
4、s1,把被监控主机上报上来的监控数据指标暂时缓存到消息队列中以将被监控主机和服务端的数据消费逻辑解耦;
5、s2,通过服务端定时按照期望消费数len_expect从消息队列中取出不多于期望消费数len_expect的监控数据进行数据消费,再通过动态调整期望消费数len_expect以使得服务端进行数据消费的速度与监控主机上报监控数据的速度正相关。
6、进一步的,步骤s2中动态调整期望消费数len_expect时,还包括根据服务端取出的监控数据记录计算实际近似平均消费数len_avg,若len_expect>a×len_avg成立,则判定服务端进行数据消费的速度超过监控主机上报监控数据的速度并减少期望消费数len_expect,其中a为大于1的系数。
7、进一步的,所述计算实际近似平均消费数len_avg的函数表达式为:
8、len_avg = (len_avg + len_actual)/2
9、上式中,len_actual为服务端进行数据消费的实际消费数。
10、进一步的,所述判定服务端进行数据消费的速度超过监控主机上报监控数据的速度并减少期望消费数len_expect时,减少期望消费数len_expect的函数表达式为:
11、len_expect= len_expect - (len_expect - len_avg)/2
12、上式中,len_avg为实际近似平均消费数。
13、进一步的,步骤s2中动态调整期望消费数len_expect时,还包括根据服务端取出的监控数据记录获取已消费数据最近时间latest_time,若当前时间、已消费数据最近时间latest_time之差大于预设上限值,则判定服务端进行数据消费的速度落后于监控主机上报监控数据的速度并增加期望消费数len_expect;若当前时间、已消费数据最近时间latest_time之差小于预设下限值,则判定服务端进行数据消费的速度超过于监控主机上报监控数据的速度并减少期望消费数len_expect。
14、进一步的,所述判定服务端进行数据消费的速度落后于监控主机上报监控数据的速度并增加期望消费数len_expect时,增加期望消费数len_expect的函数表达式为:
15、len_expect= len_expect + (now - latest_time)/b×c
16、上式中,now为当前时间,latest_time为已消费数据最近时间,b为预设的时间参数,c为调整期望消费数len_expect的间隔时间。
17、进一步的,所述判定服务端进行数据消费的速度超过于监控主机上报监控数据的速度并减少期望消费数len_expect时,减少期望消费数len_expect的函数表达式为:
18、len_expect= len_expect - d
19、上式中,d为预设的递减参数。
20、进一步的,步骤s2包括:
21、s101,初始化设置实际消费数len_actual、期望消费数len_expect、实际近似平均消费数len_avg、已消费数据最近时间latest_time以及时间戳adjust_time,且时间戳adjust_time被初始化为当前时刻;
22、s102,等待一个定时的周期;
23、s103,通过服务端按照期望消费数len_expect从消息队列中取出不多于期望消费数len_expect的监控数据进行数据消费,并确定实际消费数len_actual;
24、s104,更新计算实际近似平均消费数len_avg;
25、s105,更新计算已消费数据最近时间latest_time;
26、s106,判断当前时刻、时间戳adjust_time之间的时间差大于调整期望消费数len_expect的间隔时间c是否成立,若不成立,则跳转步骤s102,否则跳转步骤s107;
27、s107,判断len_expect>a×len_avg是否成立,若len_expect>a×len_avg成立,则判定服务端进行数据消费的速度超过监控主机上报监控数据的速度并减少期望消费数len_expect,更新时间戳adjust_time为当前时刻,跳转步骤s102;否则跳转步骤s108;
28、s108,判断若当前时间、已消费数据最近时间latest_time之差大于预设上限值是否成立,若当前时间、已消费数据最近时间latest_time之差大于预设上限值成立,则判定服务端进行数据消费的速度落后于监控主机上报监控数据的速度并增加期望消费数len_expect;更新时间戳adjust_time为当前时刻,跳转步骤s102;否则跳转步骤s109;
29、s109,判断若当前时间、已消费数据最近时间latest_time之差小于预设下限值是否成立,若当前时间、已消费数据最近时间latest_time之差小于预设下限值成立,则判定服务端进行数据消费的速度超过于监控主机上报监控数据的速度并减少期望消费数len_expect;更新时间戳adjust_time为当前时刻,跳转步骤s102。
30、本发明还提出一种动态调整监控数据处理速度的系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行任意一项所述动态调整监控数据处理速度的方法。
31、本发明还提出一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行任意一项所述动态调整监控数据处理速度的方法。