[rrd-users] various questions on rrdcreate/rrd_create

Rick Jones rick.jones2 at hp.com
Sat Apr 23 02:54:25 CEST 2011

On Wed, 2011-04-20 at 15:54 -0700, Rick Jones wrote:
> On Wed, 2011-04-20 at 23:28 +0100, Simon Hobson wrote:
> > Rick Jones wrote:
> > Where there is a likelyhood of the number of datasets changing then 
> > you are better off with separate files. An example of that would be 
> > monitoring disk space where you may add or remove a filesystem. In 
> > that case you'd probably want one file per filesystem.
> > On the other hand, for an ethernet interface, I'd have combined those 
> > separate files into one since the set of values being logged isn't 
> > likely to change.
> > 
> > Another factor is whether all the data values are going to be 
> > available at the same time. You cannot do a partial update - so you 
> > cannot update one dataset at one point in time, and another at a 
> > different time, when they are in the same RRD file. If you can 
> > collect all the data values at once (which would be the case with an 
> > ethernet interface), then it's one call to update them all rather 
> > than updating each separate file individually.
> Thanks.  I was wondering about ntop's decision there since with sflow
> counter samples one either gets all of the interface counters or none of
> them.

Having said that, as I'm getting farther in my own little "store away
the sFlow counters" program I've realized that I may not want the same
step value for each of the values returned for an interface.  for
example, out of the generic counters returned by sFlow:

typedef struct sflow_generic_counter {
    u_int32_t    ifindex;
    u_int32_t    iftype;
    u_int64_t    ifspeed;
    u_int32_t    ifdirection;
    u_int32_t    ifstatus;
    u_int64_t    ifinoctets;
    u_int32_t    ifinunicastpkts;
    u_int32_t    ifinmulticastpkts;
    u_int32_t    ifinbroadcastpkts;
    u_int32_t    ifindiscards;
    u_int32_t    ifinerrors;
    u_int32_t    ifinunknownprotos;
    u_int32_t    ifoutoctets;
    u_int32_t    ifoutunicastpkts;
    u_int32_t    ifoutmulticastpkts;
    u_int32_t    ifoutbroadcastpkts;
    u_int32_t    ifoutdiscards;
    u_int32_t    ifouterrors;
    u_int32_t    ifpromiscmode;
} sflow_generic_counter_t;

where I may desire a step value of one second for the octet, packet,
error and discard counters, I probably don't care for that small a
granularity for index, type, speed, direction and status.  not that ntop
makes distinctions there when it creates rrds, but then it doesn't
create rrds for those others anyway... and perhaps I won't as well.

rick jones

More information about the rrd-users mailing list