[rrd-users] Stacking...

2005-12-25 Thread Michael Collard
Can't seem to get the stacking working... This is the graphing command:

rrdtool graph test.png -i --end now --start -30m --width 600 \
--height 200 -l 0 --title 'DSL stats' \
DEF:dsratemi=/var/db/604t.rrd:dsrate:MIN \
DEF:usratemi=/var/db/604t.rrd:usrate:MIN \
AREA:usratemi#d0ffd0:Upstream \
AREA:dsratemi#d0d0ff:Downstream:STACK \
LINE2:usratemi#00FF00 \
LINE2:dsratemi#FF \
HRULE:0#00 \

The second area just goes straight over the top of the the first. I've
had a look around for examples without success. 

Also, can't find a substitute for HRULE:0#00, LINE just complains
about the '0'.

Cheers

--
Unsubscribe mailto:[EMAIL PROTECTED]
Helpmailto:[EMAIL PROTECTED]
Archive http://lists.ee.ethz.ch/rrd-users
WebAdminhttp://lists.ee.ethz.ch/lsg2.cgi


[rrd-users] Stacking

2015-08-11 Thread Devante Vargas
I am working on creating a graph for my ping script. It collects, min, max
and average response times. I have added the ::STACK for the AREA after the
first AREA is defined. Problem is it adds the next two on top and moves it
up a notch, e.g. Min response time is 0.42 (this is measured accurately and
on the Y axis it shows it hits 0.42ms) but the next 2, e.g max response
times, 0.64ms, it places it on top of the min area and when aligned with
the Y axis it shows at 1.08ms, and then average, 0.60ms on top of that and
shows aligned at the value of 1.68ms.

Is there anyway to get the max and average to start at zero instead of from
where the last area ended up at?

So far I got this as my syntax:

rrdtool.exe graph graph.png
--title "Daily ICA Port Latency"
--vertical-label "milliseconds"
--slope-mode
--start end-1d -X 0
DEF:def_min=latency.rrd:response:MIN
DEF:def_max=latency.rrd:response:MAX
DEF:def_avg=latency.rrd:response:AVERAGE
CDEF:cdef_min=def_min,1000,/
CDEF:cdef_max=def_max,1000,/
CDEF:cdef_avg=def_avg,1000,/
VDEF:vdef_min=def_min,MINIMUM
VDEF:vdef_max=def_max,MAXIMUM
VDEF:vdef_avg=def_avg,AVERAGE
AREA:def_min#54EC48
AREA:def_max#EC9D48::STACK
AREA:def_avg#48C4EC::STACK
PRINT:vdef_min:%.2lf
PRINT:vdef_max:%.2lf
PRINT:vdef_max:%.2lf

thank you,

 Devante
___
rrd-users mailing list
rrd-users@lists.oetiker.ch
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users


Re: [rrd-users] Stacking

2015-08-11 Thread Simon Hobson
Devante Vargas  wrote:

> I am working on creating a graph for my ping script. It collects, min, max 
> and average response times. I have added the ::STACK for the AREA after the 
> first AREA is defined. Problem is it adds the next two on top and moves it up 
> a notch, e.g. Min response time is 0.42 (this is measured accurately and on 
> the Y axis it shows it hits 0.42ms) but the next 2, e.g max response times, 
> 0.64ms, it places it on top of the min area and when aligned with the Y axis 
> it shows at 1.08ms, and then average, 0.60ms on top of that and shows aligned 
> at the value of 1.68ms.
> 
> Is there anyway to get the max and average to start at zero instead of from 
> where the last area ended up at?

Several ways to do this, depending on what you want.

One would be to plot an area for max, then an area for avg, then an area in 
white for min - no stack involved. So you end up with a colour band from min to 
avg, and a different colour band from avg to max.

Another one I've used is : use a CDEF to get the difference between max and 
min, plot min in white (or transparent), then stack the CDEF on top of that, 
then draw a line for avg. I tend to use a solid colour for the line, and the 
same colour (but with a lot of transparency) for the min-max spread - that way 
the min-max spread area doesn't obliterate what's been plotted before.

___
rrd-users mailing list
rrd-users@lists.oetiker.ch
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users


[rrd-users] Stacking at Infinity

2012-03-02 Thread Chris Mason
Hi,

I am graphing class based interface statistics using RRDTOOL and I am
trying to find a way to graph errors on the same graph. At the moment
if I detect errors I am highlighting the background with an AREA using
the INF or NEGINF functions. This works fine and I can see if I had
errors during the period. An example of this is below:

