diff --git a/hooks/alertops/README.md b/hooks/alertops/README.md new file mode 100644 index 0000000..713f2e1 --- /dev/null +++ b/hooks/alertops/README.md @@ -0,0 +1,4 @@ +AlertOps + +Sends a error event to AlertOps. +Follow http://help.alertops.com/default.aspx/MyWiki/Errorception.html for setup detail. \ No newline at end of file diff --git a/hooks/alertops/index.js b/hooks/alertops/index.js new file mode 100644 index 0000000..3e5915d --- /dev/null +++ b/hooks/alertops/index.js @@ -0,0 +1,31 @@ +var request = require("request"), + path = require("path"); + +exports.serviceName = "AlertOps"; + +exports.author = { + name: "Xinlin Ruan", + email: "xinlinr@alertops.com", + github: "AlertOps", + twitter: "AlertOps" +}; + +exports.onError = function(error, settings, done) { + request({ + url: "https://notify.alertops.com/restapi.svc/POSTAlertV2/generic/" + + settings.apiKey + "/Errorception/" + settings.sourceName + + "/subject/id/none/none/webUrl/shortText/LongText/none", + method: "post", + body: JSON.stringify({ + subject: "(Errorception) " + error.message, + id: path.basename(error.webUrl), + webUrl: error.webUrl, + shortText: "Error: " + error.message, + LongText: "An Error " + error.message + (error.isFirstOccurrence ? " occurred" : " recurred") + + " at time: " + error.date + + " in " + (error.isInline?("an inline script on " + error.page):error.scriptPath) + + " See " + error.webUrl + " for details" + }), + timeout: 10000 + }, done); +}