Return-Path: X-Original-To: apmail-cloudstack-commits-archive@www.apache.org Delivered-To: apmail-cloudstack-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id AE5CC10951 for ; Mon, 1 Dec 2014 12:01:21 +0000 (UTC) Received: (qmail 31823 invoked by uid 500); 1 Dec 2014 12:01:21 -0000 Delivered-To: apmail-cloudstack-commits-archive@cloudstack.apache.org Received: (qmail 31791 invoked by uid 500); 1 Dec 2014 12:01:21 -0000 Mailing-List: contact commits-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list commits@cloudstack.apache.org Received: (qmail 31782 invoked by uid 99); 1 Dec 2014 12:01:21 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Dec 2014 12:01:21 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 43CFA988633; Mon, 1 Dec 2014 12:01:21 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: bhaisaab@apache.org To: commits@cloudstack.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: git commit: updated refs/heads/4.3 to 4e33d35 Date: Mon, 1 Dec 2014 12:01:21 +0000 (UTC) Repository: cloudstack Updated Branches: refs/heads/4.3 37058a8e5 -> 4e33d359a CLOUDSTACK-5834: got VBD statistics from RRD (cherry picked from commit 0fe1d4bb27de83f3fff4e22d0bb501bc2451e62f) Signed-off-by: Rohit Yadav Conflicts: plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4e33d359 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4e33d359 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4e33d359 Branch: refs/heads/4.3 Commit: 4e33d359a82a3708860b24d88b37446cf16e1285 Parents: 37058a8 Author: Anthony Xu Authored: Mon Aug 4 12:19:16 2014 -0700 Committer: Rohit Yadav Committed: Mon Dec 1 17:29:31 2014 +0530 ---------------------------------------------------------------------- .../xen/resource/CitrixResourceBase.java | 138 +++++++------------ 1 file changed, 53 insertions(+), 85 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4e33d359/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java index 3198917..8cf81b0 100644 --- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java +++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java @@ -16,46 +16,6 @@ // under the License. package com.cloud.hypervisor.xen.resource; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.StringReader; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.net.URLConnection; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Queue; -import java.util.Random; -import java.util.Set; -import java.util.UUID; - -import javax.ejb.Local; -import javax.naming.ConfigurationException; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.apache.cloudstack.storage.command.StorageSubSystemCommand; -import org.apache.cloudstack.storage.to.TemplateObjectTO; -import org.apache.cloudstack.storage.to.VolumeObjectTO; -import org.apache.commons.codec.binary.Base64; -import org.apache.log4j.Logger; -import org.apache.xmlrpc.XmlRpcException; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.InputSource; - import com.cloud.agent.IAgentControl; import com.cloud.agent.api.Answer; import com.cloud.agent.api.AttachIsoCommand; @@ -273,13 +233,50 @@ import com.xensource.xenapi.Types.VmBadPowerState; import com.xensource.xenapi.Types.VmPowerState; import com.xensource.xenapi.Types.XenAPIException; import com.xensource.xenapi.VBD; -import com.xensource.xenapi.VBDMetrics; import com.xensource.xenapi.VDI; import com.xensource.xenapi.VIF; import com.xensource.xenapi.VLAN; import com.xensource.xenapi.VM; import com.xensource.xenapi.VMGuestMetrics; import com.xensource.xenapi.XenAPIObject; +import org.apache.cloudstack.storage.command.StorageSubSystemCommand; +import org.apache.cloudstack.storage.to.TemplateObjectTO; +import org.apache.cloudstack.storage.to.VolumeObjectTO; +import org.apache.commons.codec.binary.Base64; +import org.apache.log4j.Logger; +import org.apache.xmlrpc.XmlRpcException; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; + +import javax.ejb.Local; +import javax.naming.ConfigurationException; +import javax.xml.parsers.DocumentBuilderFactory; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.StringReader; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLConnection; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Queue; +import java.util.Random; +import java.util.Set; +import java.util.UUID; /** * CitrixResourceBase encapsulates the calls to the XenServer Xapi process @@ -2703,23 +2700,15 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe if (type.equalsIgnoreCase("host")) { - if (param.contains("pif_eth0_rx")) { - hostStats.setNetworkReadKBs(getDataAverage(dataNode, col, numRows)); - } - - if (param.contains("pif_eth0_tx")) { - hostStats.setNetworkWriteKBs(getDataAverage(dataNode, col, numRows)); - } - - if (param.contains("memory_total_kib")) { + if (param.matches("pif_eth0_rx")) { + hostStats.setNetworkReadKBs(getDataAverage(dataNode, col, numRows)/1000); + } else if (param.matches("pif_eth0_tx")) { + hostStats.setNetworkWriteKBs(getDataAverage(dataNode, col, numRows)/1000); + } else if (param.contains("memory_total_kib")) { hostStats.setTotalMemoryKBs(getDataAverage(dataNode, col, numRows)); - } - - if (param.contains("memory_free_kib")) { + } else if (param.contains("memory_free_kib")) { hostStats.setFreeMemoryKBs(getDataAverage(dataNode, col, numRows)); - } - - if (param.contains("cpu")) { + } else if (param.matches("cpu_avg")) { // hostStats.setNumCpus(hostStats.getNumCpus() + 1); hostStats.setCpuUtilization(hostStats.getCpuUtilization() + getDataAverage(dataNode, col, numRows)); } @@ -2830,13 +2819,16 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe if (param.contains("cpu")) { vmStatsAnswer.setNumCPUs(vmStatsAnswer.getNumCPUs() + 1); vmStatsAnswer.setCPUUtilization(((vmStatsAnswer.getCPUUtilization() + getDataAverage(dataNode, col, numRows)))); - } else if (param.matches("vif_\\d_rx")) { - vmStatsAnswer.setNetworkReadKBs(vmStatsAnswer.getNetworkReadKBs() + (getDataAverage(dataNode, col, numRows)/(8*2))); - } else if (param.matches("vif_\\d_tx")) { - vmStatsAnswer.setNetworkWriteKBs(vmStatsAnswer.getNetworkWriteKBs() + (getDataAverage(dataNode, col, numRows)/(8*2))); + } else if (param.matches("vif_\\d*_rx")) { + vmStatsAnswer.setNetworkReadKBs(vmStatsAnswer.getNetworkReadKBs() + (getDataAverage(dataNode, col, numRows)/1000)); + } else if (param.matches("vif_\\d*_tx")) { + vmStatsAnswer.setNetworkWriteKBs(vmStatsAnswer.getNetworkWriteKBs() + (getDataAverage(dataNode, col, numRows)/1000)); + } else if (param.matches("vbd_.*_read")) { + vmStatsAnswer.setDiskReadKBs(vmStatsAnswer.getDiskReadKBs() + (getDataAverage(dataNode, col, numRows)/1000)); + } else if (param.matches("vbd_.*_write")) { + vmStatsAnswer.setDiskWriteKBs(vmStatsAnswer.getDiskWriteKBs() + (getDataAverage(dataNode, col, numRows)/1000)); } } - } for (String vmUUID : vmResponseMap.keySet()) { @@ -2851,30 +2843,6 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe s_logger.debug("Vm cpu utilization " + vmStatsAnswer.getCPUUtilization()); } } - - try { - for (String vmUUID : vmUUIDs) { - VM vm = VM.getByUuid(conn, vmUUID); - VmStatsEntry stats = vmResponseMap.get(vmUUID); - double diskReadKBs = 0; - double diskWriteKBs = 0; - for (VBD vbd : vm.getVBDs(conn)) { - VBDMetrics record = vbd.getMetrics(conn); - diskReadKBs += record.getIoReadKbs(conn); - diskWriteKBs += record.getIoWriteKbs(conn); - } - if (stats == null) { - stats = new VmStatsEntry(); - } - stats.setDiskReadKBs(diskReadKBs); - stats.setDiskWriteKBs(diskWriteKBs); - vmResponseMap.put(vmUUID, stats); - } - } catch (Exception e) { - s_logger.warn("Error while collecting disk stats from : ", e); - return null; - } - return vmResponseMap; }