[rrd-users] Stacking at Infinity

Martin Sperl rrdtool at martin.sperl.org
Sun Mar 4 13:52:06 CET 2012


OK, so assuming those 3:
Here a "Red/green" colorcoding you could also use:
CDEF:DS1GREEN=DS1,UN,0,1,IF
CDEF:DS1RED=DS1,UN,1,0,IF
CDEF:DS2GREEN=DS2,UN,0,1,IF
CDEF:DS2RED=DS2,UN,1,0,IF
CDEF:DS3GREEN=DS3,UN,0,1,IF
CDEF:DS3RED=DS3,UN,1,0,IF
TICK:DS1GREEN#00ff00:-.03
TICK:DS1RED#ff0000:-.03
TICK:DS2GREEN#00ff00:-.02
TICK:DS2RED#ff0000:-.02
TICK:DS3GREEN#00ff00:-.01
TICK:DS3RED#ff0000:-.01
# here graph the other stuff (on top of the ticks!)

Then you would get 3 stripes that are green/red in the relevant sections of the DS being undefined

If you want even "bars" separating those 3 sections:
add the following:
CDEF:bar=1
	TICK:DS1GREEN#00ff00:-.03
	TICK:DS1RED#ff0000:-.03
TICK:bar#000000:-0.21
	TICK:DS2GREEN#00ff00:-.02
	TICK:DS2RED#ff0000:-.02
TICK:bar#000000:-0.11
	TICK:DS3GREEN#00ff00:-.01
	TICK:DS3RED#ff0000:-.01

that should show bars all the length of the graph with green/red in between

I also have sent a patch to Tobi to allow TICK to use the values of the DEF/CDEF itself as the fraction - so this could mean a non-constant fraction...
This may also be helpful in some usecases to present data...

Ciao,
	Martin

On 03.03.2012, at 13:44, Chris Mason wrote:

> Hi,
> 
>> One line at the top (or bottom) of the graph, then stack a suffient amount
>> in the "wrong" direction. I never tried it, but stacking -50M "on top" of
>> 150M should get you at 100M.
> 
> So this works normally when not working at infinity:
> 
> LINE3:1000000#FF0000
> LINE3:-10000#00FF00::STACK
> 
> I assumed the LINE would take into consideration the lines width when
> stacking so I could use -1 as the value. This doesn't seem to work and
> I have to use an actual value but this value would be dependant on the
> scale of the data.
> 
> However, when I draw the first line at INF then it doesn't seem to
> work and have looked into the possibility of achieving the desired
> affect using TICKs as suggested by Martin:
> 
>> I remember that I have done so to highlight times when we have exceeded predictions.
>> You could obviously paint multiple TICKS for different types and paint them with different colors using transparency.
>> As the color (de)coding may be a pain you possibly could draw multiple ticks of different fractions.
> 
> This looks promising and I have used the following to get my desired affect:
> 
> AREA:ifOutDropsH#FF000055
> TICK:DS3#0000FF:-0.03
> TICK:DS2#FF0000:-0.02
> TICK:DS1#00FF00:-0.01
> 
> ** ifOutDrops is INF or NEGINF if drops detected.
> 
> This is so close to what I want to achieve, where each TICK is 1% of
> the Y axis. To get a stacking affect I am overlapping TICKs with the
> bottom one being slightly taller than the next one.
> 
> Now, this works if all classes have drops in, but in most cases they
> don't and it is only a single class which has drops. If it was DS3 and
> DS1 then the DS3 TICK would be visibly 2% tall as opposed to 1%.
> 
> Is it possible to calculate the fraction dynamically depending if I
> have drops in the classes or is there an alternative approach?
> 
> Thanks,
> Chris



More information about the rrd-users mailing list