@interopio/otel 0.0.1 → 0.0.2

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 +11 -4
  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 +5 -1
  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 +9 -5
  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 +7 -3
  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 +8 -3
  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 +18 -19
  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 +8 -3
  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 +41 -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 +9 -5
  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 +5 -17
  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 +7 -4
  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 +16 -17
  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 +22 -24
  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 +12 -18
  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 +1 -1
  76. package/dist/metrics/system/cpu.js +12 -10
  77. package/dist/metrics/system/cpu.js.map +1 -1
  78. package/dist/metrics/system/memory.d.ts +1 -1
  79. package/dist/metrics/system/memory.js +13 -11
  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 +10 -2
  87. package/dist/metrics/utils/nullPerfProvider.js.map +1 -1
  88. package/dist/types.d.ts +3 -1
  89. package/dist/utils/nullLogger.d.ts +6 -0
  90. package/dist/utils/nullLogger.js +10 -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
@@ -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,15 +44,16 @@ 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
59
  this.logger.error(error);
@@ -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,9 +30,11 @@ 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
40
  this.logger.error(error);
@@ -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,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;IACL,CAAC;CACJ;AAvDD,4DAuDC"}
@@ -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,55 @@
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.info(`metric ${this.settings.name} has been created`);
29
+ yield this.subscribe();
30
+ this.logger.info(`metric ${this.settings.name} has subscribed`);
31
+ this.started = true;
32
+ }
33
+ catch (error) {
34
+ this.logger.error(error);
35
+ }
36
+ return Promise.resolve();
37
+ });
40
38
  }
41
39
  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();
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ try {
42
+ yield this.unsubscribe();
43
+ this.logger.info(`metric ${this.settings.name} has unsubscribed`);
44
+ yield this.destroyMetric();
45
+ this.logger.info(`metric ${this.settings.name} has been destroyed`);
46
+ this.started = false;
47
+ }
48
+ catch (error) {
49
+ this.logger.error(error);
50
+ }
51
+ return Promise.resolve();
52
+ });
52
53
  }
53
54
  getData(application) {
54
55
  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,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBAElE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,CAAC;gBAEhE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACvB;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC5B;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,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBAElE,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC,CAAC;gBAEpE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACxB;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC5B;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;AA3DD,gCA2DC"}
@@ -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,9 +44,9 @@ 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
52
  this.logger.error(error);
@@ -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,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC5B;QACL,CAAC;KAAA;CAKJ;AA1DD,0CA0DC"}
@@ -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
11
  this.logger.info(`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
16
  this.logger.info(`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,IAAI,CAAC,2CAA2C,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;QACtF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,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;QACtF,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.info(`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,IAAI,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;QAExD,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
  }
@@ -22,7 +25,7 @@ class MetricsFactory {
22
25
  }
23
26
  createNullMetric(settings, reason) {
24
27
  this.logger.info(`cannot create ${settings.name} metric, reason: ${reason}`);
25
- const nullMetric = new null_1.NullMetric(this.logger, settings);
28
+ const nullMetric = new null_1.NullMetric(settings, this.logger);
26
29
  return nullMetric;
27
30
  }
28
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/metrics/factory.ts"],"names":[],"mappings":";;;AACA,sCAAyC;AAGzC,MAAa,cAAc;IAIvB,YACI,MAAuB,EACvB,gBAAqE;QAErE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,cAAuC;QACjD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC;QACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAExD,IAAI,gBAAgB,EAAE;YAClB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;YACtD,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;YAC7C,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAC1E,OAAO,UAAU,CAAC;SACrB;IACL,CAAC;IAEO,gBAAgB,CAAC,QAAiC,EAAE,MAAc;QACtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,QAAQ,CAAC,IAAI,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAI,iBAAU,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACzD,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AA/BD,wCA+BC"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/metrics/factory.ts"],"names":[],"mappings":";;;AACA,2DAAwE;AACxE,sCAAyC;AAGzC,MAAa,cAAc;IACvB,YACW,MAAuB,EACvB,gBAAqE;QADrE,WAAM,GAAN,MAAM,CAAiB;QACvB,qBAAgB,GAAhB,gBAAgB,CAAqD;QAE5E,MAAM,SAAS,GAAG,IAAI,iCAAuB,EAAE,CAAC;QAChD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,cAAuC;QACjD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC;QACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE/D,IAAI,gBAAgB,EAAE;YAClB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;YAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;YAC7C,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAC1E,OAAO,UAAU,CAAC;SACrB;IACL,CAAC;IAEO,gBAAgB,CAAC,QAAiC,EAAE,MAAc;QACtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,QAAQ,CAAC,IAAI,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAI,iBAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AA5BD,wCA4BC"}
@@ -2,12 +2,12 @@ import { Meter } from "@opentelemetry/api";
2
2
  import { TelemetryLogger } from "../types";
3
3
  import { CreateTelemetryMetricFunc, TelemetryMetricType, TelemetryMetricsDependencyContainer, TelemetryMetricsFactory } from "./types";
4
4
  export declare class MetricsFactoryBuilder {
5
+ meter: Meter;
6
+ dependencyContainer: TelemetryMetricsDependencyContainer;
7
+ userId: string;
8
+ logger: TelemetryLogger;
5
9
  private metricsFactories;
6
- private meter;
7
- private userId;
8
- private dependencyContainer;
9
- private logger;
10
- constructor(meter: Meter, userId: string, dependencyContainer: TelemetryMetricsDependencyContainer, logger: TelemetryLogger);
10
+ constructor(meter: Meter, dependencyContainer: TelemetryMetricsDependencyContainer, userId: string, logger: TelemetryLogger);
11
11
  build(): TelemetryMetricsFactory;
12
12
  withDefaults(): this;
13
13
  withCustomMetric(type: TelemetryMetricType, createFunc: CreateTelemetryMetricFunc): this;
@@ -26,5 +26,4 @@ export declare class MetricsFactoryBuilder {
26
26
  withLayoutStartup(): this;
27
27
  withLayoutStartupHistogram(): this;
28
28
  withPlatformStartup(): this;
29
- private throwIfNotPresent;
30
29
  }