OOZIE-2572 SLA DURATION miss not shown when job is running for longer than 
expected time


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

Branch: refs/heads/oya
Commit: f45e1eb7701e9f9112bc7a295700eb9949ae6ac2
Parents: 5759397
Author: Purshotam Shah <purus...@yahoo-inc.com>
Authored: Tue Sep 20 14:05:21 2016 -0700
Committer: Purshotam Shah <purus...@yahoo-inc.com>
Committed: Tue Sep 20 14:05:21 2016 -0700

----------------------------------------------------------------------
 .../org/apache/oozie/sla/SLASummaryBean.java    |  8 +++---
 .../apache/oozie/servlet/TestV2SLAServlet.java  |  6 ++---
 docs/src/site/twiki/DG_SLAMonitoring.twiki      | 26 ++++++++++----------
 release-log.txt                                 |  1 +
 .../webapp/console/sla/js/oozie-sla-table.js    | 21 +---------------
 5 files changed, 22 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oozie/blob/f45e1eb7/core/src/main/java/org/apache/oozie/sla/SLASummaryBean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/oozie/sla/SLASummaryBean.java 
b/core/src/main/java/org/apache/oozie/sla/SLASummaryBean.java
index 3b2cebd..cfe1522 100644
--- a/core/src/main/java/org/apache/oozie/sla/SLASummaryBean.java
+++ b/core/src/main/java/org/apache/oozie/sla/SLASummaryBean.java
@@ -423,7 +423,7 @@ public class SLASummaryBean implements JsonBean {
         }
         json.put(JsonTags.SLA_SUMMARY_EXPECTED_DURATION, expectedDuration);
         if (actualDuration == -1 && expectedDuration != -1 && actualStartTS != 
null) {
-            long currentDur = (new Date().getTime() - actualStartTS.getTime()) 
/ (1000 * 60);
+            long currentDur = new Date().getTime() - actualStartTS.getTime();
             json.put(JsonTags.SLA_SUMMARY_ACTUAL_DURATION, currentDur);
         }
         else {
@@ -432,7 +432,7 @@ public class SLASummaryBean implements JsonBean {
         Long durationDelay = eventMap.get(EventStatus.DURATION_MET) != null ? 
eventMap.get(EventStatus.DURATION_MET)
                 : eventMap.get(EventStatus.DURATION_MISS);
         if (durationDelay != null) {
-            json.put(JsonTags.SLA_SUMMARY_DURATION_DELAY, durationDelay);
+            json.put(JsonTags.SLA_SUMMARY_DURATION_DELAY, durationDelay / 
(1000 * 60));
         }
         json.put(JsonTags.SLA_SUMMARY_JOB_STATUS, jobStatus);
         json.put(JsonTags.SLA_SUMMARY_SLA_STATUS, slaStatus);
@@ -482,9 +482,9 @@ public class SLASummaryBean implements JsonBean {
             }
             else {
                 if (actualStartTS != null) {
-                    long currentDur = (new Date().getTime() - 
actualStartTS.getTime()) / (1000 * 60);
+                    long currentDur = new Date().getTime() - 
actualStartTS.getTime();
                     if (expectedDuration < currentDur) {
-                        events.put(EventStatus.DURATION_MISS, (currentDur - 
expectedDuration));
+                        events.put(EventStatus.DURATION_MISS, currentDur - 
expectedDuration);
                     }
                 }
             }

http://git-wip-us.apache.org/repos/asf/oozie/blob/f45e1eb7/core/src/test/java/org/apache/oozie/servlet/TestV2SLAServlet.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/oozie/servlet/TestV2SLAServlet.java 
b/core/src/test/java/org/apache/oozie/servlet/TestV2SLAServlet.java
index db509ac..03f2323 100644
--- a/core/src/test/java/org/apache/oozie/servlet/TestV2SLAServlet.java
+++ b/core/src/test/java/org/apache/oozie/servlet/TestV2SLAServlet.java
@@ -193,7 +193,7 @@ public class TestV2SLAServlet extends DagServletTestCase {
                     String id = (String)json.get(JsonTags.SLA_SUMMARY_ID);
                     if(id.equals(cjBean1.getId() + "@1")) {
                         assertEquals(-2L, 
json.get(JsonTags.SLA_SUMMARY_START_DELAY));
-                        assertEquals(-1L, 
json.get(JsonTags.SLA_SUMMARY_DURATION_DELAY));
+                        assertEquals(0L, 
json.get(JsonTags.SLA_SUMMARY_DURATION_DELAY));
                         assertEquals(-1L, 
json.get(JsonTags.SLA_SUMMARY_END_DELAY));
                     }
                 }
@@ -232,7 +232,7 @@ public class TestV2SLAServlet extends DagServletTestCase {
                 parentId = (String) json.get(JsonTags.SLA_SUMMARY_PARENT_ID);
                 assertTrue(parentId.equals(cjBean1.getId()));
                 assertEquals(1L, json.get(JsonTags.SLA_SUMMARY_START_DELAY));
-                assertEquals(1L, 
json.get(JsonTags.SLA_SUMMARY_DURATION_DELAY));
+                assertEquals(0L, 
json.get(JsonTags.SLA_SUMMARY_DURATION_DELAY));
                 assertEquals(2L, json.get(JsonTags.SLA_SUMMARY_END_DELAY));
 
                 //test filter bundleName + Multiple EventStatus
@@ -265,7 +265,7 @@ public class TestV2SLAServlet extends DagServletTestCase {
                 assertFalse(eventStatus.contains("END_MISS") || 
eventStatus.contains("END_MET"));
                 // actualDuration is null on DB while job is running, 
populates it in API call
                 assertEquals(9L, 
json.get(JsonTags.SLA_SUMMARY_ACTUAL_DURATION));
-                assertEquals(1L, 
json.get(JsonTags.SLA_SUMMARY_DURATION_DELAY));
+                assertEquals(0L, 
json.get(JsonTags.SLA_SUMMARY_DURATION_DELAY));
                 return null;
             }
         });

http://git-wip-us.apache.org/repos/asf/oozie/blob/f45e1eb7/docs/src/site/twiki/DG_SLAMonitoring.twiki
----------------------------------------------------------------------
diff --git a/docs/src/site/twiki/DG_SLAMonitoring.twiki 
b/docs/src/site/twiki/DG_SLAMonitoring.twiki
index 7915d84..11a06af 100644
--- a/docs/src/site/twiki/DG_SLAMonitoring.twiki
+++ b/docs/src/site/twiki/DG_SLAMonitoring.twiki
@@ -200,8 +200,8 @@ GET 
<oozie-host>:<port>/oozie/v2/sla?timezone=GMT&filter=nominal_start=2013-06-1
     actualStartTime: "2013-16-22T05:30Z" <-- (20 min late relative to expected 
start)
     expectedEndTime: "2013-16-22T05:40Z" <-- (should end by this time)
     actualEndTime: null
-    expectedDuration: 15
-    actualDuration: null
+    expectedDuration: 900000 <-- (expected duration in milliseconds)
+    actualDuration: 120000 <-- (actual duration in milliseconds)
     notificationMessage: "My Job has encountered an SLA event!"
     upstreamApps: "dependent-app-1, dependent-app-2"
 
@@ -231,8 +231,8 @@ GET 
<oozie-host>:<port>/oozie/v2/sla?timezone=GMT&filter=parent_id=000056-123879
     actualStartTime: "2013-16-22T05:05Z"
     expectedEndTime: "2013-16-22T05:40Z" <-- (should end by this time)
     actualEndTime: "2013-16-22T06:00Z" <-- (20 min late relative to expected 
end)
-    expectedDuration: 60
-    actualDuration: 55
+    expectedDuration: 3600000 <-- (expected duration in milliseconds)
+    actualDuration: 3300000 <-- (actual duration in milliseconds)
     notificationMessage: "My Job has encountered an SLA event!"
     upstreamApps: "dependent-app-1, dependent-app-2"
 
@@ -262,8 +262,8 @@ GET 
<oozie-host>:<port>/oozie/v2/sla?timezone=GMT&filter=id=000001-1238791320234
     actualStartTime: "2013-16-22T05:05Z"
     expectedEndTime: "2013-16-22T05:40Z"
     actualEndTime: "2013-16-22T05:30Z"
-    expectedDuration: 15 <-- (expected duration in minutes)
-    actualDuration: 25
+    expectedDuration: 900000 <-- (expected duration in milliseconds)
+    actualDuration: 1500000 <- (actual duration in milliseconds)
     notificationMessage: "My Job has encountered an SLA event!"
     upstreamApps: "dependent-app-1, dependent-app-2"
 
@@ -297,9 +297,9 @@ GET 
<oozie-host>:<port>/oozie/v2/sla?timezone=GMT&filter=bundle=1234567-15013022
     expectedEndTime: "2014-01-10T13:00Z"
     actualEndTime: "2014-01-10T13:05Z"
     endDelay: 5
-    expectedDuration: 60
-    actualDuration: 66
-    durationDelay: 6
+    expectedDuration: 3600000 <-- (expected duration in milliseconds)
+    actualDuration: 3960000 <-- (actual duration in milliseconds)
+    durationDelay: 6 <-- (duration delay in minutes)
 }
 {
     id : "000001-1238791320234-oozie-joe-C@2"
@@ -317,9 +317,9 @@ GET 
<oozie-host>:<port>/oozie/v2/sla?timezone=GMT&filter=bundle=1234567-15013022
     expectedEndTime: "2014-01-11T13:00Z"
     actualEndTime: "2014-01-11T13:01Z"
     endDelay: 1
-    expectedDuration: 60
-    actualDuration: 56
-    durationDelay: -4
+    expectedDuration: 3600000 <-- (expected duration in milliseconds)
+    actualDuration: 3360000 <-- (actual duration in milliseconds)
+    durationDelay: -4 <-- (duration delay in minutes)
 }
 </verbatim>
 
