UNPKG

bugsnag-notification-plugins

Version:

Notification plugins (chat and issue tracking integrations) for Bugsnag.

44 lines (37 loc) 1.32 kB
NotificationPlugin = require "../../notification-plugin" class PagerDuty extends NotificationPlugin pagerDutyDetails = (event) -> details = message : event.trigger.message project : event.project.name class : event.error.exceptionClass url : event.error.url stackTrace : event.error.stacktrace details @receiveEvent: (config, event, callback) -> if event.trigger.type == 'projectSpiking' payload = service_key: config.serviceKey event_type: 'trigger' incident_key: event.project.url description: "Spike of #{event.trigger.rate} exceptions/minute in #{event.project.name}" details: pagerDutyDetails(event) else payload = service_key: config.serviceKey event_type: 'trigger' incident_key: event.error.url description: "#{event.error.exceptionClass} in #{event.error.context}" details: pagerDutyDetails(event) # Send the request @request .post('https://events.pagerduty.com/generic/2010-04-15/create_event.json') .timeout(4000) .set('Content-Type', 'application/json') .send(payload) .on "error", (err) -> callback(err) .end (res) -> return callback(res.error) if res.error callback() module.exports = PagerDuty