[rrd-users] PREV() pulling from wrong field and (related?) problem

Stephen Cravey clists at www.gotbrains.org
Mon Jan 27 14:55:02 MET 2003

I've been working on a filtering script to hilight aberrent data out of an
rrd data column. my .rrd format and script follow.

The problem I'm having is that prev1 looks exactly like secs. mins looks
totally different since it's the 5 minute load average and not the 5
second load average. Has anyone else experienced this behavior? Graphing
PREV(mins) vs PREV(secs) yields an identical graph, while mins vs secs
yields totally different graphs. Specifically, it seem that PREV() always
pulls the value from the first column in the .rrd regardless of the column
used as the argument. so i can call PREV(5min) or PREV(proc) and I'll get

Also, After a certain number of iterations (see below), usually at least
around prev5, but sometimes prev4, and ALWAYS at prev6 and up, I get
enormous numbers. like in the vicinity of 1.5 million. The fields I'm
workign with go from 0-100. I've manually verified the data in the
database with rrdfetch and it is correct there. Exponents too. Obviously
this creates a worthless graph if every datapoint is under 100 with one
datapoint being at 1.5e6.

Please help, I'm migrating from MRTG and have a long list of ways to
stretch rrdtool. If I get this working, I'll send a graph to Tobi.

Anyone know of other ways to handle aberrant behavior detection with

I'm running rrdtool-1.0.40 on FreeBSD 4.7-p3 installed out of the FreeBSD
ports collection.

Thank you.


DS:5sec:GAUGE:600:U:U \
DS:1min:GAUGE:600:U:U \
DS:5min:GAUGE:600:U:U \
DS:proc:GAUGE:600:U:U \
DS:io:GAUGE:600:U:U \

/usr/local/bin/rrdtool graph /usr/local/share/rrdtool/html/border1cpu1.png
    DEF:mins=/usr/local/share/rrdtool/rrd/border1.rrd:5min:AVERAGE \
    DEF:secs=/usr/local/share/rrdtool/rrd/border1.rrd:5sec:AVERAGE \
    "CDEF:prev1=PREV(mins)" \
    "CDEF:prev2=PREV(prev1)" \
    "CDEF:prev3=PREV(prev2)" \
    "CDEF:prev4=PREV(prev3)" \
    "CDEF:prev5=PREV(prev4)" \
    "CDEF:average=prev1,prev2,+,2,/,prev3,prev4,+,2,/,+,2,/" \
    "CDEF:upper=average,1.4,*" \
    "CDEF:lower=average,.6,*" \
    "CDEF:over=mins,upper,GT,mins,0,IF" \
    "CDEF:under=mins,lower,LT,mins,0,IF" \
    AREA:over#0FB0F0:"over threshold" \
    AREA:under#F0B00F:"under threshold" \
    LINE1:upper#000000:"upper" \
    LINE1:lower#000000:"lower" \
    LINE1:secs#00CCBA:"5 second average" \
    LINE1:prev1#0000FF:"5 minute average -1" \
    LINE1:mins#00FF00:"5 min AVERAGE"

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