contrib-munin/plugins/approx/approx

72 lines
1.5 KiB
Python
Executable File

#!/usr/bin/env python
#
# vim:syntax=python
#
# Plugin to monitor the amount of packages in an approx cache.
#
# Usage: place in /etc/munin/plugins/ (or link it there using ln -s)
#
# Parameters understood:
#
# config (required)
# autoconf (optional - used by munin-config)
#
# Magic markers - optional - used by installation scripts and
# munin-config:
#
#%# family=manual
#%# capabilities=autoconf
#
# Now for the real work...
from sys import argv, exit
from os.path import walk, exists, isfile, join
def get_file_types():
"""Returns an array of filetype => count."""
out = {}
def visitor(arg, dirname, names):
for file in names:
if not isfile(join(dirname, file)):
continue
ext = file.split(".")[-1]
out[ext] = out.get(ext, 0) + 1
walk('/var/cache/approx/', visitor, None)
return out
# Autoconfiguration
if len(argv) > 1:
if argv[1] == "autoconf":
# Test if we can find a approx cache
if exists('/var/cache/approx'):
print "yes"
else:
print "no ('/var/cacne/approx' not found)"
exit(1)
exit()
elif argv[1] == "config":
print "graph_title Approx cache";
print "graph yes";
#print "graph_category Other";
#print "graph_total Total";
print "graph_info Statistics from the Approx cache.";
#print "debs.label DEBs";
#print "pending.warning 0:0";
#print "hold.label hold";
for type in get_file_types().keys():
print "%s.label %s" % (type.lower(), type)
exit()
for type, count in get_file_types().iteritems():
print "%s.value %d" % (type.lower(), count)
exit()