使用 5 分钟时间步长时 RRDtool 不更新
RRDtool not updating when using 5 minute time step
我有两个 rrdtool 文件,一个使用 60 秒步长,另一个使用 300 秒步长。出于某种原因,我对 300 秒步文件的更新似乎没有注册。
我让 cron 作业分别每 1 分钟和 5 分钟更新一次文件,但是即使我手动尝试此操作,它也会失败:
这是 300 秒文件的命令。即使更新后,最后一行仍然包含 "NaN"s。
$ rrdtool create temps-5min.rrd --step 300 DS:cpu0:GAUGE:120:0:150 DS:cpu1:GAUGE:120:0:150 DS:ada0:GAUGE:120:0:100 DS:ada1:GAUGE:120:0:100 DS:ada2:GAUGE:120:0:100 DS:ada3:GAUGE:120:0:100 RRA:MAX:0.5:1:3000
$ rrdtool update temps-5min.rrd N:31:27:39:38:34:34
$ rrdtool dump temps-5min.rrd | tail -n 6
<!-- 2016-04-07 22:05:00 PDT / 1460091900 --> <row><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v></row>
<!-- 2016-04-07 22:10:00 PDT / 1460092200 --> <row><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v></row>
<!-- 2016-04-07 22:15:00 PDT / 1460092500 --> <row><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v></row>
</database>
</rra>
</rrd>
这是 60 秒文件的命令。最后一行(正确)包含数据:
$ rrdtool create temps-1min.rrd --step 60 DS:cpu0:GAUGE:120:0:150 DS:cpu1:GAUGE:120:0:150 DS:ada0:GAUGE:120:0:100 DS:ada1:GAUGE:120:0:100 DS:ada2:GAUGE:120:0:100 DS:ada3:GAUGE:120:0:100 RRA:MAX:0.5:1:3000
$ rrdtool update temps-1min.rrd N:31:27:39:38:34:34
$ rrdtool dump temps-1min.rrd | tail -n 6
<!-- 2016-04-07 22:19:00 PDT / 1460092740 --> <row><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v></row>
<!-- 2016-04-07 22:20:00 PDT / 1460092800 --> <row><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v></row>
<!-- 2016-04-07 22:21:00 PDT / 1460092860 --> <row><v>3.1000000000e+01</v><v>2.7000000000e+01</v><v>3.9000000000e+01</v><v>3.8000000000e+01</v><v>3.4000000000e+01</v><v>3.4000000000e+01</v></row>
</database>
</rra>
</rrd>
除了步长值,其他都一样。我提交更新的时间 window 有什么问题吗?我偶尔会向文件中获取数据,但它几乎总是默默地失败。
您定义的数据源需要每 120 秒更新一次……这很好。但只要你真正做到了......
我的猜测是,对于 300 秒步长的 rrd 文件,您宁愿将其定义为至少需要 600 秒的心跳。:
rrdtool create temps-5min.rrd --step 300 DS:cpu0:GAUGE:600:0:150 DS:cpu1:GAUGE:600:0:150 DS:ada0:GAUGE:600:0:100 DS:ada1:GAUGE:600:0:100 DS:ada2:GAUGE:600:0:100 DS:ada3:GAUGE:600:0:100 RRA:MAX:0.5:1:3000
我有两个 rrdtool 文件,一个使用 60 秒步长,另一个使用 300 秒步长。出于某种原因,我对 300 秒步文件的更新似乎没有注册。
我让 cron 作业分别每 1 分钟和 5 分钟更新一次文件,但是即使我手动尝试此操作,它也会失败:
这是 300 秒文件的命令。即使更新后,最后一行仍然包含 "NaN"s。
$ rrdtool create temps-5min.rrd --step 300 DS:cpu0:GAUGE:120:0:150 DS:cpu1:GAUGE:120:0:150 DS:ada0:GAUGE:120:0:100 DS:ada1:GAUGE:120:0:100 DS:ada2:GAUGE:120:0:100 DS:ada3:GAUGE:120:0:100 RRA:MAX:0.5:1:3000
$ rrdtool update temps-5min.rrd N:31:27:39:38:34:34
$ rrdtool dump temps-5min.rrd | tail -n 6
<!-- 2016-04-07 22:05:00 PDT / 1460091900 --> <row><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v></row>
<!-- 2016-04-07 22:10:00 PDT / 1460092200 --> <row><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v></row>
<!-- 2016-04-07 22:15:00 PDT / 1460092500 --> <row><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v></row>
</database>
</rra>
</rrd>
这是 60 秒文件的命令。最后一行(正确)包含数据:
$ rrdtool create temps-1min.rrd --step 60 DS:cpu0:GAUGE:120:0:150 DS:cpu1:GAUGE:120:0:150 DS:ada0:GAUGE:120:0:100 DS:ada1:GAUGE:120:0:100 DS:ada2:GAUGE:120:0:100 DS:ada3:GAUGE:120:0:100 RRA:MAX:0.5:1:3000
$ rrdtool update temps-1min.rrd N:31:27:39:38:34:34
$ rrdtool dump temps-1min.rrd | tail -n 6
<!-- 2016-04-07 22:19:00 PDT / 1460092740 --> <row><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v></row>
<!-- 2016-04-07 22:20:00 PDT / 1460092800 --> <row><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v><v>NaN</v></row>
<!-- 2016-04-07 22:21:00 PDT / 1460092860 --> <row><v>3.1000000000e+01</v><v>2.7000000000e+01</v><v>3.9000000000e+01</v><v>3.8000000000e+01</v><v>3.4000000000e+01</v><v>3.4000000000e+01</v></row>
</database>
</rra>
</rrd>
除了步长值,其他都一样。我提交更新的时间 window 有什么问题吗?我偶尔会向文件中获取数据,但它几乎总是默默地失败。
您定义的数据源需要每 120 秒更新一次……这很好。但只要你真正做到了......
我的猜测是,对于 300 秒步长的 rrd 文件,您宁愿将其定义为至少需要 600 秒的心跳。:
rrdtool create temps-5min.rrd --step 300 DS:cpu0:GAUGE:600:0:150 DS:cpu1:GAUGE:600:0:150 DS:ada0:GAUGE:600:0:100 DS:ada1:GAUGE:600:0:100 DS:ada2:GAUGE:600:0:100 DS:ada3:GAUGE:600:0:100 RRA:MAX:0.5:1:3000