@webda/core 2.3.0 → 2.4.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.
Files changed (82) hide show
  1. package/lib/application.d.ts +12 -0
  2. package/lib/application.js.map +1 -1
  3. package/lib/core.d.ts +26 -3
  4. package/lib/core.js +53 -2
  5. package/lib/core.js.map +1 -1
  6. package/lib/core.spec.js +1 -1
  7. package/lib/core.spec.js.map +1 -1
  8. package/lib/index.d.ts +1 -0
  9. package/lib/index.js +1 -0
  10. package/lib/index.js.map +1 -1
  11. package/lib/models/coremodel.d.ts +24 -1
  12. package/lib/models/coremodel.js +66 -1
  13. package/lib/models/coremodel.js.map +1 -1
  14. package/lib/models/coremodel.spec.js +58 -1
  15. package/lib/models/coremodel.spec.js.map +1 -1
  16. package/lib/queues/memoryqueue.spec.js +4 -0
  17. package/lib/queues/memoryqueue.spec.js.map +1 -1
  18. package/lib/queues/queueservice.d.ts +8 -0
  19. package/lib/queues/queueservice.js +28 -0
  20. package/lib/queues/queueservice.js.map +1 -1
  21. package/lib/services/authentication.d.ts +14 -2
  22. package/lib/services/authentication.js +105 -70
  23. package/lib/services/authentication.js.map +1 -1
  24. package/lib/services/binary.d.ts +11 -1
  25. package/lib/services/binary.js +28 -1
  26. package/lib/services/binary.js.map +1 -1
  27. package/lib/services/fileconfiguration.js +9 -3
  28. package/lib/services/fileconfiguration.js.map +1 -1
  29. package/lib/services/fileconfiguration.spec.js +43 -0
  30. package/lib/services/fileconfiguration.spec.js.map +1 -1
  31. package/lib/services/mailer.d.ts +9 -1
  32. package/lib/services/mailer.js +30 -7
  33. package/lib/services/mailer.js.map +1 -1
  34. package/lib/services/mailer.spec.js +5 -0
  35. package/lib/services/mailer.spec.js.map +1 -1
  36. package/lib/services/oauth.d.ts +8 -1
  37. package/lib/services/oauth.js +11 -0
  38. package/lib/services/oauth.js.map +1 -1
  39. package/lib/services/prometheus.d.ts +97 -0
  40. package/lib/services/prometheus.js +151 -0
  41. package/lib/services/prometheus.js.map +1 -0
  42. package/lib/services/prometheus.spec.d.ts +1 -0
  43. package/lib/services/prometheus.spec.js +57 -0
  44. package/lib/services/prometheus.spec.js.map +1 -0
  45. package/lib/services/proxy.d.ts +11 -0
  46. package/lib/services/proxy.js +47 -2
  47. package/lib/services/proxy.js.map +1 -1
  48. package/lib/services/resource.js +2 -1
  49. package/lib/services/resource.js.map +1 -1
  50. package/lib/services/resource.spec.js +5 -5
  51. package/lib/services/service.d.ts +16 -1
  52. package/lib/services/service.js +18 -0
  53. package/lib/services/service.js.map +1 -1
  54. package/lib/stores/aliasstore.d.ts +1 -0
  55. package/lib/stores/aliasstore.js +1 -0
  56. package/lib/stores/aliasstore.js.map +1 -1
  57. package/lib/stores/file.js +1 -0
  58. package/lib/stores/file.js.map +1 -1
  59. package/lib/stores/file.spec.js +9 -0
  60. package/lib/stores/file.spec.js.map +1 -1
  61. package/lib/stores/memory.spec.js +2 -2
  62. package/lib/stores/memory.spec.js.map +1 -1
  63. package/lib/stores/store.d.ts +8 -13
  64. package/lib/stores/store.js +53 -41
  65. package/lib/stores/store.js.map +1 -1
  66. package/lib/stores/store.spec.js +8 -0
  67. package/lib/stores/store.spec.js.map +1 -1
  68. package/lib/test.js +8 -0
  69. package/lib/test.js.map +1 -1
  70. package/lib/utils/context.d.ts +6 -1
  71. package/lib/utils/context.js +10 -3
  72. package/lib/utils/context.js.map +1 -1
  73. package/lib/utils/serializers.js +1 -1
  74. package/lib/utils/serializers.js.map +1 -1
  75. package/lib/utils/serializers.spec.js +9 -1
  76. package/lib/utils/serializers.spec.js.map +1 -1
  77. package/package.json +4 -3
  78. package/test/config-file-missing-file-no-default.json +44 -0
  79. package/test/config-file-missing-file.json +57 -0
  80. package/test/config-invitation.json +3 -1
  81. package/test/config.json +3 -0
  82. package/webda.module.json +202 -0
