Ignore:
Timestamp:
Nov 25, 2008, 10:47:04 PM (16 years ago)
Author:
quentin
Message:

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
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/packages/xvm-munin-config/host/usr/share/xvm-munin-host-config/plugins/xen_cpu

    r1777 r1779  
    11#!/usr/bin/python
    22
    3 from xen.xm.main import SERVER_LEGACY_XMLRPC, SERVER_XEN_API, parseServer
     3from xen.xm.main import SERVER_LEGACY_XMLRPC, SERVER_XEN_API, parseServer, parseAuthentication
    44from xen.xend import sxp
     5import atexit
    56
    67serverType, serverURI = parseServer()
     
    3132    ret = {}
    3233    if serverType == SERVER_XEN_API:
    33         domains = server.xenapu.VM.get_all_records()
     34        domains = server.xenapi.VM.get_all_records()
    3435        metrics = server.xenapi.VM_metrics.get_all_records()
    3536        for d in domains.values():
     
    3839                                                'domid': d['domid'],
    3940                                                'uuid': d['uuid'],
     41                                                # No equivalent
    4042                                                }
    4143        return ret
     
    4345        domains = server.xend.domains_with_state(True, 'all', True)
    4446        for d in domains:
    45             ret[sxp.child_value(d, 'uuid', 'NONE').replace('-', '_')] = {'name': sxp.child_value(d, 'name', 'UNKNOWN'),
    46                                                                          'cpu_time': sxp.child_value(d, 'cpu_time', 0.0),
    47                                                                          'domid': sxp.child_value(d, 'domid', -1),
    48                                                                          'uuid': sxp.child_value(d, 'uuid', 'NONE'),
    49                                                                          }
     47            data = {'name': sxp.child_value(d, 'name', 'UNKNOWN'),
     48                    'cpu_time': sxp.child_value(d, 'cpu_time', 0.0),
     49                    'domid': sxp.child_value(d, 'domid', -1),
     50                    'uuid': sxp.child_value(d, 'uuid', 'NONE'),
     51                    }
     52            try:
     53                sched = server.xend.domain.sched_credit_get(data['name'])
     54                data['sched-credit'] = sched
     55            except:
     56                data['sched-credit'] = None
     57            ret[sxp.child_value(d, 'uuid', 'NONE').replace('-', '_')] = data
    5058        return ret
    5159
     
    6371        name = domains[d]['name']
    6472        if name[0:2] == 'd_':
    65             name = 'user domain'
     73            name = 'db domid %d' % domains[d]['domid']
    6674        print "%s.label %s" % (d, name)
    6775        if domains[d]['domid'] == 0:
     
    6977        else:
    7078            print "%s.draw STACK" % d
    71         print "%s.max 5000" % d
     79        print "%s.max 19200000000" % d # 64x 100% CPU usage
    7280        print "%s.min 0" % d
    7381        print "%s.type DERIVE" % d
    74         print "%s.info %s" % (d, domains[d]['uuid'])
     82        if domains[d].get('sched-credit'):
     83            print "%s.info uuid %s CPU weight %d cap %d%%" % (d, domains[d]['uuid'], domains[d]['sched-credit']['weight'], domains[d]['sched-credit']['cap'])
     84        else:
     85            print "%s.info uuid %s" % (d, domains[d]['uuid'])
    7586        print "%s.cdef %s,10000,/" % (d, d)
    7687    sys.exit(0)
Note: See TracChangeset for help on using the changeset viewer.