From 0e1b0e912ec8ba8d24e09ffb8cfd6ad1930461ef Mon Sep 17 00:00:00 2001 From: Tiago0507 Date: Sun, 23 Aug 2026 21:26:01 -0500 Subject: [PATCH] feat: add request duration histogram for golden-signal latency --- server.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/server.js b/server.js index e94c5f0..8ca505f 100644 --- a/server.js +++ b/server.js @@ -61,6 +61,12 @@ function createApp (options = {}) { labelNames: ['method', 'status'], registers: [register] }); + const requestDuration = new prometheus.Histogram({ + name: 'todo_api_request_duration_seconds', + help: 'Duration of requests handled by the Todo API', + labelNames: ['method'], + registers: [register] + }); prometheus.collectDefaultMetrics({ register, prefix: 'todos_api_' }); app.get('/metrics', async (req, res) => { @@ -69,7 +75,11 @@ function createApp (options = {}) { }); app.use((req, res, next) => { - res.on('finish', () => requestCount.labels(req.method, String(res.statusCode)).inc()); + const stopTimer = requestDuration.startTimer({ method: req.method }); + res.on('finish', () => { + requestCount.labels(req.method, String(res.statusCode)).inc(); + stopTimer(); + }); next(); }); app.use(expressjwt({