Repository: falcon Updated Branches: refs/heads/master 00a2b3a95 -> 470e5e9f5
FALCON-2341 Entity SLA Alert publishing wrong results into DB Author: Amit Khanna <[email protected]> Reviewers: @pallavi-rao Closes #415 from amitkhanna1806/apache-falcon and squashes the following commits: f61fd66cf [Amit Khanna] SLA High should be true if TAG_CRITICAL 10a989c57 [Amit Khanna] FALCON-2341 Entity SLA Alert publishing wrong results into DB Project: http://git-wip-us.apache.org/repos/asf/falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/470e5e9f Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/470e5e9f Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/470e5e9f Branch: refs/heads/master Commit: 470e5e9f5de9ba1b6149dec60e87d3a04270eda3 Parents: 00a2b3a Author: Amit Khanna <[email protected]> Authored: Thu Aug 9 16:02:37 2018 +0530 Committer: pallavi-rao <[email protected]> Committed: Thu Aug 9 16:02:37 2018 +0530 ---------------------------------------------------------------------- .../apache/falcon/persistence/EntitySLAAlertBean.java | 4 ++-- .../apache/falcon/jdbc/MonitoringJdbcStateStore.java | 12 ++++++++++++ .../apache/falcon/service/EntitySLAAlertService.java | 5 +++-- .../falcon/service/EntitySLAMonitoringService.java | 8 ++++---- 4 files changed, 21 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/falcon/blob/470e5e9f/common/src/main/java/org/apache/falcon/persistence/EntitySLAAlertBean.java ---------------------------------------------------------------------- diff --git a/common/src/main/java/org/apache/falcon/persistence/EntitySLAAlertBean.java b/common/src/main/java/org/apache/falcon/persistence/EntitySLAAlertBean.java index 6482e8c..b0ce279 100644 --- a/common/src/main/java/org/apache/falcon/persistence/EntitySLAAlertBean.java +++ b/common/src/main/java/org/apache/falcon/persistence/EntitySLAAlertBean.java @@ -101,11 +101,11 @@ public class EntitySLAAlertBean { private Boolean slaHighAlertSent; public Date getNominalTime() { - return new Date(nominalTime.getTime()); + return nominalTime; } public void setNominalTime(Date nominalTime) { - this.nominalTime = new Date(nominalTime.getTime()); + this.nominalTime = nominalTime; } public String getId() { http://git-wip-us.apache.org/repos/asf/falcon/blob/470e5e9f/prism/src/main/java/org/apache/falcon/jdbc/MonitoringJdbcStateStore.java ---------------------------------------------------------------------- diff --git a/prism/src/main/java/org/apache/falcon/jdbc/MonitoringJdbcStateStore.java b/prism/src/main/java/org/apache/falcon/jdbc/MonitoringJdbcStateStore.java index 51eac94..8d50862 100644 --- a/prism/src/main/java/org/apache/falcon/jdbc/MonitoringJdbcStateStore.java +++ b/prism/src/main/java/org/apache/falcon/jdbc/MonitoringJdbcStateStore.java @@ -263,6 +263,9 @@ public class MonitoringJdbcStateStore { public void putSLAAlertInstance(String entityName, String cluster, String entityType, Date nominalTime, Boolean isSLALowMissed, Boolean isSLAHighMissed) throws FalconException{ + if(isSLAAlertInstancePresent(entityName, cluster, entityType, nominalTime)){ + return; + } EntityManager entityManager = getEntityManager(); EntitySLAAlertBean entitySLAAlertBean = new EntitySLAAlertBean(); entitySLAAlertBean.setEntityName(entityName); @@ -313,4 +316,13 @@ public class MonitoringJdbcStateStore { entityManager.getTransaction().begin(); } + public boolean isSLAAlertInstancePresent(String entityName, String cluster, String entityType, Date nominalTime){ + try{ + getEntityAlertInstance(entityName, cluster, nominalTime, entityType); + return true; + } catch (Exception NoResultException){ + return false; + } + } + } http://git-wip-us.apache.org/repos/asf/falcon/blob/470e5e9f/prism/src/main/java/org/apache/falcon/service/EntitySLAAlertService.java ---------------------------------------------------------------------- diff --git a/prism/src/main/java/org/apache/falcon/service/EntitySLAAlertService.java b/prism/src/main/java/org/apache/falcon/service/EntitySLAAlertService.java index 2f19e6b..edf626b 100644 --- a/prism/src/main/java/org/apache/falcon/service/EntitySLAAlertService.java +++ b/prism/src/main/java/org/apache/falcon/service/EntitySLAAlertService.java @@ -144,9 +144,10 @@ public final class EntitySLAAlertService implements FalconService, EntitySLAList } else if (schedulableEntityInstance.getTags().contains(EntitySLAMonitoringService.get().TAG_CRITICAL)){ if (entityType.equalsIgnoreCase(EntityType.PROCESS.name())){ store.putSLAAlertInstance(entityName, clusterName, entityType, - nominalTime, true, false); + nominalTime, true, true); + } else { + store.updateSLAAlertInstance(entityName, clusterName, nominalTime, entityType); } - store.updateSLAAlertInstance(entityName, clusterName, nominalTime, entityType); LOG.info("Entity :{} EntityType : {} Cluster: {} Nominal Time: {} missed SLAHigh", entityName, entityType, clusterName , nominalTime); highSLAMissed(entityName, clusterName, EntityType.getEnum(entityType), nominalTime); http://git-wip-us.apache.org/repos/asf/falcon/blob/470e5e9f/prism/src/main/java/org/apache/falcon/service/EntitySLAMonitoringService.java ---------------------------------------------------------------------- diff --git a/prism/src/main/java/org/apache/falcon/service/EntitySLAMonitoringService.java b/prism/src/main/java/org/apache/falcon/service/EntitySLAMonitoringService.java index 8b3dbe4..279cab8 100644 --- a/prism/src/main/java/org/apache/falcon/service/EntitySLAMonitoringService.java +++ b/prism/src/main/java/org/apache/falcon/service/EntitySLAMonitoringService.java @@ -452,7 +452,7 @@ public final class EntitySLAMonitoringService implements ConfigurationChangeList Entity entity = EntityUtil.getEntity(entityType, entityName); authenticateUser(entity); try { - if (entityType.equalsIgnoreCase(EntityType.PROCESS.toString())){ + if (entity.getEntityType() == EntityType.PROCESS){ LOG.trace("Checking instance availability status for entity:{}, cluster:{}, " + "instanceTime:{}", entity.getName(), clusterName, nominalTime, entityType); AbstractWorkflowEngine wfEngine = WorkflowEngineFactory.getWorkflowEngine(); @@ -470,7 +470,7 @@ public final class EntitySLAMonitoringService implements ConfigurationChangeList } return false; } - if (entityType.equalsIgnoreCase(EntityType.FEED.toString())){ + if (entity.getEntityType() == EntityType.FEED){ LOG.trace("Checking instance availability status for feed:{}, cluster:{}, instanceTime:{}", entity.getName(), clusterName, nominalTime); @@ -567,7 +567,7 @@ public final class EntitySLAMonitoringService implements ConfigurationChangeList } Entity entity = EntityUtil.getEntity(entityType, entityName); - if (entityType.equals(EntityType.FEED.toString())) { + if (entity.getEntityType() == EntityType.FEED) { Sla sla = FeedHelper.getSLA(clusterName, (Feed) entity); if (sla != null) { @@ -640,7 +640,7 @@ public final class EntitySLAMonitoringService implements ConfigurationChangeList @VisibleForTesting Date getInitialStartTime(Entity entity, String clusterName, String entityType) throws FalconException { - if (entityType.equals(EntityType.FEED.toString())){ + if (entity.getEntityType() == EntityType.FEED){ Sla sla = FeedHelper.getSLA(clusterName, (Feed) entity); if (sla == null) { throw new IllegalStateException("InitialStartTime can not be determined as the feed: "