http://netnix.org/example.png

However, I would like to enhance this further to give some indication
of the class or classes that dropped traffic.
For each of the classes I have tried to do the following:

CDEF:DSxH=DSx,0,GT,INF,UNKN,IF
LINE3:DSxH#xx

This will draw a line at INF using the classes colour if errors were
detected in that class. If multiple classes have drops then the line
will get overwritten with the later colour. I could use transparency
but then it is usually difficult to determine the colours. I have
tried stacking, but it doesn't like stacking on top of infinity which
sort of makes sense.

If I had drops in two classes then I would like to see 2 lines stacked
on top of each other in different colours at infinity or negative
infinity for inbound drops.

Is this possible or am I trying to push it to hard with my graphing
requirements?

Thanks,
Chris

___
rrd-users mailing list
rrd-users@lists.oetiker.ch
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users


Re: [rrd-users] Stacking at Infinity

2012-03-02 Thread Alex van den Bogaerdt
> CDEF:DSxH=DSx,0,GT,INF,UNKN,IF
> LINE3:DSxH#xx
>
> This will draw a line at INF using the classes colour if errors were
> detected in that class. If multiple classes have drops then the line
> will get overwritten with the later colour. I could use transparency
> but then it is usually difficult to determine the colours. I have
> tried stacking, but it doesn't like stacking on top of infinity which
> sort of makes sense.

By definition you cannot graph *at* infinity. That is why this "value" was
chosen to trick RRDtool to forget about autoscaling and just graph the
portion already visible.

Not only is stacking "on top of" infinity not defined, you would also, by
definition, stack above (or under) the visible part of the graph and thus
outside the viewport.

What you want is the top of the graph, and infinity is just the tool you
use to get there.

Unless somebody extended the rudimentary VDEF framework, there currently
is no way to find out dnamically what autoscaling is doing. But if you
find out by other means (e.g. a double pass run, or by having a fixed
maximum (as you seem to have)) then you can use that information to draw
your lines at e.g. 95% of maximum and 90% of maximum. It's not exactly
what you aim for now, but I hope it is matching what you're really after.

> If I had drops in two classes then I would like to see 2 lines stacked
> on top of each other in different colours at infinity or negative
> infinity for inbound drops.

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.

HTH
Alex


___
rrd-users mailing list
rrd-users@lists.oetiker.ch
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users


Re: [rrd-users] Stacking at Infinity

2012-03-02 Thread Martin Sperl
I have not fully understood how you want your graph to look visually.
But maybe you can use TICK to draw your errors.

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.

Ciao,
Martin


On 03.03.2012, at 03:46, Alex van den Bogaerdt wrote:

>> CDEF:DSxH=DSx,0,GT,INF,UNKN,IF
>> LINE3:DSxH#xx
>> 
>> This will draw a line at INF using the classes colour if errors were
>> detected in that class. If multiple classes have drops then the line
>> will get overwritten with the later colour. I could use transparency
>> but then it is usually difficult to determine the colours. I have
>> tried stacking, but it doesn't like stacking on top of infinity which
>> sort of makes sense.
> 
> By definition you cannot graph *at* infinity. That is why this "value" was
> chosen to trick RRDtool to forget about autoscaling and just graph the
> portion already visible.
> 
> Not only is stacking "on top of" infinity not defined, you would also, by
> definition, stack above (or under) the visible part of the graph and thus
> outside the viewport.
> 
> What you want is the top of the graph, and infinity is just the tool you
> use to get there.
> 
> Unless somebody extended the rudimentary VDEF framework, there currently
> is no way to find out dnamically what autoscaling is doing. But if you
> find out by other means (e.g. a double pass run, or by having a fixed
> maximum (as you seem to have)) then you can use that information to draw
> your lines at e.g. 95% of maximum and 90% of maximum. It's not exactly
> what you aim for now, but I hope it is matching what you're really after.
> 
>> If I had drops in two classes then I would like to see 2 lines stacked
>> on top of each other in different colours at infinity or negative
>> infinity for inbound drops.
> 
> 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.
> 
> HTH
> Alex
> 
> 
> ___
> rrd-users mailing list
> rrd-users@lists.oetiker.ch
> https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users

___
rrd-users mailing list
rrd-users@lists.oetiker.ch
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users


Re: [rrd-users] Stacking at Infinity

