first version
This commit is contained in:
62
index.js
Normal file
62
index.js
Normal file
@@ -0,0 +1,62 @@
|
||||
var http = require('http');
|
||||
var modifier = process.env.MODIFIER;
|
||||
if (modifier){
|
||||
modifier = require("./" + modifier );
|
||||
modifier.init();
|
||||
|
||||
http.createServer(function(req,res){
|
||||
res.writeHead(200,{"Content-Type": "text/plain"});
|
||||
var data = modifier.data();
|
||||
var body = "";
|
||||
var globallabelstring = "";
|
||||
if (data.__labels){
|
||||
for (var label in data.__labels) {
|
||||
if (data.__labels.hasOwnProperty(label)){
|
||||
globallabelstring+=label + "=\"" + data.__labels[label] + "\",";
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var prop in data) {
|
||||
if (prop != "__labels" && data.hasOwnProperty(prop)) {
|
||||
var labelstring = "";
|
||||
if (data[prop].labels){
|
||||
for (var label in data[prop].labels) {
|
||||
if (data[prop].labels.hasOwnProperty(label)){
|
||||
labelstring+=label + "=\"" + data[prop].labels[label] + "\",";
|
||||
}
|
||||
}
|
||||
}
|
||||
body+="# HELP " + prop + " " + data[prop].help + "\n";
|
||||
if (data[prop].type == "counter"){
|
||||
body+="# TYPE " + prop + " counter" + "\n";
|
||||
body+=prop + "{" + globallabelstring + labelstring + "}" + " " + data[prop].value.toString() + "\n";
|
||||
}else if (data[prop].type == "gauge"){
|
||||
body+="# TYPE " + prop + " gauge" + "\n";
|
||||
body+=prop + "{" + globallabelstring + labelstring + "}" + " " + data[prop].value.toString() + "\n";
|
||||
}else if (data[prop].type == "histogram"){
|
||||
body+="# TYPE " + prop + " histogram" + "\n";
|
||||
for (var le in data[prop].bucket) {
|
||||
if (data[prop].bucket.hasOwnProperty(le)){
|
||||
body+=prop + "_bucket{le=\""+ le + "\"," + globallabelstring + labelstring + "} " + data[prop].bucket[le].toString() + "\n";
|
||||
}
|
||||
}
|
||||
body+=prop + "_count{" + globallabelstring + labelstring + "} " + data[prop].count.toString()+ "\n";
|
||||
body+=prop + "_sum{" + globallabelstring + labelstring + "} " + data[prop].sum.toString()+ "\n";
|
||||
}else if (data[prop].type == "summary"){
|
||||
body+="# TYPE " + prop + " summary" + "\n";
|
||||
for (var q in data[prop].quantile) {
|
||||
if (data[prop].quantile.hasOwnProperty(q)){
|
||||
body+=prop + "{quantile=\""+ q + "\"," + globallabelstring + labelstring + "} " + data[prop].quantile[q].toString() + "\n";
|
||||
}
|
||||
}
|
||||
body+=prop + "_count{" + globallabelstring + labelstring + "} " + data[prop].count.toString()+ "\n";
|
||||
body+=prop + "_sum{" + globallabelstring + labelstring + "} " + data[prop].sum.toString()+ "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
res.end(body);
|
||||
}).listen(80);
|
||||
} else {
|
||||
console.log("No modifier selected");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user