A Seneca.js message stats producer and collector
A producer and collector of stats for Seneca.js. This module generates metrics on an interval emits them over UDP. Can optionally be used as a collector micro-service with the ability to save metrics to Influxdb. Collectors work over UDP and can handle messages from other services.
An example system with the nessecery docker configuration can be found in /eg
- Version: 0.2.0
- Tested on: Seneca 0.7, 0.8, 0.9
- Node: 0.10, 0.12, 4
- License: MIT
npm install seneca
npm install seneca-msgstats
To run tests, simply use npm:
npm run test
var seneca = require('seneca')()
// Set up a collector
seneca.use('msgstats', {
collect: true,
capture.msg: true, // true by default
capture.mem: true, // false by default
})
// Set up a single pin emitter
seneca.use('msgstats', {
pin: {role: 'foo', cmd: 'bar'}
})
// Using multiple pins with a single emitter
seneca.use('msgstats', {
pins: [
{role: 'foo', cmd: 'bar'},
{role: 'bar', cmd: 'foo'}
]})
{
tag: seneca.options().tag, // Tag stored stats
pid: process.pid, // Pid stored with stats
pin: '', // The pin to listen for
interval: 1000, // Emit interval (1/sec)
stats: { // Options for rolling-stats
size: 1111,
interval: 1000
},
capture: { // Turn on and off capture
mem: true, // Capture mem stats
msg: true // Capture msg stats
},
ratios: [], // Calculate ratios (unfinished)
udp: {
host:'localhost', // UDP host to send / receive on
port:40404 // UDP port to send / receive on
},
influx:{
host:'localhost', // Host Influx listens on
port:'8086', // Port Influx listens on
username:'msgstats', // Username for DB
password:'msgstats', // Password for DB
database:'seneca_msgstats' // Name of DB
}
}
The Senecajs org encourage open participation. If you feel you can help in any way, be it with documentation, examples, extra testing, or new features please get in touch.
Copyright Richard Rodger and other contributors 2014 - 2016, Licensed under MIT.