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 firstconsthttpPerf=require('http-performance');consthttp=require('http');httpPerf.on('stats',(stats)=>{/* { category: '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 firstconsthttpPerf=require('http-performance');consthttp=require('http');constexpress=require('express');httpPerf.on('stats',(stats)=>{if(stats.type!=='response'){return;}/* { category: 'response', method: 'GET', timing: { all: 1013, socket: 0 }, status: 200, url: '/', bytes: 60, responsing: 0 }*/console.info(stats);});constapp=express();app.use((req,res,next)=>setTimeout(next,1000));app.use((req,res)=>{res.json({message: 'hello world',});});constserver=app.listen();consturl=`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.
consthttpPerf=require('http-performance');httpPerf.disable('request');httpPerf.enable('request');MIT