diff --git a/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/AuditNotifier.java b/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/AuditNotifier.java
index cdf397a95..e10519dfb 100644
--- a/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/AuditNotifier.java
+++ b/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/AuditNotifier.java
@@ -160,7 +160,7 @@ protected String getAuditBody(NotificationContext context, NotificationStatus no
if(!trigger.getType().equals(TriggerType.NO_DATA)){
sb.append(MessageFormat.format("Triggered on Metric: {0}
", context.getTriggeredMetric().getIdentifier()));
}
- sb.append(MessageFormat.format("Trigger details: {0}
", getTriggerDetails(trigger)));
+ sb.append(MessageFormat.format("Trigger details: {0}
", getTriggerDetails(trigger, context)));
if(!trigger.getType().equals(TriggerType.NO_DATA)){
sb.append(MessageFormat.format("Triggering event value: {0}
", context.getTriggerEventValue()));
}
@@ -180,9 +180,10 @@ protected String getAuditBody(NotificationContext context, NotificationStatus no
*
* @return The trigger detail information.
*/
- protected String getTriggerDetails(Trigger trigger) {
+ protected String getTriggerDetails(Trigger trigger, NotificationContext context) {
if (trigger != null) {
String triggerString = trigger.toString();
+ triggerString = replaceTemplatesInTriggerName(triggerString, context.getTriggeredMetric().getScope(), context.getTriggeredMetric().getMetric(), context.getTriggeredMetric().getTags());
return triggerString.substring(triggerString.indexOf("{") + 1, triggerString.indexOf("}"));
} else {
diff --git a/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/DefaultNotifier.java b/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/DefaultNotifier.java
index 959077ab7..85b2b5718 100644
--- a/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/DefaultNotifier.java
+++ b/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/DefaultNotifier.java
@@ -112,24 +112,30 @@ private Map getLowerCaseTagMap(final Map tags)
return lowerCaseTagMap;
}
- /*
- * Finds all the templates like ${scope}, ${metric} and replaces it with the required fields.
- * If no matches are found, nothing is done. Should be a protected function, making public for unit testing.
- * */
- public String getDisplayTriggerName(NotificationContext context) {
- String newTriggerName = context.getTrigger().getName();
- Metric triggeredMetric = context.getTriggeredMetric();
- newTriggerName = newTriggerName.replaceAll("(?i)\\$\\{scope\\}", triggeredMetric.getScope());
- newTriggerName = newTriggerName.replaceAll("(?i)\\$\\{metric\\}", triggeredMetric.getMetric());
- Map tags = triggeredMetric.getTags();
+ public String replaceTemplatesInTriggerName(String triggerName, String scope, String metric, Map tags) {
+ triggerName = triggerName.replaceAll("(?i)\\$\\{scope\\}", scope);
+ triggerName = triggerName.replaceAll("(?i)\\$\\{metric\\}", metric);
Map lowerCaseTagMap = getLowerCaseTagMap(tags);
- Matcher m = Pattern.compile("(?i)\\$\\{.*?\\}").matcher(newTriggerName);
+ Matcher m = Pattern.compile("(?i)\\$\\{.*?\\}").matcher(triggerName);
while (m.find()) {
String currentRegex = m.group(), currentTagKey = currentRegex.substring(2, currentRegex.length()-1).toLowerCase();
if (lowerCaseTagMap.containsKey(currentTagKey))
- newTriggerName = newTriggerName.replace(currentRegex, lowerCaseTagMap.get(currentTagKey));
+ triggerName = triggerName.replace(currentRegex, lowerCaseTagMap.get(currentTagKey));
}
- return newTriggerName;
+ return triggerName;
+
+ }
+
+ /*
+ * Finds all the templates like ${scope}, ${metric} and replaces it with the required fields.
+ * If no matches are found, nothing is done. Should be a protected function, making public for unit testing.
+ * */
+ protected String getDisplayTriggerName(NotificationContext context) {
+ String triggerName = context.getTrigger().getName();
+ Metric triggeredMetric = context.getTriggeredMetric();
+ String scope = triggeredMetric.getScope(), metric = triggeredMetric.getMetric();
+ Map tags = triggeredMetric.getTags();
+ return replaceTemplatesInTriggerName(triggerName, scope, metric, tags);
}
private void _createAnnotation(NotificationContext notificationContext, Map additionalFields) {
diff --git a/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/EmailNotifier.java b/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/EmailNotifier.java
index 5914141fa..9056d6127 100644
--- a/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/EmailNotifier.java
+++ b/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/EmailNotifier.java
@@ -176,7 +176,7 @@ protected String getEmailBody(NotificationContext context, NotificationStatus no
if(!trigger.getType().equals(TriggerType.NO_DATA)){
sb.append(MessageFormat.format("Triggered on Metric: {0}
", context.getTriggeredMetric().getIdentifier()));
}
- sb.append(MessageFormat.format("Trigger details: {0}
", getTriggerDetails(trigger)));
+ sb.append(MessageFormat.format("Trigger details: {0}
", getTriggerDetails(trigger, context)));
if(!trigger.getType().equals(TriggerType.NO_DATA)){
sb.append(MessageFormat.format("Triggering event value: {0}
", context.getTriggerEventValue()));
}
diff --git a/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/GOCNotifier.java b/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/GOCNotifier.java
index bb729041c..ae0ce64e0 100644
--- a/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/GOCNotifier.java
+++ b/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/GOCNotifier.java
@@ -279,7 +279,7 @@ protected String getGOCMessageBody(Notification notification, Trigger trigger, N
if(!trigger.getType().equals(TriggerType.NO_DATA)){
sb.append(MessageFormat.format("Triggered on Metric: {0}\n", context.getTriggeredMetric().getIdentifier()));
}
- sb.append(MessageFormat.format("Trigger details: {0}\n", getTriggerDetails(trigger)));
+ sb.append(MessageFormat.format("Trigger details: {0}\n", getTriggerDetails(trigger, context)));
if(!trigger.getType().equals(TriggerType.NO_DATA)){
sb.append(MessageFormat.format("Triggering event value: {0}\n", context.getTriggerEventValue()));
}
diff --git a/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/GusNotifier.java b/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/GusNotifier.java
index f4cec7107..cdd5f1ae0 100644
--- a/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/GusNotifier.java
+++ b/ArgusCore/src/main/java/com/salesforce/dva/argus/service/alert/notifier/GusNotifier.java
@@ -156,7 +156,7 @@ private String generateGusFeed(Notification notification, Trigger trigger, Notif
String triggerName = getDisplayTriggerName(context);
String notificationCooldownExpiraton = DATE_FORMATTER.get().format(new Date(context.getCoolDownExpiration()));
String metricExpression = context.getAlert().getExpression();
- String triggerDetails = getTriggerDetails(trigger);
+ String triggerDetails = getTriggerDetails(trigger, context);
double triggerEventValue = context.getTriggerEventValue();
if(context.getNotification().getCustomText() != null && context.getNotification().getCustomText().length()>0){
sb.append(context.getNotification().getCustomText()).append("\n>");
diff --git a/ArgusCore/src/test/java/com/salesforce/dva/argus/service/NotifierTest.java b/ArgusCore/src/test/java/com/salesforce/dva/argus/service/NotifierTest.java
index 96764af86..b95091c64 100644
--- a/ArgusCore/src/test/java/com/salesforce/dva/argus/service/NotifierTest.java
+++ b/ArgusCore/src/test/java/com/salesforce/dva/argus/service/NotifierTest.java
@@ -103,7 +103,7 @@ public void testUpdatingTriggerName() {
Notifier notifier = system.getServiceFactory().getAlertService().getNotifier(SupportedNotifier.GOC);
notifier.sendNotification(context);
assertEquals("${sCopE}-trigger_name-${MEtriC}-trigger_metric-${tag1}-trigger_tag1-${tag2}-trigger_tag2-${tag3}-${tAg2}", context.getTrigger().getName());
- assertEquals("scope-trigger_name-metric-trigger_metric-val1-trigger_tag1-val2-trigger_tag2-${tag3}-val2", system.getNotifierFactory().getGOCNotifier().getDisplayTriggerName(context));
+ assertEquals("scope-trigger_name-metric-trigger_metric-val1-trigger_tag1-val2-trigger_tag2-${tag3}-val2", system.getNotifierFactory().getGOCNotifier().replaceTemplatesInTriggerName(context.getTrigger().getName(), "scope", "metric", tags));
}