traceapm
Version:
SDK for OpenTelemetry auto-instrumentation and OTLP export for Node.js apps.
17 lines (15 loc) • 500 B
JavaScript
const { recordHttpRequestDuration } = require('./metrics');
function apmHttpMetricsMiddleware(req, res, next) {
const start = process.hrtime();
res.on('finish', () => {
const diff = process.hrtime(start);
const durationMs = diff[0] * 1000 + diff[1] / 1e6;
recordHttpRequestDuration(durationMs, {
route: req.route ? req.route.path : req.path,
status_code: res.statusCode,
method: req.method,
});
});
next();
}
module.exports = { apmHttpMetricsMiddleware };