Created
September 4, 2013 05:23
-
-
Save codemoran/6433040 to your computer and use it in GitHub Desktop.
Use the harddrive /dev/sda1 and send the usage percentage to Graphdat to create a custom graph
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var _exec = require('child_process').exec; | |
var _https = require('https'); | |
var _os = require('os'); | |
var _options = { | |
method: 'POST', | |
host: 'api.graphdat.com', | |
port: 443, | |
path: '/v1/measurements', | |
auth: '[email protected]:api.896a98bf4f', | |
headers: {'Content-Type' : 'application/json'}, | |
}; | |
function getDiskSpace(callback) | |
{ | |
_exec("df -k /dev/sda1", function(err, stdout, stderr) { | |
// ignore errors, this is just a sample | |
var lines = stdout.split("\n"); | |
var diskInfo = lines[1].replace(/[\s\n\r]+/g,' ').split(' '); | |
var percentage = diskInfo[4].replace('%', '') / 100; | |
callback(null, percentage); | |
}); | |
} | |
function sendToGraphdat(percentage, callback) | |
{ | |
var body = { | |
"source":"sigurd-db", | |
"metric":"SIGURD_DISK_SPACE", | |
"measure": percentage, | |
"timestamp": Date.now() / 1000 | |
}; | |
var bodyString = JSON.stringify(body); | |
_options.headers['Content-Length'] = Buffer.byteLength(bodyString, 'utf8'); | |
var cb = function(response) { | |
response.on('end', function () { | |
return callback(null); | |
}); | |
}; | |
var req = _https.request(_options, callback); | |
req.write(bodyString); | |
req.end(); | |
} | |
function run() { | |
getDiskSpace(function(err, percentage) { | |
// ignore errors, this is just a sample | |
sendToGraphdat(percentage, function(err) { | |
// ignore errors, this is just a sample | |
setTimeout(run, 5000); | |
}); | |
}); | |
} | |
run(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment