我想用去年的所有数据导出我的rrd,间隔10分钟。我的rrd文件每1分钟更新一次数据。这是我的xport代码:
rrdtool xport --start now-1y --end now --step 600 --maxrows 219000 \
DEF:AverageIn="values.rrd":in:AVERAGE \
DEF:AverageOut="values.rrd":out:AVERAGE \
XPORT:AverageIn:'RX verdi' \
XPORT:AverageOut:'TX verdi' > exported.xml";
阅读文档后我需要设置--maxrows来实现这一点,因为默认的maxrow是300(5分钟)。 我对maxrow的计算: 600秒(10分钟)* 365天(我想要的最后1年)= 219000
但这是我得到的xml:
<xport>
<meta>
<start>1421331840</start>
<step>17280</step>
<end>1452850560</end>
<rows>1825</rows>
<columns>2</columns>
<legend>
<entry>RX verdi</entry>
<entry>TX verdi</entry>
</legend>
</meta>
<data>
<row><t>1421331840</t><v>NaN</v><v>NaN</v></row>
<row><t>1421349120</t><v>NaN</v><v>NaN</v></row>
我的rrdtool创建代码:
rrdtool create $rrdsignal --step 60 --start now \
DS:in:GAUGE:600:U:U \
DS:out:GAUGE:600:U:U \
RRA:AVERAGE:0.5:1:2880 \
RRA:AVERAGE:0.5:1:2880 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:24:775 \
RRA:AVERAGE:0.5:144:1500 \
RRA:AVERAGE:0.5:288:2000 \
RRA:MIN:0.5:1:600 \
RRA:MIN:0.5:6:700 \
RRA:MIN:0.5:24:775 \
RRA:MIN:0.5:144:1500 \
RRA:MIN:0.5:288:2000 \
RRA:MAX:0.5:6:700 \
RRA:MAX:0.5:24:775 \
RRA:MAX:0.5:144:1500 \
RRA:MAX:0.5:288:2000"
如何在此示例中减少步骤并增加行数?如果不清楚,请评论。
编辑:添加了rrd创建代码
答案 0 :(得分:1)
你不能这样做,原因是因为你不再拥有这些数据了。这样做的原因是您定义了您的RRA。
我的第一个问题是为什么你定义了两对相同的RRA:
RRA:AVERAGE:0.5:1:2880 \
RRA:AVERAGE:0.5:1:2880 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:6:700 \
没有必要两次存储相同的东西。
下一部分是因为您似乎不了解RRDTool数据库的工作原理。
在RRDTool中存储值时,将其标准化为RRD的步骤(在这种情况下,步骤为1分钟)。现在,它使用指定的consolodation函数存储到所有定义的RRA中,并将其与指定数量的其他样本组合以生成RRA。
因此,在您的情况下,您有一个存储该值的RRA(样本数为1,因此RRA间隔为1分钟),另一个将其与另外5个相结合(样本数为6且因此,RRA间隔为6分钟,另一个为24分钟,另外为144分钟,依此类推。我强烈怀疑你错误地定义了这些RRA,你或者要么是10分钟的步骤,要么需要合并的样本数量要大10倍!
当您要求提供一年的10分钟间隔数据时,RRDtool会查看可用的RRA,并发现只有一个足以提供一年数据的数据是最后一个 - 288最小RRA间隔,2000行(IE 400天)。因此它使用这一个。您可以强制它输出您想要的步骤,但是它会从这个RRA接近它,因为没有10分钟的RRA可用,并且没有其他RRA足够长的时间来覆盖整年。
即使您使用10分钟步骤,您的前10分钟RRA也只有10分钟x 2880 = 20天的长度。
我建议你做以下事情:
HTH