prometheus-plugin-tcp-stats
TypeScript icon, indicating that this package has built-in type declarations

2.1.0 • Public • Published

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

  • Request duration

    • type: 'Histogram'
    • name: 'nodejs_net_requests_duration_seconds'
    • labels: ['family', 'address', 'port', 'type', 'pathname', 'code']
  • Active connections

    • type: 'Gauge'
    • name: 'nodejs_net_active_connections'
    • labels: ['family', 'address', 'port', 'type']
  • Client errors

    • type: 'Counter'
    • name: nodejs_net_client_errors_total
    • labels: ['family', 'address', 'port', 'type', 'code']
  • Server errors

    • type: 'Counter',
    • name: nodejs_net_server_errors_total,
    • labels: ['family', 'address', 'port', 'type', 'code']
  • Bytes transferred

    • type: 'Counter'
    • name: nodejs_net_bytes_total
    • labels: ['family', 'address', 'port', 'type', 'direction']

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();

Package Sidebar

Install

npm i prometheus-plugin-tcp-stats

Weekly Downloads

0

Version

2.1.0

License

UNLICENSE

Last publish

Collaborators

  • m03geek