@openfin/express-statsd

express-statsd ============== Simple middleware that provide basic statsd metrics for your express app.

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
@openfin/express-statsd
Minified + gzip package size for @openfin/express-statsd in KB

Readme

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'; // Replace with statsd library of choice

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

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.