1import logService from '../services/log';
2
3function logResponseTime(req: any, res: any, next: any) {
4 const startHrTime = process.hrtime();
5 const path = req.method + req.url;
6
7 res.on('finish', () => {
8 const elapsedHrTime = process.hrtime(startHrTime);
9 const elapsedTimeInMs = elapsedHrTime[0] * 1000 + elapsedHrTime[1] / 1e6;
10 logService.log('info', `Request Completed at ${elapsedTimeInMs}ms`, { path });
11 if (elapsedTimeInMs > 5000) {
12 logService.log('warning', 'Slow query detected:', { path, time: `${elapsedTimeInMs}ms` });
13 }
14 if (elapsedTimeInMs > 15000) {
15 logService.log('error', 'Super Slow query detected:', { path, time: `${elapsedTimeInMs}ms` });
16 }
17 });
18
19 next();
20}
21
22export { logResponseTime };
23
24
25// ============================
26import { logResponseTime } from '../lib/log-response-time';
27
28// Response times APM
29this.app.use(logResponseTime);Created on 2/25/2021