Skip to content

Instantly share code, notes, and snippets.

@stefanprodan
Last active August 29, 2015 14:04
Show Gist options
  • Save stefanprodan/f79c6354f030b1f63a3e to your computer and use it in GitHub Desktop.
Save stefanprodan/f79c6354f030b1f63a3e to your computer and use it in GitHub Desktop.
Use Azure Mobile Service Scheduler to monitor websites: create a table named 'sites' with the following columns: id, name, url, keyword, status, statusDate and statusCode.
function Monitor() {
var sites = tables.getTable('Sites');
sites.read({ success: function(results) {
results.forEach(function(site) {
var httpRequest = require('request');
httpRequest.get(site.url, function(err, response, body) {
//check response status
if (err) {
site.status = "offline";
console.warn("Exception %s for %s", err, site.url);
} else if (response.statusCode !== 200) {
site.status = "unavailable";
console.warn("Status code %s for %s", response.statusCode, site.url);
} else {
site.status = "operational";
//check keyword
if(!!site.keyword) {
if (body.indexOf(site.keyword) != -1) {
//console.info("Keyword checked for %s", site.url);
} else {
site.status = "disrupted";
console.warn("Keyword '%s' not found in %s", site.keyword, site.url);
}
} else {
//console.info("Website is online %s", site.url);
}
}
//update table
site.statusDate = new Date();
site.statusCode = response.statusCode;
sites.update(site);
});
});
}});
/*
var urls = new Array(
"http://stefanprodan.com",
"http://bforms.stefanprodan.com"
);
urls.forEach(function(url)
{
var keyword = "copyright";
console.info("Requesting "+ url);
var httpRequest = require('request');
httpRequest.get(url, function(err, response, body) {
if (err) {
console.warn("Exception %s for %s", err, url)
} else if (response.statusCode !== 200) {
console.warn("Status code %s for %s", response.statusCode, url);
} else {
if(body.indexOf(keyword) != -1){
console.info("Keyword checked for %s", url);
} else {
console.warn("Keyword '%s' not found in %s", keyword, url);
}
}
});
});
*/
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment