فهرست منبع

Added slack mention functionality

utkarshcmu 9 سال پیش
والد
کامیت
2f60929d1e
2فایلهای تغییر یافته به همراه16 افزوده شده و 2 حذف شده
  1. 5 2
      pkg/services/alerting/notifiers/slack.go
  2. 11 0
      public/app/features/alerting/partials/notification_edit.html

+ 5 - 2
pkg/services/alerting/notifiers/slack.go

@@ -23,11 +23,13 @@ func NewSlackNotifier(model *m.AlertNotification) (alerting.Notifier, error) {
 	}
 
 	recipient := model.Settings.Get("recipient").MustString()
+	mention := model.Settings.Get("mention").MustString()
 
 	return &SlackNotifier{
 		NotifierBase: NewNotifierBase(model.Id, model.IsDefault, model.Name, model.Type, model.Settings),
 		Url:          url,
 		Recipient:    recipient,
+		Mention:      mention,
 		log:          log.New("alerting.notifier.slack"),
 	}, nil
 }
@@ -36,6 +38,7 @@ type SlackNotifier struct {
 	NotifierBase
 	Url       string
 	Recipient string
+	Mention   string
 	log       log.Logger
 }
 
@@ -70,9 +73,9 @@ func (this *SlackNotifier) Notify(evalContext *alerting.EvalContext) error {
 		})
 	}
 
-	message := ""
+	message := this.Mention
 	if evalContext.Rule.State != m.AlertStateOK { //dont add message when going back to alert state ok.
-		message = evalContext.Rule.Message
+		message += " " + evalContext.Rule.Message
 	}
 
 	body := map[string]interface{}{

+ 11 - 0
public/app/features/alerting/partials/notification_edit.html

@@ -74,6 +74,17 @@
           Override default channel or user, use #channel-name or @username
         </info-popover>
       </div>
+      <div class="gf-form max-width-30">
+        <span class="gf-form-label width-6">Mention</span>
+        <input type="text"
+          class="gf-form-input max-width-30"
+          ng-model="ctrl.model.settings.mention"
+          data-placement="right">
+        </input>
+        <info-popover mode="right-absolute">
+          Mention a user or a group using @ when notifying in a channel
+        </info-popover>
+      </div>
     </div>
 
     <div class="gf-form-group section" ng-if="ctrl.model.type === 'email'">