Added slack mention functionality

This commit is contained in:
utkarshcmu 2016-11-04 05:18:43 -07:00
parent 6fa89456d6
commit 2f60929d1e
2 changed files with 16 additions and 2 deletions

View File

@ -23,11 +23,13 @@ func NewSlackNotifier(model *m.AlertNotification) (alerting.Notifier, error) {
} }
recipient := model.Settings.Get("recipient").MustString() recipient := model.Settings.Get("recipient").MustString()
mention := model.Settings.Get("mention").MustString()
return &SlackNotifier{ return &SlackNotifier{
NotifierBase: NewNotifierBase(model.Id, model.IsDefault, model.Name, model.Type, model.Settings), NotifierBase: NewNotifierBase(model.Id, model.IsDefault, model.Name, model.Type, model.Settings),
Url: url, Url: url,
Recipient: recipient, Recipient: recipient,
Mention: mention,
log: log.New("alerting.notifier.slack"), log: log.New("alerting.notifier.slack"),
}, nil }, nil
} }
@ -36,6 +38,7 @@ type SlackNotifier struct {
NotifierBase NotifierBase
Url string Url string
Recipient string Recipient string
Mention string
log log.Logger 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. 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{}{ body := map[string]interface{}{

View File

@ -74,6 +74,17 @@
Override default channel or user, use #channel-name or @username Override default channel or user, use #channel-name or @username
</info-popover> </info-popover>
</div> </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>
<div class="gf-form-group section" ng-if="ctrl.model.type === 'email'"> <div class="gf-form-group section" ng-if="ctrl.model.type === 'email'">