prometheus-plugin-tcp-stats
Node.js prometheus client plugin for exporting tcp-based servers statistics.
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 = ;const tcpStatsPlugin = ; // start metrics collectiontcpStatsPluginstart; // log metrics to consoleconsole; // stop metrics collectiontcpStatsPlugin; // stop and clear metrics registertcpStatsPlugin;
Override metric defaults
const client = ;const tcpStatsPlugin = ;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 { return } // if it's a function, it will be called to get label value in runtime ;// start metrics collectiontcpStatsPluginstart; // pass override object to init function // log metrics to consoleconsole; // stop metrics collectiontcpStatsPlugin; // stop and clear metrics registertcpStatsPlugin;