@theotherwillembotha/node-red-plugincore 0.1.0 → 0.2.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 (134) hide show
  1. package/README.md +616 -220
  2. package/build/GenerateNodes.js +3 -6
  3. package/build/Nodes.html +3 -1504
  4. package/build/Nodes.js +5 -15
  5. package/build/Plugins.html +227 -0
  6. package/build/Plugins.js +18 -8
  7. package/build/core/NodeConstructor.d.ts +9 -16
  8. package/build/core/NodeConstructor.d.ts.map +1 -1
  9. package/build/core/NodeConstructor.js +109 -146
  10. package/build/core/NodeGenerator.d.ts.map +1 -1
  11. package/build/core/NodeGenerator.js +79 -28
  12. package/build/core/NodeManagerRuntime.d.ts +44 -0
  13. package/build/core/NodeManagerRuntime.d.ts.map +1 -0
  14. package/build/core/NodeManagerRuntime.js +140 -0
  15. package/build/core/Utils.d.ts.map +1 -1
  16. package/build/core/logger/service/LoggerService.d.ts +6 -5
  17. package/build/core/logger/service/LoggerService.d.ts.map +1 -1
  18. package/build/core/logger/service/LoggerService.js +51 -20
  19. package/build/core/logger/template/LoggerTemplate.d.ts.map +1 -1
  20. package/build/core/metrics/MetricsDecorator.d.ts +1 -2
  21. package/build/core/metrics/MetricsDecorator.d.ts.map +1 -1
  22. package/build/core/metrics/MetricsDecorator.js +89 -116
  23. package/build/core/metrics/node/CounterMetricConfigNode.d.ts.map +1 -1
  24. package/build/core/metrics/node/CounterMetricConfigNode.js +4 -5
  25. package/build/core/metrics/node/GaugeMetricConfigNode.d.ts.map +1 -1
  26. package/build/core/metrics/node/GaugeMetricConfigNode.js +5 -6
  27. package/build/core/metrics/node/MetricsConfigNode.d.ts +19 -9
  28. package/build/core/metrics/node/MetricsConfigNode.d.ts.map +1 -1
  29. package/build/core/metrics/node/MetricsConfigNode.js +14 -45
  30. package/build/core/metrics/node/TimerMetricConfigNode.d.ts.map +1 -1
  31. package/build/core/metrics/node/TimerMetricConfigNode.js +11 -17
  32. package/build/core/metrics/service/MetricsService.d.ts +110 -114
  33. package/build/core/metrics/service/MetricsService.d.ts.map +1 -1
  34. package/build/core/metrics/service/MetricsService.js +122 -339
  35. package/build/core/metrics/template/CounterMetricTemplate.d.ts.map +1 -1
  36. package/build/core/metrics/template/GaugeMetricTemplate.d.ts.map +1 -1
  37. package/build/core/metrics/template/MetricsTemplate.d.ts.map +1 -1
  38. package/build/core/metrics/template/MetricsTemplate.js +1 -2
  39. package/build/core/metrics/template/TimerMetricTemplate.d.ts.map +1 -1
  40. package/build/core/other/node/DelegatedConfigReferenceNode.d.ts +1 -1
  41. package/build/core/other/node/DelegatedConfigReferenceNode.d.ts.map +1 -1
  42. package/build/core/other/node/DelegatedConfigReferenceNode.js +1 -1
  43. package/build/core/other/service/InputService.d.ts.map +1 -1
  44. package/build/core/other/service/SettingsService.d.ts +1 -2
  45. package/build/core/other/service/SettingsService.d.ts.map +1 -1
  46. package/build/core/other/service/SettingsService.js +19 -5
  47. package/build/core/other/template/BasicTemplate.d.ts.map +1 -1
  48. package/build/core/other/template/SettingsTemplate.d.ts.map +1 -1
  49. package/build/core/state/node/InternalStateConfigNode.d.ts +16 -0
  50. package/build/core/state/node/InternalStateConfigNode.d.ts.map +1 -0
  51. package/build/core/state/node/InternalStateConfigNode.js +89 -0
  52. package/build/core/state/node/StateConfigNode.d.ts +24 -0
  53. package/build/core/state/node/StateConfigNode.d.ts.map +1 -0
  54. package/build/core/state/node/StateConfigNode.js +22 -0
  55. package/build/core/state/service/StateService.d.ts +34 -0
  56. package/build/core/state/service/StateService.d.ts.map +1 -0
  57. package/build/core/state/service/StateService.js +201 -0
  58. package/build/core/state/template/StateTemplate.d.ts +8 -0
  59. package/build/core/state/template/StateTemplate.d.ts.map +1 -0
  60. package/build/core/state/template/StateTemplate.js +11 -0
  61. package/build/core/tagging/ServiceDescriptionDecorator.d.ts +10 -0
  62. package/build/core/tagging/ServiceDescriptionDecorator.d.ts.map +1 -0
  63. package/build/core/tagging/ServiceDescriptionDecorator.js +10 -0
  64. package/build/core/tagging/service/NodeTypeService.d.ts +1 -2
  65. package/build/core/tagging/service/NodeTypeService.d.ts.map +1 -1
  66. package/build/core/tagging/service/NodeTypeService.js +19 -5
  67. package/build/core/ui/template/ScriptEditorTemplate.d.ts.map +1 -1
  68. package/build/core/ui/template/UIHelperTemplate.d.ts.map +1 -1
  69. package/build/core/webhook/node/WebhookServerConfigNode.d.ts.map +1 -1
  70. package/build/core/webhook/service/ReverseProxyTypeService.d.ts.map +1 -1
  71. package/build/core/webhook/service/WebhookServerService.d.ts +3 -4
  72. package/build/core/webhook/service/WebhookServerService.d.ts.map +1 -1
  73. package/build/core/webhook/service/WebhookServerService.js +48 -18
  74. package/build/core/webhook/template/WebhookTemplate.d.ts.map +1 -1
  75. package/build/index.d.ts +5 -2
  76. package/build/index.d.ts.map +1 -1
  77. package/build/index.js +6 -2
  78. package/build/runtime/NodeManagerRuntime.js +140 -0
  79. package/documentation/CounterMetricConfigNode.png +0 -0
  80. package/documentation/GaugeMetricConfigNode.png +0 -0
  81. package/documentation/LoggerTemplate.png +0 -0
  82. package/documentation/MetricsTemplate.png +0 -0
  83. package/documentation/StateTemplate.png +0 -0
  84. package/documentation/TimerMetricConfigNode_histogram.png +0 -0
  85. package/documentation/TimerMetricConfigNode_summary.png +0 -0
  86. package/documentation/WebhookServerConfigNode.png +0 -0
  87. package/documentation/WebhookTemplate.png +0 -0
  88. package/package.json +4 -10
  89. package/src/GenerateNodes.ts +7 -11
  90. package/src/core/NodeConstructor.ts +130 -186
  91. package/src/core/NodeGenerator.ts +88 -33
  92. package/src/core/NodeManagerRuntime.ts +179 -0
  93. package/src/core/logger/service/LoggerService.ts +39 -26
  94. package/src/core/logger/template/LoggerTemplate.html +11 -6
  95. package/src/core/metrics/MetricsDecorator.ts +140 -168
  96. package/src/core/metrics/node/CounterMetricConfigNode.ts +20 -20
  97. package/src/core/metrics/node/GaugeMetricConfigNode.ts +24 -25
  98. package/src/core/metrics/node/MetricsConfigNode.ts +29 -48
  99. package/src/core/metrics/node/TimerMetricConfigNode.ts +50 -59
  100. package/src/core/metrics/service/MetricsService.ts +214 -489
  101. package/src/core/metrics/template/CounterMetricTemplate.html +0 -1
  102. package/src/core/metrics/template/GaugeMetricTemplate.html +1 -1
  103. package/src/core/metrics/template/MetricsTemplate.html +132 -13
  104. package/src/core/metrics/template/MetricsTemplate.ts +3 -4
  105. package/src/core/other/node/DelegatedConfigReferenceNode.ts +1 -1
  106. package/src/core/other/service/SettingsService.ts +6 -10
  107. package/src/core/other/template/BasicTemplate.html +1 -1
  108. package/src/core/state/node/InternalStateConfigNode.html +77 -0
  109. package/src/core/state/node/InternalStateConfigNode.ts +102 -0
  110. package/src/core/state/node/StateConfigNode.ts +29 -0
  111. package/src/core/state/service/StateService.ts +180 -0
  112. package/src/core/state/template/StateTemplate.html +244 -0
  113. package/src/core/state/template/StateTemplate.ts +17 -0
  114. package/src/core/tagging/ServiceDescriptionDecorator.ts +23 -0
  115. package/src/core/tagging/service/NodeTypeService.ts +6 -11
  116. package/src/core/ui/template/UIHelperTemplate.html +41 -26
  117. package/src/core/webhook/service/WebhookServerService.ts +39 -23
  118. package/src/core/webhook/template/WebhookTemplate.html +28 -35
  119. package/src/index.ts +7 -2
  120. package/build/core/logger/node/ConsoleLoggerConfigNode.d.ts +0 -20
  121. package/build/core/logger/node/ConsoleLoggerConfigNode.d.ts.map +0 -1
  122. package/build/core/logger/node/ConsoleLoggerConfigNode.js +0 -62
  123. package/build/core/logger/node/RestLoggerConfigNode.d.ts +0 -40
  124. package/build/core/logger/node/RestLoggerConfigNode.d.ts.map +0 -1
  125. package/build/core/logger/node/RestLoggerConfigNode.js +0 -128
  126. package/documentation/ConsoleLoggerConfigNode.png +0 -0
  127. package/documentation/MetricsConfigNode.png +0 -0
  128. package/documentation/RestLoggerConfigNode.png +0 -0
  129. package/documentation/TimerMetricConfigNode.png +0 -0
  130. package/documentation/WebhookNode.png +0 -0
  131. package/src/core/logger/node/ConsoleLoggerConfigNode.html +0 -90
  132. package/src/core/logger/node/ConsoleLoggerConfigNode.ts +0 -71
  133. package/src/core/logger/node/RestLoggerConfigNode.html +0 -183
  134. package/src/core/logger/node/RestLoggerConfigNode.ts +0 -170
