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 --- .\._/_)
pgp3tDHPY436i.pgp
Description: PGP signature