2012-03-03 Thread Chris Mason
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:100#FF
LINE3:-1#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#FF55
TICK:DS3#FF:-0.03
TICK:DS2#FF:-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

___
rrd-users mailing list
rrd-users@lists.oetiker.ch
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users


Re: [rrd-users] Stacking at Infinity

2012-03-04 Thread Martin Sperl
Hi!

What about the following:
CDEF:CNTUNKN=DS1,UN,1,0,IF,DS2,UN,1,0,IF,+,DS3,UN,1,0,IF,+
CDEF:TICK1=CNTUNKN,1,EQ,1,UNKN,IF
CDEF:TICK2=CNTUNKN,2,EQ,1,UNKN,IF
CDEF:TICK3=CNTUNKN,3,EQ,1,UNKN,IF
TICK:TICK1#FF:-0.03
TICK:TICK2#00FF00:-0.02
TICK:TICK3#FF:-0.01

(I did not test the CDEF, so they may not be perfect)
Obviouly you could make more cdefs if you even need to know which one is the 
"bad" one...

You could alsp play with the alpha color channel instead when graphing...

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:100#FF
> LINE3:-1#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#FF55
> TICK:DS3#FF:-0.03
> TICK:DS2#FF:-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

___
rrd-users mailing list
rrd-users@lists.oetiker.ch
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users


Re: [rrd-users] Stacking at Infinity

2012-03-04 Thread Martin Sperl
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#ff:-.03
TICK:DS2GREEN#00ff00:-.02
TICK:DS2RED#ff:-.02
TICK:DS3GREEN#00ff00:-.01
TICK:DS3RED#ff:-.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#ff:-.03
TICK:bar#00:-0.21
TICK:DS2GREEN#00ff00:-.02
TICK:DS2RED#ff:-.02
TICK:bar#00:-0.11
TICK:DS3GREEN#00ff00:-.01
TICK:DS3RED#ff:-.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:100#FF
> LINE3:-1#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#FF55
> TICK:DS3#FF:-0.03
> TICK:DS2#FF:-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

___
rrd-users mailing list
rrd-users@lists.oetiker.ch
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users


Re: [rrd-users] Stacking at Infinity

2012-03-04 Thread Chris Mason
Hi Martin,

Thank you for taking your time to respond.

To ensure I understand this correctly, this will print a TICK on the
graph for each DS. It will either be RED or GREEN depending
on the value of the DS?

The problem I have is I am graphing classes for QoS with a different
number of classes per graph. I would prefer it to only show TICKs if I
have drops within that class and I would like the TICK to be the same
colour as the Octets for that class.

E.g:

Class1Drops = 0
Class2Drops = 100
Class3Drops = 0
Class4Drops = 57

I have also defined ClassXOctets for each respective class which is
coloured according to an algorithm. If I detect drops in any of the
classes then I draw the background red using INF/NEGINF. However, to
identify the specific classes I wanted to draw a TICK using the colour
of that class.

The above scenario would result in 3 TICKs being printed on the graph
using the respective colour of that class. I suppose it would be nice
to have TICK stacking where I could append '::STACK' to the end of
sequential TICKs.

In the event of using a CDEF for the fraction value I am still
struggling to work out how to achieve the desired result because I
would have to start with the highest fraction value. I am not sure if
the following would work:

CDEF:BASE1=0,-0.1,+
CDEF:C1F=Class1Drops,0,GT,BASE1,0,IF

CDEF:BASE2=Class1Drops,0,GT,BASE1,-0.01,+,BASE1,IF
CDEF:C2F=Class2Drops,0,GT,BASE2,0,IF

CDEF:BASE3=Class2Drops,0,GT,BASE2,-0.01,+,BASE2,IF
CDEF:C3F=Class3Drops,0,GT,BASE3,0,IF

CDEF:BASE4=Class3Drops,0,GT,BASE3,-0.01,+,BASE3,IF
CDEF:C4F=Class4Drops,0,GT,BASE4,0,IF

TICK:Class4Drops#A:C4F
TICK:Class3Drops#B:C3F
TICK:Class2Drops#C:C2F
TICK:Class1Drops#D:C1F

Thanks,
Chris

