Google Apps Script for Website Monitoring

This Google Apps Script will turn Google Docs into a website uptime monitor.

/**   Monitor your Site's Uptime  **/

function isMySiteDown()
{

// Get the URL of the Website to monitor
  var url = SpreadsheetApp.getActiveSheet().getRange("E3").getValue();
  
// HTTP Response Code of the last server request
  if (!ScriptProperties.getProperty("status")) {
    ScriptProperties.setProperty("status", 200);
  }
  
  var response, error; 

  try {    

// Fetch the web page using UrlFetchApp
    response = UrlFetchApp.fetch(url);

  } catch(error) 
  {   
    insertData(error, -1, "Website down");
    return;
  }
  
  var code = response.getResponseCode();
  
// code = 200 means the fetch request was successful
  if (code == 200) 
    insertData("Up", code, "Website up"); 
  else
    insertData(response.getContent()[0], code, "Website down");
}

function insertData(error, code, msg) {  

// Ignore if the error message is logged already
  if (ScriptProperties.getProperty("status") == code)
    return;
    
// Log the server error in a Google Sheet

  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);

// Send an email alert for the downtime  

  ScriptProperties.setProperty("status", code);
  MailApp.sendEmail(email, msg, error);
}