如何创建具有特定时间的rrd文件?

问题描述 投票:0回答:1

我创建了一个特定时间的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>

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

rrdtool rrd
1个回答
0
投票

(以下我的例子用RRDTool 1.5.5测试)

您的RRA大约1年,间隔10分钟; 15秒设置了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的差异。为什么会这样?

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

当然,一旦你向RRD写了任何内容,那么lastupdate将会改变,而RRA将会添加许多新的点(当然也会丢弃旧点)。

© www.soinside.com 2019 - 2024. All rights reserved.