X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/xvm-munin-config.git/blobdiff_plain/08d0fec60bf11b887c70fc872d1733c1c10a9e06..fff687b3b801e149fa6a9ff089fde6149d605ca2:/host/usr/share/xvm-munin-host-config/plugins/xen_cpu diff --git a/host/usr/share/xvm-munin-host-config/plugins/xen_cpu b/host/usr/share/xvm-munin-host-config/plugins/xen_cpu index 2efffe4..b50f6ec 100755 --- a/host/usr/share/xvm-munin-host-config/plugins/xen_cpu +++ b/host/usr/share/xvm-munin-host-config/plugins/xen_cpu @@ -1,9 +1,12 @@ #!/usr/bin/python +import sys +sys.path.append('/usr/lib/xen-default/lib/python/') from xen.xm.main import SERVER_LEGACY_XMLRPC, SERVER_XEN_API, parseServer, parseAuthentication from xen.xend import sxp import atexit import sys +import os serverType, serverURI = parseServer() @@ -37,12 +40,12 @@ def getDomains(): domains = server.xenapi.VM.get_all_records() metrics = server.xenapi.VM_metrics.get_all_records() for d in domains.values(): - ret[d['uuid'].replace('-', '_')] = {'name': d['name_label'], - 'cpu_time': sum(metrics[d['metrics']]['VCPUs_utilisation'].values()), - 'domid': d['domid'], - 'uuid': d['uuid'], - # No equivalent - } + ret['uuid_'+d['uuid'].replace('-', '_')] = {'name': d['name_label'], + 'cpu_time': sum(metrics[d['metrics']]['VCPUs_utilisation'].values()), + 'domid': d['domid'], + 'uuid': d['uuid'], + # No equivalent + } return ret else: domains = server.xend.domains_with_state(True, 'all', True) @@ -57,18 +60,22 @@ def getDomains(): data['sched-credit'] = sched except: data['sched-credit'] = None - ret[sxp.child_value(d, 'uuid', 'NONE').replace('-', '_')] = data + ret['uuid_'+sxp.child_value(d, 'uuid', 'NONE').replace('-', '_')] = data return ret +cpus = os.sysconf('SC_NPROCESSORS_CONF') + +upper_limit = cpus * 100 + if cmd == 'config': print """ graph_title Xen domain CPU usage -graph_args --base 1000 -r --lower-limit 0 --upper-limit 800 -graph_vlabel % +graph_args --base 1000 -r --lower-limit 0 --upper-limit %d +graph_vlabel %% graph_scale no graph_info This graph shows how CPU time is spent by Xen domains. graph_category system -graph_period second""" +graph_period second""" % (upper_limit,) domains = getDomains() for d in sorted(domains): name = domains[d]['name']