You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ga...@apache.org on 2020/03/09 12:32:28 UTC

[cloudstack] branch statscollector-potential-issues created (now 9e6bc8c)

This is an automated email from the ASF dual-hosted git repository.

gabriel pushed a change to branch statscollector-potential-issues
in repository https://gitbox.apache.org/repos/asf/cloudstack.git.


      at 9e6bc8c  Prevent overflow + add small code enhancements

This branch includes the following new commits:

     new 9e6bc8c  Prevent overflow + add small code enhancements

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[cloudstack] 01/01: Prevent overflow + add small code enhancements

Posted by ga...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gabriel pushed a commit to branch statscollector-potential-issues
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit 9e6bc8c570a9afd9484612d381b202a24983a527
Author: GabrielBrascher <ga...@apache.org>
AuthorDate: Mon Mar 9 09:28:08 2020 -0300

    Prevent overflow + add small code enhancements
---
 .../main/java/com/cloud/server/StatsCollector.java | 29 +++++++++++-----------
 .../java/com/cloud/server/StatsCollectorTest.java  |  6 -----
 2 files changed, 14 insertions(+), 21 deletions(-)

diff --git a/server/src/main/java/com/cloud/server/StatsCollector.java b/server/src/main/java/com/cloud/server/StatsCollector.java
index 4ec32b6..01d81dd 100644
--- a/server/src/main/java/com/cloud/server/StatsCollector.java
+++ b/server/src/main/java/com/cloud/server/StatsCollector.java
@@ -192,6 +192,10 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc
     private static final String DISK_WRITE_IOPS_FIELD = "disk_write_iops";
     private static final String DISK_WRITE_KBS_FIELD = "disk_write_kbs";
 
+    private static final int HOURLY_TIME = 60;
+    private static final int DAILY_TIME = HOURLY_TIME * 24;
+    private static final Long ONE_MINUTE_IN_MILLISCONDS = 60000L;
+
     private static final String DEFAULT_DATABASE_NAME = "cloudstack";
     private static final String INFLUXDB_HOST_MEASUREMENT = "host_stats";
     private static final String INFLUXDB_VM_MEASUREMENT = "vm_stats";
@@ -328,11 +332,11 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc
     protected void init(Map<String, String> configs) {
         _executor = Executors.newScheduledThreadPool(6, new NamedThreadFactory("StatsCollector"));
 
-        hostStatsInterval = NumbersUtil.parseLong(configs.get("host.stats.interval"), 60000L);
-        hostAndVmStatsInterval = NumbersUtil.parseLong(configs.get("vm.stats.interval"), 60000L);
-        storageStatsInterval = NumbersUtil.parseLong(configs.get("storage.stats.interval"), 60000L);
-        volumeStatsInterval = NumbersUtil.parseLong(configs.get("volume.stats.interval"), 600000L);
-        autoScaleStatsInterval = NumbersUtil.parseLong(configs.get("autoscale.stats.interval"), 60000L);
+        hostStatsInterval = NumbersUtil.parseLong(configs.get("host.stats.interval"), ONE_MINUTE_IN_MILLISCONDS);
+        hostAndVmStatsInterval = NumbersUtil.parseLong(configs.get("vm.stats.interval"), ONE_MINUTE_IN_MILLISCONDS);
+        storageStatsInterval = NumbersUtil.parseLong(configs.get("storage.stats.interval"), ONE_MINUTE_IN_MILLISCONDS);
+        volumeStatsInterval = NumbersUtil.parseLong(configs.get("volume.stats.interval"), ONE_MINUTE_IN_MILLISCONDS);
+        autoScaleStatsInterval = NumbersUtil.parseLong(configs.get("autoscale.stats.interval"), ONE_MINUTE_IN_MILLISCONDS);
 
         String statsUri = statsOutputUri.value();
         if (StringUtils.isNotBlank(statsUri)) {
@@ -427,8 +431,6 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc
         Calendar cal = Calendar.getInstance(usageTimezone);
         cal.setTime(new Date());
         long endDate = 0;
-        int HOURLY_TIME = 60;
-        final int DAILY_TIME = 60 * 24;
         if (_usageAggregationRange == DAILY_TIME) {
             cal.set(Calendar.HOUR_OF_DAY, 0);
             cal.set(Calendar.MINUTE, 0);
@@ -454,9 +456,9 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc
             s_logger.warn("Usage stats job aggregation range is to small, using the minimum value of " + UsageUtils.USAGE_AGGREGATION_RANGE_MIN);
             _usageAggregationRange = UsageUtils.USAGE_AGGREGATION_RANGE_MIN;
         }
-        _diskStatsUpdateExecutor.scheduleAtFixedRate(new VmDiskStatsUpdaterTask(), (endDate - System.currentTimeMillis()), (_usageAggregationRange * 60 * 1000),
-                TimeUnit.MILLISECONDS);
-
+        
+        long period = _usageAggregationRange * ONE_MINUTE_IN_MILLISCONDS;
+        _diskStatsUpdateExecutor.scheduleAtFixedRate(new VmDiskStatsUpdaterTask(), (endDate - System.currentTimeMillis()), period, TimeUnit.MILLISECONDS);
     }
 
     /**
@@ -1209,7 +1211,7 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc
             for (AutoScaleVmGroupPolicyMapVO asVmgPmap : listMap) {
                 AutoScalePolicyVO policyVO = _asPolicyDao.findById(asVmgPmap.getPolicyId());
                 if (policyVO != null) {
-                    Integer quitetime = policyVO.getQuietTime();
+                    int quitetime = policyVO.getQuietTime();
                     Date quitetimeDate = policyVO.getLastQuiteTime();
                     long last_quitetime = 0L;
                     if (quitetimeDate != null) {
@@ -1236,7 +1238,7 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc
                                     if (counter_param.equals(counter_source.toString()))
                                         break;
                                     counter_count++;
-                                } while (1 == 1);
+                                } while (true);
 
                                 Double sum = avgCounter.get(counter_count);
                                 Double avg = sum / currentVM;
@@ -1526,9 +1528,6 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc
             boolean ioWriteDifferentFromPrevious = previousVmDiskStats.getCurrentIOWrite() != currentVmDiskStats.getCurrentIOWrite();
             return bytesReadDifferentFromPrevious || bytesWriteDifferentFromPrevious || ioReadDifferentFromPrevious || ioWriteDifferentFromPrevious;
         }
-        if (currentVmDiskStats == null) {
-            return false;
-        }
         return true;
     }
 
diff --git a/server/src/test/java/com/cloud/server/StatsCollectorTest.java b/server/src/test/java/com/cloud/server/StatsCollectorTest.java
index 040d08d..70416e8 100644
--- a/server/src/test/java/com/cloud/server/StatsCollectorTest.java
+++ b/server/src/test/java/com/cloud/server/StatsCollectorTest.java
@@ -160,12 +160,6 @@ public class StatsCollectorTest {
     }
 
     @Test
-    public void isCurrentVmDiskStatsDifferentFromPreviousTestBothNull() {
-        boolean result = statsCollector.isCurrentVmDiskStatsDifferentFromPrevious(null, null);
-        Assert.assertFalse(result);
-    }
-
-    @Test
     public void isCurrentVmDiskStatsDifferentFromPreviousTestDifferentIoWrite() {
         configureAndTestisCurrentVmDiskStatsDifferentFromPrevious(123l, 123l, 123l, 12l, true);
     }