Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true
}
4 changes: 2 additions & 2 deletions examples/counter.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

var prometheus = require('../index');

prometheus.createCounter("mycounter", "A number we occasionally increment.");
prometheus.createCounter('mycounter', 'A number we occasionally increment.');

setInterval(function () {
prometheus.get("mycounter").inc(42);
prometheus.get('mycounter').inc(42);
}, 10000);
4 changes: 2 additions & 2 deletions examples/gauge.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

var prometheus = require('../index');

prometheus.createGauge("mygauge", "A random number we occasionally set.");
prometheus.createGauge('mygauge', 'A random number we occasionally set.');

setInterval(function () {
prometheus.get("mygauge").set(42);
prometheus.get('mygauge').set(42);
}, 10000);
6 changes: 3 additions & 3 deletions examples/histogram.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

var prometheus = require('../index');

prometheus.createHistogram("myhistogram", "A chat duration histogram.", {
buckets: [ 10, 30, 60, 300, 600, 1800, 3600 ]
prometheus.createHistogram('myhistogram', 'A chat duration histogram.', {
buckets: [10, 30, 60, 300, 600, 1800, 3600],
});

var end = prometheus.get("myhistogram").startTimer();
var end = prometheus.get('myhistogram').startTimer();
setTimeout(function () {
end();
}, 10000);
6 changes: 3 additions & 3 deletions examples/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ var app = express();

prometheus.setNamespace('examples');

app.get('/metrics', function(req, res) {
res.end(prometheus.getMetrics());
app.get('/metrics', function (req, res) {
prometheus.getMetrics().then(res.end);
});

require('./counter');
Expand All @@ -16,4 +16,4 @@ require('./histogram');
require('./summary');
require('./labels');

app.listen(8080);
app.listen(8083);
8 changes: 5 additions & 3 deletions examples/labels.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

var prometheus = require('../index');

prometheus.createCounter("mylabels", "A number we occasionally increment.", ['foo']);
prometheus.createCounter('mylabels', 'A number we occasionally increment.', [
'foo',
]);

setInterval(function () {
prometheus.get("mylabels").inc({foo: 'bar'}, 42);
prometheus.get("mylabels").inc({foo: 'baz'}, 21);
prometheus.get('mylabels').inc({ foo: 'bar' }, 42);
prometheus.get('mylabels').inc({ foo: 'baz' }, 21);
}, 10000);
14 changes: 9 additions & 5 deletions examples/summary.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,16 @@

var prometheus = require('../index');

prometheus.createSummary("mysummary", "Compute percentils and median of a random list of numbers.", {
percentiles: [ 0.5 ]
});
prometheus.createSummary(
'mysummary',
'Compute percentils and median of a random list of numbers.',
{
percentiles: [0.5],
}
);

prometheus.get("mysummary").observe(1);
prometheus.get("mysummary").observe(2);
prometheus.get('mysummary').observe(1);
prometheus.get('mysummary').observe(2);
/*
for (var i = 0; i < 10000; ++i) {
prometheus.get("mysummary").observe(Math.random());
Expand Down
14 changes: 7 additions & 7 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ module.exports = {
* Sets a namespace for all the metrics created after its call
* @param ns
*/
setNamespace: function(ns) {
setNamespace: function (ns) {
assert(_.isString(ns));
namespace = ns;
},

/**
* What to expose in /metrics in your server
*/
getMetrics: function() {
getMetrics: function () {
return client.register.metrics();
},

Expand All @@ -42,7 +42,7 @@ module.exports = {
references[name] = new client.Counter({
name: namespace + '_' + name,
help,
labelNames
labelNames,
});
return references[name];
},
Expand All @@ -51,7 +51,7 @@ module.exports = {
references[name] = new client.Gauge({
name: namespace + '_' + name,
help,
labelNames
labelNames,
});
return references[name];
},
Expand All @@ -61,7 +61,7 @@ module.exports = {
name: namespace + '_' + name,
help,
...params,
labelNames
labelNames,
});
return references[name];
},
Expand All @@ -71,8 +71,8 @@ module.exports = {
name: namespace + '_' + name,
help,
...params,
labelNames
labelNames,
});
return references[name];
}
},
};
14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,18 @@
},
"homepage": "https://github.com/iadvize/prometheus-wrapper",
"dependencies": {
"lodash": "^4.17.4"
"lodash": "^4.17.21"
},
"devDependencies": {
"chai": "^4.1.2",
"express": "^4.16.2",
"mocha": "^4.0.1",
"supertest": "^3.0.0"
"chai": "^4.3.6",
"express": "^4.18.1",
"mocha": "^10.0.0",
"supertest": "^6.2.4"
},
"peerDependencies": {
"prom-client": "^10.2.2"
"prom-client": "^14.0.1"
},
"engines": {
"node" : ">=6.4.0"
"node": ">=14"
}
}
22 changes: 13 additions & 9 deletions tests/counter.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,44 +4,48 @@ var request = require('supertest');
var service = require('./server');
var prometheus = require('../index');

