RRDtool如果在更新中跳过一个值,则缺少下一个值

时间:2014-03-10 08:36:18

标签: rrdtool

我创建了RRD DB,它应该每小时接收一次更新并显示过去24小时内收到的订单的值:

rrdtool create db.rrd --step 3600 --start 1381230000 DS:measurment:GAUGE:4800:0:U     RRA:AVERAGE:0.5:1:24

一切都运行正常,但事实上当我错过了更新中的一个值时,数据库中缺少其中两个值:

所以,我要说:

....
1381240800:1203 
1381244400:1302 
1381248000:1132  
1381251600:988
....

但如果不接收第二次更新(1381244400:1302),则第三次更新(1381248000:1132)将丢失它到达的事实。

有人可以告诉我为什么会这样吗?

谢谢

2 个答案:

答案 0 :(得分:1)

您好我面对与rrdtool-1.4.7相同的问题。

我对Tobi Oetiker的提问: 1,以下用例是否可以使用rrdtool或错误的概念。 2,rrdtool 1.4.8中的行为究竟发生了什么变化

用例:数据集与上面的情况一样,关于呈现“条形图”。在每个“步骤”中,我通常提供一个PDP(更新)。我还定义了一个MAX合并函数,其中xff为0或0.1,并保持所有步骤以使用AREA以1:1呈现图形。

所以基本上对于步骤为1天的RRD: 日期:2014-10-10 VALUE1:35 日期:2014-10-11 VALUE1:27 日期:未知 日期:2014-10-12 VALUE1:89

请求的输出是带有三列的条形图,其中第三列缺失。

与Neven一样,我玩过1x,1.5x,2x的STEP但没有成功的HB - 下一个值(在未知之后)受到影响。通常所有边缘情况(开始,结束)都有一种感情。在上面的例子中,我想念周一和周五的价值观。这对于频繁的数据源来说不是问题,但是像“barchart”这样的简单案例每天都很痛苦。

Neven:我的回答是,我们可能使用了错误的用例。由于RRDtool每个时间间隔存储“费率”,它总是会进行“整合”。一个不可能的部分解决方案是频繁更新并在RRD上聚合,例如增加STEP = NNN规范。在图表定义中。

答案 1 :(得分:0)

问题是如果错过了先前的更新,则最后一次更新和当前更新之间的间隔大于您在DS定义中指定的4800秒。因此,rrdtool会将最后一次更新和当前更新之间的所有数据视为 UNKNOWN

在rrdtool 1.4.8中,我介绍了GAUGE DS次更新的特殊情况,其中之前的更新过去超过MRHB。在这种情况下,rrdtool现在会将提供的数据从now-MRHB视为有效now