librato-node-count v1.0.1
librato-node
librato-node is a Node.js client for Librato Metrics (http://metrics.librato.com/)
Getting Started
Install
$ npm install librato-node
Setup
Once librato.start
is called, a worker will send aggregated stats to librato once every 60 seconds.
var librato = require('librato-node');
librato.configure({email: 'foo@example.com', token: 'ABC123'});
librato.start();
process.once('SIGINT', function() {
librato.stop(); // stop optionally takes a callback
});
Increment
Use librato.increment
to track counts in librato. On each flush, the incremented total for that period will be sent.
var librato = require('librato-node');
librato.increment('foo');
Timing
Use librato.timing
to track durations in librato.
On each flush, the library sends a count
, sum
, min
, max
, and sum_squares
metric for that period
so librato can accurately display multi-sample measurements.
var librato = require('librato-node');
librato.timing('foo', 500);
Arbitrary measurements
You can also send arbitrary measurements to librato. For example:
var librato = require('librato-node');
librato.measure('bar', 3829);
(This actually works exactly the same way as librato.timing
, but sometimes the measurements you are sending aren't time durations!)
Express
librato-node includes Express middleware to log the request count and response times for your app. It also works in other Connect-based apps.
var express = require('express');
var librato = require('librato-node');
var app = express();
app.use(librato.middleware());
The key names the middleware uses are configurable by passing an options hash.
librato.middleware({requestCountKey: 'myRequestCount', responseTimeKey: 'myResponseTime'});
Contributing
$ git clone https://github.com/goodeggs/librato-node && cd librato-node
$ npm install
$ npm test
History
librato-node is largely based off of Librato's own librato-rails. Visit that repository if you're running Ruby or for more information on Librato Metrics in general.