[rrd-developers] Re: stacking and the *UNKNOWN*

Alan Lichty alan_lichty at eli.net
Tue Aug 3 16:55:42 MEST 1999


Alex -

You have stumbled into exactly the same issue I did a couple of months
ago when I built an application to allow my users to define aggregate
graphs.  They are quite similar to your stacks, but use area and line
instead.  The universal issue here is how to handle the unknown value
which I finally did by using the CDEF function to map unknown values
into 0.  Check out Example 2 in the documentation for RRD Graph - this
shows exactly what you are trying to do:

 rrdtool graph demo.gif --title="Demo Graph" \
         DEF:idat1=interface1.rrd:ds0:AVERAGE \
         DEF:idat2=interface2.rrd:ds0:AVERAGE \
         DEF:odat1=interface1.rrd:ds1:AVERAGE \
         DEF:odat2=interface2.rrd:ds1:AVERAGE \
         CDEF:agginput=idat1,UN,0,idat1,IF,idat2,UN,0,idat2,IF,+,8,* \
         CDEF:aggoutput=odat1,UN,0,odat1,IF,odat2,UN,0,odat2,IF,+,8,* \
         AREA:agginput#00cc00:Input Aggregate \
         LINE1:agginput#0000FF:Output Aggregate

How this works is a little obtuse, but in the long run, I agree with
Tobi that we should keep the definition of unknown as is and define it
to take the value of zero when we need it.

Alan Lichty
Internetworking Planner
Electric Lightwave, Inc.
(360)816-4167

On Tue, 3 Aug 1999, Alex van den Bogaerdt wrote:

> > what happens at themoment is that the code draws each layer of the stack
> > sequentially and as soon as it stacks data onto top of unknown data the data
> > can not be visualized anymore ... 
> > 
> >     known 1   -> paints OK
> >     UNknown 2 -> contains *UNKNOWN* (will not paint)
> >     known 3   -> will not paint either because it should paint starting
> >                  from the *UNKNOWN* value not painted in 2
> > 
> > opinions ... ?
> > 
> 
> To start the discussion:
> 
> The stacking is just a nice way to visualize things, it is especially
> useful if the value of #1 > #3 at one time and the opposite another time.
> 
> The amount of #3 is known, just as #1 is. Therefore it should be graphed.
> We're not starting #3 on top of #2 but on top of all data. I see it as
> stacking on the Y axis in stead of stacking it on the Z axis (as normal
> AREA over AREA is).
> 
> One counter argument could be that the current behaviour shows that
> something failed, I disagree with this in advance as it doesn't work
> when the last value would be unknown... (a zero would show the same)
> 
> It is for above arguements that I think this is a technical issue that
> should be overcome. The fix as described by Tobi will work but is just
> that: a fix.
> 
> 
> The second way of handling this, make all values unknown, could also be
> valid. This could be useful for instance when the data is related closely
> such as troughput and errors on an ethernet. If you have not all of the
> data, you have no information at all. This is why I mentioned it.
> IMO it is better to actually draw unknown data (in nice bright red) at
> the whole Y range. We would need a value meaning 100% and this could be
> made by putting a VRULE at each graph time that has unknown data.
> 
> 
> Regards,
> Alex
> 
> --
> * To unsubscribe from the rrd-developers mailing list, send a message with the
>   subject: unsubscribe to rrd-developers-request at list.ee.ethz.ch
> 
> 
> 


On Tue, 3 Aug 1999, Alex van den Bogaerdt wrote:

> > what happens at themoment is that the code draws each layer of the stack
> > sequentially and as soon as it stacks data onto top of unknown data the data
> > can not be visualized anymore ... 
> > 
> >     known 1   -> paints OK
> >     UNknown 2 -> contains *UNKNOWN* (will not paint)
> >     known 3   -> will not paint either because it should paint starting
> >                  from the *UNKNOWN* value not painted in 2
> > 
> > opinions ... ?
> > 
> 
> To start the discussion:
> 
> The stacking is just a nice way to visualize things, it is especially
> useful if the value of #1 > #3 at one time and the opposite another time.
> 
> The amount of #3 is known, just as #1 is. Therefore it should be graphed.
> We're not starting #3 on top of #2 but on top of all data. I see it as
> stacking on the Y axis in stead of stacking it on the Z axis (as normal
> AREA over AREA is).
> 
> One counter argument could be that the current behaviour shows that
> something failed, I disagree with this in advance as it doesn't work
> when the last value would be unknown... (a zero would show the same)
> 
> It is for above arguements that I think this is a technical issue that
> should be overcome. The fix as described by Tobi will work but is just
> that: a fix.
> 
> 
> The second way of handling this, make all values unknown, could also be
> valid. This could be useful for instance when the data is related closely
> such as troughput and errors on an ethernet. If you have not all of the
> data, you have no information at all. This is why I mentioned it.
> IMO it is better to actually draw unknown data (in nice bright red) at
> the whole Y range. We would need a value meaning 100% and this could be
> made by putting a VRULE at each graph time that has unknown data.
> 
> 
> Regards,
> Alex
> 
> --
> * To unsubscribe from the rrd-developers mailing list, send a message with the
>   subject: unsubscribe to rrd-developers-request at list.ee.ethz.ch
> 
> 
> 

--
* To unsubscribe from the rrd-developers mailing list, send a message with the
  subject: unsubscribe to rrd-developers-request at list.ee.ethz.ch



More information about the rrd-developers mailing list