mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-22 20:12:02 -06:00
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:
parent
7a675e7b37
commit
e33893d943
32
src/api/guards/telemetry.guard.ts
Normal file
32
src/api/guards/telemetry.guard.ts
Normal 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;
|
@ -4,6 +4,7 @@ import fs from 'fs';
|
||||
import { configService, WaBusiness } from '../../config/env.config';
|
||||
import { authGuard } from '../guards/auth.guard';
|
||||
import { instanceExistsGuard, instanceLoggedGuard } from '../guards/instance.guard';
|
||||
import Telemetry from '../guards/telemetry.guard';
|
||||
import { ChatwootRouter } from '../integrations/chatwoot/routes/chatwoot.router';
|
||||
import { RabbitmqRouter } from '../integrations/rabbitmq/routes/rabbitmq.router';
|
||||
import { S3Router } from '../integrations/s3/routes/s3.router';
|
||||
@ -36,11 +37,15 @@ const router = Router();
|
||||
const serverConfig = configService.get('SERVER');
|
||||
const guards = [instanceExistsGuard, instanceLoggedGuard, authGuard['apikey']];
|
||||
|
||||
const telemetry = new Telemetry();
|
||||
|
||||
const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
|
||||
|
||||
if (!serverConfig.DISABLE_MANAGER) router.use('/manager', new ViewsRouter().router);
|
||||
|
||||
router
|
||||
.use((req, res, next) => telemetry.collectTelemetry(req, res, next))
|
||||
|
||||
.get('/', (req, res) => {
|
||||
res.status(HttpStatus.OK).json({
|
||||
status: HttpStatus.OK,
|
||||
|
Loading…
Reference in New Issue
Block a user