#!/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()
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)
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']