【问题标题】:How to create a rrd file with a specific time?如何创建具有特定时间的rrd文件?
【发布时间】:2019-04-01 13:14:43
【问题描述】:

我创建了一个带有特定时间的 rrd 文件。但是当我将它转换为xml时,我发现开始时间与指定时间不一致。

rrdtool的版本是1.5.5。

代码是

> rrdtool create abc.rrd \ 
> step 15 --start 1554122342 \  DS:sum:GAUGE:120:U:U \  RRA:AVERAGE:0.5:1:5856 \  RRA:AVERAGE:0.5:4:20160 \ 
> RRA:AVERAGE:0.5:40:52704

前几行就像

> <!-- 2019-03-31 20:15:15 CST / 1554034515 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:15:30 CST / 1554034530 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:15:45 CST / 1554034545 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:16:00 CST / 1554034560 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:16:15 CST / 1554034575 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:16:30 CST / 1554034590 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:16:45 CST / 1554034605 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:17:00 CST / 1554034620 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:17:15 CST / 1554034635 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:17:30 CST / 1554034650 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:17:45 CST / 1554034665 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:18:00 CST / 1554034680 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:18:15 CST / 1554034695 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:18:30 CST / 1554034710 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:18:45 CST / 1554034725 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:19:00 CST / 1554034740 --> <row><v>NaN</v></row>
>           <!-- 2019-03-31 20:19:15 CST / 1554034755 --> <row><v>NaN</v></row>

我尝试了其他参数,例如默认(现在-10s),但间隔大约是一天。

【问题讨论】:

    标签: rrdtool rrd


    【解决方案1】:

    (下面我的示例使用 RRDTool 1.5.5 进行了测试)

    您的 RRA 大约为 1 年,每 10 分钟一次;用 15s 设置 RRD。

    创建RRD时,start时间是最近数据点或最后更新的时间;换句话说,您不能在此之前添加任何数据。 RRA 将始终使用unknown 进行初始化。

    因此,当您使用以下方式创建 RRD 时:

    rrdtool create abc.rrd --step 15 --start 1554122342  \
        DS:sum:GAUGE:120:U:U RRA:AVERAGE:0.5:40:52704`
    

    您可以使用rrdtool info 看到这一点(为清晰起见,已修剪输出):

    $ rrdtool info abc.rrd 
    filename = "abc.rrd"
    ...
    last_update = 1554122342
    

    当您随后使用rrdtool dump 立即查看 RRA 的内容时,您可以看到它大约提前一年开始:

    $ rrdtool dump abc.rrd
    ...
    <lastupdate>1554122342</lastupdate> <!-- 2019-04-02 01:39:02 NZDT -->
    ...
        <database>
            <!-- 2018-04-01 01:40:00 NZDT / 1522500000 --> <row><v>NaN</v></row>
            <!-- 2018-04-01 01:50:00 NZDT / 1522500600 --> <row><v>NaN</v></row>
    ...
            <!-- 2019-04-02 01:20:00 NZDT / 1554121200 --> <row><v>NaN</v></row>
            <!-- 2019-04-02 01:30:00 NZDT / 1554121800 --> <row><v>NaN</v></row>
        </database>
    

    但是等一下!这结束于 1554121800,但我们最后一次更新(开始时间)是 1554122342!这是 542 的差异。为什么会这样?

    原因是虽然你的步长是15s,但是RRA间隔是40步,IE 600s。直到有 600 条数据才能添加下一个条目,我们只有 542 个。因此,RRA 中的最后一个条目如图所示。请注意,所有间隔都相对于 UCT 进行了标准化,因此您的 RRA cdp(合并数据点)将始终是间隔大小的倍数 - 在本例中为 600 - 无论您何时将“开始”设置为。 RRDTool 只会选择最接近的。当您滚动到很长一段时间时,这种行为变得更加明显 - 例如。 1 天 - 你生活在一个更极端的时区 - 例如奥克兰 UCT+13。

    当然,一旦您向 RRD 写入任何内容,lastupdate 就会发生变化,并且 RRA 会添加许多新点(当然也会删除旧点)。

    【讨论】:

    • @wannc -- 不要忘记将答案标记为正确,如果有用,请点赞。
    猜你喜欢
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多