
Allows you to better understand what's going on with your application and how to optimize performance and other things in production. Nuxt 2 users can use this version.
/metrics - prometheus metrics/health - health checkInstall package via a package manager:
# using nuxi, it automatically appends the module in your nuxt.config
npx nuxi@latest module add prometheus
# using npm
npm install @artmizu/nuxt-prometheus
# using yarn
yarn add @artmizu/nuxt-prometheus
# using pnpm
pnpm add @artmizu/nuxt-prometheus
Add it to a modules section of your nuxt config:
export default {
modules: ['@artmizu/nuxt-prometheus']
}
Once the metrics have been collected by Prometheus, you will want to review them. I use Grafana for this purpose, and my metrics setup looks something like this:

You can pass it through module options and the nuxt config property prometheus.
booleantruefalse, no metrics are collected and no hooks are registered. This allows you to build the app with the module but disable it in certain environments.booleantruebooleantruestring/healthstring/metricsstringbooleantrue/metrics endpoint. When set to false, metrics are still collected internally but the endpoint is not registered. This allows you to access metrics programmatically via prom-client's register object and expose them on a separate internal port.All options can be configured at runtime via environment variables following Nuxt's convention NUXT_PUBLIC_PROMETHEUS_<OPTION_NAME>:
| Environment Variable | Option | Example |
|---|---|---|
NUXT_PUBLIC_PROMETHEUS_ENABLED | enabled | false |
NUXT_PUBLIC_PROMETHEUS_VERBOSE | verbose | false |
NUXT_PUBLIC_PROMETHEUS_HEALTH_CHECK | healthCheck | false |
NUXT_PUBLIC_PROMETHEUS_METRICS_ENDPOINT | metricsEndpoint | false |
NUXT_PUBLIC_PROMETHEUS_PREFIX | prefix | myapp_ |
NUXT_PUBLIC_PROMETHEUS_DISABLE_REQUEST_INTERCEPTOR | disableRequestInterceptor | true |
Example usage:
# Disable metrics endpoint in production while keeping collection active
NUXT_PUBLIC_PROMETHEUS_METRICS_ENDPOINT=false node .output/server/index.mjs
# Use custom prefix
NUXT_PUBLIC_PROMETHEUS_PREFIX=myapp_ node .output/server/index.mjs
# Install dependencies
pnpm install
# Prepare the module (build types and module)
pnpm run dev:prepare
# Start development server with playground
pnpm run dev
# Run tests
pnpm test
Important: After making changes to the module source code, you must run pnpm run dev:prepare to rebuild the module before testing.