express-statsd
Simple middleware that provide basic statsd metrics for your express app.
npm i @openfin/express-statsd
Usage
import statsdMiddleware from '@openfin/express-statsd';
app.use(statsdMiddleware(opts))
import * as express from 'express';
import statsdMiddleware from '@openfin/express-statsd';
import * as HotShots from 'hot-shots';
const statsd = new HotShots();
const app = express();
app.use(
statsdMiddleware({
increment: statsd.increment.bind(statsd),
timing: statsd.timing.bind(statsd)
})
);
app.get('/', function(req, res) {
res.status(200).send('Getting them hot metrics');
});
app.listen(8080);
Options
tags
The tags to send with each metric. Not all statsd providers support this. Default: method:<request method>
protocol:<request protocol>
path:<request path>
For the timing metric an additional tag is sent. response_code:<response code>
increment(<key>.response_code.<response_code>, 1, 1, tags) => void
The increment statsd call. Exposed as service.http.response_code.<response_code>
Note if increment and timing methods are not present the middleware will attempt to use sendStats
. If thats also not present it will throw an error.
timing(<key>.response_time, <responseTimeInMs>, 1, tags) => void
The timing statsd call.
key:string
The key prefix used in the metric. Defaults to service.http
sendStats(request, response, responseTimeInMs, tags) => void
If set this function will be called instead of the increment and timing ones. Allowing you to send your own metrics.
onErr(err)
Called if the response pipe errors