Lior Vernia has uploaded a new change for review.

Change subject: engine: Truncate percentage in case NIC speed is too low
......................................................................

engine: Truncate percentage in case NIC speed is too low

Reported NIC speed may be lower than it effectively is, in which case
we supposedly wouldn't want to display utilisation percentage higher
than 100%.

Change-Id: I83bd4d642e93af312d65fefc4417eeccc88bc9dc
Bug-Url: https://bugzilla.redhat.com/1118699
Signed-off-by: Lior Vernia <lver...@redhat.com>
---
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/NetworkStatisticsBuilder.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
2 files changed, 12 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/52/37752/1

diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/NetworkStatisticsBuilder.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/NetworkStatisticsBuilder.java
index 498b225..27d6c07 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/NetworkStatisticsBuilder.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/NetworkStatisticsBuilder.java
@@ -94,14 +94,18 @@
                 }
 
                 // current and previous sampled values are up-to-date - try to 
compute rate
-                stats.rate = computeRelativeRatePercentage(stats.current - 
previous);
+                stats.rate = computeRatePercentage(stats.current - previous);
             }
         }
 
         return stats;
     }
 
-    private Double computeRelativeRatePercentage(long byteDiff) {
+    public static Double truncatePercentage(Double value) {
+        return value == null ? null : Math.min(100, value);
+    }
+
+    private Double computeRatePercentage(long byteDiff) {
         if (currentTime == null || previousTime == null || currentTime <= 
previousTime || speed == null
                 || speed.equals(0)) {
             return null;
@@ -110,7 +114,7 @@
         long megabitDiff = BITS_IN_BYTE * byteDiff / BITS_IN_MEGABIT;
         double timeDiffInSeconds = currentTime - previousTime;
         double rateInMbps = megabitDiff / timeDiffInSeconds;
-        return 100 * rateInMbps / speed;
+        return truncatePercentage(100 * rateInMbps / speed);
     }
 
     private static class EffectiveStats {
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
index 72845b1..8c3e635 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
@@ -974,8 +974,11 @@
     }
 
     private static Double computeInterfaceUsage(VdsNetworkInterface iface) {
-        Double receiveRate = 
truncatePercentage(iface.getStatistics().getReceiveRate());
-        Double transmitRate = 
truncatePercentage(iface.getStatistics().getTransmitRate());
+        /**
+         * TODO: Remove truncation here in 4.0 and turn 
NetworkStatisticsBuilder.truncatePercentage() private
+         **/
+        Double receiveRate = 
NetworkStatisticsBuilder.truncatePercentage(iface.getStatistics().getReceiveRate());
+        Double transmitRate = 
NetworkStatisticsBuilder.truncatePercentage(iface.getStatistics().getTransmitRate());
         if (receiveRate == null) {
             return transmitRate;
         } else if (transmitRate == null) {
@@ -983,10 +986,6 @@
         } else {
             return Math.max(receiveRate, transmitRate);
         }
-    }
-
-    private static Double truncatePercentage(Double value) {
-        return value == null ? null : Math.min(100, value);
     }
 
     public static void updateNumaStatisticsData(VDS vds, Map<String, Object> 
xmlRpcStruct) {


-- 
To view, visit http://gerrit.ovirt.org/37752
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I83bd4d642e93af312d65fefc4417eeccc88bc9dc
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Lior Vernia <lver...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to