I use httpstat
to test my rest api's performance and then I want to write a module to get the performance of http
.
The moudle can get the request and response of http
, including dns
, method
, url
and so on.
// please require the module first
const httpPerf = require('http-performance');
const http = require('http');
httpPerf.on('stats', (stats) => {
/* { type: 'request',
dns: { ip: '14.215.177.38', addressType: 4 },
requesting: 0,
method: 'GET',
host: 'www.baidu.com',
url: '/',
status: 200,
bytes: 15358,
timing: { socket: 9, dns: 2, tcp: 6, processing: 13, transfer: 5, all: 35 } }
*/
console.info(stats);
});
http.get('http://www.baidu.com/');
// please require the module first
const httpPerf = require('http-performance');
const http = require('http');
const express = require('express');
httpPerf.on('stats', (stats) => {
if (stats.type !== 'response') {
return;
}
/* { type: 'response',
method: 'GET',
timing: { all: 1013, socket: 0 },
status: 200,
url: '/',
bytes: 60,
responsing: 0 }
*/
console.info(stats);
});
const app = express();
app.use((req, res, next) => setTimeout(next, 1000));
app.use((req, res) => {
res.json({
message: 'hello world',
});
});
const server = app.listen();
const url = `http://127.0.0.1:${server.address().port}`;
http.get(url);
- type The http type, 'request' or 'response'
Diable or enable the http stats type, default is enabled.
const httpPerf = require('http-performance');
httpPerf.disable('request');
httpPerf.enable('request');
MIT