[rrd-users] timestamp and manually inserting data

Ron Peterson rpeterso at mtholyoke.edu
Wed Jan 23 17:38:52 CET 2008


I'm trying to manually insert data into an rrd database from a file.  I
have a set of GAUGE values that have been collected every second.  The
actual time these values were collected isn't important.  I just want to
feed them into rrdtool at one second intervals.

I created my database like so:

rrdtool create $RRDFILE \
    --start 1 \
    --step 1 \
    DS:MBs_read:GAUGE:2:0:500 \
    DS:MBs_write:GAUGE:2:0:500 \
    RRA:AVERAGE:0:5:43200 \
    RRA:MIN:0:5:43200 \
    RRA:MAX:0:5:43200 \
    RRA:AVERAGE:0:60:720 \
    RRA:MIN:0:60:720 \

I'm trying to feed my rrdfile like so:

function getdata() {
    cat log.iostat | grep ^${DEV} | tr -s ' ' ' ' | cut -d' ' -f 3,4

# We don't really care when our time stamps begin, only that they
# increment at one second intervals.
while read blocksread blockswritten
  i=$((i + 1))
  mbsread=$(echo "scale=0; $blocksread * 512 / 1000000" | bc)
  mbswritten=$(echo "scale=0; $blockswritten * 512 / 1000000" | bc)
  rrdtool update $RRDFILE $i:$mbsread:$mbswritten

This doesn't work, however.  I get an error like:

...illegal attempt to update using time 2 when last update time is 1201069000

I thought the --start parameter to the creation command set the initial
timestamp, so I obviously don't understand something here.


(Yes, this might be a clumsy way to make a graph, but I thought it would
be a good excuse to learn rrdtool..)

Ron Peterson
Network & Systems Manager
Mount Holyoke College

More information about the rrd-users mailing list