Просмотр исходного кода

Added override default recipient functionality

utkarshcmu 9 лет назад
Родитель
Сommit
80fdd830de

+ 9 - 0
pkg/services/alerting/notifiers/slack.go

@@ -22,9 +22,12 @@ func NewSlackNotifier(model *m.AlertNotification) (alerting.Notifier, error) {
 		return nil, alerting.ValidationError{Reason: "Could not find url property in settings"}
 	}
 
+	recipient := model.Settings.Get("recipient").MustString()
+
 	return &SlackNotifier{
 		NotifierBase: NewNotifierBase(model.Id, model.IsDefault, model.Name, model.Type, model.Settings),
 		Url:          url,
+		Recipient:		recipient,
 		log:          log.New("alerting.notifier.slack"),
 	}, nil
 }
@@ -32,6 +35,7 @@ func NewSlackNotifier(model *m.AlertNotification) (alerting.Notifier, error) {
 type SlackNotifier struct {
 	NotifierBase
 	Url string
+	Recipient string
 	log log.Logger
 }
 
@@ -87,6 +91,11 @@ func (this *SlackNotifier) Notify(evalContext *alerting.EvalContext) error {
 		},
 	}
 
+	//recipient override
+	if this.Recipient != "" {
+		body["channel"] = this.Recipient
+	}
+
 	data, _ := json.Marshal(&body)
 	cmd := &m.SendWebhookSync{Url: this.Url, Body: string(data)}
 

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

@@ -63,6 +63,13 @@
         <span class="gf-form-label width-6">Url</span>
         <input type="text" required class="gf-form-input max-width-30" ng-model="ctrl.model.settings.url" placeholder="Slack incoming webhook url"></input>
       </div>
+      <div class="gf-form">
+        <span class="gf-form-label width-6">Recipient</span>
+        <input type="text" class="gf-form-input max-width-30"
+          ng-model="ctrl.model.settings.recipient"
+          placeholder="Override default channel or user, use #channel-name or @username">
+        </input>
+      </div>
     </div>
 
     <div class="gf-form-group section" ng-if="ctrl.model.type === 'email'">