Simple usage extension for nova. Uses db to calculate tenant_usage for specified time periods.
Methods: * index: return a list of tenant_usages, with option of incuding detailed server_usage * show: returns a specific tenant_usage object tenant_usage object: * tenant_usage.total_memory_mb_usage: sum of memory_mb * hours for all instances in tenant for this period * tenant_usage.total_local_gb_usage: sum of local_gb * hours for all instances in tenant for this period * tenant_usage.total_vcpus_usage: sum of vcpus * hours for all instances in tenant for this period * tenant_usage.total_hours: sum of all instance hours for this period * tenant_usage.server_usages: A detailed list of server_usages, which describe the usage of a specific server For larger instances db tables, indexes on instance.launched_at and instance.terminated_at should significantly help performance.
This commit is contained in:
		| @@ -102,9 +102,8 @@ if __name__ == '__main__': | |||||||
|     logging.setup() |     logging.setup() | ||||||
|     begin, end = time_period(FLAGS.instance_usage_audit_period) |     begin, end = time_period(FLAGS.instance_usage_audit_period) | ||||||
|     print "Creating usages for %s until %s" % (str(begin), str(end)) |     print "Creating usages for %s until %s" % (str(begin), str(end)) | ||||||
|     instances = db.instance_get_active_by_window(context.get_admin_context(), |     ctxt = context.get_admin_context() | ||||||
|                                                  begin, |     instances = db.instance_get_active_by_window_joined(ctxt, begin, end) | ||||||
|                                                  end) |  | ||||||
|     print "%s instances" % len(instances) |     print "%s instances" % len(instances) | ||||||
|     for instance_ref in instances: |     for instance_ref in instances: | ||||||
|         usage_info = utils.usage_from_instance(instance_ref, |         usage_info = utils.usage_from_instance(instance_ref, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Vishvananda Ishaya
					Vishvananda Ishaya