Я только начинаю использовать 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
Я ожидаю, что это напечатает три (или, может быть, четыре, не уверен насчет последнего) значения, подобные этому:
3000000000: -nan
3000000300: 123
3000000600: -nan
3000000900: -nan
Но вот что я получаю:
3000000300: -nan
3000000600: -nan
3000000900: -nan
3000001200: -nan
Итак, у меня три вопроса:
- Почему команда fetch начинается с 300, а не с 0?
- Почему команда fetch включает не только последний шаг (900), но и еще один (1200)?
- Почему не было принято обновленное значение?