@@ -349,7 +349,7 @@ SLA Details:
   Expected Start Time - Mon Jun 10 23:35:00 UTC 2013
   Actual Start Time - Mon Jun 10 23:34:04 UTC 2013
   Expected End Time - Mon Jun 10 23:38:00 UTC 2013
-  Expected Duration (in mins) - 300000
+  Expected Duration (in mins) - 5
   Actual Duration (in mins) - -1
 </verbatim>
 

http://git-wip-us.apache.org/repos/asf/oozie/blob/f45e1eb7/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 5f939e8..e2e5ec6 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 4.3.0 release (trunk - unreleased)
 
+OOZIE-2572 SLA DURATION miss not shown when job is running for longer than 
expected time (satishsaley via puru)
 OOZIE-2525 SchemaChecker fails with NPE (rkanter)
 OOZIE-2672 SLA periodic update does not remove job from map if job is removed 
from database (satishsaley via puru)
 OOZIE-2498 Oozie CallerId configuration for downstream components 
(abhishekbafna via rohini)

http://git-wip-us.apache.org/repos/asf/oozie/blob/f45e1eb7/webapp/src/main/webapp/console/sla/js/oozie-sla-table.js
----------------------------------------------------------------------
diff --git a/webapp/src/main/webapp/console/sla/js/oozie-sla-table.js 
b/webapp/src/main/webapp/console/sla/js/oozie-sla-table.js
index 7ae604c..feeae5b 100644
--- a/webapp/src/main/webapp/console/sla/js/oozie-sla-table.js
+++ b/webapp/src/main/webapp/console/sla/js/oozie-sla-table.js
@@ -102,28 +102,12 @@ function drawTable(jsonData) {
         slaSummary.nominalTimeTZ = new 
Date(slaSummary.nominalTime).toUTCString();
         if (slaSummary.expectedStart) {
             slaSummary.expectedStartTZ = new 
Date(slaSummary.expectedStart).toUTCString();
-            if (slaSummary.actualStart) {
-                if (slaSummary.actualStart > slaSummary.expectedStart) {
-                    slaMisses = "START_MISS, ";
-                }
-            }
-            else if (currentTime > slaSummary.expectedStart) {
-                slaMisses = "START_MISS, ";
-            }
         }
         if (slaSummary.actualStart) {
             slaSummary.actualStartTZ = new 
Date(slaSummary.actualStart).toUTCString();
         }
         if (slaSummary.expectedEnd) {
             slaSummary.expectedEndTZ = new 
Date(slaSummary.expectedEnd).toUTCString();
-            if (slaSummary.actualEnd) {
-                if (slaSummary.actualEnd > slaSummary.expectedEnd) {
-                    slaMisses += "END_MISS, ";
-                }
-            }
-            else if (currentTime > slaSummary.expectedEnd) {
-                slaMisses += "END_MISS, ";
-            }
         }
         if (slaSummary.actualEnd) {
             slaSummary.actualEndTZ = new 
Date(slaSummary.actualEnd).toUTCString();
@@ -137,11 +121,8 @@ function drawTable(jsonData) {
         }
         if (slaSummary.actualDuration != -1 && slaSummary.expectedDuration != 
-1) {
             slaSummary.durDiff = slaSummary.actualDuration - 
slaSummary.expectedDuration;
-            if (slaSummary.actualDuration > slaSummary.expectedDuration) {
-                slaMisses += "DURATION_MISS, ";
-            }
         }
-        slaSummary.slaMisses = slaMisses.length > 2 ? slaMisses.substring(0, 
slaMisses.length - 2) : "";
+        slaSummary.slaMisses = slaSummary.eventStatus;
     }
     oTable = $('#sla_table').dataTable(
             {

Reply via email to