[rrd-users] Normalization and NaN (?)

Derek Simkowiak ubuntu at realloc.net
Thu Dec 23 13:10:37 CET 2010


     Hello,
     I am using RRDtool (through Cacti).  I am trying to reproduce the 
graph found here:

http://crunchtools.com/software/crunchtools/cacti/graph-sockets-pipes-files/

     It's a graph of open file handles on a Linux system (incl. sockets 
and pipes).  There are 5 lines on the one graph, with 5 different inputs.

     My version of that graph *almost* works.  Everything works, except 
that the "files" count is always NaN.

     I have done all the standard troubleshooting.  My Cacti script 
produces correct output like this:

files:2976 pipes:23 tcp:38 udp:35 unix:226

     The only thing I can see that might cause "files" to break (whereas 
all the other inputs work fine) is that "files" is roughly one or two 
orders of magnitude bigger than the other inputs.

     This is not a case of "files" exceeding the maximum value.  That 
was the first thing I checked.  Here is a snippet from "rrdtool info 
myfile.rrd":

ds[files].type = "GAUGE"
ds[files].minimal_heartbeat = 600
ds[files].min = 0.0000000000e+00
ds[files].max = NaN
ds[files].last_ds = "U"
ds[files].value = NaN
ds[files].unknown_sec = 3

     Notice that max is NaN, which I believe means there is no maximum.  
The min and max settings are identical for the other data sources.

     So I am left wondering why RRDtool can't accept those large values 
for "files".  I suspect two things:

Hypothesis #1: During the "normalization" phase, somehow RRDtool is 
computing that "files" is an invalid number because it's so much bigger 
than the other inputs.

Hypothesis #2: I am using the option "--alt-autoscale-max" when 
generating the graph.  Perhaps there is a problem trying to scale the Y 
axis with such widely varying inputs?

     (I consider hypothesis #2 to be very weak, because the NaN shows up 
in my .rrd file, regardless of whether or not I create a graph from that 
data.)

     As I troubleshoot this problem, I can see that the author of the 
original graph (linked above) converted his "files" input -- and only 
"files"! -- to "kilo-files", meaning, he divided the number of files by 
one thousand.  There is a "k" after the files count on his graph.  So I 
suspect he had the same problem I'm having, and he fixed it by dividing 
by 1000 to bring the number for "files" closer to the other numbers.

     So my question is... why does this happen?

     I understand that a graph of 2976 "files" would make the values of 
23, 38, and 35 (for "pipes", "tcp", and "udp" respectively) look 
basically like zero on a graph that's only 120px tall, and thus, it 
would be useless.  But I expect RRDtool to give me an useless graph, not 
NaN in my .rrd database.

     Any assistance is greatly appreciated.


Thank You,
Derek Simkowiak


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.oetiker.ch/pipermail/rrd-users/attachments/20101223/09fd1702/attachment.htm 


More information about the rrd-users mailing list