}
private HashMap<String, VmStatsEntry> getVmStats(List<String> vmNames) throws Exception {
VmwareHypervisorHost hyperHost = getHyperHost(getServiceContext());
HashMap<String, VmStatsEntry> vmResponseMap = new HashMap<String, VmStatsEntry>();
ManagedObjectReference perfMgr = getServiceContext().getServiceConnection().getServiceContent().getPerfManager();
VimPortType service = getServiceContext().getServiceConnection().getService();
PerfCounterInfo rxPerfCounterInfo = null;
PerfCounterInfo txPerfCounterInfo = null;
PerfCounterInfo[] cInfo = (PerfCounterInfo[]) getServiceContext().getServiceUtil().getDynamicProperty(perfMgr, "perfCounter");
for(int i=0; i<cInfo.length; ++i) {
if ("net".equalsIgnoreCase(cInfo[i].getGroupInfo().getKey())) {
if ("transmitted".equalsIgnoreCase(cInfo[i].getNameInfo().getKey())) {
txPerfCounterInfo = cInfo[i];
}
if ("received".equalsIgnoreCase(cInfo[i].getNameInfo().getKey())) {
rxPerfCounterInfo = cInfo[i];
}
}
}
ObjectContent[] ocs = hyperHost.getVmPropertiesOnHyperHost(new String[] {"name", "summary.config.numCpu", "summary.quickStats.overallCpuUsage"});
if (ocs != null && ocs.length > 0) {
for (ObjectContent oc : ocs) {
DynamicProperty[] objProps = oc.getPropSet();
if (objProps != null) {
String name = null;
String numberCPUs = null;
String maxCpuUsage = null;
for (DynamicProperty objProp : objProps) {
if (objProp.getName().equals("name")) {
name = objProp.getVal().toString();
} else if (objProp.getName().equals("summary.config.numCpu")) {
numberCPUs = objProp.getVal().toString();
} else if (objProp.getName().equals("summary.quickStats.overallCpuUsage")) {
maxCpuUsage = objProp.getVal().toString();
}
}
if (!vmNames.contains(name)) {
continue;
}
ManagedObjectReference vmMor = hyperHost.findVmOnHyperHost(name).getMor();
assert(vmMor!=null);
ArrayList vmNetworkMetrics = new ArrayList();
// get all the metrics from the available sample period
PerfMetricId[] perfMetrics = service.queryAvailablePerfMetric(perfMgr, vmMor, null, null, null);