我刚刚开始使用 RRDtool 收集气候数据。我不使用图形功能,而是使用“获取”来检索数据。然后我使用另一个图形解决方案(flot)来显示数据,这似乎有点工作。但是我遇到了一些小问题,并决定检查更新和获取的详细信息,并且突然不确定事情是否按我预期的那样工作。
所以我创建了一个很小的 shell 脚本来创建一个数据库,在其中放入一个值,然后打印内容:
#!/bin/sh
RRD=test.rrd
STEP=300
HB=600
# Remove previous databse to be sure that
# old data does not affect the test
rm -f $RRD
# Create database
rrdtool create $RRD \
--start 2999999999 --step $STEP \
DS:a:GAUGE:$HB:U:U \
RRA:AVERAGE:0.5:1:1000
# Do a single update
rrdtool update $RRD \
3000000400:123
# Fetch data and print to stdout
rrdtool fetch $RRD \
--start 3000000000 --end 3000000900 AVERAGE
我希望这会打印三个(或者可能是四个,不确定最后一个)值,如下所示:
3000000000: -nan
3000000300: 123
3000000600: -nan
3000000900: -nan
但这就是我得到的:
3000000300: -nan
3000000600: -nan
3000000900: -nan
3000001200: -nan
所以我有三个问题:
- 为什么 fetch 命令从 300 开始,而不是 0?
- 为什么 fetch 命令不仅包括最后一步(900),而且还包括一个(1200)?
- 为什么不接受更新的值?