From efe76469776feae0e2a9d9e9edbce8d62206b3cf Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Wed, 3 May 2017 13:59:53 +0530 Subject: [PATCH] CLOUDSTACK-9900: Fix high CPU deviation issues seen in metrics view HostStats returns cpu usage in percentage while memory usage in bytes. This fixes a regression in maximum CPU usage deviation that did not assume the values to be in percentage and multiple the final ratios with 100 which leads to 100x the actual deviation value. Signed-off-by: Rohit Yadav --- .../cloudstack/response/ClusterMetricsResponse.java | 8 ++++---- .../apache/cloudstack/response/ZoneMetricsResponse.java | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/metrics/src/org/apache/cloudstack/response/ClusterMetricsResponse.java b/plugins/metrics/src/org/apache/cloudstack/response/ClusterMetricsResponse.java index dde1ab76327..d93884532a9 100644 --- a/plugins/metrics/src/org/apache/cloudstack/response/ClusterMetricsResponse.java +++ b/plugins/metrics/src/org/apache/cloudstack/response/ClusterMetricsResponse.java @@ -128,10 +128,10 @@ public class ClusterMetricsResponse extends ClusterResponse { } } - public void setCpuMaxDeviation(final Double maxCpuDeviation, final Double totalCpuUsed, final Long totalHosts) { - if (maxCpuDeviation != null && totalCpuUsed != null && totalHosts != null && totalHosts != 0) { - final Double averageCpuUsage = totalCpuUsed / totalHosts; - this.cpuMaxDeviation = String.format("%.2f%%", (maxCpuDeviation - averageCpuUsage) * 100.0 / averageCpuUsage); + public void setCpuMaxDeviation(final Double maxCpuUsagePercentage, final Double totalCpuUsedPercentage, final Long totalHosts) { + if (maxCpuUsagePercentage != null && totalCpuUsedPercentage != null && totalHosts != null && totalHosts != 0) { + final Double averageCpuUsagePercentage = totalCpuUsedPercentage / totalHosts; + this.cpuMaxDeviation = String.format("%.2f%%", (maxCpuUsagePercentage - averageCpuUsagePercentage) / averageCpuUsagePercentage); } } diff --git a/plugins/metrics/src/org/apache/cloudstack/response/ZoneMetricsResponse.java b/plugins/metrics/src/org/apache/cloudstack/response/ZoneMetricsResponse.java index 71560178564..b3c1f86a68d 100644 --- a/plugins/metrics/src/org/apache/cloudstack/response/ZoneMetricsResponse.java +++ b/plugins/metrics/src/org/apache/cloudstack/response/ZoneMetricsResponse.java @@ -123,10 +123,10 @@ public class ZoneMetricsResponse extends ZoneResponse { } } - public void setCpuMaxDeviation(final Double maxCpuDeviation, final Double totalCpuUsed, final Long totalHosts) { - if (maxCpuDeviation != null && totalCpuUsed != null && totalHosts != null && totalHosts != 0) { - final Double averageCpuUsage = totalCpuUsed / totalHosts; - this.cpuMaxDeviation = String.format("%.2f%%", (maxCpuDeviation - averageCpuUsage) * 100.0 / averageCpuUsage); + public void setCpuMaxDeviation(final Double maxCpuUsagePercentage, final Double totalCpuUsedPercentage, final Long totalHosts) { + if (maxCpuUsagePercentage != null && totalCpuUsedPercentage != null && totalHosts != null && totalHosts != 0) { + final Double averageCpuUsagePercentage = totalCpuUsedPercentage / totalHosts; + this.cpuMaxDeviation = String.format("%.2f%%", (maxCpuUsagePercentage - averageCpuUsagePercentage) / averageCpuUsagePercentage); } }