Commit Graph

178 Commits

Author SHA1 Message Date
robk-tahoe
3641b7924b munin stats: don't suppress series with no current data
having changed tahoe-stats to not report data series if there was no recent
data recorded for a node, I wound up making it hide the data series.  this
change causes it to report all data series for which stats exist in the
'config' phase, so that they show up, but only report actual data if the
stats are recent, so that they show up as missing if the node is not
reporting stats currently
2008-02-01 18:44:57 -07:00
robk-tahoe
b80cfeb186 munin stats: suppress output of data more that 5min old
if a node fails to report stats, the natural thing to do in re munin is to 
supress the data for that data series.  the previous tahoe-stats would output
whatever data was present in the stats_gatherer's stats.pickle, regardless of
how old.

this change means that if the gatherer hasn't received data within the last
5 min, then no data is reported to munin for that node.
2008-01-31 21:04:23 -07:00
robk-tahoe
e910a64e7d munin stats: change truncated nodeid to 4 char (not 8) 2008-01-31 19:21:17 -07:00
Brian Warner
bf25a041f3 tarballs: stick with setup.py's sdist command, which gives us bz2/gz/zip but not rz/7z/lrz. Closes #298. 2008-01-31 13:52:48 -07:00
Brian Warner
4a363f0281 add 'tarballs' target, to generate compressed source tarballs 2008-01-30 20:45:14 -07:00
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
Zooko O'Whielacronx
284c1652a9 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
Zooko O'Whielacronx
faad785859 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
Zooko O'Whielacronx
b1152860cd setup: bundle setuptools_darcs-1.1.7
fixes #263
2008-01-22 11:01:36 -07:00
Zooko O'Whielacronx
451ca7792e setup: add a setuptools bootstrap egg that works on all versions of Python
For versions of Python >= 2.3.
2008-01-22 11:00:12 -07:00
Zooko O'Whielacronx
1f2e3fc912 setup: simplify the setup by removing the "tahoe dependencies" fake project
Now we use "./setup.py develop" to ensure that changes to our source code are immediately used without requiring a "make" step.  This simplification will hopefully pave the way for easier py2exe and py2app, solving the "Unit tests test the installed version" bug (#145), and perhaps also #164 and #176.

This patch also conditionalizes the use of setuptools_darcs on the absence of a PKG-INFO file, which is part of fixing #263.
2008-01-22 08:35:38 -07:00
robk-tahoe
3cb08209d2 windows installer build refinements
this resolves problems of py2exe's modulefinder collection of sources from
.zipped egg files, not by using easy_install to reach the --always-unzip
option, but rather with a small tool which unpacks any zipped egg files found
in misc/dependencies.  this fixes the py2exe build given rollback of the 
easy_install stuff which had broken the unix builds.  misc/hatch-eggs.py
performs the honours.

this also includes a misc/sub-ver.py tool which substitutes elements of the
verion number for the current code base (by importing allmydata.__version__
hence make-version should be run first, and the python path carefully managed)
into template files using python's string interpolation of named args from a
dict as the templating syntax.  i.e. %(major)d %(minor)d %(point)d %(nano)d
each expand to the individual components of the version number as codified
by the pyutil.version_class.Version class.  there is also a %(build)s tag
which expands to the string form of the whole version number.  This tool is
used to interpolate the automatically generated version information into the
innosetup source file in a form consistent with innosetup/windows' restrictions
2008-01-14 17:53:54 -07:00
Zooko O'Whielacronx
88c93469ff setup: add darcsver-1.0.1.tar to misc/dependencies/ 2008-01-16 14:08:26 -07:00
Brian Warner
16e2b3307a build-deps-setup.py: import twisted early, to make setuptools on dapper use the right version 2008-01-10 20:15:02 -07:00
robk-tahoe
2585908296 tweaks to build process to support py2exe
py2exe is unable to handle .eggs which are packaged as zip files
in preference it will pull in other versions of libraries if they 
can be found in the environment.

this changes causes .eggs to be built as .egg directories, which
py2exe can handle.
2008-01-09 19:02:53 -07:00
Zooko O'Whielacronx
80adf18fcc setup: remove hard import of ez_setup -- we can proceed even if ez_setup can't be imported 2008-01-10 14:01:52 -07:00
Zooko O'Whielacronx
72aa8f5cb8 setup: shebang usr bin env python 2008-01-10 14:01:31 -07:00
Zooko O'Whielacronx
1ab03fe9d2 setup: update in-line doc of get-version.py 2008-01-08 10:51:01 -07:00
Brian Warner
813706a01e debian: update dependencies to match calc-deps.py, mainly pycryptopp-0.2.8 2008-01-02 15:14:34 -07:00
Zooko O'Whielacronx
b412847485 setup: whoops, fix the use of source-tree-root-dir eggs in our Makefile 2008-01-01 01:53:31 -07:00
Zooko O'Whielacronx
97f2953cec setup: fix bin/tahoe to include .egg's from the source tree root dir as well
This is necessary, as we can't prevent setuptools from respecting any such eggs, therefore we need to respect them in order to maintain consistency.  However, we don't normally install any "install_requires" eggs into the source tree root dir.
2008-01-01 01:51:28 -07:00
Zooko O'Whielacronx
9b38eebcaf setup: finish renaming of docs/testnet to docs/testgrid 2007-12-31 23:36:59 -07:00
Zooko O'Whielacronx
58bedc60a2 setup: add darcsver source tarball to misc/dependencies
In the future, we're likely to stop keeping misc/dependencies under revision control, as per

http://allmydata.org/trac/tahoe/ticket/249
2007-12-31 23:26:51 -07:00
Brian Warner
bd187dfc50 upgrade to foolscap-0.2.3 2007-12-24 17:23:27 -07:00
Zooko O'Whielacronx
bfc69178b2 setup: fix bug in bugfix to patch to include .egg's found in CWD 2007-12-22 11:19:52 -07:00
Zooko O'Whielacronx
2ee424b3a3 setup: fix bug in previous patch to include .egg's from CWD 2007-12-22 11:14:27 -07:00
Zooko O'Whielacronx
7fdcbddbbc setup: we also need to include .egg's in the CWD in our search path, because if we install a 3rd party library into support/, and *it* installs a library that *it* requires, that one will appear in CWD
It would be nice to figure out a way to force them to all appear in support/ where they belong.
2007-12-22 11:04:24 -07:00
Zooko O'Whielacronx
27a0d59308 setup: zope.interface bundle .tar instead of .tar.gz because multiple bundled .tar's compress together much more nicely than multiple bundled .tar.gz's do. :-) 2007-12-22 10:50:54 -07:00
Zooko O'Whielacronx
48b13dcab8 setup: upgrade bundle zfec-1.1.tar.gz to zfec-1.3.4.tar 2007-12-22 10:50:39 -07:00
Zooko O'Whielacronx
a9545aa4b0 setup: simplejson bundle .tar instead of .tar.gz because multiple bundled .tar's compress together much more nicely than multiple bundled .tar.gz's do. :-) 2007-12-22 10:50:29 -07:00
Zooko O'Whielacronx
840fb23229 setup: upgrade bundle from setuptools_darcs-1.0.6.tar.gz to setuptools_darcs-1.1.5.tar 2007-12-22 10:50:03 -07:00
Zooko O'Whielacronx
d5bb1ac316 setup: bundle pyutil-1.3.12.tar 2007-12-22 10:49:47 -07:00
Zooko O'Whielacronx
336c482561 setup: pycryptopp: bundle .tar instead of .tar.gz because multiple bundled .tar's compress together much more nicely than multiple bundled .tar.gz's do. :-) 2007-12-22 10:49:35 -07:00
Zooko O'Whielacronx
2add4f5edb setup: foolscap bundle .tar instead of .tar.gz because multiple bundled .tar's compress together much more nicely than multiple bundled .tar.gz's do. :-) 2007-12-22 10:49:20 -07:00
Zooko O'Whielacronx
fd4880face setup: bundle argparse-0.8.0.tar
It isn't actually needed for Tahoe, only for the command-line tools from pyutil.  Later I will make an "extras" category within pyutil to specify in a machine-readable way that argparse is not required for pyutil unless you want the command-line tools.
2007-12-22 10:47:54 -07:00
Zooko O'Whielacronx
70b84e9298 setup: Nevow bundle .tar instead of .tar.gz because multiple bundled .tar's compress together much more nicely than multiple bundled .tar.gz's do. :-) 2007-12-22 10:47:06 -07:00
Zooko O'Whielacronx
c3a265839c setup: refactor ez_setup.py and setup.py to satisfy the Desert Island scenario, to find and use setuptools egg in-place in misc/dependencies, and make it setup_require pyutil (for darcsver) 2007-12-22 10:44:47 -07:00
Zooko O'Whielacronx
922234ec29 setup: bundle setuptools_darcs plugin in misc/dependencies 2007-12-12 19:20:42 -07:00
Zooko O'Whielacronx
cbd6881a47 setup: remove misc/make-version.py and invoke "darcsver" from the pyutil library
misc/make-version.py has a limitation which prevents it from generating version
stamps from our current darcs history.  This limitation has been fixed in
pyutil's "darcsver".  Rather than copy the fix from there to
misc/make-version.py, I'm making it so that you have to install pyutil if you
want to automatically generate _version.py files from the current darcs
history.
2007-12-20 18:17:55 -07:00
Brian Warner
e8c55fe85d move to foolscap-0.2.2 2007-12-12 20:21:45 -07:00
Zooko O'Whielacronx
1ac09840a4 a few documentation and naming convention updates
Notable: the argument to make REPORTER has been renamed to TRIALARGS.
2007-12-12 19:34:08 -07:00
Brian Warner
48e7a65882 upgrade to foolscap-0.2.1, with a new logging framework 2007-12-10 18:35:08 -07:00
Brian Warner
0618cf792d build-deps: require setuptools 0.6c4 or later, because older ones don't allow foolscap to use os.random at import time 2007-12-10 20:06:59 -07:00
Brian Warner
725621aded debian: add Depends: on python-pycryptopp, now that it's been packaged 2007-11-19 13:04:50 -07:00
Brian Warner
c86e803282 logtool: add 'gather' and 'dump' modes 2007-11-18 18:32:04 -07:00
Brian Warner
b502c3fea1 logtool: rename get-logs.py to logtool.py 2007-11-18 18:30:55 -07:00
Brian Warner
b29ce1c30a logpublisher: implement subscribe/publish for log, add a sample client 2007-11-16 20:07:50 -07:00
Zooko O'Whielacronx
59d6c3c822 decentralized directories: integration and testing
* use new decentralized directories everywhere instead of old centralized directories
 * provide UI to them through the web server
 * provide UI to them through the CLI
 * update unit tests to simulate decentralized mutable directories in order to test other components that rely on them
 * remove the notion of a "vdrive server" and a client thereof
 * remove the notion of a "public vdrive", which was a directory that was centrally published/subscribed automatically by the tahoe node (you can accomplish this manually by making a directory and posting the URL to it on your web site, for example)
 * add a notion of "wait_for_numpeers" when you need to publish data to peers, which is how many peers should be attached before you start.  The default is 1.
 * add __repr__ for filesystem nodes (note: these reprs contain a few bits of the secret key!)
 * fix a few bugs where we used to equate "mutable" with "not read-only".  Nowadays all directories are mutable, but some might be read-only (to you).
 * fix a few bugs where code wasn't aware of the new general-purpose metadata dict the comes with each filesystem edge
 * sundry fixes to unit tests to adjust to the new directories, e.g. don't assume that every share on disk belongs to a chk file.
