@balena/node-metrics-gatherer 5.7.6 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.versionbot/CHANGELOG.yml +12 -1
- package/CHANGELOG.md +5 -0
- package/out/metrics-gatherer.d.ts +1 -1
- package/out/metrics-gatherer.js +18 -7
- package/out/metrics-gatherer.js.map +1 -1
- package/package.json +3 -3
- package/src/metrics-gatherer.ts +2 -2
- package/test/api-collector.spec.ts +16 -20
- package/test/index.spec.ts +16 -16
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
- commits:
|
|
2
|
+
- subject: Update prom-client to 14.x
|
|
3
|
+
hash: 81a8d36fa6c62c5dfec892a4a0c17f8596bd5873
|
|
4
|
+
body: ""
|
|
5
|
+
footer:
|
|
6
|
+
Change-type: major
|
|
7
|
+
change-type: major
|
|
8
|
+
author: Pagan Gazzard
|
|
9
|
+
version: 6.0.0
|
|
10
|
+
title: "'Update prom-client to 14.x'"
|
|
11
|
+
date: 2022-04-05T15:02:48.436Z
|
|
1
12
|
- commits:
|
|
2
13
|
- subject: Update dependencies
|
|
3
14
|
hash: 0a8aefe639904a36cf3608f6aebc8a2c7bd9a25b
|
|
@@ -8,7 +19,7 @@
|
|
|
8
19
|
author: Pagan Gazzard
|
|
9
20
|
version: 5.7.6
|
|
10
21
|
title: "'Update dependencies'"
|
|
11
|
-
date: 2022-04-05T14:
|
|
22
|
+
date: 2022-04-05T14:43:06.093Z
|
|
12
23
|
- commits:
|
|
13
24
|
- subject: Improve typings
|
|
14
25
|
hash: 5ab71bb9957254eb1e20687e57215d1c41e8d5c1
|
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file
|
|
|
4
4
|
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
|
5
5
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
|
6
6
|
|
|
7
|
+
# v6.0.0
|
|
8
|
+
## (2022-04-05)
|
|
9
|
+
|
|
10
|
+
* Update prom-client to 14.x [Pagan Gazzard]
|
|
11
|
+
|
|
7
12
|
# v5.7.6
|
|
8
13
|
## (2022-04-05)
|
|
9
14
|
|
|
@@ -33,7 +33,7 @@ export declare class MetricsGatherer {
|
|
|
33
33
|
aggregateRequestHandler(authTest?: AuthTestFunc): express.Handler;
|
|
34
34
|
collectDefaultMetrics(): void;
|
|
35
35
|
collectAPIMetrics(app: express.Application): express.Application;
|
|
36
|
-
output(): string
|
|
36
|
+
output(): Promise<string>;
|
|
37
37
|
clear(): void;
|
|
38
38
|
private err;
|
|
39
39
|
}
|
package/out/metrics-gatherer.js
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.MetricsGatherer = exports.MetricsGathererError = void 0;
|
|
4
13
|
const express = require("express");
|
|
@@ -216,13 +225,15 @@ class MetricsGatherer {
|
|
|
216
225
|
return app;
|
|
217
226
|
}
|
|
218
227
|
output() {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
228
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
229
|
+
try {
|
|
230
|
+
return yield prometheus.register.metrics();
|
|
231
|
+
}
|
|
232
|
+
catch (e) {
|
|
233
|
+
this.err(e);
|
|
234
|
+
return '';
|
|
235
|
+
}
|
|
236
|
+
});
|
|
226
237
|
}
|
|
227
238
|
clear() {
|
|
228
239
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-gatherer.js","sourceRoot":"","sources":["../src/metrics-gatherer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metrics-gatherer.js","sourceRoot":"","sources":["../src/metrics-gatherer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@balena/node-metrics-gatherer",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"description": "gather / export prometheus metrics easily in nodejs",
|
|
5
5
|
"main": "out/index.js",
|
|
6
6
|
"types": "out/index.d.ts",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"debug": "^4.3.4",
|
|
26
26
|
"express": "^4.17.3",
|
|
27
27
|
"on-finished": "^2.4.1",
|
|
28
|
-
"prom-client": "^
|
|
28
|
+
"prom-client": "^14.0.1",
|
|
29
29
|
"typed-error": "^3.2.1"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
@@ -48,6 +48,6 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"versionist": {
|
|
51
|
-
"publishedAt": "2022-04-
|
|
51
|
+
"publishedAt": "2022-04-05T15:02:48.512Z"
|
|
52
52
|
}
|
|
53
53
|
}
|
package/src/metrics-gatherer.ts
CHANGED
|
@@ -311,9 +311,9 @@ export class MetricsGatherer {
|
|
|
311
311
|
}
|
|
312
312
|
|
|
313
313
|
// get the prometheus output
|
|
314
|
-
public output(): string {
|
|
314
|
+
public async output(): Promise<string> {
|
|
315
315
|
try {
|
|
316
|
-
return prometheus.register.metrics();
|
|
316
|
+
return await prometheus.register.metrics();
|
|
317
317
|
} catch (e) {
|
|
318
318
|
this.err(e);
|
|
319
319
|
return '';
|
|
@@ -4,7 +4,7 @@ import { expect } from 'chai';
|
|
|
4
4
|
import chaiHttp = require('chai-http');
|
|
5
5
|
import 'mocha';
|
|
6
6
|
|
|
7
|
-
import
|
|
7
|
+
import { json } from 'body-parser';
|
|
8
8
|
import * as express from 'express';
|
|
9
9
|
|
|
10
10
|
import { metrics } from '../src';
|
|
@@ -14,7 +14,7 @@ chai.use(chaiHttp);
|
|
|
14
14
|
describe('API metrics', () => {
|
|
15
15
|
const app = metrics.collectAPIMetrics(express());
|
|
16
16
|
app
|
|
17
|
-
.use(
|
|
17
|
+
.use(json())
|
|
18
18
|
.post('/echo', (req: express.Request, res: express.Response) => {
|
|
19
19
|
res.send(req.body);
|
|
20
20
|
});
|
|
@@ -31,25 +31,21 @@ describe('API metrics', () => {
|
|
|
31
31
|
server.close();
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
-
it('should report all metrics after 1 request', (
|
|
35
|
-
requester
|
|
34
|
+
it('should report all metrics after 1 request', async () => {
|
|
35
|
+
const res = await requester
|
|
36
36
|
.post('/echo')
|
|
37
37
|
.type('json')
|
|
38
|
-
.send({ hello: 'world' })
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
expect(re.test(output)).to.be.true;
|
|
51
|
-
});
|
|
52
|
-
done();
|
|
53
|
-
});
|
|
38
|
+
.send({ hello: 'world' });
|
|
39
|
+
expect(res).to.have.status(200);
|
|
40
|
+
const output = await metrics.output();
|
|
41
|
+
const metricsRegexps = [
|
|
42
|
+
/api_arrival_total{state="completed",statusCode="200"} 1/,
|
|
43
|
+
/api_bytes_read_bucket{le="\+Inf",state="completed",statusCode="200"} 1/,
|
|
44
|
+
/api_bytes_written_bucket{le="\+Inf",state="completed",statusCode="200"} 1/,
|
|
45
|
+
/api_latency_milliseconds_count{state="completed",statusCode="200"} 1/,
|
|
46
|
+
];
|
|
47
|
+
metricsRegexps.forEach((re) => {
|
|
48
|
+
expect(re.test(output)).to.be.true;
|
|
49
|
+
});
|
|
54
50
|
});
|
|
55
51
|
});
|
package/test/index.spec.ts
CHANGED
|
@@ -30,72 +30,72 @@ describe('MetricsGatherer', () => {
|
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
describe('Gauge', () => {
|
|
33
|
-
it('should create a gauge on inc() for undescribed metric', () => {
|
|
33
|
+
it('should create a gauge on inc() for undescribed metric', async () => {
|
|
34
34
|
metrics.inc('undescribed_gauge', 10);
|
|
35
|
-
const output = metrics.output();
|
|
35
|
+
const output = await metrics.output();
|
|
36
36
|
expect(/TYPE undescribed_gauge gauge/.test(output)).to.be.true;
|
|
37
37
|
});
|
|
38
38
|
|
|
39
|
-
it('should not create a gauge, but a counter, if _total suffix found', () => {
|
|
39
|
+
it('should not create a gauge, but a counter, if _total suffix found', async () => {
|
|
40
40
|
metrics.inc('build_error_total', 1);
|
|
41
|
-
const output = metrics.output();
|
|
41
|
+
const output = await metrics.output();
|
|
42
42
|
expect(/TYPE build_error_total counter/.test(output)).to.be.true;
|
|
43
43
|
});
|
|
44
44
|
|
|
45
|
-
it('should inc and dec by 1 by default', () => {
|
|
45
|
+
it('should inc and dec by 1 by default', async () => {
|
|
46
46
|
let output: string;
|
|
47
47
|
|
|
48
48
|
metrics.inc('undescribed_gauge');
|
|
49
|
-
output = metrics.output();
|
|
49
|
+
output = await metrics.output();
|
|
50
50
|
expect(/undescribed_gauge 1/.test(output)).to.be.true;
|
|
51
51
|
|
|
52
52
|
metrics.inc('undescribed_gauge');
|
|
53
|
-
output = metrics.output();
|
|
53
|
+
output = await metrics.output();
|
|
54
54
|
expect(/undescribed_gauge 2/.test(output)).to.be.true;
|
|
55
55
|
|
|
56
56
|
metrics.dec('undescribed_gauge');
|
|
57
|
-
output = metrics.output();
|
|
57
|
+
output = await metrics.output();
|
|
58
58
|
expect(/undescribed_gauge 1/.test(output)).to.be.true;
|
|
59
59
|
});
|
|
60
60
|
});
|
|
61
61
|
|
|
62
62
|
describe('Counter', () => {
|
|
63
|
-
it('should create a counter', () => {
|
|
63
|
+
it('should create a counter', async () => {
|
|
64
64
|
metrics.describe.counter(
|
|
65
65
|
'existent_counter',
|
|
66
66
|
'a counter that should exist',
|
|
67
67
|
);
|
|
68
68
|
metrics.counter('existent_counter');
|
|
69
|
-
const output = metrics.output();
|
|
69
|
+
const output = await metrics.output();
|
|
70
70
|
expect(/TYPE existent_counter counter/.test(output)).to.be.true;
|
|
71
71
|
});
|
|
72
72
|
|
|
73
|
-
it('should reset a counter', () => {
|
|
73
|
+
it('should reset a counter', async () => {
|
|
74
74
|
metrics.describe.counter(
|
|
75
75
|
'resetting_counter',
|
|
76
76
|
'a counter that should be reset',
|
|
77
77
|
);
|
|
78
78
|
metrics.counter('resetting_counter');
|
|
79
79
|
metrics.reset('resetting_counter');
|
|
80
|
-
const output = metrics.output();
|
|
80
|
+
const output = await metrics.output();
|
|
81
81
|
expect(/resetting_counter 0/.test(output)).to.be.true;
|
|
82
82
|
});
|
|
83
83
|
|
|
84
|
-
it('should increment by 1 if not specified', () => {
|
|
84
|
+
it('should increment by 1 if not specified', async () => {
|
|
85
85
|
metrics.describe.counter('simple_counter', 'a simple counter');
|
|
86
86
|
metrics.counter('simple_counter');
|
|
87
|
-
const output = metrics.output();
|
|
87
|
+
const output = await metrics.output();
|
|
88
88
|
expect(/simple_counter 1/.test(output)).to.be.true;
|
|
89
89
|
});
|
|
90
90
|
|
|
91
|
-
it('should increment by a variable amount', () => {
|
|
91
|
+
it('should increment by a variable amount', async () => {
|
|
92
92
|
metrics.describe.counter(
|
|
93
93
|
'variable_counter',
|
|
94
94
|
'a counter that should increment by variable amounts',
|
|
95
95
|
);
|
|
96
96
|
metrics.counter('variable_counter', 1);
|
|
97
97
|
metrics.inc('variable_counter', 3);
|
|
98
|
-
const output = metrics.output();
|
|
98
|
+
const output = await metrics.output();
|
|
99
99
|
expect(/variable_counter 4/.test(output)).to.be.true;
|
|
100
100
|
});
|
|
101
101
|
|