On Tue, Mar 19, 2002 at 10:52:18AM -0800, matt massie wrote:
> that is a great idea!  i would be easy to add that functionality to 
> ganglia but to be honest i didn't think about it before.  you're right i 
> assumed that ganglia would be used for gauges but there is also a need to 
> support other historical types.
> 
> do you have an idea of the Right way to implement data sources other than 
> gauges?  i'll put some mental energy to it to and add it.

I think the rrdcreate man page pretty much has it covered.

       GAUGE       is for things like temperatures or number of
                   people in a room or value of a RedHat share.

       COUNTER     is for continuous incrementing counters like
                   the InOctets counter in a router. The COUNTER
                   data source assumes that the counter never
                   decreases, except when a counter overflows.
                   The update function takes the overflow into
                   account.  The counter is stored as a per-
                   second rate. When the counter overflows,
                   RRDtool checks if the overflow happened at the
                   32bit or 64bit border and acts accordingly by
                   adding an appropriate value to the result.

       DERIVE      will store the derivative of the line going
                   from the last to the current value of the data
                   source. This can be useful for gauges, for
                   example, to measure the rate of people
                   entering or leaving a room. Internally, derive
                   works exaclty like COUNTER but without
                   overflow checks. So if your counter does not
                   reset at 32 or 64 bit you might want to use
                   DERIVE and combine it with a MIN value of 0.

       ABSOLUTE    is for counters which get reset upon reading.
                   This is used for fast counters which tend to
                   overflow. So instead of reading them normally
                   you reset them after every read to make sure
                   you have a maximal time available before the
                   next overflow. Another usage is for things you
                   count like number of messages since the last
                   update.

I'd send code, but my day job currently has funny ideas about exactly
who owns work that I do in my spare time -- until I've got the
appropriate documents countersigned. . .

. . . rrd_update.c::rrd_update() around line 350 might be instructive.

> right now i'm focusing hard on integrating the execution environment into 
> ganglia (along with globus integration, building a C/C++ API, and other 
> requests from users).  luckily i think this is a simple problem to solve: 
> use the present XML spec (or add an attribute to the METRIC element) and 
> create a special case which is recognized by ganglia-rrd.pl.

An attribute on METRIC works for me.

N
-- 
FreeBSD: The Power to Serve      http://www.freebsd.org/               (__)
FreeBSD Documentation Project    http://www.freebsd.org/docproj/    \\\'',)
                                                                      \/  \ ^
   --- 15B8 3FFC DDB4 34B0 AA5F  94B7 93A8 0764 2C37 E375 ---         .\._/_)

Attachment: pgp3tDHPY436i.pgp
Description: PGP signature

Reply via email to