0.2.2 • Published 9 years ago

metrics-server v0.2.2

Weekly downloads
66
License
-
Repository
-
Last release
9 years ago

metrics-server

metrics-server is a basic metrics server and client. The client uses UDP to send metric to the server. The server stores all metric into a mongodb database.

examples

var usage = require('usage');

var udpServer = require('./lib/udpserver').createServer({
	host : '127.0.0.1',
	port : 4001,
	mongodb : {
		host : '127.0.0.1'
	}
});

var webServer = require('./lib/webserver').createServer({
	udp : udpServer,
	host : '127.0.0.1',
	port : 4002,
	mongodb : {
		host : '127.0.0.1'
	}
});

var memory = require('./lib/metric').createMetric({
	host : '127.0.0.1',
	port : 4001
});

var cpu = require('./lib/metric').createMetric({
	host : '127.0.0.1',
	port : 4001
});

memory.interval = cpu.interval = false;
memory.token = cpu.token = 'random-token';

memory.name = 'memory';
cpu.name = 'cpu';

var pid = process.pid;
setInterval(function() {

	usage.lookup(pid, {
		keepHistory : true
	}, function(err, result) {
		memory.cb(result.memory);
		cpu.cb(result.cpu);
	});
}, 1000);

webServer.start();
udpServer.start();
memory.start();
cpu.start();

Methods

var Metrics = require('metrics-server')

var udpserver = Metrics.udpserver.createServer(opts);

To create the UDP server. This is used to recive metrics from the clients. Options to pass in are

{
	host : '127.0.0.1',
	port : 4001,
	mongodb : {
		host : '127.0.0.1',
		port : 27017,
		path : '/data/db'
	}
}

udpserver.start()

Call udpserver.start to start the server

var webserver = Metrics.webserver.createServer(opts);

To create the UDP server. This is used to recive metrics from the clients. Options to pass in are

{
	host : '127.0.0.1',
	port : 4002,
	mongodb : {
		host : '127.0.0.1',
		port : 27017,
		path : '/data/db'
	}
}

webserver.start()

Call webserver.start to start the server

var metric = Metrics.metric.createMetric(opts)

This is used to send metrics to the server.

{
	host : '127.0.0.1',//use the udp server host
	port : 4002//use the udp server port
}

metric.token = uuid()

metric.token is used to group metrics together. The token should non guessable string.

metric.name = 'cpu'

metric.name is the name of the metrics type

metric.interval = 5000

metric.interval is the interval in milliseconds between calls to metric.run() If you set this to false then you can manually call metric.cb(metricValue)

metric.run = function(cb){}

metric.run is the function that is called when using metric.interval

metric.run = function(cb){
	setTimeout(function(){
		cb(Math.floor((Math.random() * 100) + 1));
	},100);
}

metric.cb(value)

metric.cb is used when metric.interval is set to false You would call it directly when you dont want call metric.run

setInterval(function(){
	metric.cb(Math.floor((Math.random() * 100) + 1));
},1000);

metric.start()

Call metric.start to start collection metrics

##API Metrics.webserver is used to recive metric from the database.

GET /metric/:token

Called to recive metrics from the DB

query name=cpu

Query the database for e certen metrics name.

query from=2014-05-08T00:04:56.656Z

Query the database from a certain time.

query to=2014-05-08T00:04:56.656Z

Query the database to a certain time. Must include from.

query limit=500

Query the database and pull out 500. Defaults to 1000, MAX is 10000.

GET /metric/:token/count

Count the metrics in the DB. Same query params can be sent as /metric/:token

0.2.2

9 years ago

0.2.1

9 years ago

0.1.4

9 years ago

0.1.3

9 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago