気候データを収集するためにRRDtoolを使い始めたばかりです。グラフ機能は使用しませんが、「フェッチ」を使用してデータを取得します。次に、別のグラフ作成ソリューション(flot)を使用してデータを表示しますが、これはある程度機能しているようです。しかし、私はいくつかの小さな問題を抱えていて、更新とフェッチの詳細を確認することにしました。突然、期待どおりに機能するかどうか確信が持てなくなりました。
そこで、データベースを作成し、それに単一の値を入れて、内容を出力する小さなシェルスクリプトを作成しました。
#!/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
私はこれが次のような3つ(またはおそらく4つ、最後の1つについてはわからない)の値を出力することを期待します:
3000000000: -nan
3000000300: 123
3000000600: -nan
3000000900: -nan
しかし、これは私が得るものです:
3000000300: -nan
3000000600: -nan
3000000900: -nan
3000001200: -nan
だから私は3つの質問があります:
- フェッチコマンドが0ではなく300から始まるのはなぜですか?
- フェッチコマンドに最後のステップ(900)だけでなく、もう1つ(1200)も含まれているのはなぜですか?
- 更新された値が受け入れられなかったのはなぜですか?