Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用vSphere和Java查找esx主机的iops?_Java_Vsphere - Fatal编程技术网

如何使用vSphere和Java查找esx主机的iops?

如何使用vSphere和Java查找esx主机的iops?,java,vsphere,Java,Vsphere,我想了解esx主机的iops。 我能够使用以下代码连接到esx主机 ServiceInstance si = new ServiceInstance(new URL(url), user, pass, true); ManagedEntity[] managedEntities = new InventoryNavigator( si.getRootFolder()).searchManagedEntities("VirtualMachine"); Man

我想了解esx主机的iops。 我能够使用以下代码连接到esx主机

ServiceInstance si = new ServiceInstance(new URL(url), user, pass,
                true);
ManagedEntity[] managedEntities = new InventoryNavigator(
    si.getRootFolder()).searchManagedEntities("VirtualMachine");
ManagedEntity[] hostmanagedEntities = new InventoryNavigator(
    si.getRootFolder()).searchManagedEntities("HostSystem");
通过使用上述代码,我能够连接到主机并列出运行在主机上的所有虚拟机


如何查找已连接主机的iops?

查找计数器及其矩阵的步骤如下: 假设我使用了上述给定的代码(在代码开头)连接到esx主机

     //set params to find out counter
 groupinfo = "datastore";
         nameinfo="datastoreIops";
         rollup = "average";
      //set interval    
Calendar startTime = (Calendar) curTime.clone(); 
startTime.add(Calendar.MINUTE, -5); 
PerformanceManager perfMgr = si.getPerformanceManager();
PerfProviderSummary summary = perfMgr.queryPerfProviderSummary(myhost);
int perfInterval = summary.getRefreshRate();
//get performance counters
PerfCounterInfo[] perfCounters = perfMgr.getPerfCounter();
int counter_id = 0;
//find id of right counter by iterating
for (int i = 0; i < perfCounters.length; i++) {
PerfCounterInfo perfCounterInfo = perfCounters[i];
String perfCounterString = perfCounterInfo.getNameInfo().getLabel() + " (" + perfCounterInfo.getGroupInfo().getKey() + ") in "
        + perfCounterInfo.getUnitInfo().getLabel() + " (" + perfCounterInfo.getStatsType().toString() + ")";
if (perfCounterInfo.getGroupInfo().getKey().equalsIgnoreCase(groupinfo) 
&& perfCounterInfo.getNameInfo().getKey().equalsIgnoreCase(nameinfo) 
&&  perfCounterInfo.getRollupType().name().equalsIgnoreCase(rollup) )
{
counter_id =    perfCounterInfo.getKey();
break;  
}
}
int i3;
PerfMetricId[] queryAvailablePerfMetric = perfMgr.queryAvailablePerfMetric(myhost, null, null, perfInterval);
ArrayList<PerfMetricId> list = new ArrayList<PerfMetricId>();
for (int i2 = 0; i2 < queryAvailablePerfMetric.length; i2++) {
PerfMetricId perfMetricId = queryAvailablePerfMetric[i2];
if (counter_id == perfMetricId.getCounterId()) {
    list.add(perfMetricId);
}
}
PerfMetricId[] pmis = list.toArray(new PerfMetricId[list.size()]);
PerfQuerySpec qSpec = new PerfQuerySpec();
qSpec.setEntity(myhost.getMOR());
qSpec.setMetricId(pmis);
qSpec.setStartTime(startTime);
qSpec.setEndTime(curTime);
qSpec.intervalId = perfInterval;

PerfEntityMetricBase[] pembs = perfMgr.queryPerf(new PerfQuerySpec[] { qSpec });

PerfEntityMetricBase val = pembs[0];
PerfEntityMetric pem = (PerfEntityMetric) val;
PerfMetricSeries[] vals = pem.getValue();

JSONObject perfout = new JSONObject();

for (int instanceid =0; vals != null && instanceid <vals.length;instanceid++ ) {

PerfMetricIntSeries val1 = (PerfMetricIntSeries) vals[instanceid];
String InstanceName = val1.getId().instance;
if (InstanceName.equals("")){
    InstanceName="Total_"+instanceid;
}

long[] longs = val1.getValue();
long last_longs_value = longs[longs.length-1];
try {
perfout.put(InstanceName.replace(".", "-"), last_longs_value);
} catch (JSONException e) {
e.printStackTrace();
}
}
System.out.println(perfout);
//设置参数以查找计数器
groupinfo=“数据存储”;
nameinfo=“datastoreIops”;
rollup=“平均”;
//设定间隔
Calendar startTime=(Calendar)curTime.clone();
startTime.add(Calendar.MINUTE,-5);
PerformanceManager perfMgr=si.getPerformanceManager();
PerfProviderSummary=perfMgr.queryPerfProviderSummary(myhost);
int perfInterval=summary.getRefreshRate();
//获取性能计数器
PerfCounterInfo[]perfCounters=perfMgr.getPerfCounter();
int counter_id=0;
//通过迭代查找右计数器的id
for(int i=0;i对于(int instanceid=0;vals!=null&&instanceid),您如何在此处查找要提供的参数,即nameinfo、groupinfo等?查找详细信息:,和