diff --git a/src/server.ts b/src/server.ts index 240a38b..e64f326 100644 --- a/src/server.ts +++ b/src/server.ts @@ -66,7 +66,7 @@ client.collectDefaultMetrics({ register }); const eventCounter = new client.Counter({ name: "web_event_total", help: "Aggregated event counts", - labelNames: ["site", "type", "country", "device", "browser", "os"], + labelNames: ["site", "type", "path", "country", "device", "browser", "os"], }); const durationHist = new client.Histogram({ @@ -147,7 +147,19 @@ app.post("/some-cool-endpoint", (req, res) => { return res.sendStatus(403); } - eventCounter.labels(site, e.type, country, device, browser, os).inc(); + let path = "/"; + if (typeof e.path === "string" && e.path) { + path = e.path.startsWith("/") ? e.path : `/${e.path}`; + } else { + try { + if (e.url) { + path = new URL(e.url).pathname || "/"; + } + } catch (err) { + } + } + + eventCounter.labels(site, e.type, path, country, device, browser, os).inc(); if (e.type === "click" && e.label) { try {