From 5cd0d258126a1ce78113c09c5e1ebe832110f2ee Mon Sep 17 00:00:00 2001 From: Wido den Hollander Date: Tue, 11 Nov 2014 16:49:38 +0100 Subject: [PATCH] CLOUDSTACK-3383: Fetch CPU utilization more reliable. This should fix that we can't gather CPU statistics on hypervisors > Ubuntu 12.04 (cherry picked from commit 69ee01af9df8d72ccd8901d146726e74edda95d7) Signed-off-by: Rohit Yadav Conflicts: plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java --- .../hypervisor/kvm/resource/LibvirtComputingResource.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index ab7b9b54551..dbd2327856a 100755 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -3120,8 +3120,7 @@ ServerResource { private Answer execute(GetHostStatsCommand cmd) { final Script cpuScript = new Script("/bin/bash", s_logger); cpuScript.add("-c"); - cpuScript - .add("idle=$(top -b -n 1|grep Cpu\\(s\\):|cut -d% -f4|cut -d, -f2);echo $idle"); + cpuScript.add("idle=$(top -b -n 1| awk -F, '/^[%]*[Cc]pu/{$0=$4; gsub(/[^0-9.,]+/,\"\"); print }'); echo $idle"); final OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser(); String result = cpuScript.execute(parser);