[rrd-developers] A Patch: NaN-proof Averaging

Chris Snell cjs+lists at aol.net
Mon Nov 19 17:30:54 MET 2001


Hi All,

Here is a patch to generate averages in a CDEF that are not susceptible to
breaking when a NaN is present in the values being averaged.

Background:  I was given a requirement to generate utilization graphs that
show an average metric for entire farms of machines (anywhere from 10 to
300+ boxes).  I was having problems: if one of the machines went offline
for some reason, its metrics would register as NaN.  When I tried to
average them all, the result would be, of course, NaN.  I needed a way to
discard all NaN's from a set of values and average the remaining real
numbers.  Since we're dealing with large data sets here, its not a big
deal if a few measurements are removed from the average because they were
NaN.

Implementation:  I added a new RPN function: AVGNONAN.  This function
pulls all values from the stack, discards NaN values and averages the
remainder, pushing the result back onto the stack.

Example:

CDEF:avg_cpu=cpu_host_1,cpu_host_2,cpu_host_3,cpu_host4,AVGNONAN

The patch is attached to this e-mail.  Comments and suggestions will be
much appreciated.
 
Chris
-- 
 Christopher Snell < cjs _at_ AOL . net >
 Systems Architect / R&D / Web Infrastructure / AOL
 /* privat: http://chrissnell.com */


-- Attached file removed by Listar and put at URL below --
-- Type: text/plain
-- Size: 2k (2839 bytes)
-- URL : http://www.ee.ethz.ch/~slist/pantomime/rrdtool-AVGNONAN.diff


--
Unsubscribe mailto:rrd-developers-request at list.ee.ethz.ch?subject=unsubscribe
Help        mailto:rrd-developers-request at list.ee.ethz.ch?subject=help
Archive     http://www.ee.ethz.ch/~slist/rrd-developers
WebAdmin    http://www.ee.ethz.ch/~slist/lsg2.cgi



More information about the rrd-developers mailing list