System.out.println("Usage: java GetMultiPerf "
+ "<url> <username> <password> <vmname>");
return;
}
ServiceInstance si = new ServiceInstance(
new URL(args[0]), args[1], args[2], true);
String vmname = args[3];
VirtualMachine vm = (VirtualMachine) new InventoryNavigator(
si.getRootFolder()).searchManagedEntity(
"VirtualMachine", vmname);
if(vm == null)
{
System.out.println("Virtual Machine " + vmname
+ " cannot be found.");
si.getServerConnection().logout();
return;
}
PerformanceManager perfMgr = si.getPerformanceManager();
int perfInterval = 1800; // 30 minutes for PastWeek
// retrieve all the available perf metrics for vm
PerfMetricId[] pmis = perfMgr.queryAvailablePerfMetric(
vm, null, null, perfInterval);
Calendar curTime = si.currentTime();
PerfQuerySpec qSpec = new PerfQuerySpec();
qSpec.setEntity(vm.getRuntime().getHost());
//metricIDs must be provided, or InvalidArgumentFault
qSpec.setMetricId(pmis);
qSpec.setFormat("normal"); //optional since it's default
qSpec.setIntervalId(perfInterval);
Calendar startTime = (Calendar) curTime.clone();
startTime.roll(Calendar.DATE, -4);
System.out.println("start:" + startTime.getTime());
qSpec.setStartTime(startTime);
Calendar endTime = (Calendar) curTime.clone();
endTime.roll(Calendar.DATE, -3);
System.out.println("end:" + endTime.getTime());
qSpec.setEndTime(endTime);
PerfCompositeMetric pv = perfMgr.queryPerfComposite(qSpec);
if(pv != null)
{
printPerfMetric(pv.getEntity());
PerfEntityMetricBase[] pembs = pv.getChildEntity();
for(int i=0; pembs!=null && i< pembs.length; i++)
{
printPerfMetric(pembs[i]);
}
}
si.getServerConnection().logout();
}