rrdtool xport 中的 Maxrows

Maxrows in rrdtool xport

我想导出我的 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 天(我想要的最后一年)= 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 创建代码

你做不到,原因是你没有数据了。原因在于您定义 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分钟)。现在,它被存储到所有定义的 RRA 中,使用指定的合并函数,并将它与指定数量的其他样本组合以生成该 RRA。

因此,在您的情况下,您有一个 RRA 存储值(样本数为 1,因此 RRA 间隔为 1 分钟),另一个将其与其他 5 个组合(样本数为 6因此 RRA 间隔为 6 分钟),另一个为 24 分钟,另一个为 144 分钟,依此类推。我强烈怀疑您错误地定义了这些 RRA,并且您打算采用 10 分钟的步骤,或者需要将组合样本的数量增加 10 倍!

当您要求一年的一组 10 分钟间隔数据时,RRDtool 查看可用的 RRA,发现唯一一个足够长以提供一年数据的是最后一个——288 分钟 RRA 间隔,2000行(即 400 天)。因此它使用这个。您可以强制它输出您想要的步骤,但它会从这个 RRA 近似它,因为没有 10 分钟的 RRA 可用,并且没有其他 RRA 足够长以涵盖全年。

即使您使用 10 分钟的步骤,您的第一个 10 分钟 RRA 的长度也只有 10 分钟 x 2880 = 20 天。

我建议您执行以下操作:

  • 更改您的创建以删除两个重复的 RRA
  • 要么将步幅更改为 10 分钟 (600),要么将 RRA 的间隔增加 10 倍(变为 10、60、240 等)。您选择执行哪些操作将取决于您的数据到达的频率 - 主要间隔(目前为 60 秒)应与数据频率相对应。
  • 将 10 分钟 RRA 的长度增加到一整年。这将使它的长度至少为 52704 而不是当前的 2880。您可能还希望根据您需要的图表和摘录来扩展其他一些 RRA。

HTH