Repository: metron
Updated Branches:
  refs/heads/master ba9ddda6d -> 577ff80e3


METRON-1043 Profiler Should be Less Dramatic When Missing Configuration 
(nickwallen) closes apache/metron#655


Project: http://git-wip-us.apache.org/repos/asf/metron/repo
Commit: http://git-wip-us.apache.org/repos/asf/metron/commit/577ff80e
Tree: http://git-wip-us.apache.org/repos/asf/metron/tree/577ff80e
Diff: http://git-wip-us.apache.org/repos/asf/metron/diff/577ff80e

Branch: refs/heads/master
Commit: 577ff80e3bdd5c690cfee3783f73003eb7470aab
Parents: ba9ddda
Author: nickwallen <[email protected]>
Authored: Tue Jul 25 13:14:49 2017 -0400
Committer: nickallen <[email protected]>
Committed: Tue Jul 25 13:14:49 2017 -0400

----------------------------------------------------------------------
 .../metron/profiler/bolt/ProfileHBaseMapper.java      | 11 ++++++++---
 .../metron/profiler/bolt/ProfileSplitterBolt.java     | 14 ++++++++------
 .../common/configuration/profiler/ProfileConfig.java  |  2 +-
 3 files changed, 17 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/metron/blob/577ff80e/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileHBaseMapper.java
----------------------------------------------------------------------
diff --git 
a/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileHBaseMapper.java
 
b/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileHBaseMapper.java
index 5402ac8..5448e39 100644
--- 
a/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileHBaseMapper.java
+++ 
b/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileHBaseMapper.java
@@ -31,6 +31,7 @@ import 
org.apache.metron.profiler.hbase.ValueOnlyColumnBuilder;
 import org.apache.storm.tuple.Tuple;
 
 import java.util.Optional;
+import java.util.concurrent.TimeUnit;
 
 /**
  * An HbaseMapper that defines how a ProfileMeasurement is persisted within an 
HBase table.
@@ -91,15 +92,19 @@ public class ProfileHBaseMapper implements HBaseMapper {
    */
   @Override
   public Optional<Long> getTTL(Tuple tuple) {
-    Optional<Long> result = Optional.empty();
+    Optional<Long> expiresMillis = Optional.empty();
 
     ProfileMeasurement measurement = (ProfileMeasurement) 
tuple.getValueByField("measurement");
     ProfileConfig profileConfig = measurement.getDefinition();
+
     if(profileConfig.getExpires() != null) {
-      result = Optional.of(profileConfig.getExpires());
+
+      // a profile's `expires` field is in days, but hbase expects milliseconds
+      long expiresDays = profileConfig.getExpires();
+      expiresMillis = Optional.of(TimeUnit.DAYS.toMillis(expiresDays));
     }
 
-    return result;
+    return expiresMillis;
   }
 
   public void setRowKeyBuilder(RowKeyBuilder rowKeyBuilder) {

http://git-wip-us.apache.org/repos/asf/metron/blob/577ff80e/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileSplitterBolt.java
----------------------------------------------------------------------
diff --git 
a/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileSplitterBolt.java
 
b/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileSplitterBolt.java
index c0716bf..31a4093 100644
--- 
a/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileSplitterBolt.java
+++ 
b/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileSplitterBolt.java
@@ -113,13 +113,15 @@ public class ProfileSplitterBolt extends 
ConfiguredProfilerBolt {
 
     // ensure there is a valid profiler configuration
     ProfilerConfig config = getProfilerConfig();
-    if(config == null) {
-      throw new IllegalArgumentException("Fatal: Unable to find valid profiler 
definition");
-    }
+    if(config != null) {
+
+      // apply the message to each of the profile definitions
+      for (ProfileConfig profile: config.getProfiles()) {
+        applyProfile(profile, input, message);
+      }
 
-    // apply the message to each of the profile definitions
-    for (ProfileConfig profile: config.getProfiles()) {
-      applyProfile(profile, input, message);
+    } else {
+      LOG.warn("No Profiler configuration found.  Nothing to do.");
     }
   }
 

http://git-wip-us.apache.org/repos/asf/metron/blob/577ff80e/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileConfig.java
----------------------------------------------------------------------
diff --git 
a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileConfig.java
 
b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileConfig.java
index 0ac1314..06c82d2 100644
--- 
a/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileConfig.java
+++ 
b/metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/profiler/ProfileConfig.java
@@ -167,7 +167,7 @@ public class ProfileConfig implements Serializable {
   }
 
   public void setExpires(Long expiresDays) {
-    this.expires = TimeUnit.DAYS.toMillis(expiresDays);
+    this.expires = expiresDays;
   }
 
   @Override

Reply via email to