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
