From: Brian Warner Date: Thu, 28 Aug 2008 20:32:36 +0000 (-0700) Subject: munin: add tahoe_diskleft plugin, update spacetime/diskwatcher.tac to support it X-Git-Url: https://git.rkrishnan.org/components/com_hotproperty/class-simplejson.JSONEncoder-index.html?a=commitdiff_plain;h=be11bfe812d1b7d6e531fb7f09bfec138d67c2b7;p=tahoe-lafs%2Ftahoe-lafs.git munin: add tahoe_diskleft plugin, update spacetime/diskwatcher.tac to support it --- diff --git a/misc/munin/tahoe_diskleft b/misc/munin/tahoe_diskleft new file mode 100644 index 00000000..8a177f6c --- /dev/null +++ b/misc/munin/tahoe_diskleft @@ -0,0 +1,22 @@ +#! /usr/bin/python + +# This is a munin plugin which pulls data from the server in +# misc/spacetime/diskwatcher.tac . It produces a graph of how much free space +# is left on all disks across the grid. The plugin should be configured with +# env_url= pointing at the diskwatcher.tac webport. + +import os, sys, urllib, simplejson + +if len(sys.argv) > 1 and sys.argv[1] == "config": + print """\ +graph_title Tahoe Remaining Disk Space +graph_vlabel bytes remaining +graph_category tahoe +graph_info This graph shows the total amount of disk space left available in the grid +disk_left.label disk left +disk_left.draw LINE1""" + sys.exit(0) + +url = os.environ["url"] +data = simplejson.load(urllib.urlopen(url))["available"] +print "disk_left.value", data diff --git a/misc/spacetime/diskwatcher.tac b/misc/spacetime/diskwatcher.tac index 5fa72d89..ee24f9d9 100644 --- a/misc/spacetime/diskwatcher.tac +++ b/misc/spacetime/diskwatcher.tac @@ -152,7 +152,7 @@ class DiskWatcher(service.MultiService, resource.Resource): def calculate_growth_timeleft(self): timespans = [] - total_avail_space = self.find_total_avail_space() + total_avail_space = self.find_total_available_space() pairs = [ (timespan,name) for name,timespan in self.AVERAGES.items() ] pairs.sort() @@ -166,7 +166,7 @@ class DiskWatcher(service.MultiService, resource.Resource): timespans.append( (name, timespan, growth, timeleft) ) return timespans - def find_total_avail_space(self): + def find_total_available_space(self): # this returns the sum of disk-avail stats for all servers that 1) # are listed in urls.txt and 2) have responded recently. now = extime.Time() @@ -293,6 +293,7 @@ class DiskWatcher(service.MultiService, resource.Resource): elif t == "json": current = {"rates": self.calculate_growth_timeleft(), "used": self.find_total_used_space(), + "available": self.find_total_available_space(), } data = simplejson.dumps(current, indent=True) else: