interval-logger

0.1.1 • Public • Published

Interval Logger

A generic class that reports aggregate key/value data over a specific interval. This is useful for high volume metrics that need some aggregation (over time) to minimize network traffic, say.

Two functions are supported:

  • increment(key): increment a key, and report its sum over the interval (reset to 0 after the intervel). For computing hit-count events.
  • statistics(key,value): compute running statistics of values for a key. Computes count, average, standard deviation, and variance. For computing gauge data types (response time, etc).

build status

Build & Test

Tests are written in mocha.

Use npm:

npm test

Example

Several defaults are provided. Reports are sent to the console if no callback is specified:

var intervalLogger = require('intervalLogger');
var ilog = intervalLogger.create('example');
 
ilog.increment();
// after 1 second, "test: count=1" is logged to the console.
 
ilog.increment('foo');
ilog.increment('foo',2);
// after 1 second, "test: foo=3" is logged to the console.
 
ilog.statistics('bar',Math.random())
// after another second, "test: bar.count=1 bar.average=0.433123948 bar.std=0.0 bar.variance=0.0"
 
// if you want to report ALL keys every second even if they haven't been
// incremented:
intervalLogger = require('intervalLogger',null,true);
ilog.increment();
// after 1 second, "test: count=1" is logged to the console.
// after 2 seconds, "test: count=NaN" is logged to the console.
 
// cleanup
ilog.stopInterval();

Primarily though this is intended to tie into some external logging or logging service (say graphite, newrelic, bunyan or the like):

var intervalLogger = require('intervalLogger');
var ilog = intervalLogger.create('example',function(metric, values) {
  // after 1 second...
  //   metric='example'
  //   values={'count': 1, 'foo.count': 1, 'foo.average': 0.43, 'foo.std': 0, 'foo.variance':0 }
 
  // ...send this valuable information to someone important...
});
 
ilog.increment();
ilog.statistics('foo',Math.random())

Dependents (0)

Package Sidebar

Install

npm i interval-logger

Weekly Downloads

0

Version

0.1.1

License

ISC

Last publish

Collaborators

  • dsummersl