数据存储方案

例:存储最近7天的数据,超过7天的直接删除。

先将数据存入最右边的位置,然后再取出左边第一位的数据,判定该位置的数据是否超过7天,超过则删除。

【分布式监控系统】第4章——监控数据如何存储_数据存储

判断客户端当前时间的监控数据是否在规定的时间间隔之内,如果在则追加到列表中。
0、先给latest列表中添加每秒钟的数据组成数据池(后期所有的时间点的数据都从该数据池中获取)
1、然后再给10min的这个列表中添加一个空值的初始值和时间戳,用来与客户端第二次发送过来的监控数据的时间戳进行对比。
2、当循环到10min钟这个字段时, 如果当前时间与上次数据存储的时间相减,如果大于要求的时间间隔时,则说明需要进行新数据的存储,循环从lastst中获取时间戳在10分钟之内的所有数据,计算这10分钟的平均值,最大值 ,最小值,中位数等。并将该监控数据追加到到列表中;

【分布式监控系统】第4章——监控数据如何存储_数据_02

配置文件中指定数据存储的时限:

例如:存储10min,相当于600s,假定存储1个月,那么可以写成公式:1624 30=4320个节点的数据。其中1代表10min,16代表1个小时有几个10min,24代表24小时,30代表一个月。

【分布式监控系统】第4章——监控数据如何存储_数据存储_03


latest表示存储时不优化数据,直接存储,其中10080表示存储多少个数据节点,超过则删除前面的

10min部分的数据表示需要优化,先从取出最右边的一个数据,然后判断是否在要求的时间间隔内,如果不在,则将该数据追加到该列表的最右边

【分布式监控系统】第4章——监控数据如何存储_时间戳_04