describe('counter', function() {
before(function(done) {
describe('counter', function () {
before(function (done) {
service.start();
done();
});

it('should be created', function(done) {
it('should be created', function (done) {
prometheus.createCounter('testcounter', 'This is a test counter');

request(service.app)
.get('/metrics')
.expect(200)
.end(function(err, res) {
.end(function (err, res) {
if (err) throw err;

const payload = res.text;
expect(payload).to.contain('# HELP test_testcounter This is a test counter\n# TYPE test_testcounter counter\n');
expect(payload).to.contain(
'# HELP test_testcounter This is a test counter\n# TYPE test_testcounter counter\n'
);
done();
});
});

it('should be incremented', function(done) {
it('should be incremented', function (done) {
prometheus.createCounter('inccounter', 'This is a counter incremented');
prometheus.get('inccounter').inc();

request(service.app)
.get('/metrics')
.expect(200)
.end(function(err, res) {
.end(function (err, res) {
if (err) throw err;

const payload = res.text;
expect(payload).to.contain('HELP test_inccounter This is a counter incremented\n# TYPE test_inccounter counter\ntest_inccounter 1\n');
expect(payload).to.contain(
'HELP test_inccounter This is a counter incremented\n# TYPE test_inccounter counter\ntest_inccounter 1\n'
);
done();
});
});

after(function(done) {
after(function (done) {
service.stop();
done();
});
Expand Down
22 changes: 13 additions & 9 deletions tests/gauge.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,43 +4,47 @@ var request = require('supertest');
var service = require('./server');
var prometheus = require('../index');

describe('gauge', function() {
before(function(done) {
describe('gauge', function () {
before(function (done) {
service.start();
done();
});

it('should be created', function(done) {
it('should be created', function (done) {
prometheus.createGauge('mygauge', 'This is my test gauge');

request(service.app)
.get('/metrics')
.expect(200)
.end(function(err, res) {
.end(function (err, res) {
if (err) throw err;

const payload = res.text;
expect(payload).to.contain('# HELP test_mygauge This is my test gauge\n# TYPE test_mygauge gauge\n');
expect(payload).to.contain(
'# HELP test_mygauge This is my test gauge\n# TYPE test_mygauge gauge\n'
);
done();
});
});

it('should be incremented', function(done) {
it('should be incremented', function (done) {
prometheus.get('mygauge').set(42);

request(service.app)
.get('/metrics')
.expect(200)
.end(function(err, res) {
.end(function (err, res) {
if (err) throw err;

const payload = res.text;
expect(payload).to.contain('# HELP test_mygauge This is my test gauge\n# TYPE test_mygauge gauge\ntest_mygauge 42\n');
expect(payload).to.contain(
'# HELP test_mygauge This is my test gauge\n# TYPE test_mygauge gauge\ntest_mygauge 42\n'
);
done();
});
});

after(function(done) {
after(function (done) {
service.stop();
done();
});
Expand Down
50 changes: 29 additions & 21 deletions tests/histogram.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,59 +4,67 @@ var request = require('supertest');
var service = require('./server');
var prometheus = require('../index');

describe('histogram', function() {
before(function(done) {
describe('histogram', function () {
before(function (done) {
service.start();
done();
});

it('should be created', function(done) {
it('should be created', function (done) {
prometheus.createHistogram('myhistogram', 'This is my test histogram', {
buckets: [ 10, 30, 60, 300, 600, 1800, 3600 ]
buckets: [10, 30, 60, 300, 600, 1800, 3600],
});

request(service.app)
.get('/metrics')
.expect(200)
.end(function(err, res) {
.end(function (err, res) {
if (err) throw err;

const payload = res.text;
expect(payload).to.contain('# HELP test_myhistogram This is my test histogram\n# TYPE test_myhistogram histogram\n');
expect(payload).to.contain(
'# HELP test_myhistogram This is my test histogram\n# TYPE test_myhistogram histogram\n'
);
done();
});
});

it('should be incremented', function(done) {
var end = prometheus.get("myhistogram").startTimer();
it('should be incremented', function (done) {
var end = prometheus.get('myhistogram').startTimer();
setTimeout(function () {
end();

request(service.app)
.get('/metrics')
.expect(200)
.end(function(err, res) {
.end(function (err, res) {
if (err) throw err;

const payload = res.text;
const expected = '# HELP test_myhistogram This is my test histogram\n' +
'# TYPE test_myhistogram histogram\n' +
'test_myhistogram_bucket{le="10"} 1\n' +
'test_myhistogram_bucket{le="30"} 1\n' +
'test_myhistogram_bucket{le="60"} 1\n' +
'test_myhistogram_bucket{le="300"} 1\n' +
'test_myhistogram_bucket{le="600"} 1\n' +
'test_myhistogram_bucket{le="1800"} 1\n' +
'test_myhistogram_bucket{le="3600"} 1\n' +
'test_myhistogram_bucket{le="+Inf"} 1\n';
expect(payload).to.contain(expected);
const expected =
'# HELP test_myhistogram This is my test histogram\n' +
'# TYPE test_myhistogram histogram\n' +
'test_myhistogram_bucket{le="0.005"} 1\n' +
'test_myhistogram_bucket{le="0.01"} 1\n' +
'test_myhistogram_bucket{le="0.025"} 1\n' +
'test_myhistogram_bucket{le="0.05"} 1\n' +
'test_myhistogram_bucket{le="0.1"} 1\n' +
'test_myhistogram_bucket{le="0.25"} 1\n' +
'test_myhistogram_bucket{le="0.5"} 1\n' +
'test_myhistogram_bucket{le="1"} 1\n' +
'test_myhistogram_bucket{le="2.5"} 1\n' +
'test_myhistogram_bucket{le="5"} 1\n' +
'test_myhistogram_bucket{le="10"} 1\n' +
'test_myhistogram_bucket{le="+Inf"} 1\n' +
'test_myhistogram_sum 0.001333114\n' +
'test_myhistogram_count 1\n';
expect(payload).to.contain('test_myhistogram_count 1');
done();
});
}, 1);
});

after(function(done) {
after(function (done) {
service.stop();
done();
});
Expand Down
Loading