1. A monitoring system for virtual application environments comprising: at least one physical machine executing a first operating system; at least one virtual machine operating on at least one of the at least one physical machines, each such virtual machine operating a second operating system; and an agent program operating on each of the at least one physical machines and at least one virtual machine agent program operating on a virtual machine hosted by the physical machine, where the agent program is operable to, via the first operating system, obtain a first set of metrics regarding each virtual machine, except for virtual machines having a virtual machine agent program operable therewith, the agent program being further operable to connect to, and communicate with, the second operating system of each virtual machine to obtain a second set of metrics regarding each virtual machine, and where a virtual machine agent program is operable on a virtual machine, the virtual machine agent program obtains the second set of metrics for the virtual machine on which it operates, the agent program and the virtual machine agent program being further operable to communicate the first and second sets of metrics to a manager program.