@interopio/otel 0.0.1 → 0.0.3

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 (158) hide show
  1. package/dist/builder.d.ts +14 -0
  2. package/dist/builder.js +47 -0
  3. package/dist/builder.js.map +1 -0
  4. package/dist/container.d.ts +4 -2
  5. package/dist/container.js +10 -1
  6. package/dist/container.js.map +1 -1
  7. package/dist/containerBuilder.d.ts +6 -4
  8. package/dist/containerBuilder.js +8 -1
  9. package/dist/containerBuilder.js.map +1 -1
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.js +3 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/metrics/application/count.d.ts +4 -3
  14. package/dist/metrics/application/count.js +15 -6
  15. package/dist/metrics/application/count.js.map +1 -1
  16. package/dist/metrics/application/cpu.d.ts +1 -1
  17. package/dist/metrics/application/cpu.js +12 -5
  18. package/dist/metrics/application/cpu.js.map +1 -1
  19. package/dist/metrics/application/duration.d.ts +2 -1
  20. package/dist/metrics/application/duration.js +11 -6
  21. package/dist/metrics/application/duration.js.map +1 -1
  22. package/dist/metrics/application/durationHistogram.js +3 -3
  23. package/dist/metrics/application/durationHistogram.js.map +1 -1
  24. package/dist/metrics/application/durationSum.js +2 -2
  25. package/dist/metrics/application/durationSum.js.map +1 -1
  26. package/dist/metrics/application/memory.d.ts +1 -1
  27. package/dist/metrics/application/memory.js +14 -7
  28. package/dist/metrics/application/memory.js.map +1 -1
  29. package/dist/metrics/application/started.d.ts +3 -2
  30. package/dist/metrics/application/started.js +10 -4
  31. package/dist/metrics/application/started.js.map +1 -1
  32. package/dist/metrics/application/startup.d.ts +3 -2
  33. package/dist/metrics/application/startup.js +20 -20
  34. package/dist/metrics/application/startup.js.map +1 -1
  35. package/dist/metrics/application/startupHistogram.js +3 -3
  36. package/dist/metrics/application/startupHistogram.js.map +1 -1
  37. package/dist/metrics/application/stopped.d.ts +3 -2
  38. package/dist/metrics/application/stopped.js +10 -4
  39. package/dist/metrics/application/stopped.js.map +1 -1
  40. package/dist/metrics/base/base.d.ts +5 -10
  41. package/dist/metrics/base/base.js +43 -40
  42. package/dist/metrics/base/base.js.map +1 -1
  43. package/dist/metrics/base/gauge.d.ts +1 -1
  44. package/dist/metrics/base/gauge.js +11 -6
  45. package/dist/metrics/base/gauge.js.map +1 -1
  46. package/dist/metrics/base/null.d.ts +5 -9
  47. package/dist/metrics/base/null.js +7 -19
  48. package/dist/metrics/base/null.js.map +1 -1
  49. package/dist/metrics/builder.d.ts +15 -0
  50. package/dist/metrics/builder.js +44 -0
  51. package/dist/metrics/builder.js.map +1 -0
  52. package/dist/metrics/dependencyBuilder.d.ts +1 -1
  53. package/dist/metrics/dependencyBuilder.js +3 -3
  54. package/dist/metrics/dependencyBuilder.js.map +1 -1
  55. package/dist/metrics/factory.d.ts +2 -2
  56. package/dist/metrics/factory.js +8 -5
  57. package/dist/metrics/factory.js.map +1 -1
  58. package/dist/metrics/factoryBuilder.d.ts +5 -6
  59. package/dist/metrics/factoryBuilder.js +11 -21
  60. package/dist/metrics/factoryBuilder.js.map +1 -1
  61. package/dist/metrics/layout/startup.d.ts +2 -1
  62. package/dist/metrics/layout/startup.js +18 -18
  63. package/dist/metrics/layout/startup.js.map +1 -1
  64. package/dist/metrics/layout/startupHistogram.js +3 -3
  65. package/dist/metrics/layout/startupHistogram.js.map +1 -1
  66. package/dist/metrics/manager.d.ts +7 -6
  67. package/dist/metrics/manager.js +32 -29
  68. package/dist/metrics/manager.js.map +1 -1
  69. package/dist/metrics/platform/startup.d.ts +2 -1
  70. package/dist/metrics/platform/startup.js +14 -19
  71. package/dist/metrics/platform/startup.js.map +1 -1
  72. package/dist/metrics/settingsBuilder.d.ts +11 -4
  73. package/dist/metrics/settingsBuilder.js +57 -23
  74. package/dist/metrics/settingsBuilder.js.map +1 -1
  75. package/dist/metrics/system/cpu.d.ts +2 -1
  76. package/dist/metrics/system/cpu.js +17 -9
  77. package/dist/metrics/system/cpu.js.map +1 -1
  78. package/dist/metrics/system/memory.d.ts +2 -1
  79. package/dist/metrics/system/memory.js +18 -10
  80. package/dist/metrics/system/memory.js.map +1 -1
  81. package/dist/metrics/types.d.ts +15 -12
  82. package/dist/metrics/utils/nullMetricsManager.d.ts +3 -3
  83. package/dist/metrics/utils/nullMetricsManager.js +1 -1
  84. package/dist/metrics/utils/nullMetricsManager.js.map +1 -1
  85. package/dist/metrics/utils/nullPerfProvider.d.ts +2 -2
  86. package/dist/metrics/utils/nullPerfProvider.js +2 -2
  87. package/dist/metrics/utils/nullPerfProvider.js.map +1 -1
  88. package/dist/types.d.ts +7 -3
  89. package/dist/utils/nullLogger.d.ts +8 -0
  90. package/dist/utils/nullLogger.js +22 -0
  91. package/dist/utils/nullLogger.js.map +1 -0
  92. package/dist/utils/nullManager.d.ts +1 -0
  93. package/dist/utils/nullManager.js +5 -0
  94. package/dist/utils/nullManager.js.map +1 -1
  95. package/dist/utils/validator.d.ts +2 -1
  96. package/dist/utils/validator.js +5 -0
  97. package/dist/utils/validator.js.map +1 -1
  98. package/dist/validation/builder.d.ts +4 -0
  99. package/dist/validation/builder.js +13 -0
  100. package/dist/validation/builder.js.map +1 -0
  101. package/dist/validation/container.d.ts +4 -0
  102. package/dist/validation/container.js +15 -0
  103. package/dist/validation/container.js.map +1 -0
  104. package/dist/validation/containerBuilder.d.ts +4 -0
  105. package/dist/validation/containerBuilder.js +15 -0
  106. package/dist/validation/containerBuilder.js.map +1 -0
  107. package/dist/validation/metrics/application/count.d.ts +10 -0
  108. package/dist/validation/metrics/application/count.js +21 -0
  109. package/dist/validation/metrics/application/count.js.map +1 -0
  110. package/dist/validation/metrics/application/duration.d.ts +8 -0
  111. package/dist/validation/metrics/application/duration.js +17 -0
  112. package/dist/validation/metrics/application/duration.js.map +1 -0
  113. package/dist/validation/metrics/application/started.d.ts +7 -0
  114. package/dist/validation/metrics/application/started.js +16 -0
  115. package/dist/validation/metrics/application/started.js.map +1 -0
  116. package/dist/validation/metrics/application/startup.d.ts +8 -0
  117. package/dist/validation/metrics/application/startup.js +17 -0
  118. package/dist/validation/metrics/application/startup.js.map +1 -0
  119. package/dist/validation/metrics/application/stopped.d.ts +7 -0
  120. package/dist/validation/metrics/application/stopped.js +16 -0
  121. package/dist/validation/metrics/application/stopped.js.map +1 -0
  122. package/dist/validation/metrics/base/base.d.ts +5 -0
  123. package/dist/validation/metrics/base/base.js +20 -0
  124. package/dist/validation/metrics/base/base.js.map +1 -0
  125. package/dist/validation/metrics/base/gauge.d.ts +4 -0
  126. package/dist/validation/metrics/base/gauge.js +12 -0
  127. package/dist/validation/metrics/base/gauge.js.map +1 -0
  128. package/dist/validation/metrics/builder.d.ts +4 -0
  129. package/dist/validation/metrics/builder.js +14 -0
  130. package/dist/validation/metrics/builder.js.map +1 -0
  131. package/dist/validation/metrics/factory.d.ts +4 -0
  132. package/dist/validation/metrics/factory.js +13 -0
  133. package/dist/validation/metrics/factory.js.map +1 -0
  134. package/dist/validation/metrics/factoryBuilder.d.ts +5 -0
  135. package/dist/validation/metrics/factoryBuilder.js +25 -0
  136. package/dist/validation/metrics/factoryBuilder.js.map +1 -0
  137. package/dist/validation/metrics/layout/startup.d.ts +8 -0
  138. package/dist/validation/metrics/layout/startup.js +17 -0
  139. package/dist/validation/metrics/layout/startup.js.map +1 -0
  140. package/dist/validation/metrics/manager.d.ts +4 -0
  141. package/dist/validation/metrics/manager.js +14 -0
  142. package/dist/validation/metrics/manager.js.map +1 -0
  143. package/dist/validation/metrics/perf.d.ts +8 -0
  144. package/dist/validation/metrics/perf.js +41 -0
  145. package/dist/validation/metrics/perf.js.map +1 -0
  146. package/dist/validation/metrics/platform/startup.d.ts +7 -0
  147. package/dist/validation/metrics/platform/startup.js +16 -0
  148. package/dist/validation/metrics/platform/startup.js.map +1 -0
  149. package/dist/validation/metrics/settingsBuilder.d.ts +4 -0
  150. package/dist/validation/metrics/settingsBuilder.js +14 -0
  151. package/dist/validation/metrics/settingsBuilder.js.map +1 -0
  152. package/package.json +4 -1
  153. package/dist/metrics/pipeline.d.ts +0 -13
  154. package/dist/metrics/pipeline.js +0 -49
  155. package/dist/metrics/pipeline.js.map +0 -1
  156. package/dist/pipeline.d.ts +0 -14
  157. package/dist/pipeline.js +0 -66
  158. package/dist/pipeline.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ import { MetricsBuilder } from "./metrics/builder";
