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 = ; var udpServer = ; var webServer = ; var memory = ; var cpu = ; memoryinterval = cpuinterval = false;memorytoken = cputoken = 'random-token'; memoryname = 'memory';cpuname = 'cpu'; var pid = processpid;; webServerstart;udpServerstart;memorystart;cpustart;
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.
/metric/:token
GET Called to recive metrics from the DB
name=cpu
query Query the database for e certen metrics name.
from=2014-05-08T00:04:56.656Z
query Query the database from a certain time.
to=2014-05-08T00:04:56.656Z
query Query the database to a certain time. Must include from
.
limit=500
query Query the database and pull out 500. Defaults to 1000, MAX is 10000.
/metric/:token/count
GET Count the metrics in the DB.
Same query params can be sent as /metric/:token