Retrieving vSphere Performance Data

To retrieve collected data, your client application creates a query specification and passes the specification to a performance query method. The query specification is composed of one or more
PerfQuerySpec
objects. Each object identifies the following:
  • Performance provider – managed entity for which the Server will return performance data (
    PerfQuerySpec.entity
    ).
  • Performance counters –
    PerfMetricId
    objects that identify performance counter instances (
    PerfQuerySpec.metricId
    ).
  • Performance interval – the sampling period that defines the data rollup (
    PerfQuerySpec.intervalId
    ).
  • Amount of data to be returned – start and end times (
    PerfQuerySpec.startTime
    ,
    PerfQuerySpec.endTime
    ) and maximum number of values (
    PerfQuerySpec.maxSample
    ) to limit the amount of data to be returned.
  • Output data format (
    PerfQuerySpec.format
    ) – one of two kinds:
    • Normal output returned as values contained in data objects.
    • Formatted output returned as strings containing comma-separated values.
The combination of the
entity
and
metricID
properties determine the set of counters for which the server will return performance data. The combination of the
interval
,
startTime
,
endTime
properties produce instance, aggregated instance, rollup, or summarized data. The following table summarizes the different classifications of performance data that you can retrieve from a vCenter Server.
Performance Data
Description
Instance
ESXi Servers sample performance data every 20 seconds. 20-second interval data is called instance data or real-time data. To retrieve instance data, specify a value of 20 seconds for the
PerfQuerySpec.intervalId
property.
Aggregated Instance
A vSphere client can retrieve aggregated instance data. To obtain aggregated instance data, specify the following
PerfQuerySpec
properties.
  • intervalId
    – Specify 20 seconds to indicate instance data.
  • metricId[].instance
    – specify a zero-length string ("") for aggregated instance data.
Rollup
The vCenter Server uses the historical intervals to rollup performance data from the servers that it manages. To retrieve historical performance data, specify the following
PerfQuerySpec
properties.
  • intervalId
    – Specify a value that corresponds to one of the historical intervals (
    PerformanceManager.historicalInterval[].samplingPeriod
    ) .
  • startTime
    /
    endTime
    – If specified, use time values that are not within the last 30 minutes of the current time. If you do not specify a starting time, the Server will return values starting with the earliest data. If you do not specify an end time, the Server will return values that include the latest data.
Summary
When you call the
QueryPerf
method and specify a performance interval (
PerfQuerySpec.intervalId
) that does not match one of the historical intervals (
PerformanceManager.historicalInterval[].samplingPeriod
), the Server will attempt to summarize the stored data for the specified interval. In this case, the Server may return values that are different from the values that were stored for the historical intervals.