chore: Add telemetry system

Added new file 'telemetry.guard.ts' in 'src/api/guards' directory.
Modified 'index.router.ts' in 'src/api/routes' directory to integrate the new telemetry system.

This change improves the monitoring and data gathering capabilities of the application, allowing for better performance analysis and potential issue detection.
This commit is contained in:
Davidson Gomes
2024-07-15 09:25:40 -03:00
parent 7a675e7b37
commit e33893d943
2 changed files with 37 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
import axios from 'axios';
import { NextFunction, Request, Response } from 'express';
import fs from 'fs';
const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
interface TelemetryData {
route: string;
apiVersion: string;
timestamp: Date;
}
class Telemetry {
public collectTelemetry(req: Request, res: Response, next: NextFunction): void {
const telemetry: TelemetryData = {
route: req.path,
apiVersion: `${packageJson.version}`,
timestamp: new Date(),
};
axios
.post('https://log.evolution-api.com/telemetry', telemetry)
.then(() => {})
.catch((error) => {
console.error('Telemetry error', error);
});
next();
}
}
export default Telemetry;