[rrd-users] Parameter problem - was: LAST always returning zero

Alex van den Bogaerdt alex at ergens.op.het.net
Sun Mar 9 14:23:09 CET 2008


On Sat, Mar 08, 2008 at 04:57:49PM -0600, Wes wrote:
> On 3/8/08 2:08 AM, "Alex van den Bogaerdt" <alex at ergens.op.het.net> wrote:
> 
> > CDEF:red1=queue1,UN,INF,UNKN,IF
> > AREA:red1#FF0000:unknown
> > CDEF:red2=queue2,UN,-INF,UNKN,IF
> > AREA:red2#FF0000:unknown
> > 
> > This won't solve your problem but it should make it more visible.
> > 
> > Another debug technique:
> > 
> > If your script has a variable '$end' or so, change
> > -t "Disabled Queues (mmp11es)"
> > into
> > -t "Disabled Queues (mmp11es) upto $end"
> > 
> > You could combine this with
> > VDEF:last=queue1,LAST
> > GPRINT:last:"%s":strftime
> 
> I did the above.  To verify functionality (force an undefined value), I set
> 
>     --end <rrdtool last> / 10 * 10 + 20
> 
> The graph label ($end) shows *250 and the GPRINT LAST shoes *230, there is a
> red bar in the graph, and the GPRINT enabled/disabled is showing 0, all
> exactly as expected.

You are displaying the opposite of queue1, meaning you display
1 when the line is disabled.

If you get 0, you succesfully prevented NaN from resulting in 1.



> Both the graph label and the GPRINT LAST show *340.  There is *no* red bar
> in the graph.  The queue GPRINT enabled/disabled is showing 0, when it
> should be showing 1.  I assume this is because when --end is 340, I actually
> get through 350, per my previous email.  But then why don't I have a red
> bar?

Why would you expect 1 ?



This said, in the process I did find some weird behaviour.  I checked
it against a much older version (1.2.10) which does not have this problem.

rrdtool graph disabled.png -a PNG -l 0 \
        -t "Disabled queues - $END" \
        DEF:queue1=queues:queue1_enabled:AVERAGE \
        CDEF:queue1N=queue1,0,GT,0,1,IF \
        VDEF:queue1L1=queue1,LAST \
        VDEF:queue1L2=queue1N,LAST \
        AREA:queue1N#00FF00:"Queue 1 down\l" \
        GPRINT:queue1L1:"Last is_up  \: %1.0lf" \
        GPRINT:queue1L1:"timestamp %s\l":strftime       \
        GPRINT:queue1L2:"Last is_down\: %1.0lf" \
        GPRINT:queue1L2:"timestamp %s\l":strftime       \
        --upper-limit 4 -s $START -e $END

All input is 1.

This displays different timestamps for queue1L1 and queue1L2, which
really should not happen.  There's something with that CDEF...

-- 
Alex van den Bogaerdt
http://www.vandenbogaerdt.nl/rrdtool/



More information about the rrd-users mailing list