Support of HTTP Node metrics

This commit is contained in:
Nick O'Leary
2015-02-04 20:44:07 +00:00
parent 86ca75bcd5
commit f2d4648384
3 changed files with 53 additions and 7 deletions

View File

@@ -34,14 +34,17 @@ var levelNames = {
40: "info",
50: "debug",
60: "trace",
99: "metric",
99: "metric"
}
var logHandlers = [];
var metricsEnabled = false;
var ConsoleLogHandler = function(settings) {
this.logLevel = levels[settings.level]||levels.info;
this.metricsOn = settings.metrics||false;
metricsEnabled = this.metricsOn;
this.on("log",function(msg) {
if (this.shouldReportMessage(msg.level)) {
@@ -91,6 +94,10 @@ var log = module.exports = {
},
warn: function(msg) {
log.log({level:log.WARN,msg:msg});
},
metric: function() {
return metricsEnabled;
}
}

View File

@@ -201,7 +201,13 @@ Node.prototype.error = function(msg) {
log_helper(this, Log.ERROR, msg);
};
/**
* If called with no args, returns whether metric collection is enabled
*/
Node.prototype.metric = function(eventname, msg, metricValue) {
if (typeof eventname === "undefined") {
return Log.metric();
}
var metrics = {};
metrics.level = Log.METRIC;
metrics.nodeid = this.id;