@interopio/otel 0.0.2 → 0.0.4

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 (98) hide show
  1. package/dist/builder.d.ts +1 -1
  2. package/dist/builder.js +5 -5
  3. package/dist/builder.js.map +1 -1
  4. package/dist/metrics/application/count.js +4 -2
  5. package/dist/metrics/application/count.js.map +1 -1
  6. package/dist/metrics/application/cpu.js +11 -8
  7. package/dist/metrics/application/cpu.js.map +1 -1
  8. package/dist/metrics/application/duration.d.ts +7 -20
  9. package/dist/metrics/application/duration.js +19 -91
  10. package/dist/metrics/application/duration.js.map +1 -1
  11. package/dist/metrics/application/durationBase.d.ts +21 -0
  12. package/dist/metrics/application/durationBase.js +102 -0
  13. package/dist/metrics/application/durationBase.js.map +1 -0
  14. package/dist/metrics/application/durationHistogram.d.ts +4 -6
  15. package/dist/metrics/application/durationHistogram.js +4 -4
  16. package/dist/metrics/application/durationHistogram.js.map +1 -1
  17. package/dist/metrics/application/memory.js +10 -7
  18. package/dist/metrics/application/memory.js.map +1 -1
  19. package/dist/metrics/application/started.js +2 -1
  20. package/dist/metrics/application/started.js.map +1 -1
  21. package/dist/metrics/application/startup.d.ts +7 -16
  22. package/dist/metrics/application/startup.js +17 -61
  23. package/dist/metrics/application/startup.js.map +1 -1
  24. package/dist/metrics/application/startupBase.d.ts +17 -0
  25. package/dist/metrics/application/startupBase.js +68 -0
  26. package/dist/metrics/application/startupBase.js.map +1 -0
  27. package/dist/metrics/application/startupHistogram.d.ts +4 -6
  28. package/dist/metrics/application/startupHistogram.js +4 -4
  29. package/dist/metrics/application/startupHistogram.js.map +1 -1
  30. package/dist/metrics/application/stopped.js +2 -1
  31. package/dist/metrics/application/stopped.js.map +1 -1
  32. package/dist/metrics/base/base.js +8 -6
  33. package/dist/metrics/base/base.js.map +1 -1
  34. package/dist/metrics/base/gauge.js +9 -6
  35. package/dist/metrics/base/gauge.js.map +1 -1
  36. package/dist/metrics/base/observable.d.ts +20 -0
  37. package/dist/metrics/base/observable.js +70 -0
  38. package/dist/metrics/base/observable.js.map +1 -0
  39. package/dist/metrics/builder.js +1 -1
  40. package/dist/metrics/builder.js.map +1 -1
  41. package/dist/metrics/factory.js +2 -2
  42. package/dist/metrics/factory.js.map +1 -1
  43. package/dist/metrics/factoryBuilder.d.ts +0 -1
  44. package/dist/metrics/factoryBuilder.js +7 -17
  45. package/dist/metrics/factoryBuilder.js.map +1 -1
  46. package/dist/metrics/layout/startup.d.ts +7 -17
  47. package/dist/metrics/layout/startup.js +18 -65
  48. package/dist/metrics/layout/startup.js.map +1 -1
  49. package/dist/metrics/layout/startupBase.d.ts +18 -0
  50. package/dist/metrics/layout/startupBase.js +71 -0
  51. package/dist/metrics/layout/startupBase.js.map +1 -0
  52. package/dist/metrics/layout/startupHistogram.d.ts +4 -6
  53. package/dist/metrics/layout/startupHistogram.js +4 -4
  54. package/dist/metrics/layout/startupHistogram.js.map +1 -1
  55. package/dist/metrics/manager.js +13 -8
  56. package/dist/metrics/manager.js.map +1 -1
  57. package/dist/metrics/{base/null.d.ts → null.d.ts} +2 -2
  58. package/dist/metrics/{base/null.js → null.js} +2 -2
  59. package/dist/metrics/null.js.map +1 -0
  60. package/dist/metrics/platform/startup.js +3 -3
  61. package/dist/metrics/platform/startup.js.map +1 -1
  62. package/dist/metrics/settingsBuilder.d.ts +0 -1
  63. package/dist/metrics/settingsBuilder.js +0 -12
  64. package/dist/metrics/settingsBuilder.js.map +1 -1
  65. package/dist/metrics/system/cpu.d.ts +1 -0
  66. package/dist/metrics/system/cpu.js +17 -11
  67. package/dist/metrics/system/cpu.js.map +1 -1
  68. package/dist/metrics/system/memory.d.ts +1 -0
  69. package/dist/metrics/system/memory.js +18 -12
  70. package/dist/metrics/system/memory.js.map +1 -1
  71. package/dist/metrics/types.d.ts +13 -10
  72. package/dist/metrics/utils/nullPerfProvider.d.ts +4 -4
  73. package/dist/metrics/utils/nullPerfProvider.js +4 -12
  74. package/dist/metrics/utils/nullPerfProvider.js.map +1 -1
  75. package/dist/types.d.ts +5 -3
  76. package/dist/utils/nullLogger.d.ts +3 -1
  77. package/dist/utils/nullLogger.js +15 -3
  78. package/dist/utils/nullLogger.js.map +1 -1
  79. package/dist/validation/builder.js +1 -1
  80. package/dist/validation/builder.js.map +1 -1
  81. package/dist/validation/metrics/application/duration.d.ts +2 -2
  82. package/dist/validation/metrics/application/duration.js.map +1 -1
  83. package/dist/validation/metrics/application/startup.d.ts +3 -2
  84. package/dist/validation/metrics/application/startup.js +1 -0
  85. package/dist/validation/metrics/application/startup.js.map +1 -1
  86. package/dist/validation/metrics/base/gauge.d.ts +2 -1
  87. package/dist/validation/metrics/base/gauge.js.map +1 -1
  88. package/dist/validation/metrics/layout/startup.d.ts +3 -2
  89. package/dist/validation/metrics/layout/startup.js +1 -0
  90. package/dist/validation/metrics/layout/startup.js.map +1 -1
  91. package/dist/validation/metrics/platform/startup.d.ts +2 -1
  92. package/dist/validation/metrics/platform/startup.js +1 -0
  93. package/dist/validation/metrics/platform/startup.js.map +1 -1
  94. package/package.json +1 -1
  95. package/dist/metrics/application/durationSum.d.ts +0 -9
  96. package/dist/metrics/application/durationSum.js +0 -17
  97. package/dist/metrics/application/durationSum.js.map +0 -1
  98. package/dist/metrics/base/null.js.map +0 -1
