2.1.0 • Published 8 years ago

prometheus-plugin-tcp-stats v2.1.0

Weekly downloads
1
License
UNLICENSE
Repository
gitlab
Last release
8 years ago

prometheus-plugin-tcp-stats

Node.js prometheus client plugin for exporting tcp-based servers statistics.

build status coverage report

Installation

npm i -S prometheus-plugin-tcp-stats

Requirements

  • >=prom-client-4.0.0 npm module (installed as peer dependency). If your project depends on previous version of client this plugin might not work.
  • >=node-4.0.0 because this module uses ES6 syntax

Supported servers

All servers built on top of nodejs tcp core library. Some examples:

  • tcp;
  • http;
  • express;
  • koa;
  • ws;
  • uws (monitoring active connections can be supported with this patch. Feel free to vote up to make it merged into upstream).

And many others.

Metric list

Usage

Simple

const client = require('prom-client');
const tcpStatsPlugin = require('prometheus-plugin-tcp-stats');

// start metrics collection
tcpStatsPlugin.init().start();

// log metrics to console
console.log(client.register.metrics());

// stop metrics collection
tcpStatsPlugin.stop();

// stop and clear metrics register
tcpStatsPlugin.reset();

Override metric defaults

const client = require('prom-client');
const tcpStatsPlugin = require('prometheus-plugin-tcp-stats');
const override = {
  'nodejs_net_client_errors_total': { // provide default metric name to override it's params
    type: 'Counter', // could be changed to Gaguge, but it's not recommended
    name: 'my_custom_client_errors_total', // name could be changed
    description: 'My custom description', // description could be changed
    labelValues: { // additional labels
      customLabel: 'hello', // custom labels could be added
      customFnLabel: () => { return new Date() } // if it's a function, it will be called to get label value in runtime
    }
  }
};
// start metrics collection
tcpStatsPlugin.init(override).start(); // pass override object to init function

// log metrics to console
console.log(client.register.metrics());

// stop metrics collection
tcpStatsPlugin.stop();

// stop and clear metrics register
tcpStatsPlugin.reset();