From 40b471e76ede95140498636b8c93c384489d98d0 Mon Sep 17 00:00:00 2001 From: wkadmin Date: Tue, 21 Oct 2025 18:07:16 +0000 Subject: [PATCH] Actualiser index.js --- index.js | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/index.js b/index.js index e7eadbd1..e4c85242 100644 --- a/index.js +++ b/index.js @@ -1,24 +1,43 @@ import express from 'express'; import client from 'prom-client'; +import dotenv from 'dotenv'; +dotenv.config(); const app = express(); const PORT = process.env.PORT || 4000; -// Crée un registre de métriques Prometheus -const register = new client.Registry(); -client.collectDefaultMetrics({ register }); +// --- Prometheus setup --- +const collectDefaultMetrics = client.collectDefaultMetrics; +collectDefaultMetrics(); // CPU, mémoire, etc. -// Route API -app.get('/', (req, res) => { - res.send('The Tip Top Backend is running 🚀'); +const httpRequestCounter = new client.Counter({ + name: 'http_requests_total', + help: 'Nombre total de requêtes HTTP reçues', + labelNames: ['method', 'route', 'status'], }); -// Route /metrics pour Prometheus +app.use((req, res, next) => { + res.on('finish', () => { + httpRequestCounter.inc({ + method: req.method, + route: req.route?.path || req.path, + status: res.statusCode, + }); + }); + next(); +}); + +// --- Ton API existante --- +app.get('/api', (req, res) => { + res.json({ message: 'API The Tip Top 🚀' }); +}); + +// --- Endpoint de métriques --- app.get('/metrics', async (req, res) => { - res.set('Content-Type', register.contentType); - res.end(await register.metrics()); + res.set('Content-Type', client.register.contentType); + res.end(await client.register.metrics()); }); app.listen(PORT, () => { - console.log(`✅ Backend running on port ${PORT}`); + console.log(`🚀 Backend The Tip Top lancé sur le port ${PORT}`); });