Skip to content

Commit 0fe1d4b

Browse files
author
Anthony Xu
committed
got VBD statistics from RRD
1 parent b157104 commit 0fe1d4b

1 file changed

Lines changed: 15 additions & 51 deletions

File tree

plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java

Lines changed: 15 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@
7575
import com.xensource.xenapi.Types.VmPowerState;
7676
import com.xensource.xenapi.Types.XenAPIException;
7777
import com.xensource.xenapi.VBD;
78-
import com.xensource.xenapi.VBDMetrics;
7978
import com.xensource.xenapi.VDI;
8079
import com.xensource.xenapi.VGPU;
8180
import com.xensource.xenapi.VIF;
@@ -2251,23 +2250,15 @@ protected HostStatsEntry getHostStats(Connection conn, GetHostStatsCommand cmd,
22512250

22522251
if (type.equalsIgnoreCase("host")) {
22532252

2254-
if (param.contains("pif_eth0_rx")) {
2255-
hostStats.setNetworkReadKBs(getDataAverage(dataNode, col, numRows));
2256-
}
2257-
2258-
if (param.contains("pif_eth0_tx")) {
2259-
hostStats.setNetworkWriteKBs(getDataAverage(dataNode, col, numRows));
2260-
}
2261-
2262-
if (param.contains("memory_total_kib")) {
2253+
if (param.matches("pif_eth0_rx")) {
2254+
hostStats.setNetworkReadKBs(getDataAverage(dataNode, col, numRows)/1000);
2255+
} else if (param.matches("pif_eth0_tx")) {
2256+
hostStats.setNetworkWriteKBs(getDataAverage(dataNode, col, numRows)/1000);
2257+
} else if (param.contains("memory_total_kib")) {
22632258
hostStats.setTotalMemoryKBs(getDataAverage(dataNode, col, numRows));
2264-
}
2265-
2266-
if (param.contains("memory_free_kib")) {
2259+
} else if (param.contains("memory_free_kib")) {
22672260
hostStats.setFreeMemoryKBs(getDataAverage(dataNode, col, numRows));
2268-
}
2269-
2270-
if (param.contains("cpu")) {
2261+
} else if (param.matches("cpu_avg")) {
22712262
// hostStats.setNumCpus(hostStats.getNumCpus() + 1);
22722263
hostStats.setCpuUtilization(hostStats.getCpuUtilization() + getDataAverage(dataNode, col, numRows));
22732264
}
@@ -2378,13 +2369,16 @@ protected HashMap<String, VmStatsEntry> getVmStats(Connection conn, GetVmStatsCo
23782369
if (param.contains("cpu")) {
23792370
vmStatsAnswer.setNumCPUs(vmStatsAnswer.getNumCPUs() + 1);
23802371
vmStatsAnswer.setCPUUtilization(((vmStatsAnswer.getCPUUtilization() + getDataAverage(dataNode, col, numRows))));
2381-
} else if (param.matches("vif_\\d_rx")) {
2382-
vmStatsAnswer.setNetworkReadKBs(vmStatsAnswer.getNetworkReadKBs() + (getDataAverage(dataNode, col, numRows) / (8 * 2)));
2383-
} else if (param.matches("vif_\\d_tx")) {
2384-
vmStatsAnswer.setNetworkWriteKBs(vmStatsAnswer.getNetworkWriteKBs() + (getDataAverage(dataNode, col, numRows) / (8 * 2)));
2372+
} else if (param.matches("vif_\\d*_rx")) {
2373+
vmStatsAnswer.setNetworkReadKBs(vmStatsAnswer.getNetworkReadKBs() + (getDataAverage(dataNode, col, numRows)/1000));
2374+
} else if (param.matches("vif_\\d*_tx")) {
2375+
vmStatsAnswer.setNetworkWriteKBs(vmStatsAnswer.getNetworkWriteKBs() + (getDataAverage(dataNode, col, numRows)/1000));
2376+
} else if (param.matches("vbd_.*_read")) {
2377+
vmStatsAnswer.setDiskReadKBs(vmStatsAnswer.getDiskReadKBs() + (getDataAverage(dataNode, col, numRows)/1000));
2378+
} else if (param.matches("vbd_.*_write")) {
2379+
vmStatsAnswer.setDiskWriteKBs(vmStatsAnswer.getDiskWriteKBs() + (getDataAverage(dataNode, col, numRows)/1000));
23852380
}
23862381
}
2387-
23882382
}
23892383

23902384
for (Map.Entry<String, VmStatsEntry> entry: vmResponseMap.entrySet()) {
@@ -2399,36 +2393,6 @@ protected HashMap<String, VmStatsEntry> getVmStats(Connection conn, GetVmStatsCo
23992393
s_logger.debug("Vm cpu utilization " + vmStatsAnswer.getCPUUtilization());
24002394
}
24012395
}
2402-
2403-
try {
2404-
for (String vmUUID : vmUUIDs) {
2405-
VM vm = VM.getByUuid(conn, vmUUID);
2406-
VmStatsEntry stats = vmResponseMap.get(vmUUID);
2407-
double diskReadKBs = 0;
2408-
double diskWriteKBs = 0;
2409-
for (VBD vbd : vm.getVBDs(conn)) {
2410-
VBDMetrics vbdmetrics = vbd.getMetrics(conn);
2411-
if (!isRefNull(vbdmetrics)) {
2412-
try {
2413-
diskReadKBs += vbdmetrics.getIoReadKbs(conn);
2414-
diskWriteKBs += vbdmetrics.getIoWriteKbs(conn);
2415-
} catch (Types.HandleInvalid e) {
2416-
s_logger.debug("vbdmetrics doesn't exist ");
2417-
}
2418-
}
2419-
}
2420-
if (stats == null) {
2421-
stats = new VmStatsEntry();
2422-
}
2423-
stats.setDiskReadKBs(diskReadKBs);
2424-
stats.setDiskWriteKBs(diskWriteKBs);
2425-
vmResponseMap.put(vmUUID, stats);
2426-
}
2427-
} catch (Exception e) {
2428-
s_logger.warn("Error while collecting disk stats from : ", e);
2429-
return null;
2430-
}
2431-
24322396
return vmResponseMap;
24332397
}
24342398

0 commit comments

Comments
 (0)