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



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

我尝试了其他参数,例如默认值(现在 10 秒),但间隔约为一天。

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

您的RRA大约为1年,间隔10分钟;设置RRD为15s。

创建 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 步,即 600 步。 在有 600 个数据之前无法添加下一个条目,而我们只有 542 个。 因此,RRA 中的最后一个条目如下所示。 请注意,所有间隔都是相对于 UCT 进行标准化的,因此您的 RRA cdp(合并数据点)将始终是间隔大小的倍数 - 在本例中为 600 - 无论您何时将"开始"设置为。 RRDTool将简单地选择最接近的。 当您滚动到一个较大的时间段(例如 1 天)并且您生活在更极端的时区(例如 UCT+13 的奥克兰)时,这种行为变得更加明显。

当然,一旦你向RRD写入任何内容,那么lastupdate就会改变,RRA将添加所需的新点(当然,删除旧的点)。

相关内容

  • 没有找到相关文章

最新更新