{"_id":"@duytbp/express-prometheus-route-metrics","_rev":"3-74712a65b51d457de7a8416c8410e5b7","name":"@duytbp/express-prometheus-route-metrics","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@duytbp/express-prometheus-route-metrics","version":"1.0.0","keywords":["express","metrics","prometheus","middleware"],"author":{"name":"Duy Pham","email":"duy@duyph.am"},"license":"MIT","_id":"@duytbp/express-prometheus-route-metrics@1.0.0","maintainers":[{"name":"duytbp","email":"duy@duyph.am"}],"homepage":"https://github.com/duytbp/express-prometheus-route-metrics#readme","bugs":{"url":"https://github.com/duytbp/express-prometheus-route-metrics/issues"},"dist":{"shasum":"e2a1621ee42bcfce058570294e1d31bc9dd4d65d","tarball":"https://registry.npmjs.org/@duytbp/express-prometheus-route-metrics/-/express-prometheus-route-metrics-1.0.0.tgz","fileCount":6,"integrity":"sha512-3W2K0MOr3DwdUxzY5N9FJo6xCcmXUrBYdSwjqd2nMtd/NFwInYO777Cc9amkf4zVfBn62u+tBxf2RHPhe03Yjg==","signatures":[{"sig":"MEUCIQDEGDeUQuoD1okBC41zSMgaVfCP9/6XnjxxeFQ67xCY9QIgG/rybM1ze8+3PJc6oBF8mJDr12t3bIYZxlJZWxGSaj8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11852},"main":"dist/index.js","tsup":{"clean":true,"entry":["src/index.ts"],"format":["cjs","esm"],"sourcemap":true},"_from":"file:duytbp-express-prometheus-route-metrics-1.0.0.tgz","module":"dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup"},"_npmUser":{"name":"duytbp","actor":{"name":"duytbp","type":"user","email":"duy@duyph.am"},"email":"duy@duyph.am"},"prettier":{"printWidth":120},"_resolved":"/private/var/folders/by/3j95ckd56tx95dbwygf2hsb00000gn/T/bbfbc44d626352ab3fcd8c84806edf23/duytbp-express-prometheus-route-metrics-1.0.0.tgz","_integrity":"sha512-3W2K0MOr3DwdUxzY5N9FJo6xCcmXUrBYdSwjqd2nMtd/NFwInYO777Cc9amkf4zVfBn62u+tBxf2RHPhe03Yjg==","repository":{"url":"git+https://github.com/duytbp/express-prometheus-route-metrics.git","type":"git"},"_npmVersion":"10.9.2","description":"Express middleware for collecting route metrics using prom-client.","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.8.3","prom-client":"^15.0.0","@types/express":"^5.0.3"},"peerDependencies":{"prom-client":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/express-prometheus-route-metrics_1.0.0_1752000691083_0.7958791273401582","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@duytbp/express-prometheus-route-metrics","version":"1.0.1","keywords":["express","metrics","prometheus","middleware"],"author":{"name":"Duy Pham","email":"duy@duyph.am"},"license":"MIT","_id":"@duytbp/express-prometheus-route-metrics@1.0.1","maintainers":[{"name":"duytbp","email":"duy@duyph.am"}],"homepage":"https://github.com/duytbp/express-prometheus-route-metrics#readme","bugs":{"url":"https://github.com/duytbp/express-prometheus-route-metrics/issues"},"dist":{"shasum":"a54b451e35f45cfb24a024a313f37c0ced0b1752","tarball":"https://registry.npmjs.org/@duytbp/express-prometheus-route-metrics/-/express-prometheus-route-metrics-1.0.1.tgz","fileCount":6,"integrity":"sha512-jNHMFCQRI5OSA7/A+bhzPTK9zwm0WKk3WDtdyiXF1sD5Rumyrw7+iPF9wX4Bse9yefq2GODsgMxUSDY5bg77MA==","signatures":[{"sig":"MEUCIQCzqSsFOMJcJAvmhgnldB+9hDSNjedUlTOsS26gWBcsoQIgfLxU8l1flqpS8SMJ7TMRu0TqrxOwWoTWy/YGo2VSeKw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11936},"main":"dist/index.js","tsup":{"clean":true,"entry":["src/index.ts"],"format":["cjs","esm"],"sourcemap":true,"splitting":true,"cjsInterop":true},"_from":"file:duytbp-express-prometheus-route-metrics-1.0.1.tgz","module":"dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup"},"_npmUser":{"name":"duytbp","email":"duy@duyph.am"},"prettier":{"printWidth":120},"_resolved":"/private/var/folders/by/3j95ckd56tx95dbwygf2hsb00000gn/T/0a7578b454145b7e0a14c3470cf5fbec/duytbp-express-prometheus-route-metrics-1.0.1.tgz","_integrity":"sha512-jNHMFCQRI5OSA7/A+bhzPTK9zwm0WKk3WDtdyiXF1sD5Rumyrw7+iPF9wX4Bse9yefq2GODsgMxUSDY5bg77MA==","repository":{"url":"git+https://github.com/duytbp/express-prometheus-route-metrics.git","type":"git"},"_npmVersion":"10.9.2","description":"Express middleware for collecting route metrics using prom-client.","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.8.3","prom-client":"^15.0.0","@types/express":"^5.0.3"},"peerDependencies":{"prom-client":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/express-prometheus-route-metrics_1.0.1_1752564159779_0.48566398883251205","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@duytbp/express-prometheus-route-metrics","version":"1.0.2","description":"Express middleware for collecting route metrics using prom-client.","main":"dist/index.js","module":"dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"peerDependencies":{"prom-client":"^15.0.0"},"devDependencies":{"@types/express":"^5.0.3","prom-client":"^15.0.0","tsup":"^8.5.0","typescript":"^5.8.3"},"repository":{"type":"git","url":"git+https://github.com/duytbp/express-prometheus-route-metrics.git"},"author":{"name":"Duy Pham","email":"duy@duyph.am"},"license":"MIT","keywords":["express","metrics","prometheus","middleware"],"prettier":{"printWidth":120},"tsup":{"entry":["src/index.ts"],"sourcemap":true,"clean":true,"format":["cjs","esm"],"cjsInterop":true,"splitting":true},"dependencies":{"url-value-parser":"^2.2.0"},"scripts":{"build":"tsup"},"_id":"@duytbp/express-prometheus-route-metrics@1.0.2","bugs":{"url":"https://github.com/duytbp/express-prometheus-route-metrics/issues"},"homepage":"https://github.com/duytbp/express-prometheus-route-metrics#readme","_integrity":"sha512-8OT6EBaF6umg5srcgunH+qr1sE1at/bWIUQdmC/DC+VBFaJ99fNswgVK+0YzMuhMUQgVY4i8tOSXjn+v4ylndw==","_resolved":"/private/var/folders/by/3j95ckd56tx95dbwygf2hsb00000gn/T/3fa1f4a459843c4a106f75b22a416abb/duytbp-express-prometheus-route-metrics-1.0.2.tgz","_from":"file:duytbp-express-prometheus-route-metrics-1.0.2.tgz","_nodeVersion":"22.17.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-8OT6EBaF6umg5srcgunH+qr1sE1at/bWIUQdmC/DC+VBFaJ99fNswgVK+0YzMuhMUQgVY4i8tOSXjn+v4ylndw==","shasum":"df1071f3798cc8f606445530e169f116460d3216","tarball":"https://registry.npmjs.org/@duytbp/express-prometheus-route-metrics/-/express-prometheus-route-metrics-1.0.2.tgz","fileCount":6,"unpackedSize":12767,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCx9v2u3kPwQMxdXPVr+wmPHate5SFuzQmY4jmbs0rRTQIhAPuayOY+vHyLYFeDWWttZFsz6vXlubu97o7nVY6L18I+"}]},"_npmUser":{"name":"duytbp","email":"duy@duyph.am"},"directories":{},"maintainers":[{"name":"duytbp","email":"duy@duyph.am"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/express-prometheus-route-metrics_1.0.2_1752569050319_0.907367066892858"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-08T18:51:30.983Z","modified":"2025-07-15T08:44:10.679Z","1.0.0":"2025-07-08T18:51:31.256Z","1.0.1":"2025-07-15T07:22:39.971Z","1.0.2":"2025-07-15T08:44:10.497Z"},"bugs":{"url":"https://github.com/duytbp/express-prometheus-route-metrics/issues"},"author":{"name":"Duy Pham","email":"duy@duyph.am"},"license":"MIT","homepage":"https://github.com/duytbp/express-prometheus-route-metrics#readme","keywords":["express","metrics","prometheus","middleware"],"repository":{"type":"git","url":"git+https://github.com/duytbp/express-prometheus-route-metrics.git"},"description":"Express middleware for collecting route metrics using prom-client.","maintainers":[{"name":"duytbp","email":"duy@duyph.am"}],"readme":"# @duytbp/express-prometheus-route-metrics\n\nExpress middleware for collecting route metrics using [prom-client](https://github.com/siimon/prom-client).\nExports Prometheus-compatible metrics for HTTP request durations, labeled by method, status code, and route path.\n\n## Features\n\n- Collects request duration histograms for each route\n- Exposes metrics at a configurable endpoint (default: `/metrics`)\n- Customizable histogram buckets and metric names\n\n## Installation\n\n```sh\nnpm install @duytbp/express-prometheus-route-metrics prom-client\n```\n\n## Usage\n\n```js\nconst express = require(\"express\");\nconst routeMetrics = require(\"@duytbp/express-prometheus-route-metrics\");\n\nconst app = express();\n\n// Add the metrics middleware before your routes\napp.use(\n  routeMetrics({\n    // Optional configuration:\n    // metricName: \"http_request_duration_seconds\",\n    // metricsPath: \"/metrics\",\n    // buckets: [0.05, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5],\n    // unknownPathName: \"[UNKNOWN]\",\n  }),\n);\n\n// Define your routes as usual\napp.get(\"/hello\", (req, res) => {\n  res.send(\"Hello, world!\");\n});\n\n// Start your server\napp.listen(3000, () => {\n  console.log(\"Server listening on port 3000\");\n});\n```\n\nThis will expose Prometheus metrics at `/metrics` by default.\n","readmeFilename":"README.md"}