@webda/core 2.3.1 → 2.4.1
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/lib/application.d.ts +12 -0
- package/lib/application.js.map +1 -1
- package/lib/core.d.ts +26 -3
- package/lib/core.js +53 -2
- package/lib/core.js.map +1 -1
- package/lib/core.spec.js +1 -1
- package/lib/core.spec.js.map +1 -1
- package/lib/queues/memoryqueue.spec.js +4 -0
- package/lib/queues/memoryqueue.spec.js.map +1 -1
- package/lib/queues/queueservice.d.ts +8 -0
- package/lib/queues/queueservice.js +28 -0
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/services/authentication.d.ts +14 -2
- package/lib/services/authentication.js +105 -70
- package/lib/services/authentication.js.map +1 -1
- package/lib/services/binary.d.ts +11 -1
- package/lib/services/binary.js +28 -1
- package/lib/services/binary.js.map +1 -1
- package/lib/services/fileconfiguration.js +9 -3
- package/lib/services/fileconfiguration.js.map +1 -1
- package/lib/services/fileconfiguration.spec.js +43 -0
- package/lib/services/fileconfiguration.spec.js.map +1 -1
- package/lib/services/mailer.d.ts +9 -1
- package/lib/services/mailer.js +30 -7
- package/lib/services/mailer.js.map +1 -1
- package/lib/services/mailer.spec.js +5 -0
- package/lib/services/mailer.spec.js.map +1 -1
- package/lib/services/oauth.d.ts +8 -1
- package/lib/services/oauth.js +11 -0
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/prometheus.d.ts +97 -0
- package/lib/services/prometheus.js +151 -0
- package/lib/services/prometheus.js.map +1 -0
- package/lib/services/prometheus.spec.d.ts +1 -0
- package/lib/services/prometheus.spec.js +57 -0
- package/lib/services/prometheus.spec.js.map +1 -0
- package/lib/services/proxy.d.ts +11 -0
- package/lib/services/proxy.js +47 -2
- package/lib/services/proxy.js.map +1 -1
- package/lib/services/resource.js +2 -1
- package/lib/services/resource.js.map +1 -1
- package/lib/services/resource.spec.js +5 -5
- package/lib/services/service.d.ts +16 -1
- package/lib/services/service.js +18 -0
- package/lib/services/service.js.map +1 -1
- package/lib/stores/file.js +1 -0
- package/lib/stores/file.js.map +1 -1
- package/lib/stores/store.d.ts +8 -13
- package/lib/stores/store.js +34 -35
- package/lib/stores/store.js.map +1 -1
- package/lib/test.js +8 -0
- package/lib/test.js.map +1 -1
- package/lib/utils/context.d.ts +6 -1
- package/lib/utils/context.js +9 -2
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/serializers.js +1 -1
- package/lib/utils/serializers.js.map +1 -1
- package/lib/utils/serializers.spec.js +1 -1
- package/lib/utils/serializers.spec.js.map +1 -1
- package/package.json +4 -3
- package/test/config-file-missing-file-no-default.json +44 -0
- package/test/config-file-missing-file.json +57 -0
- package/test/config-invitation.json +3 -1
- package/test/config.json +3 -0
- package/webda.module.json +202 -0
|
@@ -128,4 +128,47 @@ __decorate([
|
|
|
128
128
|
FileConfigurationNoReloadMissingServiceTest = __decorate([
|
|
129
129
|
suite
|
|
130
130
|
], FileConfigurationNoReloadMissingServiceTest);
|
|
131
|
+
let FileConfigurationMissingFileTest = class FileConfigurationMissingFileTest extends WebdaTest {
|
|
132
|
+
getTestConfiguration() {
|
|
133
|
+
return __dirname + "/../../test/config-file-missing-file.json";
|
|
134
|
+
}
|
|
135
|
+
async before() {
|
|
136
|
+
const filename = __dirname + "/../../test/my-missing-file.json";
|
|
137
|
+
if (existsSync(filename)) {
|
|
138
|
+
unlinkSync(filename);
|
|
139
|
+
}
|
|
140
|
+
await super.before();
|
|
141
|
+
}
|
|
142
|
+
async initialLoad() {
|
|
143
|
+
console.log(this.webda.getConfiguration().services.Authentication);
|
|
144
|
+
assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "MissingTextAutoGenerated");
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
__decorate([
|
|
148
|
+
test
|
|
149
|
+
], FileConfigurationMissingFileTest.prototype, "initialLoad", null);
|
|
150
|
+
FileConfigurationMissingFileTest = __decorate([
|
|
151
|
+
suite
|
|
152
|
+
], FileConfigurationMissingFileTest);
|
|
153
|
+
let FileConfigurationMissingFileNoDefaultTest = class FileConfigurationMissingFileNoDefaultTest extends WebdaTest {
|
|
154
|
+
getTestConfiguration() {
|
|
155
|
+
return __dirname + "/../../test/config-file-missing-file-no-default.json";
|
|
156
|
+
}
|
|
157
|
+
async before() {
|
|
158
|
+
const filename = __dirname + "/../../test/my-missing-file.json";
|
|
159
|
+
if (existsSync(filename)) {
|
|
160
|
+
unlinkSync(filename);
|
|
161
|
+
}
|
|
162
|
+
await super.before();
|
|
163
|
+
}
|
|
164
|
+
async initialLoad() {
|
|
165
|
+
assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "Test");
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
__decorate([
|
|
169
|
+
test
|
|
170
|
+
], FileConfigurationMissingFileNoDefaultTest.prototype, "initialLoad", null);
|
|
171
|
+
FileConfigurationMissingFileNoDefaultTest = __decorate([
|
|
172
|
+
suite
|
|
173
|
+
], FileConfigurationMissingFileNoDefaultTest);
|
|
131
174
|
//# sourceMappingURL=fileconfiguration.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileconfiguration.spec.js","sourceRoot":"","sources":["../../src/services/fileconfiguration.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fileconfiguration.spec.js","sourceRoot":"","sources":["../../src/services/fileconfiguration.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/services/mailer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ident, User } from "../index.js";
|
|
1
|
+
import { Counter, Ident, User } from "../index.js";
|
|
2
2
|
import { NotificationService } from "./notificationservice.js";
|
|
3
3
|
import { Service, ServiceParameters } from "./service.js";
|
|
4
4
|
interface IEmailTemplate {
|
|
@@ -88,6 +88,14 @@ export declare class MailerParameters extends ServiceParameters {
|
|
|
88
88
|
constructor(params: any);
|
|
89
89
|
}
|
|
90
90
|
export declare abstract class AbstractMailer<T extends ServiceParameters = ServiceParameters> extends Service<T> implements MailerService {
|
|
91
|
+
metrics: {
|
|
92
|
+
sent: Counter;
|
|
93
|
+
errors: Counter;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* @override
|
|
97
|
+
*/
|
|
98
|
+
initMetrics(): void;
|
|
91
99
|
/**
|
|
92
100
|
* @inheritdoc
|
|
93
101
|
*/
|
package/lib/services/mailer.js
CHANGED
|
@@ -2,6 +2,7 @@ import Email from "email-templates";
|
|
|
2
2
|
import * as fs from "fs";
|
|
3
3
|
import * as nodemailer from "nodemailer";
|
|
4
4
|
import * as path from "path";
|
|
5
|
+
import { Counter } from "../index.js";
|
|
5
6
|
import { Service, ServiceParameters } from "./service.js";
|
|
6
7
|
export class MailerParameters extends ServiceParameters {
|
|
7
8
|
constructor(params) {
|
|
@@ -19,6 +20,21 @@ export class MailerParameters extends ServiceParameters {
|
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
export class AbstractMailer extends Service {
|
|
23
|
+
/**
|
|
24
|
+
* @override
|
|
25
|
+
*/
|
|
26
|
+
initMetrics() {
|
|
27
|
+
var _a;
|
|
28
|
+
super.initMetrics();
|
|
29
|
+
this.metrics.sent = this.getMetric(Counter, {
|
|
30
|
+
name: "mailer_sent",
|
|
31
|
+
help: "Number of emails sent"
|
|
32
|
+
});
|
|
33
|
+
(_a = this.metrics).errors ?? (_a.errors = this.getMetric(Counter, {
|
|
34
|
+
name: "mailer_errors",
|
|
35
|
+
help: "Number of emails in error"
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
22
38
|
/**
|
|
23
39
|
* If user has an email
|
|
24
40
|
* @param user
|
|
@@ -35,13 +51,20 @@ export class AbstractMailer extends Service {
|
|
|
35
51
|
if (!email) {
|
|
36
52
|
throw new Error(`Cannot find a valid email for ${user.__type} '${user.getUuid()}'`);
|
|
37
53
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
54
|
+
this.metrics.sent.inc();
|
|
55
|
+
try {
|
|
56
|
+
await this.send({
|
|
57
|
+
template: notification,
|
|
58
|
+
replacements: {
|
|
59
|
+
...replacements
|
|
60
|
+
},
|
|
61
|
+
to: email
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
this.metrics.errors.inc();
|
|
66
|
+
throw err;
|
|
67
|
+
}
|
|
45
68
|
}
|
|
46
69
|
}
|
|
47
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer.js","sourceRoot":"","sources":["../../src/services/mailer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"mailer.js","sourceRoot":"","sources":["../../src/services/mailer.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,6 +101,11 @@ let MailerTest = class MailerTest extends WebdaTest {
|
|
|
101
101
|
finally {
|
|
102
102
|
stub.restore();
|
|
103
103
|
}
|
|
104
|
+
stub = sinon.stub(this.mailer, "send").callsFake(async () => {
|
|
105
|
+
throw new Error("Fake");
|
|
106
|
+
});
|
|
107
|
+
await assert.rejects(() => this.mailer.sendNotification(new User().load({ email: "test@test.com" }), "", undefined, undefined), /Fake/);
|
|
108
|
+
stub.restore();
|
|
104
109
|
}
|
|
105
110
|
};
|
|
106
111
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer.spec.js","sourceRoot":"","sources":["../../src/services/mailer.spec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mailer.spec.js","sourceRoot":"","sources":["../../src/services/mailer.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/services/oauth.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Core } from "../core.js";
|
|
1
|
+
import { Core, Counter } from "../core.js";
|
|
2
2
|
import { Context, EventWithContext, RequestFilter } from "../index.js";
|
|
3
3
|
import { Authentication } from "./authentication.js";
|
|
4
4
|
import { Service, ServiceParameters } from "./service.js";
|
|
@@ -104,10 +104,17 @@ export interface OAuthSession {
|
|
|
104
104
|
*/
|
|
105
105
|
export declare abstract class OAuthService<T extends OAuthServiceParameters = OAuthServiceParameters, E extends OAuthEvents = OAuthEvents> extends Service<T, E> implements RequestFilter<Context> {
|
|
106
106
|
_authenticationService: Authentication;
|
|
107
|
+
/**
|
|
108
|
+
* @override
|
|
109
|
+
*/
|
|
110
|
+
metrics: {
|
|
111
|
+
login: Counter;
|
|
112
|
+
};
|
|
107
113
|
/**
|
|
108
114
|
* Ensure default parameter url
|
|
109
115
|
*/
|
|
110
116
|
constructor(webda: Core, name: string, params?: any);
|
|
117
|
+
initMetrics(): void;
|
|
111
118
|
/**
|
|
112
119
|
* Load parameters
|
|
113
120
|
*
|
package/lib/services/oauth.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Counter } from "../core.js";
|
|
1
2
|
import { Service, ServiceParameters } from "./service.js";
|
|
2
3
|
export class OAuthServiceParameters extends ServiceParameters {
|
|
3
4
|
constructor(params) {
|
|
@@ -19,6 +20,14 @@ export class OAuthService extends Service {
|
|
|
19
20
|
super(webda, name, params);
|
|
20
21
|
this.parameters.url = this.parameters.url || `${this.getDefaultUrl()}`;
|
|
21
22
|
}
|
|
23
|
+
initMetrics() {
|
|
24
|
+
super.initMetrics();
|
|
25
|
+
this.metrics.login = this.getMetric(Counter, {
|
|
26
|
+
name: "oauth_login",
|
|
27
|
+
help: "count the number of login",
|
|
28
|
+
labelNames: ["method"]
|
|
29
|
+
});
|
|
30
|
+
}
|
|
22
31
|
/**
|
|
23
32
|
* Load parameters
|
|
24
33
|
*
|
|
@@ -190,6 +199,7 @@ export class OAuthService extends Service {
|
|
|
190
199
|
provider: this.getName(),
|
|
191
200
|
context
|
|
192
201
|
});
|
|
202
|
+
this.metrics.login.inc({ method: "token" });
|
|
193
203
|
}
|
|
194
204
|
/**
|
|
195
205
|
* Handle a standard url callback
|
|
@@ -206,6 +216,7 @@ export class OAuthService extends Service {
|
|
|
206
216
|
provider: this.getName(),
|
|
207
217
|
context: ctx
|
|
208
218
|
});
|
|
219
|
+
this.metrics.login.inc({ method: "callback" });
|
|
209
220
|
}
|
|
210
221
|
/**
|
|
211
222
|
* Once approved by the OAuth provider this will do the common task
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/services/oauth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/services/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import * as http from "http";
|
|
3
|
+
import { Counter, Gauge, Histogram } from "prom-client";
|
|
4
|
+
import { WebContext } from "../utils/context.js";
|
|
5
|
+
import { Service, ServiceParameters } from "./service.js";
|
|
6
|
+
export declare class PrometheusParameters extends ServiceParameters {
|
|
7
|
+
/**
|
|
8
|
+
* If defined will launch another http server to serve the scaper
|
|
9
|
+
*/
|
|
10
|
+
portNumber?: number;
|
|
11
|
+
/**
|
|
12
|
+
* If defined along with portNumber used to bind specific address
|
|
13
|
+
* for dedicated http server
|
|
14
|
+
*/
|
|
15
|
+
bind?: string;
|
|
16
|
+
/**
|
|
17
|
+
* @default /metrics
|
|
18
|
+
*/
|
|
19
|
+
url?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Include NodeJS engine metrics
|
|
22
|
+
*
|
|
23
|
+
* @default true
|
|
24
|
+
*/
|
|
25
|
+
includeNodeMetrics: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Include request served by Webda
|
|
28
|
+
*
|
|
29
|
+
* It should generate common http_* metrics
|
|
30
|
+
* @default true
|
|
31
|
+
*/
|
|
32
|
+
includeRequestMetrics: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Do not partition histogram with requests labels
|
|
35
|
+
*/
|
|
36
|
+
partitionHistogram?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Labels to add
|
|
39
|
+
*/
|
|
40
|
+
labels?: {
|
|
41
|
+
[key: string]: string;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Prefix to add to metrics
|
|
45
|
+
*/
|
|
46
|
+
prefix?: string;
|
|
47
|
+
constructor(params: any);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* This service expose metrics to Prometheus
|
|
51
|
+
*
|
|
52
|
+
* It can use the same server or a dedicated http server
|
|
53
|
+
* We do not currently support push-gateway
|
|
54
|
+
*
|
|
55
|
+
* @WebdaModda
|
|
56
|
+
*/
|
|
57
|
+
export declare class PrometheusService<T extends PrometheusParameters = PrometheusParameters> extends Service<T> {
|
|
58
|
+
/**
|
|
59
|
+
* Metrics registered
|
|
60
|
+
*/
|
|
61
|
+
private static requestMetricsRegistered;
|
|
62
|
+
/**
|
|
63
|
+
* Metrics registered
|
|
64
|
+
*/
|
|
65
|
+
private static nodeMetricsRegistered;
|
|
66
|
+
metrics: {
|
|
67
|
+
http_request_total: Counter;
|
|
68
|
+
http_request_in_flight: Gauge;
|
|
69
|
+
http_request_duration_milliseconds: Histogram;
|
|
70
|
+
http_request_sizes: Histogram;
|
|
71
|
+
http_response_sizes: Histogram;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* If we expose prometheus on another port
|
|
75
|
+
*/
|
|
76
|
+
http?: http.Server;
|
|
77
|
+
/**
|
|
78
|
+
*
|
|
79
|
+
* @param params
|
|
80
|
+
* @returns
|
|
81
|
+
*/
|
|
82
|
+
loadParameters(params: any): PrometheusParameters;
|
|
83
|
+
/**
|
|
84
|
+
* @override
|
|
85
|
+
*/
|
|
86
|
+
initMetrics(): void;
|
|
87
|
+
/**
|
|
88
|
+
*
|
|
89
|
+
* @returns
|
|
90
|
+
*/
|
|
91
|
+
resolve(): this;
|
|
92
|
+
/**
|
|
93
|
+
* Serve the metrics in a webda context
|
|
94
|
+
* @param ctx
|
|
95
|
+
*/
|
|
96
|
+
serveMetrics(ctx: WebContext): Promise<void>;
|
|
97
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import * as http from "http";
|
|
2
|
+
import { collectDefaultMetrics, Counter, Gauge, Histogram, register } from "prom-client";
|
|
3
|
+
import { Service, ServiceParameters } from "./service.js";
|
|
4
|
+
export class PrometheusParameters extends ServiceParameters {
|
|
5
|
+
constructor(params) {
|
|
6
|
+
super(params);
|
|
7
|
+
this.url ?? (this.url = "/metrics");
|
|
8
|
+
this.labels ?? (this.labels = {});
|
|
9
|
+
this.includeNodeMetrics ?? (this.includeNodeMetrics = true);
|
|
10
|
+
this.includeRequestMetrics ?? (this.includeRequestMetrics = true);
|
|
11
|
+
this.prefix ?? (this.prefix = "");
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* This service expose metrics to Prometheus
|
|
16
|
+
*
|
|
17
|
+
* It can use the same server or a dedicated http server
|
|
18
|
+
* We do not currently support push-gateway
|
|
19
|
+
*
|
|
20
|
+
* @WebdaModda
|
|
21
|
+
*/
|
|
22
|
+
export class PrometheusService extends Service {
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
* @param params
|
|
26
|
+
* @returns
|
|
27
|
+
*/
|
|
28
|
+
loadParameters(params) {
|
|
29
|
+
return new PrometheusParameters(params);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @override
|
|
33
|
+
*/
|
|
34
|
+
initMetrics() {
|
|
35
|
+
if (this.parameters.includeRequestMetrics) {
|
|
36
|
+
this.metrics = {
|
|
37
|
+
http_request_total: register.getSingleMetric(`${this.parameters.prefix}http_request_total`) ||
|
|
38
|
+
new Counter({
|
|
39
|
+
name: `${this.parameters.prefix}http_request_total`,
|
|
40
|
+
help: "metric_help",
|
|
41
|
+
labelNames: ["method", "statuscode", "handler"]
|
|
42
|
+
}),
|
|
43
|
+
http_request_in_flight: register.getSingleMetric(`${this.parameters.prefix}http_request_in_flight`) ||
|
|
44
|
+
new Gauge({
|
|
45
|
+
name: `${this.parameters.prefix}http_request_in_flight`,
|
|
46
|
+
help: "in flight"
|
|
47
|
+
}),
|
|
48
|
+
http_request_duration_milliseconds: register.getSingleMetric(`${this.parameters.prefix}http_request_duration_milliseconds`) ||
|
|
49
|
+
new Histogram({
|
|
50
|
+
name: `${this.parameters.prefix}http_request_duration_milliseconds`,
|
|
51
|
+
labelNames: ["method", "statuscode", "handler"],
|
|
52
|
+
help: "ms"
|
|
53
|
+
}),
|
|
54
|
+
http_request_sizes: register.getSingleMetric(`${this.parameters.prefix}http_request_sizes`) ||
|
|
55
|
+
new Histogram({
|
|
56
|
+
name: `${this.parameters.prefix}http_request_sizes`,
|
|
57
|
+
labelNames: ["method", "statuscode", "handler"],
|
|
58
|
+
help: "o"
|
|
59
|
+
}),
|
|
60
|
+
http_response_sizes: register.getSingleMetric(`${this.parameters.prefix}http_response_sizes`) ||
|
|
61
|
+
new Histogram({
|
|
62
|
+
name: `${this.parameters.prefix}http_response_sizes`,
|
|
63
|
+
labelNames: ["method", "statuscode", "handler"],
|
|
64
|
+
help: "o"
|
|
65
|
+
})
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
if (this.parameters.includeNodeMetrics && !PrometheusService.nodeMetricsRegistered) {
|
|
69
|
+
PrometheusService.nodeMetricsRegistered = true;
|
|
70
|
+
collectDefaultMetrics({
|
|
71
|
+
register,
|
|
72
|
+
labels: this.parameters.labels,
|
|
73
|
+
prefix: this.parameters.prefix
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
*
|
|
79
|
+
* @returns
|
|
80
|
+
*/
|
|
81
|
+
resolve() {
|
|
82
|
+
super.resolve();
|
|
83
|
+
register.setDefaultLabels(this.parameters.labels);
|
|
84
|
+
if (!this.parameters.portNumber) {
|
|
85
|
+
this.addRoute(this.parameters.url || "/metrics", ["GET"], this.serveMetrics);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
this.http = http
|
|
89
|
+
.createServer(async (req, res) => {
|
|
90
|
+
if (req.method === "GET" && req.url === this.parameters.url) {
|
|
91
|
+
res.writeHead(200, { "Content-Type": register.contentType });
|
|
92
|
+
res.write(await register.metrics());
|
|
93
|
+
res.end();
|
|
94
|
+
}
|
|
95
|
+
res.writeHead(404);
|
|
96
|
+
res.end();
|
|
97
|
+
})
|
|
98
|
+
.listen(this.parameters.portNumber, this.parameters.bind);
|
|
99
|
+
}
|
|
100
|
+
// Only register on events if we need to get metrics
|
|
101
|
+
if (this.parameters.includeRequestMetrics) {
|
|
102
|
+
this.getWebda().on("Webda.Request", ({ context }) => {
|
|
103
|
+
if (context.getHttpContext().getRelativeUri() === this.parameters.url) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
this.metrics.http_request_in_flight.inc();
|
|
107
|
+
context.setExtension("prometheus", {
|
|
108
|
+
timer: this.metrics.http_request_duration_milliseconds.startTimer()
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
this.getWebda().on("Webda.Result", ({ context }) => {
|
|
112
|
+
if (context.getHttpContext().getRelativeUri() === this.parameters.url) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const staticLabels = this.parameters.labels || {};
|
|
116
|
+
const labels = {
|
|
117
|
+
handler: context.getHttpContext().getRelativeUri(),
|
|
118
|
+
method: context.getHttpContext().getMethod(),
|
|
119
|
+
statuscode: context.statusCode,
|
|
120
|
+
...staticLabels
|
|
121
|
+
};
|
|
122
|
+
context
|
|
123
|
+
.getExtension("prometheus")
|
|
124
|
+
.timer(this.parameters.partitionHistogram ? labels : staticLabels);
|
|
125
|
+
this.metrics.http_request_total.inc(labels, 1);
|
|
126
|
+
if (["PUT", "POST", "PATCH"].includes(context.getHttpContext().getMethod())) {
|
|
127
|
+
this.metrics.http_request_sizes.observe(this.parameters.partitionHistogram ? labels : staticLabels, Number.parseInt(context.getHttpContext().getHeaders()["content-length"] || "0"));
|
|
128
|
+
this.metrics.http_response_sizes.observe(this.parameters.partitionHistogram ? labels : staticLabels, Number.parseInt(context.getResponseHeaders["content-length"] || "0"));
|
|
129
|
+
}
|
|
130
|
+
this.metrics.http_request_in_flight.dec(staticLabels, 1);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
return this;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Serve the metrics in a webda context
|
|
137
|
+
* @param ctx
|
|
138
|
+
*/
|
|
139
|
+
async serveMetrics(ctx) {
|
|
140
|
+
ctx.write(await register.metrics());
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Metrics registered
|
|
145
|
+
*/
|
|
146
|
+
PrometheusService.requestMetricsRegistered = false;
|
|
147
|
+
/**
|
|
148
|
+
* Metrics registered
|
|
149
|
+
*/
|
|
150
|
+
PrometheusService.nodeMetricsRegistered = false;
|
|
151
|
+
//# sourceMappingURL=prometheus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prometheus.js","sourceRoot":"","sources":["../../src/services/prometheus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { suite, test } from "@testdeck/mocha";
|
|
8
|
+
import * as assert from "assert";
|
|
9
|
+
import axios from "axios";
|
|
10
|
+
import { Histogram } from "prom-client";
|
|
11
|
+
import { WebdaTest } from "../test.js";
|
|
12
|
+
import { HttpContext } from "../utils/httpcontext.js";
|
|
13
|
+
import { PrometheusService } from "./prometheus.js";
|
|
14
|
+
let PrometheusTest = class PrometheusTest extends WebdaTest {
|
|
15
|
+
async sideServe() {
|
|
16
|
+
let service = new PrometheusService(this.webda, "", {
|
|
17
|
+
portNumber: 9090,
|
|
18
|
+
includeNodeMetrics: false,
|
|
19
|
+
includeRequestMetrics: false
|
|
20
|
+
});
|
|
21
|
+
try {
|
|
22
|
+
await service.resolve().init();
|
|
23
|
+
// Should be listen on 9090 now
|
|
24
|
+
let res = await axios.get("http://localhost:9090/metrics");
|
|
25
|
+
assert.ok(res.data.includes("webda_store_operations_total"));
|
|
26
|
+
await assert.rejects(() => axios.get("http://localhost:9090/metrics2"), /Request failed with status code 404/);
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
service.http?.close();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async normal() {
|
|
33
|
+
let ctx = await this.newContext("toto");
|
|
34
|
+
ctx.setHttpContext(new HttpContext("localhost", "GET", "/version"));
|
|
35
|
+
await this.webda.emitSync("Webda.Request", { context: ctx });
|
|
36
|
+
await this.webda.emitSync("Webda.Result", { context: ctx });
|
|
37
|
+
ctx.setHttpContext(new HttpContext("localhost", "PUT", "/version"));
|
|
38
|
+
await this.webda.emitSync("Webda.Request", { context: ctx });
|
|
39
|
+
await this.webda.emitSync("Webda.Result", { context: ctx });
|
|
40
|
+
await this.execute(ctx, "localhost", "GET", "/metrics");
|
|
41
|
+
await this.webda.emitSync("Webda.Request", { context: ctx });
|
|
42
|
+
await this.webda.emitSync("Webda.Result", { context: ctx });
|
|
43
|
+
this.webda.getGlobalParams().metrics = false;
|
|
44
|
+
// Fake metrics should return 0 for timer
|
|
45
|
+
assert.strictEqual(this.webda.getMetric(Histogram, { name: "test", help: "fake" }).startTimer()(), 0);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
__decorate([
|
|
49
|
+
test
|
|
50
|
+
], PrometheusTest.prototype, "sideServe", null);
|
|
51
|
+
__decorate([
|
|
52
|
+
test
|
|
53
|
+
], PrometheusTest.prototype, "normal", null);
|
|
54
|
+
PrometheusTest = __decorate([
|
|
55
|
+
suite
|
|
56
|
+
], PrometheusTest);
|
|
57
|
+
//# sourceMappingURL=prometheus.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prometheus.spec.js","sourceRoot":"","sources":["../../src/services/prometheus.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/services/proxy.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import * as http from "http";
|
|
3
|
+
import { Counter, Gauge, Histogram } from "../core.js";
|
|
3
4
|
import { Context } from "../utils/context.js";
|
|
4
5
|
import { Service, ServiceParameters } from "./service.js";
|
|
5
6
|
/**
|
|
@@ -25,6 +26,16 @@ export declare class ProxyParameters extends ServiceParameters {
|
|
|
25
26
|
* @WebdaModda
|
|
26
27
|
*/
|
|
27
28
|
export declare class ProxyService<T extends ProxyParameters = ProxyParameters> extends Service<T> {
|
|
29
|
+
metrics: {
|
|
30
|
+
http_request_total: Counter;
|
|
31
|
+
http_request_in_flight: Gauge;
|
|
32
|
+
http_request_duration_milliseconds: Histogram;
|
|
33
|
+
http_errors: Counter;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* @override
|
|
37
|
+
*/
|
|
38
|
+
initMetrics(): void;
|
|
28
39
|
/**
|
|
29
40
|
* @override
|
|
30
41
|
*/
|