[rrd-users] Bug with "MAX" RRA ?

Paul Courbis paul at courbis.fr
Tue Dec 30 14:58:48 MET 2003


I'm trying to setup an RRD database to kkep a track f "MAX" values of a 
counter. My problem is that the values are transformed depending on the 
timeslot alignement. That is, if I setup a RRD database receiving a data 
every minute, the value is used unchanged if it's store on the beginning 
of the minute, while it is transformed (average with previous value) if 
it's entered some second laters.

here's a little shell script that produces 2 curves, one with data 
stored on the beginning of a minute, the other 30 second laters. As I 
keep "MAX" values, curves should be the same (in my mind at least) but 
it's not the case.... Run this script, it'll create a "demo.gif" graph 
showing the problem.

If anyone can explain...




NOW=`date +%s`
START=`expr $NOW - 800`

for file in $FILE1 $FILE2
    /usr/local/rrdtool/bin/rrdtool create $file -s 60 \
      DS:Value:GAUGE:300:0:U \
      RRA:MAX:0.5:1:120  \
      RRA:MAX:0.5:10:360   \
      RRA:MAX:0.5:60:960  \
      RRA:MAX:0.5:1440:400 \
      -b $START

FIRST=`expr $NOW - 630`
DELTA=`expr $FIRST % 60`
START2=`expr $START1 + 30`

/usr/local/rrdtool/bin/rrdtool update $FILE1 $START1:U
/usr/local/rrdtool/bin/rrdtool update $FILE2 $START2:U

START1=`expr $START1 + 60`
START2=`expr $START2 + 60`

while [ $N -le 11 ]
  /usr/local/rrdtool/bin/rrdtool update $FILE1 $START1:$VALUE
  /usr/local/rrdtool/bin/rrdtool update $FILE2 $START2:$VALUE

  START1=`expr $START1 + 60`
  START2=`expr $START2 + 60`

  if [ "$N" -le 5 ]; then VALUE=`expr $VALUE + 1`; else VALUE=`expr 
$VALUE - 1`; fi

  N=`expr $N + 1`

/usr/local/rrdtool/bin/rrdtool graph demo.gif -s $START \
    --title "Demo" \
    DEF:Value1=$FILE1:Value:MAX -v Value1 \
    LINE2:Value1#a00000:'Value1' \
    GPRINT:Value1:LAST:'Last\: %2.1lf -\g' \
        GPRINT:Value1:MIN:' Min\: %2.1lf -\g' \
        GPRINT:Value1:MAX:' Max\: %2.1lf -\g' \
        GPRINT:Value1:AVERAGE:' Average\: %2.1lf\n' \
    DEF:Value2=$FILE2:Value:MAX -v Value2 \
    LINE2:Value2#00a000:'Value2' \
    GPRINT:Value2:LAST:'Last\: %2.1lf -\g' \
        GPRINT:Value2:MIN:' Min\: %2.1lf -\g' \
        GPRINT:Value2:MAX:' Max\: %2.1lf -\g' \
        GPRINT:Value2:AVERAGE:' Average\: %2.1lf\n' \
     -l 0

rm -f $FILE1 $FILE2

Unsubscribe mailto:rrd-users-request at list.ee.ethz.ch?subject=unsubscribe
Help        mailto:rrd-users-request at list.ee.ethz.ch?subject=help
Archive     http://www.ee.ethz.ch/~slist/rrd-users
WebAdmin    http://www.ee.ethz.ch/~slist/lsg2.cgi

More information about the rrd-users mailing list