On 4 March 2012 12:52, Martin Sperl  wrote:
> 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#ff:-.03
> TICK:DS2GREEN#00ff00:-.02
> TICK:DS2RED#ff:-.02
> TICK:DS3GREEN#00ff00:-.01
> TICK:DS3RED#ff:-.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#ff:-.03
> TICK:bar#00:-0.21
>        TICK:DS2GREEN#00ff00:-.02
>        TICK:DS2RED#ff:-.02
> TICK:bar#00:-0.11
>        TICK:DS3GREEN#00ff00:-.01
>        TICK:DS3RED#ff:-.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:100#FF
>> LINE3:-1#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#FF55
>> TICK:DS3#FF:-0.03
>> TICK:DS2#FF:-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
>

_

Re: [rrd-users] Stacking at Infinity

2012-03-04 Thread Martin Sperl
Hi Chris!

What you are requesting is currently not possible - at least not easily.
The only thing I can offer you as am option is this "red/green" approach - 
which is not 100% what you want.

As for using the cdef as fraction - I did not say that it may work for you 
fully, but it may come close if used in this manner

CDEF:C1=Class1Drops,0,GT,-0.01,0,IF
CDEF:C2=Class2Drops,0,GT,-0.01,0,IF
CDEF:C3=Class3Drops,0,GT,-0.01,0,IF
CDEF:C4=Class4Drops,0,GT,-0.01,0,IF

CDEF:C12=c1,c2,+
CDEF:C123=c12,c3,+
CDEF:C1234=c123,c4,+

TICK:C1234#DD:vname:yourlabel
TICK:C123#CC:vname:yourlabel
TICK:C12#BB:vname:yourlabel
TICK:C1#AA:vname:yourlabel

this should essentially produce the result of manual "stacking" of ticks...

Ciao,
Martin


On 04.03.2012, at 22:12, Chris Mason wrote:

> Hi Martin,
> 
> Thank you for taking your time to respond.
> 
> To ensure I understand this correctly, this will print a TICK on the
> graph for each DS. It will either be RED or GREEN depending
> on the value of the DS?
> 
> The problem I have is I am graphing classes for QoS with a different
> number of classes per graph. I would prefer it to only show TICKs if I
> have drops within that class and I would like the TICK to be the same
> colour as the Octets for that class.
> 
> E.g:
> 
> Class1Drops = 0
> Class2Drops = 100
> Class3Drops = 0
> Class4Drops = 57
> 
> I have also defined ClassXOctets for each respective class which is
> coloured according to an algorithm. If I detect drops in any of the
> classes then I draw the background red using INF/NEGINF. However, to
> identify the specific classes I wanted to draw a TICK using the colour
> of that class.
> 
> The above scenario would result in 3 TICKs being printed on the graph
> using the respective colour of that class. I suppose it would be nice
> to have TICK stacking where I could append '::STACK' to the end of
> sequential TICKs.
> 
> In the event of using a CDEF for the fraction value I am still
> struggling to work out how to achieve the desired result because I
> would have to start with the highest fraction value. I am not sure if
> the following would work:
> 
> CDEF:BASE1=0,-0.1,+
> CDEF:C1F=Class1Drops,0,GT,BASE1,0,IF
> 
> CDEF:BASE2=Class1Drops,0,GT,BASE1,-0.01,+,BASE1,IF
> CDEF:C2F=Class2Drops,0,GT,BASE2,0,IF
> 
> CDEF:BASE3=Class2Drops,0,GT,BASE2,-0.01,+,BASE2,IF
> CDEF:C3F=Class3Drops,0,GT,BASE3,0,IF
> 
> CDEF:BASE4=Class3Drops,0,GT,BASE3,-0.01,+,BASE3,IF
> CDEF:C4F=Class4Drops,0,GT,BASE4,0,IF
> 
> TICK:Class4Drops#A:C4F
> TICK:Class3Drops#B:C3F
> TICK:Class2Drops#C:C2F
> TICK:Class1Drops#D:C1F
> 
> Thanks,
> Chris
> 
> On 4 March 2012 12:52, Martin Sperl  wrote:
>> 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#ff:-.03
>> TICK:DS2GREEN#00ff00:-.02
>> TICK:DS2RED#ff:-.02
>> TICK:DS3GREEN#00ff00:-.01
>> TICK:DS3RED#ff:-.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#ff:-.03
>> TICK:bar#00:-0.21
>>TICK:DS2GREEN#00ff00:-.02
>>TICK:DS2RED#ff:-.02
>> TICK:bar#00:-0.11
>>TICK:DS3GREEN#00ff00:-.01
>>TICK:DS3RED#ff:-.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:100#FF
>>> LINE3:-1#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