node-metrics

Making reporting basic health metrics to a local statsd instance easy.

Usage no npm install needed!

<script type="module">
  import nodeMetrics from 'https://cdn.skypack.dev/node-metrics';
</script>

README

node-metrics

Easily forward a node app's basic health metrics to a local statsd instance.

Development

Install dependencies:

  npm install

Run tests:

  npm test

Usage

  1. Install
npm install node-metrics
  1. Configure

Create a Lynx instance:

var Lynx = require('lynx'),
    dgram = require('dgram');

var metrics = new Lynx('localhost', 8125, {
  socket: dgram.createSocket('udp4'),
  scope: 'YOUR_NAMESPACE'
});

Collecting data!

node-metrics provides middleware and library functions for collecting basic health metrics.

Use an individual gauge

  require('node-metrics').nodeMemoryGauge(metrics);

Or for node connections:

  require('node-metrics').nodeConnectionsGauge(metrics, server);

Where server is an http server instance (as supplied by app.listen() ).

Use all gauges

To configure all gauges at once, do:

  require('node-metrics').allGauges(metrics, server);

Use middleware

Ensure you append your Lynx instance to the req object as req.metrics. Then append middleware like:

  app.use(require('node-metrics').requestStatsMiddleware);

Note that for requestStatsByRouteMiddleware, stats will only be logged for a route if req.route is present. Further, your route names will be cleaned of any characters that might interfere with stasd's protocol.