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:
npm install response-timeyarn add response-timepnpm add response-timebun add response-timeAPI
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).
header
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!');});