Virtual Infrastructure Performance Manager APIs
This managed object type provides the service interface for obtaining statistical data about various aspects of system performance, as generated and maintained by the system's performance providers.
A "performance provider" (PerfProviderSummary) is any managed object that generates utilization or other performance metrics. Performance providers include managed entities, such as hosts, virtual machines, compute resources, resource pools, datastores, and networks. Performance providers also include physical or virtual devices associated with these objects, such as virtual host-bus adapters and network-interface controllers (NICs)
Performance Counters
Each performance provider—the instrumented device or entity—has its own set of counters that provides metadata about its available metrics. Each counter has a unique key, referred to as the counterId. The actual performance metrics generated at runtime are identified by this counterId. Counters are organized by groups of finite system resources, such as memory, CPU, disk, and so on. The links in this list contain documentation for performance counters, by group. Each page contains a table that includes data extracted from instances of the PerfCounterInfo data object, including the counter name, its Label, Unit, StatsType, RollupType, and Level:
- Cluster Services
- CPU
- Host-Based Replication
- Management Agent
- Memory
- Network
- Power
- Resource Scheduler
- Storage Capacity:
- Storage I/O:
- System
- vCenter Resource
- Virtual Machine Operations
Other performance-counter groups, in addition to those listed here, exist on the system. However, only the counter groups listed are considered of possible interest to third-party developers.
Obtaining Metadata and Metrics
This interface provides these query operations:
- QueryPerfProviderSummary, for obtaining metatdata about performance providers
- QueryPerfCounter and QueryPerfCounterByLevel for obtaining metadata about supported counters.
- QueryPerf, QueryAvailablePerfMetric, and QueryPerfComposite for obtaining statistics for one or more entities:
- Use QueryPerf to obtain metrics for multiple entities in a single call.
- Use QueryPerfComposite to obtain statistics for a single entity with its descendent objects—statistics for a host and all its virtual machines, for example.
Product and Version Specifics
Some differences between ESX and vCenter Server implementations of this interface include:
- For ESX systems, this interface provides access to real-time data, and to real-time data that has been rolled up into "PastDay" statistics (if applicable for the specific counter).
- For vCenter Server systems, this interface provides access to real-time and historical data. vCenter Server collects statistics on a regular basis from all ESX systems that it manages, and aggregates the results based on the level settings for the server.
- Default sampling interval is product- and version-specific:
- ESX 3.x (and subsequent) systems: 20 second interval
- ESX 2.x systems: 60 second interval
- VirtualCenter Server 2.5 (and subsequent vCenter Server) systems initially collect statistics data 10 minutes after system startup, and then hourly thereafter.
See the Programming Guide for more information about using PerformanceManager.