diff --git a/senders/pagerduty/send.go b/senders/pagerduty/send.go index f2ad0025c..9567541c5 100644 --- a/senders/pagerduty/send.go +++ b/senders/pagerduty/send.go @@ -21,6 +21,7 @@ func (sender *Sender) SendEvents(events moira.NotificationEvents, contact moira. if err != nil { return fmt.Errorf("failed to post the event to the pagerduty contact %s : %s. ", contact.Value, err) } + return nil } @@ -61,10 +62,16 @@ func (sender *Sender) buildEvent(events moira.NotificationEvents, contact moira. Details: details, } + action := "trigger" + if events.GetSubjectState() == moira.StateOK { + action = "resolve" + } + event := pagerduty.V2Event{ RoutingKey: contact.Value, - Action: "trigger", + Action: action, Payload: payload, + DedupKey: trigger.ID, } if len(plot) > 0 && sender.imageStoreConfigured { diff --git a/senders/pagerduty/send_test.go b/senders/pagerduty/send_test.go index 126fc3e16..594d5ef65 100644 --- a/senders/pagerduty/send_test.go +++ b/senders/pagerduty/send_test.go @@ -43,6 +43,7 @@ func TestBuildEvent(t *testing.T) { baseExpected := pagerduty.V2Event{ RoutingKey: contact.Value, Action: "trigger", + DedupKey: "TriggerID", Payload: &pagerduty.V2Payload{ Summary: "NODATA Trigger Name [tag1][tag2]", Severity: "warning",