diff --git a/pom.xml b/pom.xml index cace038..274b7f9 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ - 1.0.0.49 + 1.0.0.51 0.9.1-incubating true UTF-8 diff --git a/src/main/java/com/hpcloud/mon/infrastructure/thresholding/MetricFilteringBolt.java b/src/main/java/com/hpcloud/mon/infrastructure/thresholding/MetricFilteringBolt.java index a4e497c..a8f70bb 100644 --- a/src/main/java/com/hpcloud/mon/infrastructure/thresholding/MetricFilteringBolt.java +++ b/src/main/java/com/hpcloud/mon/infrastructure/thresholding/MetricFilteringBolt.java @@ -84,9 +84,9 @@ public class MetricFilteringBolt extends BaseRichBolt { public static final int LAG_MESSAGE_PERIOD_DEFAULT = 30; public static final String[] FIELDS = new String[] { "metricDefinitionAndTenantId", "metric" }; - private static final int MIN_LAG_VALUE = 1000 * PropertyFinder.getIntProperty(MIN_LAG_VALUE_KEY, MIN_LAG_VALUE_DEFAULT, 0, Integer.MAX_VALUE); + private static final int MIN_LAG_VALUE = PropertyFinder.getIntProperty(MIN_LAG_VALUE_KEY, MIN_LAG_VALUE_DEFAULT, 0, Integer.MAX_VALUE); private static final int MAX_LAG_MESSAGES = PropertyFinder.getIntProperty(MAX_LAG_MESSAGES_KEY, MAX_LAG_MESSAGES_DEFAULT, 0, Integer.MAX_VALUE); - private static final int LAG_MESSAGE_PERIOD = 1000 * PropertyFinder.getIntProperty(LAG_MESSAGE_PERIOD_KEY, LAG_MESSAGE_PERIOD_DEFAULT, 1, 600); + private static final int LAG_MESSAGE_PERIOD = PropertyFinder.getIntProperty(LAG_MESSAGE_PERIOD_KEY, LAG_MESSAGE_PERIOD_DEFAULT, 1, 600); private static final Map> METRIC_DEFS = new ConcurrentHashMap<>(); private static final MetricDefinitionAndTenantIdMatcher matcher = new MetricDefinitionAndTenantIdMatcher(); private static final Object SENTINAL = new Object(); @@ -220,9 +220,9 @@ public class MetricFilteringBolt extends BaseRichBolt { collector.emit(new Values(metricDefinitionAndTenantId, null)); LOG.info("Found {} Metric Definitions", METRIC_DEFS.size()); // Just output these here so they are only output once per JVM - LOG.info("MIN_LAG_VALUE set to {} seconds", MIN_LAG_VALUE/1000); + LOG.info("MIN_LAG_VALUE set to {} seconds", MIN_LAG_VALUE); LOG.info("MAX_LAG_MESSAGES set to {}", MAX_LAG_MESSAGES); - LOG.info("LAG_MESSAGE_PERIOD set to {} seconds", LAG_MESSAGE_PERIOD/1000); + LOG.info("LAG_MESSAGE_PERIOD set to {} seconds", LAG_MESSAGE_PERIOD); } } } @@ -233,7 +233,7 @@ public class MetricFilteringBolt extends BaseRichBolt { * Allow override of current time for testing. */ protected long getCurrentTime() { - return System.currentTimeMillis(); + return System.currentTimeMillis()/1000; } private void addMetricDef(MetricDefinitionAndTenantId metricDefinitionAndTenantId, String subAlarmId) { diff --git a/src/test/java/com/hpcloud/mon/ThresholdingEngineAlarmTest.java b/src/test/java/com/hpcloud/mon/ThresholdingEngineAlarmTest.java index 435936c..801243f 100644 --- a/src/test/java/com/hpcloud/mon/ThresholdingEngineAlarmTest.java +++ b/src/test/java/com/hpcloud/mon/ThresholdingEngineAlarmTest.java @@ -241,13 +241,13 @@ public class ThresholdingEngineAlarmTest extends TopologyTestCase { else { System.out.println("Feeding metrics..."); - long time = System.currentTimeMillis(); + long time = System.currentTimeMillis()/1000; ++goodValueCount; for (final SubAlarm subAlarm : subAlarms) { final MetricDefinitionAndTenantId metricDefinitionAndTenantId = new MetricDefinitionAndTenantId(subAlarm.getExpression().getMetricDefinition(), TEST_ALARM_TENANT_ID); metricSpout.feed(new Values(metricDefinitionAndTenantId, time, - new Metric(metricDefinitionAndTenantId.metricDefinition, time / 1000, (double) (goodValueCount == 15 ? 1 : 555)))); + new Metric(metricDefinitionAndTenantId.metricDefinition, time, (double) (goodValueCount == 15 ? 1 : 555)))); } } try { diff --git a/src/test/java/com/hpcloud/mon/ThresholdingEngineTest.java b/src/test/java/com/hpcloud/mon/ThresholdingEngineTest.java index 5999c03..5631612 100644 --- a/src/test/java/com/hpcloud/mon/ThresholdingEngineTest.java +++ b/src/test/java/com/hpcloud/mon/ThresholdingEngineTest.java @@ -192,11 +192,11 @@ public class ThresholdingEngineTest extends TopologyTestCase { if (feedCount > 0) { System.out.println("Feeding metrics..."); - long time = System.currentTimeMillis(); + long time = System.currentTimeMillis()/1000; metricSpout.feed(new Values(new MetricDefinitionAndTenantId(cpuMetricDef, TEST_ALARM_TENANT_ID), time, - new Metric(cpuMetricDef.name, cpuMetricDef.dimensions, time / 1000, (double) (++goodValueCount == 15 ? 1 : 555)))); + new Metric(cpuMetricDef.name, cpuMetricDef.dimensions, time, (double) (++goodValueCount == 15 ? 1 : 555)))); metricSpout.feed(new Values(new MetricDefinitionAndTenantId(memMetricDef, TEST_ALARM_TENANT_ID), time, - new Metric(memMetricDef.name, extraMemMetricDefDimensions, time / 1000, (double) (goodValueCount == 15 ? 1 : 555)))); + new Metric(memMetricDef.name, extraMemMetricDefDimensions, time, (double) (goodValueCount == 15 ? 1 : 555)))); if (--feedCount == 0) waitCount = 3; diff --git a/src/test/java/com/hpcloud/mon/infrastructure/thresholding/MetricFilteringBoltTest.java b/src/test/java/com/hpcloud/mon/infrastructure/thresholding/MetricFilteringBoltTest.java index 801d9ce..fcb92b8 100644 --- a/src/test/java/com/hpcloud/mon/infrastructure/thresholding/MetricFilteringBoltTest.java +++ b/src/test/java/com/hpcloud/mon/infrastructure/thresholding/MetricFilteringBoltTest.java @@ -109,19 +109,19 @@ public class MetricFilteringBoltTest { final long prepareTime = bolt.getCurrentTime(); final MetricDefinition metricDefinition = subAlarms.get(0).getExpression().getMetricDefinition(); - final long oldestTimestamp = prepareTime - MetricFilteringBolt.LAG_MESSAGE_PERIOD_DEFAULT*1000; - final Tuple lateMetricTuple = createMetricTuple(metricDefinition, oldestTimestamp, new Metric(metricDefinition, oldestTimestamp/1000, 42.0)); + final long oldestTimestamp = prepareTime - MetricFilteringBolt.LAG_MESSAGE_PERIOD_DEFAULT; + final Tuple lateMetricTuple = createMetricTuple(metricDefinition, oldestTimestamp, new Metric(metricDefinition, oldestTimestamp, 42.0)); bolt.execute(lateMetricTuple); verify(collector, times(1)).ack(lateMetricTuple); - bolt.setCurrentTime(prepareTime + MetricFilteringBolt.LAG_MESSAGE_PERIOD_DEFAULT*1000); - final Tuple lateMetricTuple2 = createMetricTuple(metricDefinition, prepareTime, new Metric(metricDefinition, prepareTime/1000, 42.0)); + bolt.setCurrentTime(prepareTime + MetricFilteringBolt.LAG_MESSAGE_PERIOD_DEFAULT); + final Tuple lateMetricTuple2 = createMetricTuple(metricDefinition, prepareTime, new Metric(metricDefinition, prepareTime, 42.0)); bolt.execute(lateMetricTuple2); verify(collector, times(1)).ack(lateMetricTuple2); verify(collector, times(1)).emit(MetricAggregationBolt.METRIC_AGGREGATION_CONTROL_STREAM, new Values(MetricAggregationBolt.METRICS_BEHIND)); - bolt.setCurrentTime(prepareTime + 2 * MetricFilteringBolt.LAG_MESSAGE_PERIOD_DEFAULT * 1000); + bolt.setCurrentTime(prepareTime + 2 * MetricFilteringBolt.LAG_MESSAGE_PERIOD_DEFAULT); long caughtUpTimestamp = bolt.getCurrentTime() - MetricFilteringBolt.MIN_LAG_VALUE_DEFAULT; - final Tuple metricTuple = createMetricTuple(metricDefinition, caughtUpTimestamp, new Metric(metricDefinition, caughtUpTimestamp/1000, 42.0)); + final Tuple metricTuple = createMetricTuple(metricDefinition, caughtUpTimestamp, new Metric(metricDefinition, caughtUpTimestamp, 42.0)); bolt.execute(metricTuple); // Metrics are caught up so there should not be another METRICS_BEHIND message verify(collector, times(1)).ack(metricTuple); @@ -141,8 +141,8 @@ public class MetricFilteringBoltTest { // Need to send MetricFilteringBolt.MAX_LAG_MESSAGES_DEFAULT + 1 metrics because the lag message is not // output on the first one. for (int i = 0; i < MetricFilteringBolt.MAX_LAG_MESSAGES_DEFAULT + 1; i++) { - final Tuple lateMetricTuple = createMetricTuple(metricDefinition, prepareTime, new Metric(metricDefinition, prepareTime/1000, 42.0)); - bolt.setCurrentTime(prepareTime + MetricFilteringBolt.LAG_MESSAGE_PERIOD_DEFAULT * 1000); + final Tuple lateMetricTuple = createMetricTuple(metricDefinition, prepareTime, new Metric(metricDefinition, prepareTime, 42.0)); + bolt.setCurrentTime(prepareTime + MetricFilteringBolt.LAG_MESSAGE_PERIOD_DEFAULT); bolt.execute(lateMetricTuple); verify(collector, times(1)).ack(lateMetricTuple); if (!first) { @@ -153,8 +153,8 @@ public class MetricFilteringBoltTest { prepareTime = bolt.getCurrentTime(); } // One more - long timestamp = bolt.getCurrentTime() - MetricFilteringBolt.LAG_MESSAGE_PERIOD_DEFAULT * 1000; - final Tuple metricTuple = createMetricTuple(metricDefinition, timestamp, new Metric(metricDefinition, timestamp/1000, 42.0)); + long timestamp = bolt.getCurrentTime() - MetricFilteringBolt.LAG_MESSAGE_PERIOD_DEFAULT; + final Tuple metricTuple = createMetricTuple(metricDefinition, timestamp, new Metric(metricDefinition, timestamp, 42.0)); bolt.execute(metricTuple); verify(collector, times(1)).ack(metricTuple); // Won't be any more of these @@ -224,7 +224,7 @@ public class MetricFilteringBoltTest { for (final SubAlarm subAlarm : subAlarms) { // First do a MetricDefinition that is an exact match final MetricDefinition metricDefinition = subAlarm.getExpression().getMetricDefinition(); - final Tuple exactTuple = createMetricTuple(metricDefinition, metricTimestamp++ * 1000, new Metric(metricDefinition, metricTimestamp, 42.0)); + final Tuple exactTuple = createMetricTuple(metricDefinition, metricTimestamp++, new Metric(metricDefinition, metricTimestamp, 42.0)); bolt1.execute(exactTuple); verify(collector1, times(1)).ack(exactTuple); verify(collector1, howMany).emit(new Values(exactTuple.getValue(0), exactTuple.getValue(2))); @@ -234,7 +234,7 @@ public class MetricFilteringBoltTest { extraDimensions.put("group", "group_a"); final MetricDefinition inexactMetricDef = new MetricDefinition(metricDefinition.name, extraDimensions); Metric inexactMetric = new Metric(inexactMetricDef, metricTimestamp, 42.0); - final Tuple inexactTuple = createMetricTuple(metricDefinition, metricTimestamp++ * 1000, inexactMetric); + final Tuple inexactTuple = createMetricTuple(metricDefinition, metricTimestamp++, inexactMetric); bolt1.execute(inexactTuple); verify(collector1, times(1)).ack(inexactTuple); // We want the MetricDefinitionAndTenantId from the exact tuple, but the inexactMetric