File: //home/arjun/.pm2/modules/pm2-logrotate/node_modules/pmx/lib/utils/probes/Meter.js
// Hacked from https://github.com/felixge/node-measured
var units = require('../units');
var EWMA = require('../EWMA');
function Meter(opts) {
var self = this;
this._tickInterval = 5 * units.SECONDS;
this._samples = opts.samples || opts.seconds || 1;
this._timeframe = opts.timeframe || 60;
this._rate = new EWMA(this._timeframe * units.SECONDS, this._tickInterval);
if (opts.debug && opts.debug == true)
return false;
this._interval = setInterval(function() {
self._rate.tick();
}, this._tickInterval);
this._interval.unref();
}
Meter.RATE_UNIT = units.SECONDS;
Meter.prototype.mark = function(n) {
n = n || 1;
this._rate.update(n);
};
Meter.prototype.val = function() {
return Math.round(this._rate.rate(this._samples * Meter.RATE_UNIT) * 100 ) / 100;
};
module.exports = Meter;