1. A method comprising: determining, by a processing device executing a virtual machine monitor module on a cloud management system that monitors virtual machines in a cloud, a first duration of hardware resources on which a virtual machine is instantiated in the cloud, the hardware resources comprising at least one or more of a processor, a memory, a network hardware, or a bandwidth; recording the first duration on a first record of hardware usage; determining, by the processing device directly from the virtual machine on the cloud, a second duration that a particular software resource is utilized by a user on the virtual machine, software resources comprising an operating system and application software; receiving an identifier of each particular software resource from a cloud management system of the cloud; recording the second duration on a second record of software usage; and calculating, by the processing device, a usage of the cloud by the user in view of the first and second durations.