2
+ import { TelemetryMetricsBuilder } from "./metrics/types";
3
+ import { TelemetryContainer, TelemetryLogger, TelemetrySettings } from "./types";
4
+ export declare class Builder {
5
+ logger: TelemetryLogger;
6
+ settings: TelemetrySettings;
7
+ metricsBuilder: MetricsBuilder;
8
+ constructor();
9
+ withLogger(logger: TelemetryLogger): this;
10
+ withSettings(settings: TelemetrySettings): this;
11
+ withMetrics(): TelemetryMetricsBuilder;
12
+ build(): TelemetryContainer;
13
+ private buildCore;
14
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Builder = void 0;
4
+ const containerBuilder_1 = require("./containerBuilder");
5
+ const builder_1 = require("./metrics/builder");
6
+ const nullLogger_1 = require("./utils/nullLogger");
7
+ const builder_2 = require("./validation/builder");
8
+ class Builder {
9
+ constructor() {
10
+ this.logger = new nullLogger_1.NullLogger();
11
+ }
12
+ withLogger(logger) {
13
+ this.logger = logger;
14
+ return this;
15
+ }
16
+ withSettings(settings) {
17
+ this.settings = settings;
18
+ return this;
19
+ }
20
+ withMetrics() {
21
+ var _a;
22
+ this.metricsBuilder = new builder_1.MetricsBuilder();
23
+ this.metricsBuilder.withLogger(this.logger);
24
+ this.metricsBuilder.withSettings((_a = this.settings) === null || _a === void 0 ? void 0 : _a.metrics);
25
+ return this.metricsBuilder;
26
+ }
27
+ build() {
28
+ const validator = new builder_2.BuilderValidator();
29
+ validator.validate(this);
30
+ return this.buildCore();
31
+ }
32
+ buildCore() {
33
+ var _a;
34
+ const builder = new containerBuilder_1.ContainerBuilder();
35
+ builder.withLogger(this.logger);
36
+ const settings = JSON.stringify((_a = this.settings) !== null && _a !== void 0 ? _a : {});
37
+ this.logger.info(`builder will work with user settings: ${settings}`);
38
+ const metrics = this.metricsBuilder.build();
39
+ builder.withMetrics(metrics);
40
+ // traces is not implemented yet
41
+ // logs is not implemented yet
42
+ const container = builder.build();
43
+ return container;
44
+ }
45
+ }
46
+ exports.Builder = Builder;
47
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AACtD,+CAAmD;AAGnD,mDAAgD;AAChD,kDAAwD;AAExD,MAAa,OAAO;IAKhB;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAU,EAAE,CAAC;IACnC,CAAC;IAEM,UAAU,CAAC,MAAuB;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,YAAY,CAAC,QAA2B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,WAAW;;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAEM,KAAK;QACR,MAAM,SAAS,GAAG,IAAI,0BAAgB,EAAE,CAAC;QACzC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;IAEO,SAAS;;QACb,MAAM,OAAO,GAAG,IAAI,mCAAgB,EAAE,CAAC;QACvC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAA,IAAI,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5C,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE7B,gCAAgC;QAEhC,8BAA8B;QAE9B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAlDD,0BAkDC"}
@@ -1,12 +1,14 @@
1
1
  import { TelemetryLogsManager } from "./logs/types";
2
2
  import { TelemetryMetricsManager } from "./metrics/types";
3
3
  import { TelemetryTracesManager } from "./traces/types";
4
- import { TelemetryContainer } from "./types";
4
+ import { TelemetryContainer, TelemetryLogger } from "./types";
5
5
  export declare class Container implements TelemetryContainer {
6
6
  traces: TelemetryTracesManager;
7
7
  metrics: TelemetryMetricsManager;
8
8
  logs: TelemetryLogsManager;
9
- constructor(traces: TelemetryTracesManager, metrics: TelemetryMetricsManager, logs: TelemetryLogsManager);
9
+ logger: TelemetryLogger;
10
+ started: boolean;
11
+ constructor(traces: TelemetryTracesManager, metrics: TelemetryMetricsManager, logs: TelemetryLogsManager, logger: TelemetryLogger);
10
12
  start(): Promise<void>;
11
13
  stop(): Promise<void>;
12
14
  }
package/dist/container.js CHANGED
@@ -10,11 +10,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Container = void 0;
13
+ const container_1 = require("./validation/container");
13
14
  class Container {
14
- constructor(traces, metrics, logs) {
15
+ constructor(traces, metrics, logs, logger) {
15
16
  this.traces = traces;
16
17
  this.metrics = metrics;
17
18
  this.logs = logs;
19
+ this.logger = logger;
20
+ this.started = false;
21
+ const validator = new container_1.ContainerValidator();
22
+ validator.validate(this);
18
23
  }
19
24
  start() {
20
25
  return __awaiter(this, void 0, void 0, function* () {
@@ -22,6 +27,8 @@ class Container {
22
27
  const tracesPromise = this.traces.start();
23
28
  const logsPromise = this.logs.start();
24
29
  yield Promise.all([metricsPromise, tracesPromise, logsPromise]);
30
+ this.logger.info("container has been started");
31
+ this.started = true;
25
32
  });
26
33
  }
27
34
  stop() {
@@ -30,6 +37,8 @@ class Container {
30
37
  const tracesPromise = this.traces.stop();
31
38
  const logsPromise = this.logs.stop();
32
39
  yield Promise.all([metricsPromise, tracesPromise, logsPromise]);
40
+ this.logger.info("container has been stopped");
41
+ this.started = false;
33
42
  });
34
43
  }
35
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,MAAa,SAAS;IAClB,YACW,MAA8B,EAC9B,OAAgC,EAChC,IAA0B;QAF1B,WAAM,GAAN,MAAM,CAAwB;QAC9B,YAAO,GAAP,OAAO,CAAyB;QAChC,SAAI,GAAJ,IAAI,CAAsB;IACrC,CAAC;IAEY,KAAK;;YACd,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAEtC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;QACpE,CAAC;KAAA;IAEY,IAAI;;YACb,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAErC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;QACpE,CAAC;KAAA;CACJ;AAtBD,8BAsBC"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,sDAA4D;AAE5D,MAAa,SAAS;IAGlB,YACW,MAA8B,EAC9B,OAAgC,EAChC,IAA0B,EAC1B,MAAuB;QAHvB,WAAM,GAAN,MAAM,CAAwB;QAC9B,YAAO,GAAP,OAAO,CAAyB;QAChC,SAAI,GAAJ,IAAI,CAAsB;QAC1B,WAAM,GAAN,MAAM,CAAiB;QAN3B,YAAO,GAAY,KAAK,CAAC;QAQ5B,MAAM,SAAS,GAAG,IAAI,8BAAkB,EAAE,CAAC;QAC3C,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEY,KAAK;;YACd,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAEtC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;YAEhE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAE/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,CAAC;KAAA;IAEY,IAAI;;YACb,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAErC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;YAEhE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAE/C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC;KAAA;CACJ;AApCD,8BAoCC"}
@@ -1,14 +1,16 @@
1
- import { TelemetryContainer } from "./types";
1
+ import { TelemetryContainer, TelemetryLogger } from "./types";
2
2
  import { TelemetryMetricsManager } from "./metrics/types";
3
3
  import { TelemetryTracesManager } from "./traces/types";
4
4
  import { TelemetryLogsManager } from "./logs/types";
5
5
  export declare class ContainerBuilder {
6
- private traces;
7
- private metrics;
8
- private logs;
6
+ traces: TelemetryTracesManager;
7
+ metrics: TelemetryMetricsManager;
8
+ logs: TelemetryLogsManager;
9
+ logger: TelemetryLogger;
9
10
  constructor();
10
11
  withMetrics(manager: TelemetryMetricsManager): this;
11
12
  withTraces(manager: TelemetryTracesManager): this;
12
13
  withLogs(manager: TelemetryLogsManager): this;
14
+ withLogger(logger: TelemetryLogger): this;
13
15
  build(): TelemetryContainer;
14
16
  }
@@ -4,6 +4,7 @@ exports.ContainerBuilder = void 0;
4
4
  const container_1 = require("./container");
5
5
  const nullManager_1 = require("./utils/nullManager");
6
6
  const nullMetricsManager_1 = require("./metrics/utils/nullMetricsManager");
7
+ const containerBuilder_1 = require("./validation/containerBuilder");
7
8
  class ContainerBuilder {
8
9
  constructor() {
9
10
  this.traces = new nullManager_1.NullManager();
@@ -22,8 +23,14 @@ class ContainerBuilder {
22
23
  this.logs = manager;
23
24
  return this;
24
25
  }
26
+ withLogger(logger) {
27
+ this.logger = logger;
28
+ return this;
29
+ }
25
30
  build() {
26
- const container = new container_1.Container(this.traces, this.metrics, this.logs);
31
+ const validator = new containerBuilder_1.ContainerBuilderValidator();
32
+ validator.validate(this);
33
+ const container = new container_1.Container(this.traces, this.metrics, this.logs, this.logger);
27
34
  return container;
28
35
  }
29
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"containerBuilder.js","sourceRoot":"","sources":["../src/containerBuilder.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,qDAAkD;AAClD,2EAAwE;AAKxE,MAAa,gBAAgB;IAKzB;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,uCAAkB,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,yBAAW,EAAE,CAAC;IAClC,CAAC;IAEM,WAAW,CAAC,OAAgC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,UAAU,CAAC,OAA+B;QAC7C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,QAAQ,CAAC,OAA6B;QACzC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK;QACR,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AA9BD,4CA8BC"}
1
+ {"version":3,"file":"containerBuilder.js","sourceRoot":"","sources":["../src/containerBuilder.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,qDAAkD;AAClD,2EAAwE;AAIxE,oEAA0E;AAE1E,MAAa,gBAAgB;IAMzB;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,uCAAkB,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,yBAAW,EAAE,CAAC;IAClC,CAAC;IAEM,WAAW,CAAC,OAAgC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,UAAU,CAAC,OAA+B;QAC7C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,QAAQ,CAAC,OAA6B;QACzC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,UAAU,CAAC,MAAuB;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK;QACR,MAAM,SAAS,GAAG,IAAI,4CAAyB,EAAE,CAAC;QAClD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACnF,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAvCD,4CAuCC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from "./types";
2
- export { Pipeline } from "./pipeline";
2
+ export { Builder } from "./builder";
3
3
  export * from "./metrics/types";
4
4
  export { MetricsDependencyBuilder } from "./metrics/dependencyBuilder";
5
5
  export * from "./traces/types";
package/dist/index.js CHANGED
@@ -14,10 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.MetricsDependencyBuilder = exports.Pipeline = void 0;
17
+ exports.MetricsDependencyBuilder = exports.Builder = void 0;
18
18
  __exportStar(require("./types"), exports);
19
- var pipeline_1 = require("./pipeline");
20
- Object.defineProperty(exports, "Pipeline", { enumerable: true, get: function () { return pipeline_1.Pipeline; } });
19
+ var builder_1 = require("./builder");
20
+ Object.defineProperty(exports, "Builder", { enumerable: true, get: function () { return builder_1.Builder; } });
21
21
  __exportStar(require("./metrics/types"), exports);
22
22
  var dependencyBuilder_1 = require("./metrics/dependencyBuilder");
23
23
  Object.defineProperty(exports, "MetricsDependencyBuilder", { enumerable: true, get: function () { return dependencyBuilder_1.MetricsDependencyBuilder; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAEjB,kDAAgC;AAChC,iEAAuE;AAA9D,6HAAA,wBAAwB,OAAA;AAEjC,iDAA+B;AAC/B,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAEhB,kDAAgC;AAChC,iEAAuE;AAA9D,6HAAA,wBAAwB,OAAA;AAEjC,iDAA+B;AAC/B,+CAA6B"}
@@ -3,10 +3,11 @@ import { InstanceActionHandler, TelemetryMetricSettings } from "../types";
3
3
  import { TelemetryLogger } from "../../types";
4
4
  import { MetricBase } from "../base/base";
5
5
  export declare class ApplicationCountMetric extends MetricBase {
6
- private meter;
6
+ meter: Meter;
7
+ instanceStartedHandler: InstanceActionHandler;
8
+ instanceStoppedHandler: InstanceActionHandler;
9
+ private validator;
7
10
  private appCountMetric;
8
- private instanceStartedHandler;
9
- private instanceStoppedHandler;
10
11
  private instanceStartedUn;
11
12
  private instanceStoppedUn;
12
13
  constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceStartedHandler: InstanceActionHandler, instanceStoppedHandler: InstanceActionHandler);
@@ -2,16 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ApplicationCountMetric = void 0;
4
4
  const base_1 = require("../base/base");
5
+ const count_1 = require("../../validation/metrics/application/count");
5
6
  class ApplicationCountMetric extends base_1.MetricBase {
6
7
  constructor(settings, meter, userId, logger, instanceStartedHandler, instanceStoppedHandler) {
7
8
  super(settings, userId, logger);
8
9
  this.meter = meter;
9
10
  this.instanceStartedHandler = instanceStartedHandler;
10
11
  this.instanceStoppedHandler = instanceStoppedHandler;
12
+ this.validator = new count_1.ApplicationCountMetricValidator();
13
+ this.validator.validate(this);
11
14
  }
12
15
  createMetric() {
13
- const name = this.name;
14
- const description = this.description;
16
+ const name = this.settings.name;
17
+ const description = this.settings.description;
15
18
  this.appCountMetric = this.meter.createUpDownCounter(name, { description });
16
19
  return Promise.resolve();
17
20
  }
@@ -30,22 +33,28 @@ class ApplicationCountMetric extends base_1.MetricBase {
30
33
  }
31
34
  handleInstanceStarted(e) {
32
35
  try {
36
+ this.validator.validateInstanceStarted(e);
37
+ this.logger.debug(`instance started for application ${e.application} and metric ${this.settings.name} is being invoked`);
33
38
  const data = this.getData(e.application);
34
39
  this.appCountMetric.add(1, data);
35
- this.logger.debug(`metric ${this.name} sent 1 more for app ${data.application}`);
40
+ this.logger.debug(`metric ${this.settings.name} sent 1 more for app ${data.application}`);
36
41
  }
37
42
  catch (error) {
38
- this.logger.error(error);
43
+ const message = `error while executing handleInstanceStarted for metric from type: ${this.settings.type}`;
44
+ this.logger.error(message, error);
39
45
  }
40
46
  }
41
47
  handleInstanceStopped(e) {
42
48
  try {
49
+ this.validator.validateInstanceStopped(e);
50
+ this.logger.debug(`instance stopped for application ${e.application} and metric ${this.settings.name} is being invoked`);
43
51
  const data = this.getData(e.application);
44
52
  this.appCountMetric.add(-1, data);
45
- this.logger.debug(`metric ${this.name} sent 1 less for app ${data.application}`);
53
+ this.logger.debug(`metric ${this.settings.name} sent 1 less for app ${data.application}`);
46
54
  }
47
55
  catch (error) {
48
- this.logger.error(error);
56
+ const message = `error while executing handleInstanceStopped for metric from type: ${this.settings.type}`;
57
+ this.logger.error(message, error);
49
58
  }
50
59
  }
51
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"count.js","sourceRoot":"","sources":["../../../src/metrics/application/count.ts"],"names":[],"mappings":";;;AAGA,uCAA0C;AAE1C,MAAa,sBAAuB,SAAQ,iBAAU;IAUlD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,sBAA6C,EAC7C,sBAA6C;QAE7C,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACzD,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAE5E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5F,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,qBAAqB,CAAC,CAA0B;QACpD,IAAI;YACA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SACpF;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;IACL,CAAC;IAEO,qBAAqB,CAAC,CAA0B;QACpD,IAAI;YACA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAElC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SACpF;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;IACL,CAAC;CACJ;AAxED,wDAwEC"}
1
+ {"version":3,"file":"count.js","sourceRoot":"","sources":["../../../src/metrics/application/count.ts"],"names":[],"mappings":";;;AAGA,uCAA0C;AAC1C,sEAA6F;AAE7F,MAAa,sBAAuB,SAAQ,iBAAU;IAMlD,YACI,QAAiC,EAC1B,KAAY,EACnB,MAAc,EACd,MAAuB,EAChB,sBAA6C,EAC7C,sBAA6C;QAEpD,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QANzB,UAAK,GAAL,KAAK,CAAO;QAGZ,2BAAsB,GAAtB,sBAAsB,CAAuB;QAC7C,2BAAsB,GAAtB,sBAAsB,CAAuB;QAIpD,IAAI,CAAC,SAAS,GAAG,IAAI,uCAA+B,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAE5E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5F,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,qBAAqB,CAAC,CAA0B;QACpD,IAAI;YACA,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;YAE1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,WAAW,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAEzH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC7F;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,OAAO,GAAG,qEAAqE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACrC;IACL,CAAC;IAEO,qBAAqB,CAAC,CAA0B;QACpD,IAAI;YACA,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;YAE1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,WAAW,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAEzH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAElC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC7F;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,OAAO,GAAG,qEAAqE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACrC;IACL,CAAC;CACJ;AA7ED,wDA6EC"}
@@ -3,7 +3,7 @@ import { TelemetryMetricData, TelemetryMetricSettings, PerformanceProvider } fro
3
3
  import { TelemetryLogger } from "../../types";
4
4
  import { GaugeMetricBase } from "../base/gauge";
5
5
  export declare class ApplicationCPUMetric extends GaugeMetricBase {
6
- private perfProvider;
6
+ perfProvider: PerformanceProvider;
7
7
  constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, perfProvider: PerformanceProvider);
8
8
  protected subscribeCore(): Promise<void>;
9
9
  protected observeCore(result: ObservableResult<TelemetryMetricData>): Promise<void>;
@@ -11,6 +11,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ApplicationCPUMetric = void 0;
13
13
  const gauge_1 = require("../base/gauge");
14
+ const perf_1 = require("../../validation/metrics/perf");
15
+ const validator_1 = require("../../utils/validator");
14
16
  class ApplicationCPUMetric extends gauge_1.GaugeMetricBase {
15
17
  constructor(settings, meter, userId, logger, perfProvider) {
16
18
  super(settings, meter, userId, logger);
@@ -19,12 +21,17 @@ class ApplicationCPUMetric extends gauge_1.GaugeMetricBase {
19
21
  subscribeCore() { return Promise.resolve(); }
20
22
  observeCore(result) {
21
23
  return __awaiter(this, void 0, void 0, function* () {
24
+ const performanceValidator = new perf_1.PerformanceProviderValidator();
25
+ performanceValidator.validate(this.perfProvider);
22
26
  const appsCPU = yield this.perfProvider.getAppsCPU();
23
- appsCPU.forEach((info) => {
24
- const data = Object.assign({ applicationInstance: info.instance }, this.getData(info.app));
25
- result.observe(info.cpu, data);
26
- this.logger.debug(`metric ${this.name} sent cpu ${info.cpu} for app ${data.application} and instance ${data.applicationInstance}`);
27
- });
27
+ if (!validator_1.Validator.isNullOrUndefined(appsCPU)) {
28
+ performanceValidator.validateAppsCPU(appsCPU);
29
+ appsCPU.forEach((info) => {
30
+ const data = Object.assign({ applicationInstance: info.instance }, this.getData(info.app));
31
+ result.observe(info.cpu, data);
32
+ this.logger.debug(`metric ${this.settings.name} sent cpu ${info.cpu} for app ${data.application} and instance ${data.applicationInstance}`);
33
+ });
34
+ }
28
35
  });
29
36
  }
30
37
  unsubscribeCore() { return Promise.resolve(); }
@@ -1 +1 @@
1
- {"version":3,"file":"cpu.js","sourceRoot":"","sources":["../../../src/metrics/application/cpu.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,yCAAgD;AAEhD,MAAa,oBAAqB,SAAQ,uBAAe;IAGrD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,YAAiC;QAEjC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,MAA6C;;YAC9E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YACrD,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrB,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;gBAC/E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACvI,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AA1BD,oDA0BC"}
1
+ {"version":3,"file":"cpu.js","sourceRoot":"","sources":["../../../src/metrics/application/cpu.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,yCAAgD;AAChD,wDAA6E;AAC7E,qDAAkD;AAElD,MAAa,oBAAqB,SAAQ,uBAAe;IACrD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EAChB,YAAiC;QAExC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAFhC,iBAAY,GAAZ,YAAY,CAAqB;IAG5C,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,MAA6C;;YAC9E,MAAM,oBAAoB,GAAG,IAAI,mCAA4B,EAAE,CAAC;YAChE,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YACrD,IAAI,CAAC,qBAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;gBACvC,oBAAoB,CAAC,eAAe,CAAC,OAAQ,CAAC,CAAC;gBAE/C,OAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtB,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;oBAC/E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBAChJ,CAAC,CAAC,CAAC;aACN;QACL,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AA9BD,oDA8BC"}
@@ -3,10 +3,11 @@ import { TelemetryMetricData, InstanceFocusedHandler, TelemetryMetricSettings }
3
3
  import { TelemetryLogger } from "../../types";
4
4
  import { GaugeMetricBase } from "../base/gauge";
5
5
  export declare class ApplicationDurationMetric extends GaugeMetricBase {
6
+ instanceFocusHandler: InstanceFocusedHandler;
6
7
  private focusedTimes;
7
8
  private currentFocusedApp?;
8
- private instanceFocusHandler;
9
9
  private unInstanceFocusHandler;
10
+ private validator;
10
11
  constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceFocusHandler: InstanceFocusedHandler);
11
12
  protected subscribeCore(): Promise<void>;
12
13
  protected observeCore(result: ObservableResult<TelemetryMetricData>): Promise<void>;
@@ -3,12 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ApplicationDurationMetric = void 0;
4
4
  const validator_1 = require("../../utils/validator");
5
5
  const gauge_1 = require("../base/gauge");
6
+ const duration_1 = require("../../validation/metrics/application/duration");
6
7
  class ApplicationDurationMetric extends gauge_1.GaugeMetricBase {
7
8
  constructor(settings, meter, userId, logger, instanceFocusHandler) {
8
9
  super(settings, meter, userId, logger);
10
+ this.instanceFocusHandler = instanceFocusHandler;
9
11
  // application -> focused times for a given period
10
12
  this.focusedTimes = new Map();
11
- this.instanceFocusHandler = instanceFocusHandler;
13
+ this.validator = new duration_1.ApplicationDurationMetricValidator();
14
+ this.validator.validate(this);
12
15
  }
13
16
  subscribeCore() {
14
17
  this.unInstanceFocusHandler = this.instanceFocusHandler(this.handleFocusChanged.bind(this));
@@ -37,15 +40,17 @@ class ApplicationDurationMetric extends gauge_1.GaugeMetricBase {
37
40
  sendMetric(focusedPeriods, data, result) {
38
41
  const focusedTime = focusedPeriods.length === 0 ? 0 : focusedPeriods.reduce((prev, current) => prev + current);
39
42
  result.observe(focusedTime, data);
40
- this.logger.debug(`metric ${this.name} sent focused time ${focusedTime} for app ${data.application}`);
43
+ this.logger.debug(`metric ${this.settings.name} sent focused time ${focusedTime} for app ${data.application}`);
41
44
  }
42
45
  handleFocusChanged(e) {
43
46
  try {
44
- this.logger.debug(`focused changed is being invoked for metric ${this.name}`);
47
+ this.validator.validateFocusChanged(e);
48
+ this.logger.debug(`focused changed is being invoked for metric ${this.settings.name} with ${JSON.stringify(e)}`);
45
49
  return this.handleFocusChangedCore(e);
46
50
  }
47
51
  catch (error) {
48
- this.logger.error(error);
52
+ const message = `error while executing handleFocusChanges for metric from type: ${this.settings.type}`;
53
+ this.logger.error(message, error);
49
54
  }
50
55
  }
51
56
  handleFocusChangedCore(e) {
@@ -69,7 +74,7 @@ class ApplicationDurationMetric extends gauge_1.GaugeMetricBase {
69
74
  if (!this.focusedTimes.has(this.currentFocusedApp.name)) {
70
75
  this.focusedTimes.set(this.currentFocusedApp.name, []);
71
76
  }
72
- this.logger.debug(`got focus event has been added for metric ${this.name}`);
77
+ this.logger.debug(`got focus event has been added for metric ${this.settings.name}`);
73
78
  }
74
79
  handleLostFocus(application) {
75
80
  if (validator_1.Validator.isNullOrUndefined(this.currentFocusedApp)) {
@@ -84,7 +89,7 @@ class ApplicationDurationMetric extends gauge_1.GaugeMetricBase {
84
89
  throw new Error(`there is no got focus event for ${application}`);
85
90
  }
86
91
  this.addFocusLostEventCore(currentFocusedApp, gotFocusTime);
87
- this.logger.debug(`lost focus event has been added for metric ${this.name}`);
92
+ this.logger.debug(`lost focus event has been added for metric ${this.settings.name}`);
88
93
  }
89
94
  addFocusLostEventCore(application, gotFocusTime) {
90
95
  const now = new Date().getTime();
@@ -1 +1 @@
1
- {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../src/metrics/application/duration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../src/metrics/application/duration.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,13 @@ const duration_1 = require("./duration");
5
5
  class ApplicationDurationHistogramMetric extends duration_1.ApplicationDurationMetric {
6
6
  constructor(settings, meter, userId, logger, instanceFocusHandler) {
7
7
  super(settings, meter, userId, logger, instanceFocusHandler);
8
- const advice = { explicitBucketBoundaries: this.buckets };
9
- this.appDurationMetric = this.meter.createHistogram(this.name, { description: this.description, unit: this.unit, advice });
8
+ const advice = { explicitBucketBoundaries: this.settings.buckets };
9
+ this.appDurationMetric = this.meter.createHistogram(this.settings.name, { description: this.settings.description, unit: this.settings.unit, advice });
10
10
  }
11
11
  sendMetric(focusedPeriods, data) {
12
12
  focusedPeriods.forEach((period) => {
13
13
  this.appDurationMetric.record(period, data);
14
- this.logger.debug(`metric ${this.name} sent focused time ${period} for app ${data.application}`);
14
+ this.logger.debug(`metric ${this.settings.name} sent focused time ${period} for app ${data.application}`);
15
15
  });
16
16
  }
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"durationHistogram.js","sourceRoot":"","sources":["../../../src/metrics/application/durationHistogram.ts"],"names":[],"mappings":";;;AAGA,yCAAuD;AAEvD,MAAa,kCAAmC,SAAQ,oCAAyB;IAG7E,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,oBAA4C;QAE5C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,EAAE,wBAAwB,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/H,CAAC;IAEkB,UAAU,CAAC,cAAwB,EAAE,IAAyB;QAC7E,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,sBAAsB,MAAM,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACrG,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAtBD,gFAsBC"}
1
+ {"version":3,"file":"durationHistogram.js","sourceRoot":"","sources":["../../../src/metrics/application/durationHistogram.ts"],"names":[],"mappings":";;;AAGA,yCAAuD;AAEvD,MAAa,kCAAmC,SAAQ,oCAAyB;IAG7E,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,oBAA4C;QAE5C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,EAAE,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1J,CAAC;IAEkB,UAAU,CAAC,cAAwB,EAAE,IAAyB;QAC7E,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,MAAM,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9G,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAtBD,gFAsBC"}
@@ -5,12 +5,12 @@ const duration_1 = require("./duration");
5
5
  class ApplicationDurationSumMetric extends duration_1.ApplicationDurationMetric {
6
6
  constructor(settings, meter, userId, logger, instanceFocusHandler) {
7
7
  super(settings, meter, userId, logger, instanceFocusHandler);
8
- this.appDurationMetric = this.meter.createCounter(this.name, { description: this.description, unit: this.unit });
8
+ this.appDurationMetric = this.meter.createCounter(this.settings.name, { description: this.settings.description, unit: this.settings.unit });
9
9
  }
10
10
  sendMetric(focusedPeriods, data) {
11
11
  const focusedTime = focusedPeriods.length === 0 ? 0 : focusedPeriods.reduce((prev, current) => prev + current);
12
12
  this.appDurationMetric.add(focusedTime, data);
13
- this.logger.debug(`metric ${this.name} sent focused time ${focusedTime} for app ${data.application}`);
13
+ this.logger.debug(`metric ${this.settings.name} sent focused time ${focusedTime} for app ${data.application}`);
14
14
  }
15
15
  }
16
16
  exports.ApplicationDurationSumMetric = ApplicationDurationSumMetric;
@@ -1 +1 @@
1
- {"version":3,"file":"durationSum.js","sourceRoot":"","sources":["../../../src/metrics/application/durationSum.ts"],"names":[],"mappings":";;;AAGA,yCAAuD;AAEvD,MAAa,4BAA6B,SAAQ,oCAAyB;IAGvE,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,oBAA4C;QAE5C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrH,CAAC;IAEkB,UAAU,CAAC,cAAwB,EAAE,IAAyB;QAC7E,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;QAC/G,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,sBAAsB,WAAW,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1G,CAAC;CACJ;AAnBD,oEAmBC"}
1
+ {"version":3,"file":"durationSum.js","sourceRoot":"","sources":["../../../src/metrics/application/durationSum.ts"],"names":[],"mappings":";;;AAGA,yCAAuD;AAEvD,MAAa,4BAA6B,SAAQ,oCAAyB;IAGvE,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,oBAA4C;QAE5C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAChJ,CAAC;IAEkB,UAAU,CAAC,cAAwB,EAAE,IAAyB;QAC7E,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;QAC/G,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,WAAW,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACnH,CAAC;CACJ;AAnBD,oEAmBC"}
@@ -3,7 +3,7 @@ import { TelemetryMetricData, TelemetryMetricSettings, PerformanceProvider } fro
3
3
  import { TelemetryLogger } from "../../types";
4
4
  import { GaugeMetricBase } from "../base/gauge";
5
5
  export declare class ApplicationMemoryMetric extends GaugeMetricBase {
6
- private perfProvider;
6
+ perfProvider: PerformanceProvider;
7
7
  constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, perfProvider: PerformanceProvider);
8
8
  protected subscribeCore(): Promise<void>;
9
9
  protected observeCore(result: ObservableResult<TelemetryMetricData>): Promise<void>;
@@ -11,6 +11,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ApplicationMemoryMetric = void 0;
13
13
  const gauge_1 = require("../base/gauge");
14
+ const perf_1 = require("../../validation/metrics/perf");
15
+ const validator_1 = require("../../utils/validator");
14
16
  class ApplicationMemoryMetric extends gauge_1.GaugeMetricBase {
15
17
  constructor(settings, meter, userId, logger, perfProvider) {
16
18
  super(settings, meter, userId, logger);
@@ -19,13 +21,18 @@ class ApplicationMemoryMetric extends gauge_1.GaugeMetricBase {
19
21
  subscribeCore() { return Promise.resolve(); }
20
22
  observeCore(result) {
21
23
  return __awaiter(this, void 0, void 0, function* () {
22
- const memory = yield this.perfProvider.getAppsMemory();
23
- memory.forEach((info) => {
24
- var _a;
25
- const data = Object.assign({ applicationInstance: info.instance }, this.getData(info.app));
26
- result.observe((_a = info.memory) !== null && _a !== void 0 ? _a : 0, data);
27
- this.logger.debug(`metric ${this.name} sent memory ${info.memory} for app ${data.application} and instance ${data.applicationInstance}`);
28
- });
24
+ const validator = new perf_1.PerformanceProviderValidator();
25
+ validator.validate(this.perfProvider);
26
+ const appsMemory = yield this.perfProvider.getAppsMemory();
27
+ if (!validator_1.Validator.isNullOrUndefined(appsMemory)) {
28
+ validator.validateAppsMemory(appsMemory);
29
+ appsMemory.forEach((info) => {
30
+ var _a;
31
+ const data = Object.assign({ applicationInstance: info.instance }, this.getData(info.app));
32
+ result.observe((_a = info.memory) !== null && _a !== void 0 ? _a : 0, data);
33
+ this.logger.debug(`metric ${this.settings.name} sent memory ${info.memory} for app ${data.application} and instance ${data.applicationInstance}`);
34
+ });
35
+ }
29
36
  });
30
37
  }
31
38
  unsubscribeCore() { return Promise.resolve(); }
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/metrics/application/memory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,yCAAgD;AAEhD,MAAa,uBAAwB,SAAQ,uBAAe;IAGxD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,YAAiC;QAEjC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,MAA6C;;YAC9E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YACvD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;gBACpB,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;gBAC/E,MAAM,CAAC,OAAO,CAAC,MAAA,IAAI,CAAC,MAAM,mCAAI,CAAC,EAAE,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,gBAAgB,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;YAC7I,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AA1BD,0DA0BC"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/metrics/application/memory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,yCAAgD;AAChD,wDAA6E;AAC7E,qDAAkD;AAElD,MAAa,uBAAwB,SAAQ,uBAAe;IACxD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EAChB,YAAiC;QAExC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAFhC,iBAAY,GAAZ,YAAY,CAAqB;IAG5C,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,MAA6C;;YAC9E,MAAM,SAAS,GAAG,IAAI,mCAA4B,EAAE,CAAC;YACrD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEtC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YAE3D,IAAI,CAAC,qBAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE;gBAE1C,SAAS,CAAC,kBAAkB,CAAC,UAAW,CAAC,CAAC;gBAE1C,UAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;oBACzB,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;oBAC/E,MAAM,CAAC,OAAO,CAAC,MAAA,IAAI,CAAC,MAAM,mCAAI,CAAC,EAAE,IAAI,CAAC,CAAC;oBACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,gBAAgB,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACtJ,CAAC,CAAC,CAAC;aACN;QACL,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AAhCD,0DAgCC"}
@@ -3,10 +3,11 @@ import { TelemetryMetricSettings, InstanceActionHandler } from "../types";
3
3
  import { TelemetryLogger } from "../../types";
4
4
  import { MetricBase } from "../base/base";
5
5
  export declare class ApplicationStartedMetric extends MetricBase {
6
- private meter;
6
+ meter: Meter;
7
+ instanceStartedHandler: InstanceActionHandler;
7
8
  private appStartedMetric;
8
- private instanceStartedHandler;
9
9
  private instanceStartedUn;
10
+ private validator;
10
11
  constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceStartedHandler: InstanceActionHandler);
11
12
  protected createMetric(): Promise<void>;
12
13
  protected subscribe(): Promise<void>;
@@ -2,15 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ApplicationStartedMetric = void 0;
4
4
  const base_1 = require("../base/base");
5
+ const started_1 = require("../../validation/metrics/application/started");
5
6
  class ApplicationStartedMetric extends base_1.MetricBase {
6
7
  constructor(settings, meter, userId, logger, instanceStartedHandler) {
7
8
  super(settings, userId, logger);
8
9
  this.meter = meter;
9
10
  this.instanceStartedHandler = instanceStartedHandler;
11
+ this.validator = new started_1.ApplicationStartedMetricValidator();
12
+ this.validator.validate(this);
10
13
  }
11
14
  createMetric() {
12
- const name = this.name;
13
- const description = this.description;
15
+ const name = this.settings.name;
16
+ const description = this.settings.description;
14
17
  this.appStartedMetric = this.meter.createCounter(name, { description });
15
18
  return Promise.resolve();
16
19
  }
@@ -27,12 +30,15 @@ class ApplicationStartedMetric extends base_1.MetricBase {
27
30
  }
28
31
  handleInstanceStarted(e) {
29
32
  try {
33
+ this.validator.validateInstanceStarted(e);
34
+ this.logger.debug(`instance started for application ${e.application} and metric ${this.settings.name} is being invoked`);
30
35
  const data = this.getData(e.application);
31
36
  this.appStartedMetric.add(1, data);
32
- this.logger.debug(`metric ${this.name} sent 1 more for app ${data.application}`);
37
+ this.logger.debug(`metric ${this.settings.name} sent 1 more for app ${data.application}`);
33
38
  }
34
39
  catch (error) {
35
- this.logger.error(error);
40
+ const message = `error while executing handleInstanceStarted for metric from type: ${this.settings.type}`;
41
+ this.logger.error(message, error);
36
42
  }
37
43
  }
38
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"started.js","sourceRoot":"","sources":["../../../src/metrics/application/started.ts"],"names":[],"mappings":";;;AAGA,uCAA0C;AAE1C,MAAa,wBAAyB,SAAQ,iBAAU;IAOpD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,sBAA6C;QAE7C,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAEhC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACzD,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAExE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5F,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,qBAAqB,CAAC,CAA0B;QACpD,IAAI;YACA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SACpF;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;IACL,CAAC;CACJ;AArDD,4DAqDC"}
1
+ {"version":3,"file":"started.js","sourceRoot":"","sources":["../../../src/metrics/application/started.ts"],"names":[],"mappings":";;;AAGA,uCAA0C;AAC1C,0EAAiG;AAEjG,MAAa,wBAAyB,SAAQ,iBAAU;IAKpD,YACI,QAAiC,EAC1B,KAAY,EACnB,MAAc,EACd,MAAuB,EAChB,sBAA6C;QAEpD,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QALzB,UAAK,GAAL,KAAK,CAAO;QAGZ,2BAAsB,GAAtB,sBAAsB,CAAuB;QAGpD,IAAI,CAAC,SAAS,GAAG,IAAI,2CAAiC,EAAE,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAExE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5F,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,qBAAqB,CAAC,CAA0B;QACpD,IAAI;YACA,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;YAE1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,WAAW,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAEzH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC7F;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,OAAO,GAAG,qEAAqE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACrC;IACL,CAAC;CACJ;AAvDD,4DAuDC"}