[rrd-users] various questions on rrdcreate/rrd_create

Rick Jones rick.jones2 at hp.com
Wed Apr 20 21:26:22 CEST 2011

First a "style" question I suppose.  Let's say for the sake of argument
I decided to write my own "take sFlow counters and shove them into an
RRD" program.  Each interface has a number of counters.  One can specify
more than one DS per RRD but it seems that ntop for example has decided
to create one per stat:

root at tardy:/usr/local/var/ntop/rrd/interfaces/sFlow-device.2/sFlow/45#
total 2628
drwx------  2 root root    4096 2011-04-12 11:34 ./
drwx------ 54 root root    4096 2011-04-08 15:50 ../
-rw-------  1 root root   59968 2011-04-15 15:57 ifInBroadcastPkts.rrd
-rw-------  1 root root   59968 2011-04-08 16:07 ifInDiscards.rrd
-rw-------  1 root root   59968 2011-04-20 11:06 ifInMulticastPkts.rrd
-rw-------  1 root root   59968 2011-04-20 11:06 ifInOctets.rrd
-rw-------  1 root root 2126656 2011-04-20 11:06 ifInUcastPkts.rrd
-rw-------  1 root root   59968 2011-04-20 11:06 ifOutBroadcastPkts.rrd
-rw-------  1 root root   59968 2011-04-20 11:06 ifOutDiscards.rrd
-rw-------  1 root root   59968 2011-04-20 11:06 ifOutMulticastPkts.rrd
-rw-------  1 root root   59968 2011-04-20 11:06 ifOutOctets.rrd
-rw-------  1 root root   59968 2011-04-20 11:06 ifOutUcastPkts.rrd

Before I simply, blithely mimic that, is there any best practice?

Also, when creating with --no-overwrite, what happens if the second or
Nth create has a different value for things like step or heartbeat?  Are
they simply ignored or does some sort of "conversion" take-place?

Looking at the output of rrdtool dump on one of those RRDs above, am I
correct in assuming that when apart from perhaps the
forcasting/specialized RRAs all RRAs are derived from Primary Data
Points and don't "cascade?"  At first I was thinking that the three
AVERAGE RRA's created by ntop cascaded - primary to hourly to daily, but
I'm getting the impression from both
http://www.mrtg.org/rrdtool/doc/rrdcreate.en.html and the dump output
that the hourly and daily are both derived from the primary.

And then finally - for the moment anyway :)  In the C API, why argc/argv
instead of varargs?


rick jones

More information about the rrd-users mailing list