librato-node
Version:
A node.js client for Librato Metrics (http://metrics.librato.com/)
30 lines (27 loc) • 1.12 kB
JavaScript
// Generated by CoffeeScript 1.12.7
(function() {
module.exports = function(librato) {
return function(arg) {
var ref, requestCountKey, responseTimeKey, statusCodeKey;
ref = arg != null ? arg : {}, requestCountKey = ref.requestCountKey, responseTimeKey = ref.responseTimeKey, statusCodeKey = ref.statusCodeKey;
return function(req, res, next) {
var end;
req._libratoStartTime = new Date;
if (req._librato != null) {
return next();
}
req._librato = true;
librato.increment(requestCountKey != null ? requestCountKey : 'requestCount');
end = res.end;
res.end = function(chunk, encoding) {
res.end = end;
res.end(chunk, encoding);
librato.measure(responseTimeKey != null ? responseTimeKey : 'responseTime', new Date - req._libratoStartTime);
return librato.increment((statusCodeKey != null ? statusCodeKey : 'statusCode') + "." + (Math.floor(res.statusCode / 100)) + "xx");
};
return next();
};
};
};
}).call(this);
//# sourceMappingURL=middleware.js.map