middleware response-time

Tiempo de respuesta para servidores Node.js.

Este módulo crea un middleware que registra el tiempo de respuesta para peticiones en servidores HTTP. El “tiempo de respuesta” se define aquí como el tiempo transcurrido desde que una petición entra a este middleware hasta que las cabeceras se escriben al cliente.

Instalación

Este es un módulo de Node.js disponible a través del registro npm. La instalación se hace usando el comando npm install:

Ventana de terminal
npm install response-time

API

var responseTime = require('response-time');

responseTime([options])

Crea un middleware que añade una cabecera X-Response-Time a las respuestas. Si no quieres usar este módulo para establecer automáticamente una cabecera, consulta la sección sobre responseTime(fn).

Opciones

La función responseTime acepta un objeto options opcional que puede contener cualquiera de las siguientes claves:

digits

El número fijo de dígitos a incluir en la salida, que siempre es en milisegundos, por defecto es 3 (ej: 2.300ms).

El nombre de la cabecera a establecer, por defecto es X-Response-Time.

suffix

Booleano para indicar si se debe añadir un sufijo de unidad de medida a la salida, por defecto es true (ej: 2.300ms vs 2.300).

responseTime(fn)

Crea un nuevo middleware que registra el tiempo de respuesta de una petición y lo pone a disposición de tu propia función fn. El argumento fn se invocará como fn(req, res, time), donde time es un número en milisegundos.

Ejemplos

express/connect

var express = require('express');
var responseTime = require('response-time');
var app = express();
app.use(responseTime());
app.get('/', function (req, res) {
res.send('hello, world!');
});

servidor http vanilla

var finalhandler = require('finalhandler');
var http = require('http');
var responseTime = require('response-time');
// create "middleware"
var _responseTime = responseTime();
http.createServer(function (req, res) {
var done = finalhandler(req, res);
_responseTime(req, res, function (err) {
if (err) return done(err);
// respond to request
res.setHeader('content-type', 'text/plain');
res.end('hello, world!');
});
});

métricas de tiempo de respuesta

var express = require('express');
var responseTime = require('response-time');
var StatsD = require('node-statsd');
var app = express();
var stats = new StatsD();
stats.socket.on('error', function (error) {
console.error(error.stack);
});
app.use(
responseTime(function (req, res, time) {
var stat = (req.method + req.url).toLowerCase().replace(/[:.]/g, '').replace(/\//g, '_');
stats.timing(stat, time);
})
);
app.get('/', function (req, res) {
res.send('hello, world!');
});

Licencia

MIT