Statsd route monitoring middleware for connect/express
(This project is deprecated and not maintained.)
StatsD route monitoring middleware for Connect/Express. This middleware can be used either globally or on a per-route basis (preferred) and sends status codes and response times to StatsD.
npm install express-statsd
An example of an express server with express-statsd:
var express = require('express'); var expressStatsd = require('express-statsd'); var app = express();app.use(expressStatsd());
app.get('/', function (req, res) { res.send('Hello World!'); });
app.listen(3000);
By default, the middleware will send
status_codeand
response_timestats for all requests. For example, using the created server above and a request to
http://localhost:3000/, the following stats will be sent:
status_code.200:1|c response_time:100|ms
However, it's highly recommended that you set
req.statsdKeywhich will be used to namespace the stats. Be aware that stats will only be logged once a response has been sent; this means that
req.statsdKeycan be set even after the express-statsd middleware was added to the chain. Here's an example of a server set up with a more specific key:
var express = require('express'); var expressStatsd = require('express-statsd'); var app = express();function statsd (path) { return function (req, res, next) { var method = req.method || 'unknown_method'; req.statsdKey = ['http', method.toLowerCase(), path].join('.'); next(); }; }
app.use(expressStatsd());
app.get('/', statsd('home'), function (req, res) { res.send('Hello World!'); });
app.listen(3000);
A GET request to
/on this server would produce the following stats:
http.get.home.status_code.200:1|c http.get.home.response_time:100|ms
This module also works with any
httpserver
var http = require('http'); var expressStatsd = require('express-statsd');var monitorRequest = expressStatsd();
http.createServer(function (req, res) { monitorRequest(req, res);
// do whatever you want, framework, library, router res.end('hello world');
}).listen(3000);
expressStatsd(options);
Object- Container for settings
Object- The statsd client. Defaults to lynx with host set to
127.0.0.1and port set to
8125.
String- The key on the
reqobject at which to grab the key for the statsd logs. Defaults to
req.statsdKey.