@@ -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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"}
@@ -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
  */
@@ -5,6 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import * as http from "http";
8
+ import { Counter, Gauge, Histogram } from "../core.js";
8
9
  import { Route, Service, ServiceParameters } from "./service.js";
9
10
  /**
10
11
  * Proxy to a backend service
@@ -17,6 +18,32 @@ export class ProxyParameters extends ServiceParameters {
17
18
  * @WebdaModda
18
19
  */
19
20
  export class ProxyService extends Service {
21
+ /**
22
+ * @override
23
+ */
24
+ initMetrics() {
25
+ super.initMetrics();
26
+ this.metrics.http_request_total = this.getMetric(Counter, {
27
+ name: "proxy_request_total",
28
+ help: "number of request",
29
+ labelNames: ["method", "statuscode", "handler", "host"]
30
+ });
31
+ this.metrics.http_request_in_flight = this.getMetric(Gauge, {
32
+ name: "proxy_request_in_flight",
33
+ help: "number of request in flight",
34
+ labelNames: ["method", "statuscode", "handler", "host"]
35
+ });
36
+ this.metrics.http_request_duration_milliseconds = this.getMetric(Histogram, {
37
+ name: "proxy_request_duration_milliseconds",
38
+ help: "request duration",
39
+ labelNames: ["method", "statuscode", "handler", "host"]
40
+ });
41
+ this.metrics.http_errors = this.getMetric(Counter, {
42
+ name: "proxy_request_errors",
43
+ help: "request errors",
44
+ labelNames: ["method", "statuscode", "handler", "host"]
45
+ });
46
+ }
20
47
  /**
21
48
  * @override
22
49
  */
@@ -89,6 +116,7 @@ export class ProxyService extends Service {
89
116
  */
90
117
  async rawProxy(ctx, host, url, headers = {}) {
91
118
  this.log("DEBUG", "Proxying to", `${ctx.getHttpContext().getMethod()} ${url}`);
119
+ this.metrics.http_request_in_flight.inc();
92
120
  await new Promise((resolve, reject) => {
93
121
  let xff = ctx.getHttpContext().getHeader("x-forwarded-for");
94
122
  if (!xff) {
@@ -108,8 +136,25 @@ export class ProxyService extends Service {
108
136
  "X-Forwarded-For": xff,
109
137
  ...headers
110
138
  }, res => {
111
- res.on("end", resolve);
112
- res.on("error", reject);
139
+ const labels = {
140
+ method: ctx.getHttpContext().getMethod(),
141
+ host,
142
+ handler: url,
143
+ statuscode: res.statusCode
144
+ };
145
+ res.on("end", () => {
146
+ this.metrics.http_request_in_flight.dec();
147
+ resolve();
148
+ });
149
+ res.on("error", () => {
150
+ this.metrics.http_request_in_flight.dec();
151
+ this.metrics.http_errors.inc({ ...labels, statuscode: -1 });
152
+ reject();
153
+ });
154
+ this.metrics.http_request_total.inc(labels);
155
+ if (res.statusCode >= 400) {
156
+ this.metrics.http_errors.inc(labels);
157
+ }
113
158
  this.forwardResponse(res, ctx);
114
159
  });
115
160
  req.on("error", reject);
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/services/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/services/proxy.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,iBAAiB;CAarD;AAED;;;;GAIG;AACH,MAAM,OAAO,YAA0D,SAAQ,OAAU;IAQvF;;OAEG;IACH,WAAW;QACT,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YACxD,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,mBAAmB;YACzB,UAAU,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YAC1D,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,6BAA6B;YACnC,UAAU,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,kCAAkC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;YAC1E,IAAI,EAAE,qCAAqC;YAC3C,IAAI,EAAE,kBAAkB;YACxB,UAAU,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YACjD,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,gBAAgB;YACtB,UAAU,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,GAAW,EAAE,MAAc,EAAE,OAAY,EAAE,QAAkD;QACzG,OAAO,IAAI,CAAC,OAAO,CACjB,GAAG,EACH;YACE,MAAM;YACN,OAAO;SACR,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,kBAA4C,EAAE;QAC1D,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YAC1B,6BAA6B;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;aAChD,OAAO,CAAC,CAAC,CAAC,EAAE;YACX,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACL,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,QAA8B,EAAE,OAAgB;QAC9D,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,OAAgB;QAChC,OAAO,OAAO,CAAC,cAAc,EAAE,CAAC,UAAU,EAAE,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,GAAY,EAAE,IAAY,EAAE,GAAW;QACjD,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAY,EAAE,IAAY,EAAE,GAAW,EAAE,UAAe,EAAE;QACvE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC;QAC1C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,GAAG,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC5D,IAAI,CAAC,GAAG,EAAE;gBACR,GAAG,IAAI,KAAK,GAAG,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;aAClD;iBAAM;gBACL,GAAG,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,CAAC;aAC1C;YACD,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,CAAC;YACpD,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAC1B,GAAG,IAAI,GAAG,GAAG,EAAE,EACf,GAAG,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,EAChC;gBACE,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;gBAC9B,eAAe,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,cAAc,EAAE;gBACtD,kBAAkB,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3G,mBAAmB,EAAE,GAAG;qBACrB,cAAc,EAAE;qBAChB,SAAS,CAAC,mBAAmB,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC7E,iBAAiB,EAAE,GAAG;gBACtB,GAAG,OAAO;aACX,EACD,GAAG,CAAC,EAAE;gBACJ,MAAM,MAAM,GAAG;oBACb,MAAM,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE;oBACxC,IAAI;oBACJ,OAAO,EAAE,GAAG;oBACZ,UAAU,EAAE,GAAG,CAAC,UAAU;iBAC3B,CAAC;gBACF,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC;oBAC1C,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBACnB,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC;oBAC1C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC5D,MAAM,EAAE,CAAC;gBACX,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE;oBACzB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBACtC;gBACD,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC,CACF,CAAC;YACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxB,GAAG,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IAGG,AAAN,KAAK,CAAC,UAAU,CAAC,GAAY;QAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,qBAAqB,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE;YACpE,MAAM,GAAG,CAAC;SACX;QACD,mCAAmC;QACnC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC;CACF;AAPO;IAFL,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC;IAClE,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;8CAOrD"}
@@ -137,7 +137,8 @@ export default class ResourceService extends Service {
137
137
  mimetype += "; charset=UTF-8";
138
138
  }
139
139
  ctx.writeHead(200, {
140
- "Content-Type": mimetype
140
+ "content-type": mimetype,
141
+ "content-length": fs.lstatSync(file).size
141
142
  });
142
143
  const stream = fs.createReadStream(file);
143
144
  return new Promise((resolve, reject) => {
@@ -1 +1 @@
1
- {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/services/resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/services/resource.ts"],"names":[],"mappings":"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"}
@@ -54,28 +54,28 @@ let ResourceTest = class ResourceTest extends WebdaTest {
54
54
  assert.notStrictEqual(executor, undefined);
55
55
  await executor.execute(this.ctx);
56
56
  assert.strictEqual(this.ctx.getResponseBody().toString(), fs.readFileSync("./test/config.json").toString());
57
- assert.strictEqual(this.ctx.getResponseHeaders()["Content-Type"], "application/json");
57
+ assert.strictEqual(this.ctx.getResponseHeaders()["content-type"], "application/json");
58
58
  }
59
59
  async jsFile() {
60
60
  let executor = this.getExecutor(this.ctx, "test.webda.io", "GET", "/resources/moddas/voidstore.js");
61
61
  assert.notStrictEqual(executor, undefined);
62
62
  await executor.execute(this.ctx);
63
63
  assert.strictEqual(this.ctx.getResponseBody().toString(), fs.readFileSync("./test/moddas/voidstore.js").toString());
64
- assert.strictEqual(this.ctx.getResponseHeaders()["Content-Type"], "application/javascript");
64
+ assert.strictEqual(this.ctx.getResponseHeaders()["content-type"], "application/javascript");
65
65
  }
66
66
  async textFile() {
67
67
  let executor = this.getExecutor(this.ctx, "test.webda.io", "GET", "/resources/data/test.txt");
68
68
  assert.notStrictEqual(executor, undefined);
69
69
  await executor.execute(this.ctx);
70
70
  assert.strictEqual(this.ctx.getResponseBody().toString(), fs.readFileSync("./test/data/test.txt").toString());
71
- assert.strictEqual(this.ctx.getResponseHeaders()["Content-Type"], "text/plain; charset=UTF-8");
71
+ assert.strictEqual(this.ctx.getResponseHeaders()["content-type"], "text/plain; charset=UTF-8");
72
72
  }
73
73
  async pngFile() {
74
74
  let executor = this.getExecutor(this.ctx, "test.webda.io", "GET", "/resources/data/test.png");
75
75
  assert.notStrictEqual(executor, undefined);
76
76
  await executor.execute(this.ctx);
77
77
  assert.strictEqual(this.ctx.getResponseBody().toString(), fs.readFileSync("./test/data/test.png").toString());
78
- assert.strictEqual(this.ctx.getResponseHeaders()["Content-Type"], "image/png");
78
+ assert.strictEqual(this.ctx.getResponseHeaders()["content-type"], "image/png");
79
79
  }
80
80
  // Check Store HTTP mapping
81
81
  async testStoreHttpMapping() {
@@ -83,7 +83,7 @@ let ResourceTest = class ResourceTest extends WebdaTest {
83
83
  assert.notStrictEqual(executor, undefined);
84
84
  await executor.execute(this.ctx);
85
85
  assert.strictEqual(this.ctx.getResponseBody().toString(), fs.readFileSync("./templates/PASSPORT_EMAIL_RECOVERY/html.mustache").toString());
86
- assert.strictEqual(this.ctx.getResponseHeaders()["Content-Type"], "application/octet-stream");
86
+ assert.strictEqual(this.ctx.getResponseHeaders()["content-type"], "application/octet-stream");
87
87
  }
88
88
  };
89
89
  __decorate([
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import { WorkerLogLevel } from "@webda/workout";
3
3
  import * as events from "events";
4
- import { Core, Logger } from "../index.js";
4
+ import { Constructor, Core, Counter, Gauge, Histogram, Logger, MetricConfiguration } from "../index.js";
5
5
  import { OpenAPIWebdaDefinition } from "../router.js";
6
6
  import { HttpMethodType } from "../utils/httpcontext.js";
7
7
  /**
@@ -122,6 +122,10 @@ declare abstract class Service<T extends ServiceParameters = ServiceParameters,
122
122
  * Logger with class context
123
123
  */
124
124
  protected logger: Logger;
125
+ /**
126
+ * Get metrics
127
+ */
128
+ protected metrics?: any;
125
129
  /**
126
130
  *
127
131
  *
@@ -156,6 +160,17 @@ declare abstract class Service<T extends ServiceParameters = ServiceParameters,
156
160
  * Call initRoutes and initBeanRoutes
157
161
  */
158
162
  resolve(): this;
163
+ /**
164
+ * Init the metrics
165
+ */
166
+ initMetrics(): void;
167
+ /**
168
+ * Add service name label
169
+ * @param type
170
+ * @param configuration
171
+ * @returns
172
+ */
173
+ getMetric<T = Gauge | Counter | Histogram>(type: Constructor<T>, configuration: MetricConfiguration<T>): T;
159
174
  /**
160
175
  * Return the full path url based on parameters
161
176
  *
@@ -208,6 +208,7 @@ class Service extends events.EventEmitter {
208
208
  * Call initRoutes and initBeanRoutes
209
209
  */
210
210
  resolve() {
211
+ this.initMetrics();
211
212
  // Inject dependencies
212
213
  Injector.resolveAll(this);
213
214
  // We wait for all services to be created before calling computeParameters
@@ -216,6 +217,23 @@ class Service extends events.EventEmitter {
216
217
  this.initOperations();
217
218
  return this;
218
219
  }
220
+ /**
221
+ * Init the metrics
222
+ */
223
+ initMetrics() {
224
+ this.metrics = {};
225
+ }
226
+ /**
227
+ * Add service name label
228
+ * @param type
229
+ * @param configuration
230
+ * @returns
231
+ */
232
+ getMetric(type, configuration) {
233
+ configuration.labelNames ?? (configuration.labelNames = []);
234
+ configuration.labelNames = [...configuration.labelNames, "service"];
235
+ return this.getWebda().getMetric(type, configuration);
236
+ }
219
237
  /**
220
238
  * Return the full path url based on parameters
221
239
  *
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"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"}
@@ -93,6 +93,7 @@ export declare class AliasStoreParameters extends AbstractAliasStoreParameters {
93
93
  * The RegistryStore will default to a model, then specific models from the
94
94
  * target collection can be exposed via an endpoint like users
95
95
  *
96
+ * @WebdaModda
96
97
  */
97
98
  export declare class AliasStore<T extends CoreModel = CoreModel, K extends AliasStoreParameters = AliasStoreParameters, E extends StoreEvents = StoreEvents> extends AbstractAliasStore<T, K, E> {
98
99
  /**