diff --git a/munin.py b/munin.py index 010bd6c..4886ab4 100755 --- a/munin.py +++ b/munin.py @@ -39,6 +39,7 @@ os.environ['DJANGO_SETTINGS_MODULE'] = 'pyweb.settings' # Uncomment this line to point the egg cache to /tmp. #os.environ['PYTHON_EGG_CACHE'] = '/tmp/pyeggs' +import locale from django.conf import settings from mumble.models import MumbleServer, Mumble @@ -50,20 +51,25 @@ categ = getattr( settings, "MUNIN_CATEGORY", "network" ) def get_running_instances(): for server in MumbleServer.objects.all(): + if not server.online: + continue runinst = server.ctl.getBootedServers() for inst in server.mumble_set.filter( srvid__in=runinst ): yield inst if sys.argv[-1] == 'config': + prefenc = locale.getpreferredencoding() + print "graph_vlabel Users" print "graph_args --base 1000" print "graph_title", title print "graph_category", categ for mumble in get_running_instances(): - print "srv%d.label %s" % ( mumble.id, mumble.name.replace( '#', '' ) ); - print "srv%d.info %s" % ( mumble.id, mumble.connecturl ); + print "srv%d.label %s" % ( mumble.id, mumble.name.replace('#', '').encode(prefenc, "replace") ); + if mumble.connecturl: + print "srv%d.info %s" % ( mumble.id, mumble.connecturl ); if mumble.users: print "srv%d.warning %d" % ( mumble.id, int( mumble.users * warn ) ); print "srv%d.critical %d" % ( mumble.id, int( mumble.users * crit ) );