package/dist/builder.d.ts CHANGED
@@ -4,7 +4,7 @@ import { TelemetryContainer, TelemetryLogger, TelemetrySettings } from "./types"
4
4
  export declare class Builder {
5
5
  logger: TelemetryLogger;
6
6
  settings: TelemetrySettings;
7
- metricsPipeline: MetricsBuilder;
7
+ metricsBuilder: MetricsBuilder;
8
8
  constructor();
9
9
  withLogger(logger: TelemetryLogger): this;
10
10
  withSettings(settings: TelemetrySettings): this;
package/dist/builder.js CHANGED
@@ -19,10 +19,10 @@ class Builder {
19
19
  }
20
20
  withMetrics() {
21
21
  var _a;
22
- this.metricsPipeline = new builder_1.MetricsBuilder();
23
- this.metricsPipeline.withLogger(this.logger);
24
- this.metricsPipeline.withSettings((_a = this.settings) === null || _a === void 0 ? void 0 : _a.metrics);
25
- return this.metricsPipeline;
22
+ this.metricsBuilder = new builder_1.MetricsBuilder();
23
+ this.metricsBuilder.withLogger(this.logger);
24
+ this.metricsBuilder.withSettings((_a = this.settings) === null || _a === void 0 ? void 0 : _a.metrics);
25
+ return this.metricsBuilder;
26
26
  }
27
27
  build() {
28
28
  const validator = new builder_2.BuilderValidator();
@@ -35,7 +35,7 @@ class Builder {
35
35
  builder.withLogger(this.logger);
36
36
  const settings = JSON.stringify((_a = this.settings) !== null && _a !== void 0 ? _a : {});
37
37
  this.logger.info(`builder will work with user settings: ${settings}`);
38
- const metrics = this.metricsPipeline.build();
38
+ const metrics = this.metricsBuilder.build();
39
39
  builder.withMetrics(metrics);
40
40
  // traces is not implemented yet
41
41
  // logs is not implemented yet
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AACtD,+CAAmD;AAGnD,mDAAgD;AAChD,kDAAwD;AAExD,MAAa,OAAO;IAKhB;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAU,EAAE,CAAC;IACnC,CAAC;IAEM,UAAU,CAAC,MAAuB;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,YAAY,CAAC,QAA2B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,WAAW;;QACd,IAAI,CAAC,eAAe,GAAG,IAAI,wBAAc,EAAE,CAAC;QAC5C,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEM,KAAK;QACR,MAAM,SAAS,GAAG,IAAI,0BAAgB,EAAE,CAAC;QACzC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;IAEO,SAAS;;QACb,MAAM,OAAO,GAAG,IAAI,mCAAgB,EAAE,CAAC;QACvC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAA,IAAI,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7C,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE7B,gCAAgC;QAEhC,8BAA8B;QAE9B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAlDD,0BAkDC"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AACtD,+CAAmD;AAGnD,mDAAgD;AAChD,kDAAwD;AAExD,MAAa,OAAO;IAKhB;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAU,EAAE,CAAC;IACnC,CAAC;IAEM,UAAU,CAAC,MAAuB;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,YAAY,CAAC,QAA2B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,WAAW;;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAEM,KAAK;QACR,MAAM,SAAS,GAAG,IAAI,0BAAgB,EAAE,CAAC;QACzC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;IAEO,SAAS;;QACb,MAAM,OAAO,GAAG,IAAI,mCAAgB,EAAE,CAAC;QACvC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAA,IAAI,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5C,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE7B,gCAAgC;QAEhC,8BAA8B;QAE9B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAlDD,0BAkDC"}
@@ -40,7 +40,8 @@ class ApplicationCountMetric extends base_1.MetricBase {
40
40
  this.logger.debug(`metric ${this.settings.name} sent 1 more for app ${data.application}`);
41
41
  }
42
42
  catch (error) {
43
- this.logger.error(error);
43
+ const message = `error while executing handleInstanceStarted for metric from type: ${this.settings.type}`;
44
+ this.logger.error(message, error);
44
45
  }
45
46
  }
46
47
  handleInstanceStopped(e) {
@@ -52,7 +53,8 @@ class ApplicationCountMetric extends base_1.MetricBase {
52
53
  this.logger.debug(`metric ${this.settings.name} sent 1 less for app ${data.application}`);
53
54
  }
54
55
  catch (error) {
55
- this.logger.error(error);
56
+ const message = `error while executing handleInstanceStopped for metric from type: ${this.settings.type}`;
57
+ this.logger.error(message, error);
56
58
  }
57
59
  }
58
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"count.js","sourceRoot":"","sources":["../../../src/metrics/application/count.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"count.js","sourceRoot":"","sources":["../../../src/metrics/application/count.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ApplicationCPUMetric = void 0;
13
13
  const gauge_1 = require("../base/gauge");
14
14
  const perf_1 = require("../../validation/metrics/perf");
15
+ const validator_1 = require("../../utils/validator");
15
16
  class ApplicationCPUMetric extends gauge_1.GaugeMetricBase {
16
17
  constructor(settings, meter, userId, logger, perfProvider) {
17
18
  super(settings, meter, userId, logger);
@@ -20,15 +21,17 @@ class ApplicationCPUMetric extends gauge_1.GaugeMetricBase {
20
21
  subscribeCore() { return Promise.resolve(); }
21
22
  observeCore(result) {
22
23
  return __awaiter(this, void 0, void 0, function* () {
23
- const validator = new perf_1.PerformanceProviderValidator();
24
- validator.validate(this.perfProvider);
24
+ const performanceValidator = new perf_1.PerformanceProviderValidator();
25
+ performanceValidator.validate(this.perfProvider);
25
26
  const appsCPU = yield this.perfProvider.getAppsCPU();
26
- validator.validateAppsCPU(appsCPU);
27
- appsCPU.forEach((info) => {
28
- const data = Object.assign({ applicationInstance: info.instance }, this.getData(info.app));
29
- result.observe(info.cpu, data);
30
- this.logger.debug(`metric ${this.settings.name} sent cpu ${info.cpu} for app ${data.application} and instance ${data.applicationInstance}`);
31
- });
27
+ if (!validator_1.Validator.isNullOrUndefined(appsCPU)) {
28
+ performanceValidator.validateAppsCPU(appsCPU);
29
+ appsCPU.forEach((info) => {
30
+ const data = Object.assign({ applicationInstance: info.instance }, this.getData(info.app));
31
+ result.observe(info.cpu, data);
32
+ this.logger.debug(`metric ${this.settings.name} sent cpu ${info.cpu} for app ${data.application} and instance ${data.applicationInstance}`);
33
+ });
34
+ }
32
35
  });
33
36
  }
34
37
  unsubscribeCore() { return Promise.resolve(); }
@@ -1 +1 @@
1
- {"version":3,"file":"cpu.js","sourceRoot":"","sources":["../../../src/metrics/application/cpu.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,yCAAgD;AAChD,wDAA6E;AAE7E,MAAa,oBAAqB,SAAQ,uBAAe;IACrD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EAChB,YAAiC;QAExC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAFhC,iBAAY,GAAZ,YAAY,CAAqB;IAG5C,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,MAA6C;;YAC9E,MAAM,SAAS,GAAG,IAAI,mCAA4B,EAAE,CAAC;YACrD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YACrD,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAEnC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrB,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;gBAC/E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;YAChJ,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AA5BD,oDA4BC"}
1
+ {"version":3,"file":"cpu.js","sourceRoot":"","sources":["../../../src/metrics/application/cpu.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,yCAAgD;AAChD,wDAA6E;AAC7E,qDAAkD;AAElD,MAAa,oBAAqB,SAAQ,uBAAe;IACrD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EAChB,YAAiC;QAExC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAFhC,iBAAY,GAAZ,YAAY,CAAqB;IAG5C,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,MAA6C;;YAC9E,MAAM,oBAAoB,GAAG,IAAI,mCAA4B,EAAE,CAAC;YAChE,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YACrD,IAAI,CAAC,qBAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;gBACvC,oBAAoB,CAAC,eAAe,CAAC,OAAQ,CAAC,CAAC;gBAE/C,OAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtB,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;oBAC/E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBAChJ,CAAC,CAAC,CAAC;aACN;QACL,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AA9BD,oDA8BC"}
@@ -1,21 +1,8 @@
1
- import { Meter, ObservableResult } from "@opentelemetry/api";
2
- import { TelemetryMetricData, InstanceFocusedHandler, TelemetryMetricSettings } from "../types";
3
- import { TelemetryLogger } from "../../types";
4
- import { GaugeMetricBase } from "../base/gauge";
5
- export declare class ApplicationDurationMetric extends GaugeMetricBase {
6
- instanceFocusHandler: InstanceFocusedHandler;
7
- private focusedTimes;
8
- private currentFocusedApp?;
9
- private unInstanceFocusHandler;
10
- private validator;
11
- constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceFocusHandler: InstanceFocusedHandler);
12
- protected subscribeCore(): Promise<void>;
13
- protected observeCore(result: ObservableResult<TelemetryMetricData>): Promise<void>;
14
- protected unsubscribeCore(): Promise<void>;
15
- protected sendMetric(focusedPeriods: number[], data: TelemetryMetricData, result: ObservableResult<TelemetryMetricData>): void;
16
- private handleFocusChanged;
17
- private handleFocusChangedCore;
18
- private handleGotFocus;
19
- private handleLostFocus;
20
- private addFocusLostEventCore;
1
+ import { TelemetryMetricData } from "../types";
2
+ import { ApplicationDurationMetricBase } from "./durationBase";
3
+ export declare class ApplicationDurationMetric extends ApplicationDurationMetricBase {
4
+ private lastMetrics;
5
+ private appDurationMetric;
6
+ protected createMetricCore(): Promise<void>;
7
+ protected sendMetric(focusedPeriods: number[], data: TelemetryMetricData): void;
21
8
  }
@@ -1,100 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ApplicationDurationMetric = void 0;
4
- const validator_1 = require("../../utils/validator");
5
- const gauge_1 = require("../base/gauge");
6
- const duration_1 = require("../../validation/metrics/application/duration");
7
- class ApplicationDurationMetric extends gauge_1.GaugeMetricBase {
8
- constructor(settings, meter, userId, logger, instanceFocusHandler) {
9
- super(settings, meter, userId, logger);
10
- this.instanceFocusHandler = instanceFocusHandler;
11
- // application -> focused times for a given period
12
- this.focusedTimes = new Map();
13
- this.validator = new duration_1.ApplicationDurationMetricValidator();
14
- this.validator.validate(this);
15
- }
16
- subscribeCore() {
17
- this.unInstanceFocusHandler = this.instanceFocusHandler(this.handleFocusChanged.bind(this));
18
- return Promise.resolve();
19
- }
20
- observeCore(result) {
21
- const hasFocusedApp = this.currentFocusedApp !== undefined;
22
- const currentFocusedApp = hasFocusedApp ? this.currentFocusedApp.name : undefined;
23
- if (hasFocusedApp) {
24
- this.handleFocusChanged({ application: currentFocusedApp, focused: false });
25
- }
26
- this.focusedTimes.forEach((focusedPeriods, application) => {
27
- const data = this.getData(application);
28
- this.sendMetric(focusedPeriods, data, result);
29
- focusedPeriods.splice(0);
30
- });
31
- if (hasFocusedApp) {
32
- this.handleFocusChanged({ application: currentFocusedApp, focused: true });
33
- }
4
+ const durationBase_1 = require("./durationBase");
5
+ class ApplicationDurationMetric extends durationBase_1.ApplicationDurationMetricBase {
6
+ constructor() {
7
+ super(...arguments);
8
+ // app -> last metric value
9
+ this.lastMetrics = new Map();
10
+ }
11
+ createMetricCore() {
12
+ this.appDurationMetric = this.meter.createUpDownCounter(this.settings.name, { description: this.settings.description, unit: this.settings.unit });
34
13
  return Promise.resolve();
35
14
  }
36
- unsubscribeCore() {
37
- this.unInstanceFocusHandler();
38
- return Promise.resolve();
39
- }
40
- sendMetric(focusedPeriods, data, result) {
15
+ sendMetric(focusedPeriods, data) {
16
+ const application = data.application;
41
17
  const focusedTime = focusedPeriods.length === 0 ? 0 : focusedPeriods.reduce((prev, current) => prev + current);
42
- result.observe(focusedTime, data);
43
- this.logger.debug(`metric ${this.settings.name} sent focused time ${focusedTime} for app ${data.application}`);
44
- }
45
- handleFocusChanged(e) {
46
- try {
47
- this.validator.validateFocusChanged(e);
48
- this.logger.debug(`focused changed is being invoked for metric ${this.settings.name} with ${JSON.stringify(e)}`);
49
- return this.handleFocusChangedCore(e);
50
- }
51
- catch (error) {
52
- this.logger.error(error);
53
- }
54
- }
55
- handleFocusChangedCore(e) {
56
- const focused = e.focused;
57
- const application = e.application;
58
- if (focused) {
59
- this.handleGotFocus(application);
60
- }
61
- else {
62
- try {
63
- this.handleLostFocus(application);
64
- }
65
- finally {
66
- this.currentFocusedApp = undefined;
67
- }
68
- }
69
- }
70
- handleGotFocus(application) {
71
- const now = new Date().getTime();
72
- this.currentFocusedApp = { name: application, gotFocusTime: now };
73
- if (!this.focusedTimes.has(this.currentFocusedApp.name)) {
74
- this.focusedTimes.set(this.currentFocusedApp.name, []);
75
- }
76
- this.logger.debug(`got focus event has been added for metric ${this.settings.name}`);
77
- }
78
- handleLostFocus(application) {
79
- if (validator_1.Validator.isNullOrUndefined(this.currentFocusedApp)) {
80
- throw new Error(`cannot handle focus lost for application ${application} since there is no previous got focus event`);
81
- }
82
- const currentFocusedApp = this.currentFocusedApp.name;
83
- const gotFocusTime = this.currentFocusedApp.gotFocusTime;
84
- if (application !== currentFocusedApp) {
85
- throw new Error(`cannot handle focus lost for application ${application} since the previous got focus event had come from application ${currentFocusedApp}`);
86
- }
87
- if (!this.focusedTimes.has(application)) {
88
- throw new Error(`there is no got focus event for ${application}`);
89
- }
90
- this.addFocusLostEventCore(currentFocusedApp, gotFocusTime);
91
- this.logger.debug(`lost focus event has been added for metric ${this.settings.name}`);
92
- }
93
- addFocusLostEventCore(application, gotFocusTime) {
94
- const now = new Date().getTime();
95
- const focusedTime = (now - gotFocusTime);
96
- const focusedTimes = this.focusedTimes.get(application);
97
- focusedTimes.push(focusedTime);
18
+ if (this.lastMetrics.has(application)) {
19
+ const lastFocusedTime = -this.lastMetrics.get(application);
20
+ this.appDurationMetric.add(lastFocusedTime, data);
21
+ this.logger.debug(`metric ${this.settings.name} sent focused time ${lastFocusedTime} for app ${application}`);
22
+ }
23
+ this.appDurationMetric.add(focusedTime, data);
24
+ this.logger.debug(`metric ${this.settings.name} sent focused time ${focusedTime} for app ${application}`);
25
+ this.lastMetrics.set(application, focusedTime);
98
26
  }
99
27
  }
100
28
  exports.ApplicationDurationMetric = ApplicationDurationMetric;
@@ -1 +1 @@
1
- {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../src/metrics/application/duration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../src/metrics/application/duration.ts"],"names":[],"mappings":";;;AAEA,iDAA+D;AAE/D,MAAa,yBAA0B,SAAQ,4CAA6B;IAA5E;;QACI,2BAA2B;QACnB,gBAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAuBpD,CAAC;IApBsB,gBAAgB;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAClJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,UAAU,CAAC,cAAwB,EAAE,IAAyB;QAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,WAAY,CAAC;QACtC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;QAE/G,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACnC,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;YAC5D,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,eAAe,YAAY,WAAW,EAAE,CAAC,CAAC;SACjH;QAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,WAAW,YAAY,WAAW,EAAE,CAAC,CAAC;QAE1G,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;CACJ;AAzBD,8DAyBC"}
@@ -0,0 +1,21 @@
1
+ import { Meter } from "@opentelemetry/api";
2
+ import { TelemetryMetricData, InstanceFocusedHandler, TelemetryMetricSettings } from "../types";
3
+ import { TelemetryLogger } from "../../types";
4
+ import { ObservableMetricBase } from "../base/observable";
5
+ export declare abstract class ApplicationDurationMetricBase extends ObservableMetricBase {
6
+ instanceFocusHandler: InstanceFocusedHandler;
7
+ private focusedTimes;
8
+ private currentFocusedApp?;
9
+ private unInstanceFocusHandler;
10
+ private validator;
11
+ constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceFocusHandler: InstanceFocusedHandler);
12
+ protected subscribeCore(): Promise<void>;
13
+ protected observeCore(): Promise<void>;
14
+ protected unsubscribeCore(): Promise<void>;
15
+ protected abstract sendMetric(focusedPeriods: number[], data: TelemetryMetricData): void;
16
+ private handleFocusChanged;
17
+ private handleFocusChangedCore;
18
+ private handleGotFocus;
19
+ private handleLostFocus;
20
+ private addFocusLostEventCore;
21
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApplicationDurationMetricBase = void 0;
4
+ const validator_1 = require("../../utils/validator");
5
+ const duration_1 = require("../../validation/metrics/application/duration");
6
+ const observable_1 = require("../base/observable");
7
+ class ApplicationDurationMetricBase extends observable_1.ObservableMetricBase {
8
+ constructor(settings, meter, userId, logger, instanceFocusHandler) {
9
+ super(settings, meter, userId, logger);
10
+ this.instanceFocusHandler = instanceFocusHandler;
11
+ // application -> focused times for a given period
12
+ this.focusedTimes = new Map();
13
+ this.validator = new duration_1.ApplicationDurationMetricValidator();
14
+ this.validator.validate(this);
15
+ }
16
+ subscribeCore() {
17
+ this.unInstanceFocusHandler = this.instanceFocusHandler(this.handleFocusChanged.bind(this));
18
+ return Promise.resolve();
19
+ }
20
+ observeCore() {
21
+ const hasFocusedApp = this.currentFocusedApp !== undefined;
22
+ const currentFocusedApp = hasFocusedApp ? this.currentFocusedApp.name : undefined;
23
+ if (hasFocusedApp) {
24
+ this.handleFocusChanged({ application: currentFocusedApp, focused: false });
25
+ }
26
+ this.focusedTimes.forEach((focusedPeriods, application) => {
27
+ const data = this.getData(application);
28
+ this.sendMetric(focusedPeriods, data);
29
+ focusedPeriods.splice(0);
30
+ });
31
+ if (hasFocusedApp) {
32
+ this.handleFocusChanged({ application: currentFocusedApp, focused: true });
33
+ }
34
+ return Promise.resolve();
35
+ }
36
+ unsubscribeCore() {
37
+ this.unInstanceFocusHandler();
38
+ return Promise.resolve();
39
+ }
40
+ // protected sendMetric(focusedPeriods: number[], data: TelemetryMetricData, result: ObservableResult<TelemetryMetricData>): void {
41
+ // const focusedTime = focusedPeriods.length === 0 ? 0 : focusedPeriods.reduce((prev, current) => prev + current);
42
+ // result.observe(focusedTime, data);
43
+ // this.logger.debug(`metric ${this.settings.name} sent focused time ${focusedTime} for app ${data.application}`);
44
+ // }
45
+ handleFocusChanged(e) {
46
+ try {
47
+ this.validator.validateFocusChanged(e);
48
+ this.logger.debug(`focused changed is being invoked for metric ${this.settings.name} with ${JSON.stringify(e)}`);
49
+ return this.handleFocusChangedCore(e);
50
+ }
51
+ catch (error) {
52
+ const message = `error while executing handleFocusChanges for metric from type: ${this.settings.type}`;
53
+ this.logger.error(message, error);
54
+ }
55
+ }
56
+ handleFocusChangedCore(e) {
57
+ const focused = e.focused;
58
+ const application = e.application;
59
+ if (focused) {
60
+ this.handleGotFocus(application);
61
+ }
62
+ else {
63
+ try {
64
+ this.handleLostFocus(application);
65
+ }
66
+ finally {
67
+ this.currentFocusedApp = undefined;
68
+ }
69
+ }
70
+ }
71
+ handleGotFocus(application) {
72
+ const now = new Date().getTime();
73
+ this.currentFocusedApp = { name: application, gotFocusTime: now };
74
+ if (!this.focusedTimes.has(this.currentFocusedApp.name)) {
75
+ this.focusedTimes.set(this.currentFocusedApp.name, []);
76
+ }
77
+ this.logger.debug(`got focus event has been added for metric ${this.settings.name}`);
78
+ }
79
+ handleLostFocus(application) {
80
+ if (validator_1.Validator.isNullOrUndefined(this.currentFocusedApp)) {
81
+ throw new Error(`cannot handle focus lost for application ${application} since there is no previous got focus event`);
82
+ }
83
+ const currentFocusedApp = this.currentFocusedApp.name;
84
+ const gotFocusTime = this.currentFocusedApp.gotFocusTime;
85
+ if (application !== currentFocusedApp) {
86
+ throw new Error(`cannot handle focus lost for application ${application} since the previous got focus event had come from application ${currentFocusedApp}`);
87
+ }
88
+ if (!this.focusedTimes.has(application)) {
89
+ throw new Error(`there is no got focus event for ${application}`);
90
+ }
91
+ this.addFocusLostEventCore(currentFocusedApp, gotFocusTime);
92
+ this.logger.debug(`lost focus event has been added for metric ${this.settings.name}`);
93
+ }
94
+ addFocusLostEventCore(application, gotFocusTime) {
95
+ const now = new Date().getTime();
96
+ const focusedTime = (now - gotFocusTime);
97
+ const focusedTimes = this.focusedTimes.get(application);
98
+ focusedTimes.push(focusedTime);
99
+ }
100
+ }
101
+ exports.ApplicationDurationMetricBase = ApplicationDurationMetricBase;
102
+ //# sourceMappingURL=durationBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durationBase.js","sourceRoot":"","sources":["../../../src/metrics/application/durationBase.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
- import { Meter } from "@opentelemetry/api";
2
- import { TelemetryMetricData, InstanceFocusedHandler, TelemetryMetricSettings } from "../types";
3
- import { TelemetryLogger } from "../../types";
4
- import { ApplicationDurationMetric } from "./duration";
5
- export declare class ApplicationDurationHistogramMetric extends ApplicationDurationMetric {
1
+ import { TelemetryMetricData } from "../types";
2
+ import { ApplicationDurationMetricBase } from "./durationBase";
3
+ export declare class ApplicationDurationHistogramMetric extends ApplicationDurationMetricBase {
6
4
  private appDurationMetric;
7
- constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceFocusHandler: InstanceFocusedHandler);
5
+ protected createMetricCore(): Promise<void>;
8
6
  protected sendMetric(focusedPeriods: number[], data: TelemetryMetricData): void;
9
7
  }
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ApplicationDurationHistogramMetric = void 0;
4
- const duration_1 = require("./duration");
5
- class ApplicationDurationHistogramMetric extends duration_1.ApplicationDurationMetric {
6
- constructor(settings, meter, userId, logger, instanceFocusHandler) {
7
- super(settings, meter, userId, logger, instanceFocusHandler);
4
+ const durationBase_1 = require("./durationBase");
5
+ class ApplicationDurationHistogramMetric extends durationBase_1.ApplicationDurationMetricBase {
6
+ createMetricCore() {
8
7
  const advice = { explicitBucketBoundaries: this.settings.buckets };
9
8
  this.appDurationMetric = this.meter.createHistogram(this.settings.name, { description: this.settings.description, unit: this.settings.unit, advice });
9
+ return Promise.resolve();
10
10
  }
11
11
  sendMetric(focusedPeriods, data) {
12
12
  focusedPeriods.forEach((period) => {
@@ -1 +1 @@
1
- {"version":3,"file":"durationHistogram.js","sourceRoot":"","sources":["../../../src/metrics/application/durationHistogram.ts"],"names":[],"mappings":";;;AAGA,yCAAuD;AAEvD,MAAa,kCAAmC,SAAQ,oCAAyB;IAG7E,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,oBAA4C;QAE5C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,EAAE,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1J,CAAC;IAEkB,UAAU,CAAC,cAAwB,EAAE,IAAyB;QAC7E,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,MAAM,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9G,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAtBD,gFAsBC"}
1
+ {"version":3,"file":"durationHistogram.js","sourceRoot":"","sources":["../../../src/metrics/application/durationHistogram.ts"],"names":[],"mappings":";;;AAEA,iDAA+D;AAE/D,MAAa,kCAAmC,SAAQ,4CAA6B;IAG9D,gBAAgB;QAC/B,MAAM,MAAM,GAAG,EAAE,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,UAAU,CAAC,cAAwB,EAAE,IAAyB;QAC7E,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,MAAM,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9G,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAhBD,gFAgBC"}
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ApplicationMemoryMetric = void 0;
13
13
  const gauge_1 = require("../base/gauge");
14
14
  const perf_1 = require("../../validation/metrics/perf");
15
+ const validator_1 = require("../../utils/validator");
15
16
  class ApplicationMemoryMetric extends gauge_1.GaugeMetricBase {
16
17
  constructor(settings, meter, userId, logger, perfProvider) {
17
18
  super(settings, meter, userId, logger);
@@ -23,13 +24,15 @@ class ApplicationMemoryMetric extends gauge_1.GaugeMetricBase {
23
24
  const validator = new perf_1.PerformanceProviderValidator();
24
25
  validator.validate(this.perfProvider);
25
26
  const appsMemory = yield this.perfProvider.getAppsMemory();
26
- validator.validateAppsMemory(appsMemory);
27
- appsMemory.forEach((info) => {
28
- var _a;
29
- const data = Object.assign({ applicationInstance: info.instance }, this.getData(info.app));
30
- result.observe((_a = info.memory) !== null && _a !== void 0 ? _a : 0, data);
31
- this.logger.debug(`metric ${this.settings.name} sent memory ${info.memory} for app ${data.application} and instance ${data.applicationInstance}`);
32
- });
27
+ if (!validator_1.Validator.isNullOrUndefined(appsMemory)) {
28
+ validator.validateAppsMemory(appsMemory);
29
+ appsMemory.forEach((info) => {
30
+ var _a;
31
+ const data = Object.assign({ applicationInstance: info.instance }, this.getData(info.app));
32
+ result.observe((_a = info.memory) !== null && _a !== void 0 ? _a : 0, data);
33
+ this.logger.debug(`metric ${this.settings.name} sent memory ${info.memory} for app ${data.application} and instance ${data.applicationInstance}`);
34
+ });
35
+ }
33
36
  });
34
37
  }
35
38
  unsubscribeCore() { return Promise.resolve(); }
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/metrics/application/memory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,yCAAgD;AAChD,wDAA6E;AAE7E,MAAa,uBAAwB,SAAQ,uBAAe;IACxD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EAChB,YAAiC;QAExC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAFhC,iBAAY,GAAZ,YAAY,CAAqB;IAG5C,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,MAA6C;;YAC9E,MAAM,SAAS,GAAG,IAAI,mCAA4B,EAAE,CAAC;YACrD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEtC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YAC3D,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAEzC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;gBACxB,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;gBAC/E,MAAM,CAAC,OAAO,CAAC,MAAA,IAAI,CAAC,MAAM,mCAAI,CAAC,EAAE,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,gBAAgB,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACtJ,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AA5BD,0DA4BC"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/metrics/application/memory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,yCAAgD;AAChD,wDAA6E;AAC7E,qDAAkD;AAElD,MAAa,uBAAwB,SAAQ,uBAAe;IACxD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EAChB,YAAiC;QAExC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAFhC,iBAAY,GAAZ,YAAY,CAAqB;IAG5C,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,MAA6C;;YAC9E,MAAM,SAAS,GAAG,IAAI,mCAA4B,EAAE,CAAC;YACrD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEtC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YAE3D,IAAI,CAAC,qBAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE;gBAE1C,SAAS,CAAC,kBAAkB,CAAC,UAAW,CAAC,CAAC;gBAE1C,UAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;oBACzB,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;oBAC/E,MAAM,CAAC,OAAO,CAAC,MAAA,IAAI,CAAC,MAAM,mCAAI,CAAC,EAAE,IAAI,CAAC,CAAC;oBACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,gBAAgB,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACtJ,CAAC,CAAC,CAAC;aACN;QACL,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AAhCD,0DAgCC"}
@@ -37,7 +37,8 @@ class ApplicationStartedMetric extends base_1.MetricBase {
37
37
  this.logger.debug(`metric ${this.settings.name} sent 1 more for app ${data.application}`);
38
38
  }
39
39
  catch (error) {
40
- this.logger.error(error);
40
+ const message = `error while executing handleInstanceStarted for metric from type: ${this.settings.type}`;
41
+ this.logger.error(message, error);
41
42
  }
42
43
  }
43
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"started.js","sourceRoot":"","sources":["../../../src/metrics/application/started.ts"],"names":[],"mappings":";;;AAGA,uCAA0C;AAC1C,0EAAiG;AAEjG,MAAa,wBAAyB,SAAQ,iBAAU;IAKpD,YACI,QAAiC,EAC1B,KAAY,EACnB,MAAc,EACd,MAAuB,EAChB,sBAA6C;QAEpD,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QALzB,UAAK,GAAL,KAAK,CAAO;QAGZ,2BAAsB,GAAtB,sBAAsB,CAAuB;QAGpD,IAAI,CAAC,SAAS,GAAG,IAAI,2CAAiC,EAAE,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAExE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5F,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,qBAAqB,CAAC,CAA0B;QACpD,IAAI;YACA,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;YAE1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,WAAW,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAEzH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC7F;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;IACL,CAAC;CACJ;AAtDD,4DAsDC"}
1
+ {"version":3,"file":"started.js","sourceRoot":"","sources":["../../../src/metrics/application/started.ts"],"names":[],"mappings":";;;AAGA,uCAA0C;AAC1C,0EAAiG;AAEjG,MAAa,wBAAyB,SAAQ,iBAAU;IAKpD,YACI,QAAiC,EAC1B,KAAY,EACnB,MAAc,EACd,MAAuB,EAChB,sBAA6C;QAEpD,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QALzB,UAAK,GAAL,KAAK,CAAO;QAGZ,2BAAsB,GAAtB,sBAAsB,CAAuB;QAGpD,IAAI,CAAC,SAAS,GAAG,IAAI,2CAAiC,EAAE,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAExE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5F,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,qBAAqB,CAAC,CAA0B;QACpD,IAAI;YACA,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;YAE1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,WAAW,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAEzH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC7F;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,OAAO,GAAG,qEAAqE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACrC;IACL,CAAC;CACJ;AAvDD,4DAuDC"}
@@ -1,17 +1,8 @@
1
- import { Meter, ObservableResult } from "@opentelemetry/api";
2
- import { GaugeMetricBase } from "../base/gauge";
3
- import { TelemetryMetricData, InstanceReadyHandler, TelemetryMetricSettings } from "../types";
4
- import { TelemetryLogger } from "../../types";
5
- export declare class ApplicationStartupMetric extends GaugeMetricBase {
6
- instanceReadyHandler: InstanceReadyHandler;
7
- private startupTimes;
8
- private interopReadyUn;
9
- private validator;
10
- constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceReadyHandler: InstanceReadyHandler);
11
- protected subscribeCore(): Promise<void>;
12
- protected observeCore(result: ObservableResult<TelemetryMetricData>): Promise<void>;
13
- protected unsubscribeCore(): Promise<void>;
14
- protected sendMetric(startupTimes: number[], data: TelemetryMetricData, result: ObservableResult<TelemetryMetricData>): void;
15
- private handleInstanceReady;
16
- private addStartupTime;
1
+ import { ApplicationStartupMetricBase } from "./startupBase";
2
+ import { TelemetryMetricData } from "../types";
3
+ export declare class ApplicationStartupMetric extends ApplicationStartupMetricBase {
4
+ private lastMetrics;
5
+ private appStartupMetric;
6
+ protected createMetricCore(): Promise<void>;
7
+ protected sendMetric(startupTimes: number[], data: TelemetryMetricData): void;
17
8
  }