--- /dev/null
+#! /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
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()
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()
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: