"Manzke, Udo" <udo.man...@gkvi.de> wrote:

> Result is an Error: “RPN Stack Underflow”. Do anyone know what’s wrong?


DEF:rtMills=/icmp.rrd:icmp:AVERAGE \
CDEF:rt=rtMills,1000,/ \
CDEF:unknownpos=rt,UN,INF,UNKN,IF,/ \

OK, lets break that down.

rt -> puts rt on the stack

UN -> take rt off the stack and leaves true or false depending on whether it's 
unknown or not

INF, UNKN -> puts INF and UNKN values on the stack. Stack now holds 
[true|false],INF,UNKN

IF -> takes 3 items off the stack, sees the true or false left by the UN 
operator, and selects either INF or UNKN which it puts on the stack. Stack now 
holds [INF|UNKN] - if rt was unknown then the stack holds INF, else it holds 
UNKN. I assume you actually wanted rt here so your line needs to have 
"INF,rt,IF"

/ -> takes two items off the stack. Oh dear, there was only one item there -> 
stack underflow. So either remove the "/" or add something to divide by. 
Perhaps you intended to combine the two lines, in which case you'd have had 
"rtMills,UN,INF,rtMills,IF,1000,/" or "rtMills,UN,INF,rtMills,1000,/,IF" - the 
two are equivalent as long as INF divided by 1000 is still INF (which I'd 
expect it to be).


I don't think INF is likely to be what you want, (according to the docs) it 
draws a line along the top of the graph which (depending on the data) may or 
may not be readily distinguishable from steady data - it wouldn't be how I'd 
want to draw it anyway. Personally I'd just accept the gaps in the graph which 
(IMO) is more meaningful - for ping, no response is indistinguishable from 
"response outside the timeout window".



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

Reply via email to