2007-12-03 14:52:42 -07:00
Zooko O'Whielacronx
211bf154d0 setup: pycryptopp: upgrade from v0.2.7 to v0.2.8 2007-11-19 15:55:17 -07:00
Zooko O'Whielacronx
cadc14fbca setup: pycryptopp: upgrade from v0.2.6 to v0.2.7 (adds AES) 2007-11-19 15:07:11 -07:00
Zooko O'Whielacronx
a82954eced setup: upgrade bundled pycryptopp from v0.2.5 to v0.2.6 2007-11-09 18:14:36 -07:00
Zooko O'Whielacronx
f0520b4e9e setup: upgrade the bundled pycryptopp tarball from pycryptopp v0.2.3 to pycryptopp v0.2.5 2007-11-09 13:02:49 -07:00
Zooko O'Whielacronx
494e07eced setup: upgrade to pycryptopp v0.2.3 2007-11-07 17:54:46 -07:00
Zooko O'Whielacronx
b699c28b67 setup: add misc/dependencies/pycryptopp-0.2.1.tar.gz 2007-11-07 09:59:51 -07:00
Brian Warner
1e8a693512 Makefile: add 'find-trailing-spaces' tool and target 2007-11-05 21:32:08 -07:00
Brian Warner
475a58fcc5 munin: add a sample file for /etc/munin/plugin-conf.d/ 2007-10-22 15:08:39 -07:00
Brian Warner
0aba63ff17 munin: oops, fix that trailing-newline fix, the previous one mangled the config 2007-10-18 12:49:22 -07:00
Brian Warner
b339c76560 munin: remove extra blank line from config output 2007-10-18 12:39:26 -07:00
Brian Warner
33a02e19f1 munin: update shareholder plugins to match current storage layout 2007-10-18 12:08:58 -07:00
Zooko O'Whielacronx
bf3f629a68 setup: use the new find_exe module to find trial 2007-10-15 11:52:26 -07:00
Zooko O'Whielacronx
aba57d9a4c setup: upgrade zfec from 1.0.4 to 1.1 2007-10-11 16:27:52 -07:00
Brian Warner
002472587e add public testnet .furls to docs/testnet/, and copy into .deb . Closes #157. 2007-10-11 14:55:23 -07:00
Brian Warner
1c7f52265f deb: add docs/* to the debian package 2007-10-11 14:37:29 -07:00
Brian Warner
dc573554c8 rename bin/allmydata-tahoe to bin/tahoe. Closes #155. 2007-10-11 03:38:24 -07:00
Zooko O'Whielacronx
be51a7e2a4 setup: bundle simplejson-1.7.3 in misc/dependencies 2007-10-04 11:23:20 -07:00
Brian Warner
7626a95636 upgrade to foolscap-0.1.7 2007-09-26 18:24:51 -07:00
Brian Warner
3b494ddf37 debian: oops, set debian/changelog version to 0.6.0-1+, to be less than everything the buildbot is creating 2007-09-26 18:15:13 -07:00
Brian Warner
7a4a31a83f debian: put a version string of '0.6.0+' in the debian changelog 2007-09-26 17:58:42 -07:00
Brian Warner
caa0a95405 debian/sid: copy rules from feisty, the same can be used for both 2007-09-26 17:55:24 -07:00
Brian Warner
d41f0f9492 debian/feisty: use our original bin/allmydata-tahoe instead of setuptools's
because the setuptools "entry points" form asserts that there are
setuptools-visible packages like nevow/zope.interface (i.e. they have .egg-info
metadata). Until very recently, most debian systems did not install this
metadata. Instead, we rely upon the usual debian dependency checking as
expressed in debian/control .
2007-09-26 17:52:30 -07:00
Brian Warner
d1e07daeee make-version.py: when _darcs doesn't exist, make the warning less scary-looking 2007-09-24 12:38:37 -07:00
Zooko O'Whielacronx
8f1b6a3dae setup: add zope.interface-3.4.0 in place of zope.interface-3.3.0 2007-09-20 13:02:36 -07:00
Zooko O'Whielacronx
d0c2153c34 add zope.interface-3.3.0.tar.gz to misc/dependencies 2007-09-20 10:47:38 -07:00
Zooko O'Whielacronx
3e43889ad4 replace zfec-1.0.3 with zfec-1.0.4 in misc/dependencies 2007-09-20 10:47:21 -07:00
Brian Warner
1545190b69 hush some pyflakes warnings 2007-09-15 15:07:21 -07:00
Brian Warner
1f035a8f1f setup.py: factor out dependency stuff, add workaround for nevow-0.6.0-on-dapper problem 2007-09-15 15:05:35 -07:00
Brian Warner
d28d7e91f9 include the Nevow-0.9.18 tarball in our distribution 2007-09-15 14:18:36 -07:00
Brian Warner
5cc1dbaac9 setup.py: add Nevow to our dependency list 2007-09-15 14:18:07 -07:00
Brian Warner
5cedf89a67 build-deps-setup.py: provide dependency_links too 2007-09-15 14:04:57 -07:00
Brian Warner
7bb7d76d9d build-deps-setup.py: use ez_setup here too, for platforms without setuptools 2007-09-15 02:31:40 -07:00
Brian Warner
a4b00a6b2c Makefile build-deps: use a fake package named 'tahoe-deps', to avoid a double-build of tahoe 2007-09-14 19:23:55 -07:00
Brian Warner
4772bee01b remove simplejson tarball from our dependencies/ directory 2007-09-13 20:14:08 -07:00
Zooko O'Whielacronx
771485dc94 re-port Makefile to Windows and remove a bunch of no-longer-needed hacks 2007-09-13 18:20:35 -07:00
Zooko O'Whielacronx
5cbeaf84b6 add simplejson into misc/dependencies 2007-09-13 16:42:38 -07:00
Zooko O'Whielacronx
2eec5598de add zfec tarball to misc/dependencies 2007-09-13 14:51:04 -07:00
Zooko O'Whielacronx
3032cb65df add setuptools eggs for py2.4 and py2.5 to misc/dependencies 2007-09-13 14:50:43 -07:00
Zooko O'Whielacronx
0ec576aa9f add foolscap tarball to misc/dependencies 2007-09-13 14:50:23 -07:00
Brian Warner
b75276af00 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
Brian Warner
4bbc423d70 debian: depend upon python-zfec, stop including zfec in the tahoe .deb 2007-08-21 13:54:51 -07:00
Brian Warner
bd49bafb23 munin/tahoe-sharesperfile: don't truncate to an int, emit a float instead 2007-08-23 16:31:15 -07:00
Brian Warner
b7703df6a5 remove PyCrypto, copy AES/SHA256/Util.number into the allmydata/ tree 2007-08-14 13:57:41 -07:00
Brian Warner
a45c4492b5 misc/get-version.py: get the version string from the new location, _version.py 2007-08-16 15:43:43 -07:00
Zooko O'Whielacronx
9ad02dbe80 fix version class to preferred format and correct parsing 2007-08-16 15:38:01 -07:00
Zooko O'Whielacronx
094b687d6e import version class and make-version script from pyutil -- fixes win32 build, improves error handling, and eliminates unused features 2007-08-16 14:09:30 -07:00
Brian Warner
b25446d514 munin/tahoe-storagespace.py: use /bin/du instead of our python version, since
it a) is faster and b) will include filesystem overhead that is a real cost.
2007-08-09 18:26:57 -07:00
Zooko O'Whielacronx
63d7e126ff misc/sizes.py: rename "block" to "share" and "subblock" to "block"
This renaming is already in place in all of our other documentation and code, but misc/sizes.py got overlooked.
2007-08-08 22:31:12 -07:00
Brian Warner
e2e3b19a37 misc/storage-overhead.py: tool to estimate storage-space overhead per filesize 2007-07-16 13:43:31 -07:00
Brian Warner
032dfc5e58 misc/figleaf.excludes: exclude simplejson too, since we don't run their tests 2007-07-12 16:26:25 -07:00
Brian Warner
b2f13d2635 cease producing .debs for dapper, since they'd depend upon a library (simplejson) that isn't packaged for dapper. Feisty++ are fine. Dapper users are encouraged to build from source. 2007-07-11 14:31:04 -07:00
Brian Warner
4a081cec26 debian: make all .debs dependent upon python-simplejson. We must create the dapper package, the others are available upstream 2007-07-11 14:01:56 -07:00