{"id":18343,"library":"express-metrics-middleware","title":"express-metrics-middleware","description":"Express middleware that automatically collects standard Prometheus metrics (HTTP request duration, request count, active connections, etc.) for Node.js applications. Version 0.1.14 is the current stable release, updated infrequently. Compared to prom-client or express-prom-bundle, this package offers a zero-configuration setup with sensible defaults and built-in TypeScript types. It is opinionated and designed for quick integration without manual metric definition, but may have limited customization options.","status":"active","version":"0.1.14","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","typescript"],"install":[{"cmd":"npm install express-metrics-middleware","lang":"bash","label":"npm"},{"cmd":"yarn add express-metrics-middleware","lang":"bash","label":"yarn"},{"cmd":"pnpm add express-metrics-middleware","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"provides the Prometheus client library for metrics collection and exposition","package":"prom-client","optional":false},{"reason":"Express is required as it is Express middleware","package":"express","optional":false}],"imports":[{"note":"Named export, not default. TypeScript types are included.","wrong":"import createMiddleware from 'express-metrics-middleware'","symbol":"createMiddleware","correct":"import { createMiddleware } from 'express-metrics-middleware'"},{"note":"TypeScript only; use import type for type-only import.","symbol":"MetricsConfig","correct":"import type { MetricsConfig } from 'express-metrics-middleware'"},{"note":"CommonJS: destructure the require because it's a named export.","wrong":"const createMiddleware = require('express-metrics-middleware')","symbol":"createMiddleware (require)","correct":"const { createMiddleware } = require('express-metrics-middleware')"}],"quickstart":{"code":"import express from 'express';\nimport { createMiddleware } from 'express-metrics-middleware';\nconst app = express();\napp.use(createMiddleware({ metricPrefix: 'my_app' }));\napp.get('/hello', (req, res) => {\n  res.send('hello world');\n});\napp.listen(3000, () => {\n  console.log('Server running on port 3000');\n});\n// Metrics endpoint is automatically exposed at /metrics by default","lang":"typescript","description":"Shows how to create an Express server with the middleware that collects Prometheus metrics automatically."},"warnings":[{"fix":"Route /metrics explicitly with your own handler if you need custom behavior.","message":"The middleware exposes a /metrics endpoint by default; ensure it does not conflict with your routes or middleware order (place it before authentication if metrics should be public).","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Use import { createMiddleware } from 'express-metrics-middleware' instead.","message":"In version 0.1.0, the function was named 'metricsMiddleware' and exported as default. In 0.1.1+ it changed to named export 'createMiddleware'.","severity":"breaking","affected_versions":"0.1.0"},{"fix":"Pass { collectDefaultMetrics: false } to createMiddleware.","message":"The middleware relies on prom-client's default metrics (collectDefaultMetrics) which may increase memory usage in long-lived processes. Disable if not needed via options.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use import { createMiddleware } from 'express-metrics-middleware'","cause":"Using default import instead of named import.","error":"TypeError: createMiddleware is not a function"},{"fix":"Run npm install prom-client","cause":"Missing peer dependency prom-client.","error":"Cannot find module 'prom-client' or its corresponding type declarations."},{"fix":"Ensure app.use(createMiddleware()) is called before other routes.","cause":"Middleware not registered or route conflict.","error":"Metrics endpoint returns 404"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}