This example shows how to use the Monitoring interface to break down database usage by data type. The example requests the individual data types that you can also query as a composite metric for all storage used by Alarms, Statistics, Events, and Tasks in the vCenter Server instance.
from com.vmware import appliance_client import datetime # This example assumes you have previously created a session # and stored the session ID in my_stub_config. # Prepare request for chosen data types. req = appliance_client.Monitoring.MonitoredItemDataRequest() req.interval = appliance_client.Monitoring.IntervalType.MINUTES30 req.function = appliance_client.Monitoring.FunctionType.MAX d_now = datetime.datetime.utcnow() req.start_time = d_now - datetime.timedelta( minutes=30 ) req.end_time = d_now mon = {'storage.totalsize.directory.vcdb_hourly_stats' : 'Hourly stats', 'storage.totalsize.directory.vcdb_daily_stats' : 'Daily stats', 'storage.totalsize.directory.vcdb_monthly_stats' : 'Monthly stats', 'storage.totalsize.directory.vcdb_yearly_stats' : 'Yearly stats', 'storage.totalsize.directory.vcdb_events' : 'Events', 'storage.totalsize.directory.vcdb_alarms' : 'Alarms', 'storage.totalsize.directory.vcdb_tasks' : 'Tasks'} req.names = [] for item in mon.keys() : req.names.append( item ) # Issue request. Monitoring_stub = appliance_client.Monitoring( my_stub_config ) resp = Monitoring_stub.query( req ) # Assemble data from response. out = {} for metric in resp : # Discard empty data points: stat = '' while (stat == '') : stat = metric.data.pop() stat = int(stat) out[mon[metric.name]] = stat # Format and print statistics. for label in sorted( out.keys() ) : print( '{0:15s}: {1:8d} KB'.format( label, out[label] ) )