@hemantwasthere/monitoring-sdk
Version:
Centralized monitoring SDK for Node.js applications with Prometheus, Loki, and Grafana integration
19 lines (18 loc) • 716 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.expressMetricsMiddleware = expressMetricsMiddleware;
const metrics_1 = require("../metrics");
function expressMetricsMiddleware() {
const metricsService = metrics_1.MetricsService.getInstance();
return (req, res, next) => {
const startTime = Date.now();
const originalSend = res.send;
res.send = function (body) {
const duration = Date.now() - startTime;
const route = req.route?.path || req.path;
metricsService.recordHttpRequest(req.method, route, res.statusCode, duration);
return originalSend.call(this, body);
};
next();
};
}