proteusjs has a ability to monitor various events emitted from hapi, wreck, knex as well as ops information from the host machine. It listens for events emitted by different source and pushes standardized events to a collection of streams. It's primary focus is to monitor server
, database
and remote
call events in an application.
Lead Maintainer: Jai Kishan
##Example Usage
proteusjs.config.js
'use strict';
const Proteus = require('proteusjs');
const ProteusConsole = require('proteusjs-console');
const Database = require('./database.js');
const Wreck = require('wreck');
module.exports = {
register: Proteus,
options: {
reporters : {
console : ProteusConsole
},
//hapi setup
hapi: {
log: {
log: true,
request: true,
response: true,
ops: true,
error:true
}
},
//knex config
knex: {
lib: Database,
enable: true,
log: {
query: true,
error: true,
end: true,
queryerror: true
}
},
//wreck config
wreck: {
lib: Wreck,
enable: true,
log: {
request: true,
response : true
}
}
}
}
server.js (hapi plugin setup)
'use strict';
const Hapi = require('hapi');
const server = new Hapi.Server();
const ProteusConfig = require('./proteusjs.config')
server.connection();
server.register(
{
ProteusConfig
}, (err) => {
if (err) {
return console.error(err);
}
server.start(() => {
console.info(`Server started at ${ server.info.uri }`);
});
}
);
database.js (to initialize knex client, need to require inside proteusjs config file)
'use strict';
const knex = require('knex')({
client: config('mysql'),
connection: {
host : config('localhost'),
user : config('root'),
password : config(''),
database : config('example')
},
pool: {
min: 0,
max: 7
},
debug: false
});
module.exports = knex;
##Existing streams Any transform or write stream can work with proteusjs. The following streams work with proteusjs.