From 9b521e9f36fda6914e34ce4e5e49733530871710 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Tue, 30 Jul 2024 14:37:28 -0500 Subject: [PATCH] metricsMiddleware: add comments --- src/middleware/metricsMiddleware.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/middleware/metricsMiddleware.ts b/src/middleware/metricsMiddleware.ts index d7ac43d5..f740a745 100644 --- a/src/middleware/metricsMiddleware.ts +++ b/src/middleware/metricsMiddleware.ts @@ -2,13 +2,19 @@ import { MiddlewareHandler } from '@hono/hono'; import { httpRequestCounter, httpResponseCounter } from '@/metrics.ts'; +/** Prometheus metrics middleware that tracks HTTP requests by methods and responses by status code. */ export const metricsMiddleware: MiddlewareHandler = async (c, next) => { + // HTTP Request. const { method } = c.req; httpRequestCounter.inc({ method }); + // Wait for other handlers to run. await next(); + // HTTP Response. const { status } = c.res; + // Get a parameterized path name like `/posts/:id` instead of `/posts/1234`. + // Tries to find actual route names first before falling back on potential middleware handlers like `app.use('*')`. const path = c.req.matchedRoutes.find((r) => r.method !== 'ALL')?.path ?? c.req.routePath; httpResponseCounter.inc({ status, path }); };