azkaban-aplcache

Include job/flow name in SLA alert title (#1485) This way

9/20/2017 4:07:55 PM

Details

diff --git a/azkaban-common/src/main/java/azkaban/utils/Emailer.java b/azkaban-common/src/main/java/azkaban/utils/Emailer.java
index 41a20a9..27cabee 100644
--- a/azkaban-common/src/main/java/azkaban/utils/Emailer.java
+++ b/azkaban-common/src/main/java/azkaban/utils/Emailer.java
@@ -101,7 +101,7 @@ public class Emailer extends AbstractMailer implements Alerter {
   }
 
   private void sendSlaAlertEmail(final SlaOption slaOption, final String slaMessage) {
-    final String subject = "Sla Violation Alert on " + getAzkabanName();
+    final String subject = "SLA violation for " + getJobOrFlowName(slaOption) + " on " + getAzkabanName();
     final String body = slaMessage;
     final List<String> emailList =
         (List<String>) slaOption.getInfo().get(SlaOption.INFO_EMAIL_LIST);
@@ -123,6 +123,16 @@ public class Emailer extends AbstractMailer implements Alerter {
     }
   }
 
+  private String getJobOrFlowName(SlaOption slaOption) {
+    String flowName = (String) slaOption.getInfo().get(SlaOption.INFO_FLOW_NAME);
+    String jobName = (String) slaOption.getInfo().get(SlaOption.INFO_JOB_NAME);
+    if (org.apache.commons.lang.StringUtils.isNotBlank(jobName)) {
+      return flowName + ":" + jobName;
+    } else {
+      return flowName;
+    }
+  }
+
   public void sendFirstErrorMessage(final ExecutableFlow flow) {
     final EmailMessage message = new EmailMessage(this.mailHost, this.mailPort, this.mailUser,
         this.mailPassword);