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)将会丢失,尽管它已经到达了。

谁能告诉我为什么会这样?

嗨,我在使用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 value: 27日期:未知日期:2014-10-12 VALUE1: 89

请求的输出是一个有三列的条形图,其中缺少第三列。

与Neven类似,我玩过HB的1x, 1,5x, 2x的STEP,但没有成功-下一个值(在未知之后)受到影响。通常所有的边缘情况(开始,结束)都有某种情感。在上面的例子中,我错过了星期一和星期五的值。对于频繁的数据源来说,这不是问题,但是像"条形图"这样的简单情况每天都很麻烦。

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

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

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

相关内容

  • 没有找到相关文章

最新更新