Skip to content

Instantly share code, notes, and snippets.

@shifr
Created February 5, 2019 16:42
Show Gist options
  • Save shifr/bed40c03f071997bc0372337fd70a1b5 to your computer and use it in GitHub Desktop.
Save shifr/bed40c03f071997bc0372337fd70a1b5 to your computer and use it in GitHub Desktop.
Health check using google sheets
/** Monitor your Site's Uptime **/
/** By Amit Agarwal 26/03/2012 **/
function isMySiteDown()
{
var url = SpreadsheetApp.getActiveSheet().getRange("E3").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 (ScriptProperties.getProperty("status") == code)
return;
var sheet = SpreadsheetApp.getActiveSheet();
var email = sheet.getRange("E5").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, msg, error);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment