JSPM

  • Created
  • Published
  • Downloads 209852
  • Score
    100M100P100Q191362F
  • License MIT

express middleware with popular prometheus metrics in one bundle

Package Exports

  • express-prom-bundle

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (express-prom-bundle) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

build status Coverage Status license

express prometheus bundle

express middleware with popular prometheus metrics in one bundle.

Internally it uses prom-client. See: https://github.com/siimon/prom-client

Included metrics:

  • up: normally is just 1
  • nodejs_memory_heap_total_bytes and nodejs_memory_heap_used_bytes
  • http_request_seconds: http latency histogram labeled with status_code

Install

npm install express-prom-bundle

Usage

You MUST call app.use(metricsMiddleware) before the use-ing your middleware, otherwise those won't count in http_request_seconds histogram

const promBundle = require("express-prom-bundle"),
const metricsMiddleware = promBundle({/* options */ });

app.use(metricsMiddleware);
app.use(/* your middleware */);
app.listen(3000);

Options

  • prefix: prefix added to every metric name
  • whitelist, blacklist: array of strings or regexp specifying which metrics to include/exclude
  • buckets: buckets used for http_request_seconds histogram

Example

setup std. metrics but exclude up-metric:

"use strict";

const express = require("express"),
    app = express(),
    promBundle = require("express-prom-bundle");

app.use(promBundle({
    prefix: "demo_app:something"
}));

app.get("/hello", (req, res) => res.send("ok"));

app.listen(3000);

See an advanced example on github

License

MIT