@@ -13,15 +13,14 @@ exports.GaugeMetricConfigNode = void 0;
13
13
  const NodeConstructor_1 = require("../../NodeConstructor");
14
14
  const MetricsService_1 = require("../service/MetricsService");
15
15
  const NodeGenerator_1 = require("../../NodeGenerator");
16
- const MetricsConfigNode_1 = require("./MetricsConfigNode");
17
16
  const MetricsTemplate_1 = require("../template/MetricsTemplate");
18
17
  const NodeDescriptionDecorator_1 = require("../../tagging/NodeDescriptionDecorator");
19
18
  let GaugeMetricConfigNode = class GaugeMetricConfigNode extends NodeConstructor_1.ConfigNode {
20
19
  constructor(node, config) {
21
20
  super(node, config);
22
- let _this = this;
23
- this._metrics = NodeConstructor_1.NodeManager.RED.nodes.getNode(config.metricsReference).node().metrics();
24
- let gaugeConfig = {
21
+ const refNode = config.metricsEnabled && config.metricsReference ? NodeConstructor_1.NodeManager.RED.nodes.getNode(config.metricsReference) : null;
22
+ this._metrics = refNode ? refNode.node().metrics() : new MetricsService_1.DoNothingMetricsContainer();
23
+ const gaugeConfig = {
25
24
  metricname: config.name,
26
25
  metricdescription: config.description,
27
26
  node: {
@@ -33,7 +32,7 @@ let GaugeMetricConfigNode = class GaugeMetricConfigNode extends NodeConstructor_
33
32
  };
34
33
  this._gauge = this._metrics.gauge(gaugeConfig);
35
34
  if (config.reset) {
36
- _this._gauge.reset();
35
+ this._gauge.reset();
37
36
  }
38
37
  }
39
38
  metrics() {
@@ -54,7 +53,7 @@ exports.GaugeMetricConfigNode = GaugeMetricConfigNode = __decorate([
54
53
  templates: [
55
54
  { template: MetricsTemplate_1.MetricsTemplate, config: {} }
56
55
  ],
57
- dependencies: [MetricsConfigNode_1.MetricsConfigNode, MetricsService_1.MetricsService],
56
+ dependencies: [MetricsService_1.MetricsService],
58
57
  tags: ["Core", "Metric"]
59
58
  }),
60
59
  __metadata("design:paramtypes", [Object, Object])
@@ -1,14 +1,24 @@
1
1
  import { Node } from "node-red";
2
2
  import { ConfigNode, ConfigNodeConfig } from "../../NodeConstructor";
3
- import { MetricsContainer } from "../service/MetricsService";
4
- import { WebhookTemplateConfig } from "../../webhook/template/WebhookTemplate";
5
- interface MetricsConfigNodeConfig extends ConfigNodeConfig, WebhookTemplateConfig {
6
- }
7
- export declare class MetricsConfigNode extends ConfigNode<MetricsConfigNodeConfig> {
8
- private _metrics;
9
- constructor(node: Node, config: MetricsConfigNodeConfig);
3
+ import { MetricsContainer, MetricsConfig } from "../service/MetricsService";
4
+ /**
5
+ * Abstract base for all metrics provider config nodes.
6
+ *
7
+ * Concrete implementations (e.g. PrometheusMetricsConfigNode) extend this class,
8
+ * decorate with @NodeDescription + tags: ["MetricsProvider"], and implement
9
+ * createContainer() to return their backend-specific MetricsContainer.
10
+ *
11
+ * This class is intentionally NOT decorated with @NodeDescription - it is never
12
+ * registered as a Node-RED node type directly. Only concrete subclasses are registered.
13
+ */
14
+ export declare abstract class MetricsConfigNode extends ConfigNode<ConfigNodeConfig> {
15
+ constructor(node: Node, config: ConfigNodeConfig);
16
+ /**
17
+ * Called once on construction to create the backend MetricsContainer.
18
+ * MetricsService preserves the container across redeploys if the config
19
+ * has not changed, so metric state (counters, gauges) is not reset.
20
+ */
21
+ protected abstract createContainer(config: MetricsConfig): MetricsContainer;
10
22
  metrics(): MetricsContainer;
11
- private onWebhookRequest;
12
23
  }
13
- export {};
14
24
  //# sourceMappingURL=MetricsConfigNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetricsConfigNode.d.ts","sourceRoot":"","sources":["../../../../src/core/metrics/node/MetricsConfigNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAkB,MAAM,uBAAuB,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAiB,MAAM,2BAA2B,CAAA;AAE3E,OAAO,EAAmB,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAehG,UAAU,uBAAwB,SAAQ,gBAAgB,EAAE,qBAAqB;CAChF;AAED,qBAYa,iBAAkB,SAAQ,UAAU,CAAC,uBAAuB,CAAC;IACtE,OAAO,CAAC,QAAQ,CAAoB;gBAExB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,uBAAuB;IAOhD,OAAO,IAAG,gBAAgB;IAKjC,OAAO,CAAC,gBAAgB;CAI3B"}
1
+ {"version":3,"file":"MetricsConfigNode.d.ts","sourceRoot":"","sources":["../../../../src/core/metrics/node/MetricsConfigNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAkB,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE3F;;;;;;;;;GASG;AACH,8BAAsB,iBAAkB,SAAQ,UAAU,CAAC,gBAAgB,CAAC;IAExE,YAAY,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAO/C;IAED;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,gBAAgB,CAAC;IAErE,OAAO,IAAI,gBAAgB,CAEjC;CACJ"}
@@ -1,56 +1,25 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.MetricsConfigNode = void 0;
13
4
  const NodeConstructor_1 = require("../../NodeConstructor");
14
5
  const MetricsService_1 = require("../service/MetricsService");
15
- const NodeGenerator_1 = require("../../NodeGenerator");
16
- const WebhookTemplate_1 = require("../../webhook/template/WebhookTemplate");
17
- const WebhookDecorator_1 = require("../../webhook/WebhookDecorator");
18
- const WebhookServerService_1 = require("../../webhook/service/WebhookServerService");
19
- const prom_client_1 = require("prom-client");
20
- const NodeDescriptionDecorator_1 = require("../../tagging/NodeDescriptionDecorator");
21
- let MetricsConfigNode = class MetricsConfigNode extends NodeConstructor_1.ConfigNode {
6
+ /**
7
+ * Abstract base for all metrics provider config nodes.
8
+ *
9
+ * Concrete implementations (e.g. PrometheusMetricsConfigNode) extend this class,
10
+ * decorate with @NodeDescription + tags: ["MetricsProvider"], and implement
11
+ * createContainer() to return their backend-specific MetricsContainer.
12
+ *
13
+ * This class is intentionally NOT decorated with @NodeDescription - it is never
14
+ * registered as a Node-RED node type directly. Only concrete subclasses are registered.
15
+ */
16
+ class MetricsConfigNode extends NodeConstructor_1.ConfigNode {
22
17
  constructor(node, config) {
23
18
  super(node, config);
24
- let _this = this;
25
- this._metrics = MetricsService_1.MetricsService.get({ metricsEnabled: false, metricsReference: this.id() });
19
+ MetricsService_1.MetricsService.register(config.id, { id: config.id }, () => this.createContainer({ id: config.id }));
26
20
  }
27
21
  metrics() {
28
- return this._metrics;
22
+ return MetricsService_1.MetricsService.get({ metricsEnabled: true, metricsReference: this.id() });
29
23
  }
30
- onWebhookRequest(request, response) {
31
- response.set('Content-Type', prom_client_1.register.contentType);
32
- this._metrics.registry().metrics().then((data) => response.status(200).send(data));
33
- }
34
- };
24
+ }
35
25
  exports.MetricsConfigNode = MetricsConfigNode;
36
- __decorate([
37
- (0, WebhookDecorator_1.Webhook)({ name: "MetricsConfigNode", methods: [WebhookServerService_1.EndpointMethodType.GET] }),
38
- __metadata("design:type", Function),
39
- __metadata("design:paramtypes", [Object, Object]),
40
- __metadata("design:returntype", void 0)
41
- ], MetricsConfigNode.prototype, "onWebhookRequest", null);
42
- exports.MetricsConfigNode = MetricsConfigNode = __decorate([
43
- (0, NodeDescriptionDecorator_1.NodeDescription)({
44
- id: "MetricsConfigNode",
45
- name: "Metrics Config Node",
46
- group: "config",
47
- sourceFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "MetricsConfigNode.html",
48
- package: "@theotherwillembotha/node-red-plugincore",
49
- templates: [
50
- { template: WebhookTemplate_1.WebhookTemplate, config: {} }
51
- ],
52
- dependencies: [MetricsService_1.MetricsService],
53
- tags: []
54
- }),
55
- __metadata("design:paramtypes", [Object, Object])
56
- ], MetricsConfigNode);
@@ -1 +1 @@
1
- {"version":3,"file":"TimerMetricConfigNode.d.ts","sourceRoot":"","sources":["../../../../src/core/metrics/node/TimerMetricConfigNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAA+B,MAAM,uBAAuB,CAAA;AACjG,OAAO,EAAE,gBAAgB,EAAkB,UAAU,EAAE,eAAe,EAA8C,cAAc,EAAE,aAAa,EAAC,MAAM,2BAA2B,CAAA;AAGnL,OAAO,EAAmB,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAK1D,UAAU,2BAA4B,SAAQ,gBAAgB,EAAE,qBAAqB;IACjF,WAAW,EAAC,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC;IAEhC,UAAU,EAAE,UAAU,CAAC;IACvB,2BAA2B,EAAC,MAAM,CAAC;IACnC,uBAAuB,EAAC,MAAM,CAAC;IAC/B,0BAA0B,EAAC,MAAM,CAAC;IAClC,uBAAuB,EAAC,MAAM,CAAC;IAC/B,4BAA4B,EAAC,MAAM,CAAC;IACpC,6BAA6B,EAAC,MAAM,CAAC;IACrC,4BAA4B,EAAC,MAAM,CAAC;IAEpC,cAAc,EAAC,cAAc,CAAC;IAC9B,+BAA+B,EAAC,MAAM,CAAC;CAC1C;AAED,qBAYa,qBAAsB,SAAQ,UAAU,CAAC,2BAA2B,CAAC;IAC9E,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,MAAM,CAAiC;gBAEnC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,2BAA2B;IAiEpD,OAAO,IAAG,gBAAgB;IAI1B,KAAK,IAAG,eAAe,GAAC,aAAa;CAG/C"}
1
+ {"version":3,"file":"TimerMetricConfigNode.d.ts","sourceRoot":"","sources":["../../../../src/core/metrics/node/TimerMetricConfigNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAe,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAkB,UAAU,EAAE,eAAe,EAA8C,cAAc,EAAE,aAAa,EAA4B,MAAM,2BAA2B,CAAA;AAE9M,OAAO,EAAmB,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,UAAU,2BAA4B,SAAQ,gBAAgB,EAAE,qBAAqB;IACjF,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,mBAAmB,CAAC;IAEhC,UAAU,EAAE,UAAU,CAAC;IACvB,2BAA2B,EAAE,MAAM,CAAC;IACpC,uBAAuB,EAAE,MAAM,CAAC;IAChC,0BAA0B,EAAE,MAAM,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;IAChC,4BAA4B,EAAE,MAAM,CAAC;IACrC,6BAA6B,EAAE,MAAM,CAAC;IACtC,4BAA4B,EAAE,MAAM,CAAC;IAErC,cAAc,EAAE,cAAc,CAAC;IAC/B,+BAA+B,EAAE,MAAM,CAAC;CAC3C;AAED,qBAYa,qBAAsB,SAAQ,UAAU,CAAC,2BAA2B,CAAC;IAC9E,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,MAAM,CAAmC;IAEjD,YAAY,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,2BAA2B,EAyD1D;IAEM,OAAO,IAAI,gBAAgB,CAEjC;IAEM,KAAK,IAAI,eAAe,GAAG,aAAa,CAE9C;CACJ"}
@@ -13,40 +13,34 @@ exports.TimerMetricConfigNode = void 0;
13
13
  const NodeConstructor_1 = require("../../NodeConstructor");
14
14
  const MetricsService_1 = require("../service/MetricsService");
15
15
  const NodeGenerator_1 = require("../../NodeGenerator");
16
- const MetricsConfigNode_1 = require("./MetricsConfigNode");
17
16
  const MetricsTemplate_1 = require("../template/MetricsTemplate");
18
17
  const MetricsDecorator_1 = require("../MetricsDecorator");
19
18
  const NodeDescriptionDecorator_1 = require("../../tagging/NodeDescriptionDecorator");
20
19
  let TimerMetricConfigNode = class TimerMetricConfigNode extends NodeConstructor_1.ConfigNode {
21
20
  constructor(node, config) {
22
21
  super(node, config);
23
- let _this = this;
24
- this._metrics = NodeConstructor_1.NodeManager.RED.nodes.getNode(config.metricsReference).node().metrics();
25
- let bucketConfig = {};
22
+ const refNode = config.metricsEnabled && config.metricsReference ? NodeConstructor_1.NodeManager.RED.nodes.getNode(config.metricsReference) : null;
23
+ this._metrics = refNode ? refNode.node().metrics() : new MetricsService_1.DoNothingMetricsContainer();
24
+ const bucketConfig = {};
26
25
  switch (config.buckettype) {
27
- case MetricsService_1.BucketType.default: {
28
- // do nothing
29
- break;
30
- }
31
- case MetricsService_1.BucketType.manual: {
26
+ case MetricsService_1.BucketType.manual:
32
27
  bucketConfig.intervals = config.buckettype_manual_intervals.split(",").map(i => Number.parseFloat(i.trim()));
33
28
  break;
34
- }
35
- case MetricsService_1.BucketType.linear: {
29
+ case MetricsService_1.BucketType.linear:
36
30
  bucketConfig.start = config.buckettype_linear_start;
37
31
  bucketConfig.interval = config.buckettype_linear_interval;
38
32
  bucketConfig.count = config.buckettype_linear_count;
39
33
  break;
40
- }
41
- case MetricsService_1.BucketType.exponential: {
34
+ case MetricsService_1.BucketType.exponential:
42
35
  bucketConfig.start = config.buckettype_exponential_start;
43
36
  bucketConfig.factor = config.buckettype_exponential_factor;
44
37
  bucketConfig.count = config.buckettype_exponential_count;
45
38
  break;
46
- }
39
+ default:
40
+ break;
47
41
  }
48
42
  if (config.metricType === MetricsDecorator_1.MetricCollectorType.histogram) {
49
- let timerConfig = {
43
+ const timerConfig = {
50
44
  node: {
51
45
  id: this.id(),
52
46
  name: this.name(),
@@ -61,7 +55,7 @@ let TimerMetricConfigNode = class TimerMetricConfigNode extends NodeConstructor_
61
55
  this._timer = this._metrics.histogram(timerConfig);
62
56
  }
63
57
  if (config.metricType === MetricsDecorator_1.MetricCollectorType.summary) {
64
- let timerConfig = {
58
+ const timerConfig = {
65
59
  node: {
66
60
  id: this.id(),
67
61
  name: this.name(),
@@ -94,7 +88,7 @@ exports.TimerMetricConfigNode = TimerMetricConfigNode = __decorate([
94
88
  templates: [
95
89
  { template: MetricsTemplate_1.MetricsTemplate, config: { isConfigNode: true } }
96
90
  ],
97
- dependencies: [MetricsConfigNode_1.MetricsConfigNode, MetricsService_1.MetricsService],
91
+ dependencies: [MetricsService_1.MetricsService],
98
92
  tags: ["Core", "Metric"]
99
93
  }),
100
94
  __metadata("design:paramtypes", [Object, Object])
@@ -1,6 +1,36 @@
1
- import { BaseNode, BaseNodeConfig, BaseService, FlowDeployment, ServiceDescriptor } from "../../NodeConstructor";
2
- import client, { Registry } from "prom-client";
1
+ import { BaseNode, BaseNodeConfig, BaseService, FlowDeployment } from "../../NodeConstructor";
3
2
  import { NodeAPI, NodeAPISettingsWithData } from "node-red";
3
+ export declare enum MetricCapability {
4
+ Counter = "Counter",
5
+ Gauge = "Gauge",
6
+ Histogram = "Histogram",
7
+ Summary = "Summary"
8
+ }
9
+ export type MetricsReference = {
10
+ metricsEnabled: boolean;
11
+ metricsReference: string;
12
+ };
13
+ export interface MetricsConfig {
14
+ id: string;
15
+ }
16
+ export interface NodeReference {
17
+ name: string;
18
+ type: string;
19
+ flow: string;
20
+ id: string;
21
+ }
22
+ export interface MetricConfig {
23
+ node: NodeReference;
24
+ metricname: string;
25
+ metricdescription?: string;
26
+ }
27
+ interface Labels {
28
+ flow: string;
29
+ type: string;
30
+ name: string;
31
+ id: string;
32
+ metric: string;
33
+ }
4
34
  export declare abstract class Metric<ConfigType extends MetricConfig> {
5
35
  private _config;
6
36
  private _labels;
@@ -8,53 +38,59 @@ export declare abstract class Metric<ConfigType extends MetricConfig> {
8
38
  labels(): Labels;
9
39
  config(): ConfigType;
10
40
  }
11
- export type MetricsReference = {
12
- metricsEnabled: boolean;
13
- metricsReference: string;
14
- };
15
- type CounterCallback = {
16
- (state: CounterState): void;
17
- };
18
41
  export type CounterState = {
19
42
  value: number;
20
43
  labels: {};
21
44
  };
45
+ export type CounterCallback = (state: CounterState) => void;
22
46
  export interface CounterMetricConfig extends MetricConfig {
23
47
  }
24
- export declare class CounterMetric extends Metric<CounterMetricConfig> {
25
- private counter;
26
- private internalCounter;
27
- private subscribers;
28
- constructor(id: string, config: CounterMetricConfig, registry: client.Registry);
29
- inc(): CounterMetric;
30
- get(): Promise<CounterState>;
48
+ export interface CounterMetric {
49
+ inc(): this;
31
50
  reset(): void;
51
+ get(): Promise<CounterState>;
32
52
  subscribe(node: BaseNode<BaseNodeConfig>, callback: CounterCallback): void;
33
53
  unsubscribe(node: BaseNode<BaseNodeConfig>): void;
34
54
  }
35
- type GaugeCallback = {
36
- (state: GaugeState): void;
37
- };
38
- export interface GaugeState {
39
- value: number;
55
+ export declare class DoNothingCounterMetric implements CounterMetric {
56
+ inc(): this;
57
+ reset(): void;
58
+ get(): Promise<CounterState>;
59
+ subscribe(_node: BaseNode<BaseNodeConfig>, _callback: CounterCallback): void;
60
+ unsubscribe(_node: BaseNode<BaseNodeConfig>): void;
40
61
  }
62
+ export type GaugeState = {
63
+ value: number;
64
+ };
65
+ export type GaugeCallback = (state: GaugeState) => void;
41
66
  export interface GaugeMetricConfig extends MetricConfig {
42
67
  }
43
- export declare class GaugeMetric extends Metric<GaugeMetricConfig> {
44
- private collector;
45
- private gauge;
46
- private subscribers;
47
- constructor(id: string, config: GaugeMetricConfig, registry: client.Registry);
48
- inc(): GaugeMetric;
49
- dec(): GaugeMetric;
50
- get(): GaugeState;
68
+ export interface GaugeMetric {
69
+ inc(): this;
70
+ dec(): this;
51
71
  reset(): void;
72
+ get(): GaugeState;
52
73
  subscribe(node: BaseNode<BaseNodeConfig>, callback: GaugeCallback): void;
53
74
  unsubscribe(node: BaseNode<BaseNodeConfig>): void;
54
75
  }
55
- type HistogramCallback = {
56
- (state: HistogramState): void;
76
+ export declare class DoNothingGaugeMetric implements GaugeMetric {
77
+ inc(): this;
78
+ dec(): this;
79
+ reset(): void;
80
+ get(): GaugeState;
81
+ subscribe(_node: BaseNode<BaseNodeConfig>, _callback: GaugeCallback): void;
82
+ unsubscribe(_node: BaseNode<BaseNodeConfig>): void;
83
+ }
84
+ export type HistogramState = {
85
+ average(): number | undefined;
57
86
  };
87
+ export type HistogramCallback = (state: HistogramState) => void;
88
+ export declare enum BucketType {
89
+ default = "default",
90
+ manual = "manual",
91
+ linear = "linear",
92
+ exponential = "exponential"
93
+ }
58
94
  export interface DefaultBucketConfig {
59
95
  }
60
96
  export interface ManualBucketConfig {
@@ -74,114 +110,74 @@ export interface HistogramMetricConfig extends MetricConfig {
74
110
  buckettype: BucketType;
75
111
  bucketconfig: DefaultBucketConfig | ManualBucketConfig | LinearBucketConfig | ExponentialBucketConfig;
76
112
  }
77
- export declare enum BucketType {
78
- default = "default",
79
- manual = "manual",
80
- linear = "linear",
81
- exponential = "exponential"
82
- }
83
- export declare class HistogramMetric extends Metric<HistogramMetricConfig> {
84
- private histogram;
85
- private subscribers;
86
- constructor(id: string, config: HistogramMetricConfig, registry: Registry);
113
+ export interface HistogramMetric {
87
114
  observe(value: number): void;
88
- get(): Promise<HistogramState>;
89
115
  subscribe(node: BaseNode<BaseNodeConfig>, callback: HistogramCallback): void;
90
116
  unsubscribe(node: BaseNode<BaseNodeConfig>): void;
91
117
  }
92
- declare class HistogramState {
93
- private _values;
94
- private _average;
95
- constructor(values: {
96
- labels: any;
97
- value: number;
98
- metricName?: string;
99
- }[]);
100
- average(): number | undefined;
101
- }
102
- interface PercentileConfig {
118
+ export declare class DoNothingHistogramMetric implements HistogramMetric {
119
+ observe(_value: number): void;
120
+ subscribe(_node: BaseNode<BaseNodeConfig>, _callback: HistogramCallback): void;
121
+ unsubscribe(_node: BaseNode<BaseNodeConfig>): void;
103
122
  }
104
- declare class SummaryState {
105
- private _values;
106
- private _average;
107
- constructor(values: {
108
- labels: any;
109
- value: number;
110
- metricName?: string;
111
- }[]);
123
+ export type SummaryState = {
112
124
  average(): number | undefined;
125
+ };
126
+ export type SummaryCallback = (state: SummaryState) => void;
127
+ export declare enum PercentileType {
128
+ default = "default",
129
+ manual = "manual"
113
130
  }
114
- type SummaryCallback = (state: SummaryState) => void;
115
- export interface DefaultPercentileConfig extends PercentileConfig {
131
+ export interface DefaultPercentileConfig {
116
132
  }
117
- export interface ManualPercentileConfig extends PercentileConfig {
133
+ export interface ManualPercentileConfig {
118
134
  percentiles: number[];
119
135
  }
120
136
  export interface SummaryMetricConfig extends MetricConfig {
121
137
  percentileType: PercentileType;
122
- percentileConfig: PercentileConfig;
123
- }
124
- export declare enum PercentileType {
125
- default = "default",
126
- manual = "manual"
138
+ percentileConfig: DefaultPercentileConfig | ManualPercentileConfig;
127
139
  }
128
- export declare class SummaryMetric extends Metric<SummaryMetricConfig> {
129
- private summary;
130
- private subscribers;
131
- constructor(id: string, config: SummaryMetricConfig, registry: Registry);
140
+ export interface SummaryMetric {
132
141
  observe(value: number): void;
133
- get(): Promise<SummaryState>;
134
142
  subscribe(node: BaseNode<BaseNodeConfig>, callback: SummaryCallback): void;
135
143
  unsubscribe(node: BaseNode<BaseNodeConfig>): void;
136
144
  }
137
- interface Labels {
138
- flow: string;
139
- type: string;
140
- name: string;
141
- id: string;
142
- metric: string;
143
- }
144
- export declare class MetricsContainer {
145
- private _config;
146
- private _registry;
147
- private counters;
148
- private histograms;
149
- private gauges;
150
- private summaries;
151
- constructor(config: MetricsConfig);
145
+ export declare class DoNothingSummaryMetric implements SummaryMetric {
146
+ observe(_value: number): void;
147
+ subscribe(_node: BaseNode<BaseNodeConfig>, _callback: SummaryCallback): void;
148
+ unsubscribe(_node: BaseNode<BaseNodeConfig>): void;
149
+ }
150
+ export declare abstract class MetricsContainer {
151
+ abstract supports(capability: MetricCapability): boolean;
152
+ abstract hasChanged(config: MetricsConfig): boolean;
153
+ abstract close(): void;
154
+ counter(_config: CounterMetricConfig): CounterMetric;
155
+ gauge(_config: GaugeMetricConfig): GaugeMetric;
156
+ histogram(_config: HistogramMetricConfig): HistogramMetric;
157
+ summary(_config: SummaryMetricConfig): SummaryMetric;
158
+ }
159
+ export declare class DoNothingMetricsContainer extends MetricsContainer {
160
+ supports(_capability: MetricCapability): boolean;
161
+ hasChanged(_config: MetricsConfig): boolean;
152
162
  close(): void;
153
- registry(): client.Registry;
154
- hasChanged(config: MetricsConfig): boolean;
155
- counter(config: CounterMetricConfig): CounterMetric;
156
- gauge(config: GaugeMetricConfig): GaugeMetric;
157
- histogram(config: HistogramMetricConfig): HistogramMetric;
158
- summary(config: SummaryMetricConfig): SummaryMetric;
163
+ counter(_config: CounterMetricConfig): CounterMetric;
164
+ gauge(_config: GaugeMetricConfig): GaugeMetric;
165
+ histogram(_config: HistogramMetricConfig): HistogramMetric;
166
+ summary(_config: SummaryMetricConfig): SummaryMetric;
159
167
  }
160
168
  export declare class MetricsService extends BaseService {
161
- private static metrics;
162
169
  private red;
163
170
  constructor();
164
171
  init(red: NodeAPI<NodeAPISettingsWithData>): void;
165
- deinit(red: NodeAPI<NodeAPISettingsWithData>): void;
172
+ deinit(_red: NodeAPI<NodeAPISettingsWithData>): void;
166
173
  onDeploy(deployment: FlowDeployment): Promise<void>;
174
+ /**
175
+ * Called by MetricsConfigNode subclasses on construction.
176
+ * Preserves an existing container across redeploys if the config has not changed
177
+ * (so counters/gauges are not reset unnecessarily).
178
+ */
179
+ static register(id: string, config: MetricsConfig, factory: () => MetricsContainer): void;
167
180
  static get(reference: MetricsReference): MetricsContainer;
168
- static getServiceDescriptor(): ServiceDescriptor;
169
- }
170
- export interface MetricsConfig {
171
- id: string;
172
- metricsPath: string;
173
- metricsPort: number;
174
- }
175
- export interface NodeReference {
176
- name: string;
177
- type: string;
178
- flow: string;
179
- id: string;
180
- }
181
- export interface MetricConfig {
182
- node: NodeReference;
183
- metricname: string;
184
- metricdescription?: string;
185
181
  }
186
182
  export {};
187
183
  //# sourceMappingURL=MetricsService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetricsService.d.ts","sourceRoot":"","sources":["../../../../src/core/metrics/service/MetricsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MetricsService.d.ts","sourceRoot":"","sources":["../../../../src/core/metrics/service/MetricsService.ts"],"names":[],"mappings":"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"}