Skip to content

Instantly share code, notes, and snippets.

@hasantayyar
Created August 28, 2012 08:29
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hasantayyar/3496164 to your computer and use it in GitHub Desktop.
Save hasantayyar/3496164 to your computer and use it in GitHub Desktop.
uptime monitor with appscript
  • At first run allow gmail access.
  • Add time driven triggers (hour/minute)
function uptime()
{
var url = SpreadsheetApp.getActiveSheet().getRange("E2").getValue();
if (!ScriptProperties.getProperty("status")) {
ScriptProperties.setProperty("status", 200);
}
var response, error;
try {
response = UrlFetchApp.fetch(url);
} catch(error)
{
insertData(error, -1, "Website down");
return;
}
var code = response.getResponseCode();
if (code == 200)
insertData("Up", code, "Website up");
else
insertData(response.getContent()[0], code, "Website down");
}
function insertData(error, code, msg) {
if(code!="200"){
var sheet = SpreadsheetApp.getActiveSheet();
var email = sheet.getRange("E3").getValue();
var site = sheet.getRange("E2").getValue();
var row = sheet.getLastRow() + 1;
sheet.getRange(row,1).setValue(new Date());
sheet.getRange(row,2).setValue(error);
sheet.getRange(row,3).setValue(code);
ScriptProperties.setProperty("status", code);
MailApp.sendEmail(email, site+" "+msg, site+" "+error);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment