@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
@@ -3,14 +3,15 @@ import { GaugeMetricBase } from "../base/gauge";
3
3
  import { TelemetryMetricData, InstanceReadyHandler, TelemetryMetricSettings } from "../types";
4
4
  import { TelemetryLogger } from "../../types";
5
5
  export declare class ApplicationStartupMetric extends GaugeMetricBase {
6
+ instanceReadyHandler: InstanceReadyHandler;
6
7
  private startupTimes;
7
- private instanceReadyHandler;
8
8
  private interopReadyUn;
9
+ private validator;
9
10
  constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceReadyHandler: InstanceReadyHandler);
10
11
  protected subscribeCore(): Promise<void>;
11
12
  protected observeCore(result: ObservableResult<TelemetryMetricData>): Promise<void>;
12
13
  protected unsubscribeCore(): Promise<void>;
13
14
  protected sendMetric(startupTimes: number[], data: TelemetryMetricData, result: ObservableResult<TelemetryMetricData>): void;
14
- private handleInteropReady;
15
+ private handleInstanceReady;
15
16
  private addStartupTime;
16
17
  }
@@ -11,32 +11,30 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ApplicationStartupMetric = void 0;
13
13
  const gauge_1 = require("../base/gauge");
14
+ const startup_1 = require("../../validation/metrics/application/startup");
14
15
  class ApplicationStartupMetric extends gauge_1.GaugeMetricBase {
15
16
  constructor(settings, meter, userId, logger, instanceReadyHandler) {
16
17
  super(settings, meter, userId, logger);
18
+ this.instanceReadyHandler = instanceReadyHandler;
17
19
  // application -> [data, startup times]
18
20
  this.startupTimes = new Map();
19
- this.instanceReadyHandler = instanceReadyHandler;
21
+ this.validator = new startup_1.ApplicationStartupMetricValidator();
22
+ this.validator.validate(this);
20
23
  }
21
24
  subscribeCore() {
22
- this.interopReadyUn = this.instanceReadyHandler(this.handleInteropReady.bind(this));
25
+ this.interopReadyUn = this.instanceReadyHandler(this.handleInstanceReady.bind(this));
23
26
  return Promise.resolve();
24
27
  }
25
28
  observeCore(result) {
26
29
  return __awaiter(this, void 0, void 0, function* () {
27
- try {
28
- this.startupTimes.forEach((kvp, application) => {
29
- const metrics = kvp[1];
30
- if (metrics.length > 0) {
31
- const data = kvp[0];
32
- this.sendMetric(metrics, data, result);
33
- this.startupTimes.set(application, [data, []]);
34
- }
35
- });
36
- }
37
- catch (error) {
38
- this.logger.error(error);
39
- }
30
+ this.startupTimes.forEach((kvp, application) => {
31
+ const metrics = kvp[1];
32
+ if (metrics.length > 0) {
33
+ const data = kvp[0];
34
+ this.sendMetric(metrics, data, result);
35
+ this.startupTimes.set(application, [data, []]);
36
+ }
37
+ });
40
38
  });
41
39
  }
42
40
  unsubscribeCore() {
@@ -46,18 +44,20 @@ class ApplicationStartupMetric extends gauge_1.GaugeMetricBase {
46
44
  sendMetric(startupTimes, data, result) {
47
45
  const slowest = Math.max(...startupTimes);
48
46
  result.observe(slowest, data);
49
- this.logger.debug(`metric ${this.name} sent slowest startup time ${slowest} for app ${data.application}`);
47
+ this.logger.debug(`metric ${this.settings.name} sent slowest startup time ${slowest} for app ${data.application}`);
50
48
  }
51
- handleInteropReady(e) {
49
+ handleInstanceReady(e) {
52
50
  try {
53
- this.logger.debug(`interop ready for application ${e.application} and metric ${this.name} is being invoked`);
51
+ this.validator.validateInstanceReady(e);
52
+ this.logger.debug(`instance ready for application ${e.application} and metric ${this.settings.name} is being invoked`);
54
53
  const now = (new Date()).getTime();
55
54
  const startupTime = now - e.startTime.getTime();
56
55
  this.addStartupTime(startupTime, e.application);
57
- this.logger.debug(`start up time ${startupTime} has been added for metric ${this.name}`);
56
+ this.logger.debug(`start up time ${startupTime} has been added for metric ${this.settings.name}`);
58
57
  }
59
58
  catch (error) {
60
- this.logger.error(error);
59
+ const message = `error while executing handleInstanceReady for metric from type: ${this.settings.type}`;
60
+ this.logger.error(message, error);
61
61
  }
62
62
  }
63
63
  addStartupTime(time, application) {
@@ -1 +1 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/metrics/application/startup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/metrics/application/startup.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,13 @@ const startup_1 = require("./startup");
5
5
  class ApplicationStartupHistogramMetric extends startup_1.ApplicationStartupMetric {
6
6
  constructor(settings, meter, userId, logger, instanceReadyHandler) {
7
7
  super(settings, meter, userId, logger, instanceReadyHandler);
8
- const advice = { explicitBucketBoundaries: this.buckets };
9
- this.appStartupMetric = this.meter.createHistogram(this.name, { description: this.description, unit: this.unit, advice });
8
+ const advice = { explicitBucketBoundaries: this.settings.buckets };
9
+ this.appStartupMetric = this.meter.createHistogram(this.settings.name, { description: this.settings.description, unit: this.settings.unit, advice });
10
10
  }
11
11
  sendMetric(startupTimes, data) {
12
12
  startupTimes.forEach((time) => {
13
13
  this.appStartupMetric.record(time, data);
14
- this.logger.debug(`metric ${this.name} sent startup time ${time} for app ${data.application}`);
14
+ this.logger.debug(`metric ${this.settings.name} sent startup time ${time} for app ${data.application}`);
15
15
  });
16
16
  }
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"startupHistogram.js","sourceRoot":"","sources":["../../../src/metrics/application/startupHistogram.ts"],"names":[],"mappings":";;;AACA,uCAAqD;AAIrD,MAAa,iCAAkC,SAAQ,kCAAwB;IAE3E,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,oBAA0C;QAE1C,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,gBAAgB,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;IAC9H,CAAC;IAEkB,UAAU,CAAC,YAAsB,EAAE,IAAyB;QAC3E,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,sBAAsB,IAAI,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AArBD,8EAqBC"}
1
+ {"version":3,"file":"startupHistogram.js","sourceRoot":"","sources":["../../../src/metrics/application/startupHistogram.ts"],"names":[],"mappings":";;;AACA,uCAAqD;AAIrD,MAAa,iCAAkC,SAAQ,kCAAwB;IAG3E,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,oBAA0C;QAE1C,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,gBAAgB,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;IACzJ,CAAC;IAEkB,UAAU,CAAC,YAAsB,EAAE,IAAyB;QAC3E,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,IAAI,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAtBD,8EAsBC"}
@@ -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 ApplicationStoppedMetric extends MetricBase {
6
- private meter;
6
+ meter: Meter;
7
+ instanceStoppedHandler: InstanceActionHandler;
7
8
  private appStoppedMetric;
8
- private instanceStoppedHandler;
9
9
  private instanceStoppedUn;
10
+ private validator;
10
11
  constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceStoppedHandler: 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.ApplicationStoppedMetric = void 0;
4
4
  const base_1 = require("../base/base");
5
+ const stopped_1 = require("../../validation/metrics/application/stopped");
5
6
  class ApplicationStoppedMetric extends base_1.MetricBase {
6
7
  constructor(settings, meter, userId, logger, instanceStoppedHandler) {
7
8
  super(settings, userId, logger);
8
9
  this.meter = meter;
9
10
  this.instanceStoppedHandler = instanceStoppedHandler;
11
+ this.validator = new stopped_1.ApplicationStoppedMetricValidator();
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.appStoppedMetric = this.meter.createCounter(name, { description });
15
18
  return Promise.resolve();
16
19
  }
@@ -27,12 +30,15 @@ class ApplicationStoppedMetric extends base_1.MetricBase {
27
30
  }
28
31
  handleInstanceStopped(e) {
29
32
  try {
33
+ this.validator.validateInstanceStopped(e);
34
+ this.logger.debug(`instance stopped for application ${e.application} and metric ${this.settings.name} is being invoked`);
30
35
  const data = this.getData(e.application);
31
36
  this.appStoppedMetric.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 handleInstanceStopped 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":"stopped.js","sourceRoot":"","sources":["../../../src/metrics/application/stopped.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;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,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,WAAW;QAC1B,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,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;AAtDD,4DAsDC"}
1
+ {"version":3,"file":"stopped.js","sourceRoot":"","sources":["../../../src/metrics/application/stopped.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,WAAW;QAC1B,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,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;AAxDD,4DAwDC"}
@@ -1,16 +1,11 @@
1
- import { TelemetryMetricData, TelemetryMetric, TelemetryMetricSettings, TelemetryMetricType } from "../types";
1
+ import { TelemetryMetricData, TelemetryMetric, TelemetryMetricSettings } from "../types";
2
2
  import { TelemetryLogger } from "../../types";
3
3
  export declare abstract class MetricBase implements TelemetryMetric {
4
- protected logger: TelemetryLogger;
5
- private settings;
6
- private userId;
4
+ settings: TelemetryMetricSettings;
5
+ userId: string;
6
+ logger: TelemetryLogger;
7
+ started: boolean;
7
8
  constructor(settings: TelemetryMetricSettings, userId: string, logger: TelemetryLogger);
8
- get enabled(): boolean;
9
- get name(): string;
10
- get description(): string | undefined;
11
- get type(): TelemetryMetricType;
12
- get unit(): string | undefined;
13
- get buckets(): number[] | undefined;
14
9
  start(): Promise<void>;
15
10
  stop(): Promise<void>;
16
11
  protected abstract createMetric(): Promise<void>;
@@ -1,54 +1,57 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.MetricBase = void 0;
4
13
  const validator_1 = require("../../utils/validator");
14
+ const base_1 = require("../../validation/metrics/base/base");
5
15
  class MetricBase {
6
16
  constructor(settings, userId, logger) {
7
- this.logger = logger;
8
- this.userId = userId;
9
17
  this.settings = settings;
10
- }
11
- get enabled() {
12
- return this.settings.enabled;
13
- }
14
- get name() {
15
- return this.settings.name;
16
- }
17
- get description() {
18
- return this.settings.description;
19
- }
20
- get type() {
21
- return this.settings.type;
22
- }
23
- get unit() {
24
- return this.settings.unit;
25
- }
26
- get buckets() {
27
- return this.settings.buckets;
18
+ this.userId = userId;
19
+ this.logger = logger;
20
+ this.started = false;
21
+ const validator = new base_1.MetricBaseValidator();
22
+ validator.validate(this);
28
23
  }
29
24
  start() {
30
- try {
31
- this.createMetric();
32
- this.logger.info(`metric ${this.name} has been created`);
33
- this.subscribe();
34
- this.logger.info(`metric ${this.name} has subscribed`);
35
- }
36
- catch (error) {
37
- this.logger.error(error);
38
- }
39
- return Promise.resolve();
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ try {
27
+ yield this.createMetric();
28
+ this.logger.debug(`metric ${this.settings.name} has been created`);
29
+ yield this.subscribe();
30
+ this.logger.debug(`metric ${this.settings.name} has subscribed`);
31
+ this.started = true;
32
+ }
33
+ catch (error) {
34
+ const message = `error while starting and subscribing for metric from type: ${this.settings.type}`;
35
+ this.logger.error(message, error);
36
+ }
37
+ return Promise.resolve();
38
+ });
40
39
  }
41
40
  stop() {
42
- try {
43
- this.unsubscribe();
44
- this.logger.info(`metric ${this.name} has unsubscribed`);
45
- this.destroyMetric();
46
- this.logger.info(`metric ${this.name} has been destroyed`);
47
- }
48
- catch (error) {
49
- this.logger.error(error);
50
- }
51
- return Promise.resolve();
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ try {
43
+ yield this.unsubscribe();
44
+ this.logger.debug(`metric ${this.settings.name} has unsubscribed`);
45
+ yield this.destroyMetric();
46
+ this.logger.debug(`metric ${this.settings.name} has been destroyed`);
47
+ this.started = false;
48
+ }
49
+ catch (error) {
50
+ const message = `error while stopping and unsubscribing for metric from type: ${this.settings.type}`;
51
+ this.logger.error(message, error);
52
+ }
53
+ return Promise.resolve();
54
+ });
52
55
  }
53
56
  getData(application) {
54
57
  const data = {
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/metrics/base/base.ts"],"names":[],"mappings":";;;AAEA,qDAAkD;AAElD,MAAsB,UAAU;IAK5B,YAAY,QAAiC,EAAE,MAAc,EAAE,MAAuB;QAClF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACrC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IACjC,CAAC;IAEM,KAAK;QACR,IAAI;YACA,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAEzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,iBAAiB,CAAC,CAAC;SAC1D;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEM,IAAI;QACP,IAAI;YACA,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAEzD,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,qBAAqB,CAAC,CAAC;SAC9D;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAQS,OAAO,CAAC,WAAoB;QAClC,MAAM,IAAI,GAAwB;YAC9B,IAAI,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QAEF,IAAI,CAAC,qBAAS,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;YAC3C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAClC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA9ED,gCA8EC"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/metrics/base/base.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qDAAkD;AAClD,6DAAyE;AAEzE,MAAsB,UAAU;IAG5B,YACW,QAAiC,EACjC,MAAc,EACd,MAAuB;QAFvB,aAAQ,GAAR,QAAQ,CAAyB;QACjC,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAiB;QAL3B,YAAO,GAAY,KAAK,CAAC;QAO5B,MAAM,SAAS,GAAG,IAAI,0BAAmB,EAAE,CAAC;QAC5C,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEY,KAAK;;YACd,IAAI;gBACA,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBAEnE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,CAAC;gBAEjE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACvB;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,OAAO,GAAG,8DAA8D,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACrC;YACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;KAAA;IAEY,IAAI;;YACb,IAAI;gBACA,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBAEnE,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC,CAAC;gBAErE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACxB;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,OAAO,GAAG,gEAAgE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACrG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACrC;YACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;KAAA;IAQS,OAAO,CAAC,WAAoB;QAClC,MAAM,IAAI,GAAwB;YAC9B,IAAI,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QAEF,IAAI,CAAC,qBAAS,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;YAC3C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAClC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA7DD,gCA6DC"}
@@ -3,7 +3,7 @@ import { TelemetryMetricData, TelemetryMetricSettings } from "../types";
3
3
  import { TelemetryLogger } from "../../types";
4
4
  import { MetricBase } from "./base";
5
5
  export declare abstract class GaugeMetricBase extends MetricBase {
6
- protected meter: Meter;
6
+ meter: Meter;
7
7
  protected metric: Observable<TelemetryMetricData>;
8
8
  protected observableCallback: ObservableCallback<TelemetryMetricData>;
9
9
  constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger);
@@ -11,15 +11,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GaugeMetricBase = void 0;
13
13
  const base_1 = require("./base");
14
+ const gauge_1 = require("../../validation/metrics/base/gauge");
14
15
  class GaugeMetricBase extends base_1.MetricBase {
15
16
  constructor(settings, meter, userId, logger) {
16
17
  super(settings, userId, logger);
17
18
  this.meter = meter;
19
+ this.meter = meter;
20
+ const validator = new gauge_1.GaugeMetricBaseValidator();
21
+ validator.validate(this);
18
22
  }
19
23
  createMetric() {
20
- const name = this.name;
21
- const description = this.description;
22
- const unit = this.unit;
24
+ const name = this.settings.name;
25
+ const description = this.settings.description;
26
+ const unit = this.settings.unit;
23
27
  this.metric = this.meter.createObservableGauge(name, { description, unit });
24
28
  return Promise.resolve();
25
29
  }
@@ -40,12 +44,13 @@ class GaugeMetricBase extends base_1.MetricBase {
40
44
  observe(result) {
41
45
  return __awaiter(this, void 0, void 0, function* () {
42
46
  try {
43
- this.logger.debug(`observe is being invoked for metric ${this.name}`);
47
+ this.logger.debug(`observe is being invoked for gauge metric ${this.settings.name}`);
44
48
  yield this.observeCore(result);
45
- this.logger.debug(`metric ${this.name} has been observed`);
49
+ this.logger.debug(`gauge metric ${this.settings.name} has been observed`);
46
50
  }
47
51
  catch (error) {
48
- this.logger.error(error);
52
+ const message = `error while executing observe for metric from type: ${this.settings.type}`;
53
+ this.logger.error(message, error);
49
54
  }
50
55
  });
51
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gauge.js","sourceRoot":"","sources":["../../../src/metrics/base/gauge.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,iCAAoC;AAEpC,MAAsB,eAAgB,SAAQ,iBAAU;IAKpD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB;QAEvB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEwB,SAAS;;YAC9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEjD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC;KAAA;IAEkB,aAAa;QAC5B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC;IAEe,OAAO,CAAC,MAA6C;;YACjE,IAAI;gBACA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAEtE,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAE/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,oBAAoB,CAAC,CAAC;aAC9D;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC5B;QACL,CAAC;KAAA;CAKJ;AAxDD,0CAwDC"}
1
+ {"version":3,"file":"gauge.js","sourceRoot":"","sources":["../../../src/metrics/base/gauge.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,iCAAoC;AACpC,+DAA+E;AAE/E,MAAsB,eAAgB,SAAQ,iBAAU;IAIpD,YACI,QAAiC,EAC1B,KAAY,EACnB,MAAc,EACd,MAAuB;QAEvB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAJzB,UAAK,GAAL,KAAK,CAAO;QAKnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,MAAM,SAAS,GAAG,IAAI,gCAAwB,EAAE,CAAC;QACjD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAEhC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEwB,SAAS;;YAC9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEjD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC;KAAA;IAEkB,aAAa;QAC5B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC;IAEe,OAAO,CAAC,MAA6C;;YACjE,IAAI;gBACA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBAErF,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAE/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC,CAAC;aAC7E;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,OAAO,GAAG,uDAAuD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC5F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACrC;QACL,CAAC;KAAA;CAKJ;AA3DD,0CA2DC"}
@@ -1,14 +1,10 @@
1
- import { TelemetryMetric, TelemetryMetricSettings, TelemetryMetricType } from "../types";
1
+ import { TelemetryMetric, TelemetryMetricSettings } from "../types";
2
2
  import { TelemetryLogger } from "../../types";
3
3
  export declare class NullMetric implements TelemetryMetric {
4
- private logger;
5
- private settings;
6
- constructor(logger: TelemetryLogger, settings: TelemetryMetricSettings);
7
- get enabled(): boolean;
8
- get name(): string;
9
- get description(): string;
10
- get unit(): string;
11
- get type(): TelemetryMetricType;
4
+ settings: TelemetryMetricSettings;
5
+ logger: TelemetryLogger;
6
+ started: boolean;
7
+ constructor(settings: TelemetryMetricSettings, logger: TelemetryLogger);
12
8
  start(): Promise<void>;
13
9
  stop(): Promise<void>;
14
10
  }
@@ -2,31 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NullMetric = void 0;
4
4
  class NullMetric {
5
- constructor(logger, settings) {
6
- this.logger = logger;
5
+ constructor(settings, logger) {
7
6
  this.settings = settings;
8
- }
9
- get enabled() {
10
- return this.settings.enabled;
11
- }
12
- get name() {
13
- return "null_metric";
14
- }
15
- get description() {
16
- return "a null metric which publishes nothing";
17
- }
18
- get unit() {
19
- return "";
20
- }
21
- get type() {
22
- return "null";
7
+ this.logger = logger;
8
+ this.started = false;
23
9
  }
24
10
  start() {
25
- this.logger.info(`null metric has been started instead of ${this.settings.type} one`);
11
+ this.logger.debug(`null metric has been started instead of ${this.settings.type} one`);
12
+ this.started = true;
26
13
  return Promise.resolve();
27
14
  }
28
15
  stop() {
29
- this.logger.info(`null metric has been stopped instead of ${this.settings.type} one`);
16
+ this.logger.debug(`null metric has been stopped instead of ${this.settings.type} one`);
17
+ this.started = false;
30
18
  return Promise.resolve();
31
19
  }
32
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"null.js","sourceRoot":"","sources":["../../../src/metrics/base/null.ts"],"names":[],"mappings":";;;AAGA,MAAa,UAAU;IAInB,YAAY,MAAuB,EAAE,QAAiC;QAClE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,uCAAuC,CAAC;IACnD,CAAC;IAED,IAAW,IAAI;QACX,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAW,IAAI;QACX,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;QAEtF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;QAEtF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ;AAxCD,gCAwCC"}
1
+ {"version":3,"file":"null.js","sourceRoot":"","sources":["../../../src/metrics/base/null.ts"],"names":[],"mappings":";;;AAGA,MAAa,UAAU;IAGnB,YACW,QAAiC,EACjC,MAAuB;QADvB,aAAQ,GAAR,QAAQ,CAAyB;QACjC,WAAM,GAAN,MAAM,CAAiB;QAJ3B,YAAO,GAAY,KAAK,CAAC;IAKhC,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;QACvF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;QACvF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ;AAnBD,gCAmBC"}
@@ -0,0 +1,15 @@
1
+ import { Meter } from "@opentelemetry/api";
2
+ import { TelemetryLogger } from "../types";
3
+ import { TelemetryMetricsDependencyContainer, TelemetryMetricsManager, TelemetryMetricsBuilder, TelemetryMetricsSettings } from "./types";
4
+ export declare class MetricsBuilder implements TelemetryMetricsBuilder {
5
+ meter: Meter;
6
+ logger: TelemetryLogger;
7
+ settings: TelemetryMetricsSettings;
8
+ dependencyContainer: TelemetryMetricsDependencyContainer;
9
+ withLogger(logger: TelemetryLogger): this;
10
+ withMeter(meter: Meter): this;
11
+ withSettings(settings: TelemetryMetricsSettings): this;
12
+ withDependencies(container: TelemetryMetricsDependencyContainer): this;
13
+ build(): TelemetryMetricsManager;
14
+ private buildCore;
15
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetricsBuilder = void 0;
4
+ const factoryBuilder_1 = require("./factoryBuilder");
5
+ const manager_1 = require("./manager");
6
+ const settingsBuilder_1 = require("./settingsBuilder");
7
+ const builder_1 = require("../validation/metrics/builder");
8
+ class MetricsBuilder {
9
+ withLogger(logger) {
10
+ this.logger = logger;
11
+ return this;
12
+ }
13
+ withMeter(meter) {
14
+ this.meter = meter;
15
+ return this;
16
+ }
17
+ withSettings(settings) {
18
+ this.settings = settings;
19
+ return this;
20
+ }
21
+ withDependencies(container) {
22
+ this.dependencyContainer = container;
23
+ return this;
24
+ }
25
+ build() {
26
+ const validator = new builder_1.MetricsBuilderValidator();
27
+ validator.validate(this);
28
+ return this.buildCore();
29
+ }
30
+ buildCore() {
31
+ const metricsSettings = new settingsBuilder_1.MetricsSettingsBuilder()
32
+ .withSettings(this.settings)
33
+ .build();
34
+ const settings = JSON.stringify(metricsSettings);
35
+ this.logger.debug(`metrics final settings: ${settings}`);
36
+ const factory = new factoryBuilder_1.MetricsFactoryBuilder(this.meter, this.dependencyContainer, metricsSettings.userId, this.logger)
37
+ .withDefaults()
38
+ .build();
39
+ const manager = new manager_1.MetricsManager(metricsSettings, factory, this.logger);
40
+ return manager;
41
+ }
42
+ }
43
+ exports.MetricsBuilder = MetricsBuilder;
44
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/metrics/builder.ts"],"names":[],"mappings":";;;AAEA,qDAAyD;AACzD,uCAA2C;AAC3C,uDAA2D;AAC3D,2DAAwE;AAQxE,MAAa,cAAc;IAMhB,UAAU,CAAC,MAAuB;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,SAAS,CAAC,KAAY;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,YAAY,CAAC,QAAkC;QAClD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,gBAAgB,CAAC,SAA8C;QAClE,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK;QACR,MAAM,SAAS,GAAG,IAAI,iCAAuB,EAAE,CAAC;QAChD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;IAEO,SAAS;QACb,MAAM,eAAe,GAAG,IAAI,wCAAsB,EAAE;aAC/C,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC3B,KAAK,EAAE,CAAC;QAEb,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;QAEzD,MAAM,OAAO,GAAG,IAAI,sCAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;aAC/G,YAAY,EAAE;aACd,KAAK,EAAE,CAAC;QAEb,MAAM,OAAO,GAAG,IAAI,wBAAc,CAAC,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1E,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAhDD,wCAgDC"}
@@ -1,6 +1,6 @@
1
1
  import { InstanceActionHandler, InstanceFocusedHandler, InstanceReadyHandler, LayoutRestoredHandler, PerformanceProvider, PlatformStartedHandler, TelemetryMetricsDependencyContainer } from "./types";
2
2
  export declare class MetricsDependencyBuilder {
3
- private perfProvider;
3
+ private performanceProvider;
4
4
  private instanceStartedHandler;
5
5
  private instanceStoppedHandler;
6
6
  private instanceReadyHandler;
@@ -5,7 +5,7 @@ const nullPerfProvider_1 = require("./utils/nullPerfProvider");
5
5
  class MetricsDependencyBuilder {
6
6
  constructor() {
7
7
  // set default dependencies
8
- this.perfProvider = new nullPerfProvider_1.NullPerformanceProvider();
8
+ this.performanceProvider = new nullPerfProvider_1.NullPerformanceProvider();
9
9
  this.instanceFocusedHandler = () => () => { };
10
10
  this.instanceStartedHandler = () => () => { };
11
11
  this.instanceStoppedHandler = () => () => { };
@@ -15,7 +15,7 @@ class MetricsDependencyBuilder {
15
15
  }
16
16
  build() {
17
17
  const container = {
18
- perfProvider: this.perfProvider,
18
+ performanceProvider: this.performanceProvider,
19
19
  instanceStartedHandler: this.instanceStartedHandler,
20
20
  instanceStoppedHandler: this.instanceStoppedHandler,
21
21
  instanceReadyHandler: this.instanceReadyHandler,
@@ -50,7 +50,7 @@ class MetricsDependencyBuilder {
50
50
  return this;
51
51
  }
52
52
  withPerfProvider(perfProvider) {
53
- this.perfProvider = perfProvider;
53
+ this.performanceProvider = perfProvider;
54
54
  return this;
55
55
  }
56
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dependencyBuilder.js","sourceRoot":"","sources":["../../src/metrics/dependencyBuilder.ts"],"names":[],"mappings":";;;AAAA,+DAAmE;AAWnE,MAAa,wBAAwB;IASjC;QACI,2BAA2B;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,0CAAuB,EAAE,CAAC;QAClD,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,qBAAqB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK;QACR,MAAM,SAAS,GAAwC;YACnD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;SACtD,CAAA;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEM,0BAA0B,CAAC,sBAA6C;QAC3E,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,0BAA0B,CAAC,sBAA6C;QAC3E,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,wBAAwB,CAAC,oBAA0C;QACtE,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,0BAA0B,CAAC,sBAA8C;QAC5E,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,yBAAyB,CAAC,qBAA4C;QACzE,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,0BAA0B,CAAC,sBAA8C;QAC5E,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,gBAAgB,CAAC,YAAiC;QACrD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAnED,4DAmEC"}
1
+ {"version":3,"file":"dependencyBuilder.js","sourceRoot":"","sources":["../../src/metrics/dependencyBuilder.ts"],"names":[],"mappings":";;;AAAA,+DAAmE;AAWnE,MAAa,wBAAwB;IASjC;QACI,2BAA2B;QAC3B,IAAI,CAAC,mBAAmB,GAAG,IAAI,0CAAuB,EAAE,CAAC;QACzD,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,qBAAqB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK;QACR,MAAM,SAAS,GAAwC;YACnD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;SACtD,CAAC;QACF,OAAO,SAAS,CAAC;IACrB,CAAC;IAEM,0BAA0B,CAAC,sBAA6C;QAC3E,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,0BAA0B,CAAC,sBAA6C;QAC3E,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,wBAAwB,CAAC,oBAA0C;QACtE,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,0BAA0B,CAAC,sBAA8C;QAC5E,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,yBAAyB,CAAC,qBAA4C;QACzE,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,0BAA0B,CAAC,sBAA8C;QAC5E,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,gBAAgB,CAAC,YAAiC;QACrD,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAnED,4DAmEC"}
@@ -1,8 +1,8 @@
1
1
  import { TelemetryLogger } from "../types";
2
2
  import { CreateTelemetryMetricFunc, TelemetryMetric, TelemetryMetricsFactory, TelemetryMetricSettings, TelemetryMetricType } from "./types";
3
3
  export declare class MetricsFactory implements TelemetryMetricsFactory {
4
- private logger;
5
- private factories;
4
+ logger: TelemetryLogger;
5
+ metricsFactories: Map<TelemetryMetricType, CreateTelemetryMetricFunc>;
6
6
  constructor(logger: TelemetryLogger, metricsFactories: Map<TelemetryMetricType, CreateTelemetryMetricFunc>);
7
7
  create(metricSettings: TelemetryMetricSettings): TelemetryMetric;
8
8
  private createNullMetric;
@@ -1,17 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MetricsFactory = void 0;
4
+ const factory_1 = require("../validation/metrics/factory");
4
5
  const null_1 = require("./base/null");
5
6
  class MetricsFactory {
6
7
  constructor(logger, metricsFactories) {
7
8
  this.logger = logger;
8
- this.factories = metricsFactories;
9
+ this.metricsFactories = metricsFactories;
10
+ const validator = new factory_1.MetricsFactoryValidator();
11
+ validator.validate(this);
9
12
  }
10
13
  create(metricSettings) {
11
14
  const metricType = metricSettings.type;
12
- const hasMetricFactory = this.factories.has(metricType);
15
+ const hasMetricFactory = this.metricsFactories.has(metricType);
13
16
  if (hasMetricFactory) {
14
- const metricFactory = this.factories.get(metricType);
17
+ const metricFactory = this.metricsFactories.get(metricType);
15
18
  const metric = metricFactory(metricSettings);
16
19
  return metric;
17
20
  }
@@ -21,8 +24,8 @@ class MetricsFactory {
21
24
  }
22
25
  }
23
26
  createNullMetric(settings, reason) {
24
- this.logger.info(`cannot create ${settings.name} metric, reason: ${reason}`);
25
- const nullMetric = new null_1.NullMetric(this.logger, settings);
27
+ this.logger.debug(`cannot create ${settings.name} metric, reason: ${reason}`);
28
+ const nullMetric = new null_1.NullMetric(settings, this.logger);
26
29
  return nullMetric;
27
30
  }
28
31
  }