From: Quentin Smith Date: Wed, 26 Nov 2008 03:47:04 +0000 (-0500) Subject: Update xen_cpu script X-Git-Tag: 0.0.5~3 X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/xvm-munin-config.git/commitdiff_plain/8b02ed79e41e7753c9ffaa800f570809ba598540?ds=sidebyside Update xen_cpu script * Fix typos in xen_cpu script for XenAPI code * Bump theoretical CPU max to 64x * Show domain CPU weight and cap if available svn path=/trunk/packages/xvm-munin-config/; revision=1779 --- diff --git a/debian/changelog b/debian/changelog index c3c4d4e..b733887 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +xvm-munin-config (0.0.5) unstable; urgency=low + + * Fix typos in xen_cpu script for XenAPI code + * Bump theoretical CPU max to 64x + * Show domain CPU weight and cap if available + + -- Quentin Smith Tue, 25 Nov 2008 22:46:12 -0500 + xvm-munin-config (0.0.4) unstable; urgency=low * Pass microseconds to Munin and display as percentages on graph 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 ecb68be..755c476 100755 --- a/host/usr/share/xvm-munin-host-config/plugins/xen_cpu +++ b/host/usr/share/xvm-munin-host-config/plugins/xen_cpu @@ -1,7 +1,8 @@ #!/usr/bin/python -from xen.xm.main import SERVER_LEGACY_XMLRPC, SERVER_XEN_API, parseServer +from xen.xm.main import SERVER_LEGACY_XMLRPC, SERVER_XEN_API, parseServer, parseAuthentication from xen.xend import sxp +import atexit serverType, serverURI = parseServer() @@ -30,23 +31,30 @@ else: def getDomains(): ret = {} if serverType == SERVER_XEN_API: - domains = server.xenapu.VM.get_all_records() + 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 } return ret else: domains = server.xend.domains_with_state(True, 'all', True) for d in domains: - ret[sxp.child_value(d, 'uuid', 'NONE').replace('-', '_')] = {'name': sxp.child_value(d, 'name', 'UNKNOWN'), - 'cpu_time': sxp.child_value(d, 'cpu_time', 0.0), - 'domid': sxp.child_value(d, 'domid', -1), - 'uuid': sxp.child_value(d, 'uuid', 'NONE'), - } + data = {'name': sxp.child_value(d, 'name', 'UNKNOWN'), + 'cpu_time': sxp.child_value(d, 'cpu_time', 0.0), + 'domid': sxp.child_value(d, 'domid', -1), + 'uuid': sxp.child_value(d, 'uuid', 'NONE'), + } + try: + sched = server.xend.domain.sched_credit_get(data['name']) + data['sched-credit'] = sched + except: + data['sched-credit'] = None + ret[sxp.child_value(d, 'uuid', 'NONE').replace('-', '_')] = data return ret if cmd == 'config': @@ -62,16 +70,19 @@ graph_period second""" for d in sorted(domains): name = domains[d]['name'] if name[0:2] == 'd_': - name = 'user domain' + name = 'db domid %d' % domains[d]['domid'] print "%s.label %s" % (d, name) if domains[d]['domid'] == 0: print "%s.draw AREA" % d else: print "%s.draw STACK" % d - print "%s.max 5000" % d + print "%s.max 19200000000" % d # 64x 100% CPU usage print "%s.min 0" % d print "%s.type DERIVE" % d - print "%s.info %s" % (d, domains[d]['uuid']) + if domains[d].get('sched-credit'): + print "%s.info uuid %s CPU weight %d cap %d%%" % (d, domains[d]['uuid'], domains[d]['sched-credit']['weight'], domains[d]['sched-credit']['cap']) + else: + print "%s.info uuid %s" % (d, domains[d]['uuid']) print "%s.cdef %s,10000,/" % (d, d) sys.exit(0)