Merge pull request #181 from maraoz/plugin/monitor

Monitor plugin: simple version
This commit is contained in:
Matias Alejo Garcia 2014-09-08 15:46:55 -03:00
commit abcc3e3616
5 changed files with 36 additions and 1 deletions

View File

@ -76,6 +76,7 @@ var bitcoindConf = {
disableAgent: true
};
var enableMonitor = process.env.ENABLE_MONITOR === 'true';
var enableCleaner = process.env.ENABLE_CLEANER === 'true';
var enableMailbox = process.env.ENABLE_MAILBOX === 'true';
var enableRatelimiter = process.env.ENABLE_RATELIMITER === 'true';
@ -93,6 +94,8 @@ if (!fs.existsSync(db)) {
}
module.exports = {
enableMonitor: enableMonitor,
monitor: require('../plugins/config-monitor.js'),
enableCleaner: enableCleaner,
cleaner: require('../plugins/config-cleaner.js'),
enableMailbox: enableMailbox,

View File

@ -139,6 +139,9 @@ if (config.enableCleaner) {
require('./plugins/cleaner').init(config.cleaner);
}
if (config.enableMonitor) {
require('./plugins/monitor').init(config.monitor);
}
// express settings

View File

@ -1,6 +1,6 @@
module.exports = {
cronTime: '* * * * *',
cronTime: '0 * * * *', // run each hour
threshold: 2*24*60*60, // 2 days, in seconds
};

View File

@ -0,0 +1,3 @@
module.exports = {
cronTime: '* * * * *', // run each minute
};

26
plugins/monitor.js Normal file
View File

@ -0,0 +1,26 @@
var mdb = require('../lib/MessageDb').default();
var logger = require('../lib/logger').logger;
var preconditions = require('preconditions').singleton();
var microtime = require('microtime');
var cron = require('cron');
var CronJob = cron.CronJob;
module.exports.init = function(config) {
var cronTime = config.cronTime || '0 * * * *';
logger.info('Using monitor plugin with cronTime ' + cronTime);
var onTick = function() {
mdb.getAll(function(err, messages) {
if (err) logger.error(err);
else {
logger.info('Message db size = ' + messages.length);
}
});
};
var job = new CronJob({
cronTime: cronTime,
onTick: onTick
});
onTick();
job.start();
};