hostr/lib/koa-statsd.js
2018-06-02 18:20:05 +00:00

36 lines
639 B
JavaScript

/**
* Module dependencies.
*/
const Stats = require('statsy');
/**
* Initialize stats middleware with `opts`
* which are passed to statsy.
*
* @param {Object} [opts]
* @return {Function}
* @api public
*/
export default function (opts) {
const s = new Stats(opts || {});
return async (ctx, next) => {
// counters
s.incr('request.count');
s.incr(`request.${ctx.method}.count`);
// size
s.histogram('request.size', ctx.request.length || 0);
// remote addr
// s.set('request.addresses', this.ip);
// duration
ctx.res.on('finish', s.timer('request.duration'));
await next();
};
}