tahoe-lafs/misc
robk-tahoe 7b9f3207d0 stats: add a simple stats gathering system
We have a desire to collect runtime statistics from multiple nodes primarily
for server monitoring purposes.   This implements a simple implementation of
such a system, as a skeleton to build more sophistication upon.

Each client now looks for a 'stats_gatherer.furl' config file.  If it has
been configured to use a stats gatherer, then it instantiates internally
a StatsProvider.  This is a central place for code which wishes to offer
stats up for monitoring to report them to, either by calling 
stats_provider.count('stat.name', value) to increment a counter, or by
registering a class as a stats producer with sp.register_producer(obj).

The StatsProvider connects to the StatsGatherer server and provides its
provider upon startup.  The StatsGatherer is then responsible for polling
the attached providers periodically to retrieve the data provided.
The provider queries each registered producer when the gatherer queries
the provider.  Both the internal 'counters' and the queried 'stats' are
then reported to the gatherer.

This provides a simple gatherer app, (c.f. make stats-gatherer-run)
which prints its furl and listens for incoming connections.  Once a
minute, the gatherer polls all connected providers, and writes the
retrieved data into a pickle file.

Also included is a munin plugin which knows how to read the gatherer's
stats.pickle and output data munin can interpret.  this plugin, 
tahoe-stats.py can be symlinked as multiple different names within
munin's 'plugins' directory, and inspects argv to determine which
data to display, doing a lookup in a table within that file.
It looks in the environment for 'statsfile' to determine the path to
the gatherer's stats.pickle.  An example plugins-conf.d file is
provided.
2008-01-30 20:11:07 -07:00
..
dependencies setup: include cli.exe in the bootstrap setptools egg so that it will work on Windows (also include gui.exe just in case) 2008-01-22 12:33:55 -07:00
feisty/debian debian: update dependencies to match calc-deps.py, mainly pycryptopp-0.2.8 2008-01-02 15:14:34 -07:00
munin stats: add a simple stats gathering system 2008-01-30 20:11:07 -07:00
sid/debian debian: update dependencies to match calc-deps.py, mainly pycryptopp-0.2.8 2008-01-02 15:14:34 -07:00
count_dirs.py misc/count_dirs.py: dev tool to estimate filetree space consumption 2007-06-16 21:55:13 -07:00
figleaf2el.py change #!/usr/bin/python to #!/usr/bin/env python 2007-03-29 14:01:28 -07:00
figleaf2html move figleaf2html and figleaf_htmlizer.py into our tree, for easier customization 2007-01-03 22:06:51 -07:00
figleaf.el figleaf.el: add code to auto-enable the annotation mode for all source files 2007-01-18 01:00:11 -07:00
figleaf.excludes misc/figleaf.excludes: exclude simplejson too, since we don't run their tests 2007-07-12 16:26:25 -07:00
find_trial.py setup: make find_trial self-contained so that we don't have a bootstrapping problem -- if allmydata can't be imported we still want to be able to run find_trial 2008-01-23 10:04:26 -07:00
find-dep-eggs.py setup: whoops, fix the use of source-tree-root-dir eggs in our Makefile 2008-01-01 01:53:31 -07:00
find-trailing-spaces.py Makefile: add 'find-trailing-spaces' tool and target 2007-11-05 21:32:08 -07:00
get-version.py setup: update in-line doc of get-version.py 2008-01-08 10:51:01 -07:00
getmem.py change #!/usr/bin/python to #!/usr/bin/env python 2007-03-29 14:01:28 -07:00
hatch-eggs.py windows installer build refinements 2008-01-14 17:53:54 -07:00
logtool.py logtool: add 'gather' and 'dump' modes 2007-11-18 18:32:04 -07:00
pyver.py packaging: add 'build-deps' target, to automatically build and install (locally, in ./support) necessary dependencies. All such installed files are used during tests. 2007-09-12 16:48:45 -07:00
simulator.py a few documentation and naming convention updates 2007-12-12 19:34:08 -07:00
sizes.py hush some pyflakes warnings 2007-09-15 15:07:21 -07:00
storage-overhead.py hush some pyflakes warnings 2007-09-15 15:07:21 -07:00
sub-ver.py windows installer build refinements 2008-01-14 17:53:54 -07:00
test-darcs-boringfile.py makefile: add a test-darcs-boringfile target 2007-05-23 17:51:28 -07:00