UNPKG

swagger-stats

Version:

API Telemetry and APM. Trace API calls and Monitor API performance, health and usage statistics in Node.js Microservices, based on express routes and Swagger (Open API) specification

57 lines (44 loc) 1.35 kB
/* swagger=stats egress http monitor */ const path = require('path'); const swsSettings = require('./swssettings'); const SwsProcessor = require('./swsProcessor'); const swsUtil = require('./swsUtil'); const debug = require('debug')('sws:egress'); const url = require('url'); const qs = require('qs'); let http = require('http'); let originalRequest = null; /* swagger=stats egress http monitor */ class SwsEgress { constructor() { // TODO } init() { // Process Options if(swsSettings.enableEgress){ this.enableEgressMonitoring(); } } enableEgressMonitoring(){ originalRequest = http.request; http.request = wrapMethodRequest; } handleRequest(req) { let h = req.getHeader('host') debug(`Got request: ${req.method} ${h} ${req.path}`); req.once('response', (res) => { const ip = req.socket.localAddress; const port = req.socket.localPort; debug(`Got response to request: ${res.statusCode} ${res.statusMessage}`); // Consume response object }); } } let swsEgress = new SwsEgress(); function wrapMethodRequest(...args) { let req = originalRequest.apply(this, arguments); swsEgress.handleRequest(req); return req; }; // TODO get module.exports = swsEgress;