@interopio/otel 0.0.4 → 0.0.6

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 (102) hide show
  1. package/dist/metrics/application/count.js +8 -8
  2. package/dist/metrics/application/count.js.map +1 -1
  3. package/dist/metrics/application/cpu.d.ts +3 -3
  4. package/dist/metrics/application/cpu.js +1 -1
  5. package/dist/metrics/application/cpu.js.map +1 -1
  6. package/dist/metrics/application/duration.d.ts +20 -7
  7. package/dist/metrics/application/duration.js +89 -21
  8. package/dist/metrics/application/duration.js.map +1 -1
  9. package/dist/metrics/application/durationHistogram.d.ts +3 -3
  10. package/dist/metrics/application/durationHistogram.js +2 -2
  11. package/dist/metrics/application/durationHistogram.js.map +1 -1
  12. package/dist/metrics/application/memory.d.ts +3 -3
  13. package/dist/metrics/application/memory.js +1 -1
  14. package/dist/metrics/application/memory.js.map +1 -1
  15. package/dist/metrics/application/started.js +4 -4
  16. package/dist/metrics/application/started.js.map +1 -1
  17. package/dist/metrics/application/startupHistogram.d.ts +15 -5
  18. package/dist/metrics/application/startupHistogram.js +35 -8
  19. package/dist/metrics/application/startupHistogram.js.map +1 -1
  20. package/dist/metrics/application/stopped.js +4 -4
  21. package/dist/metrics/application/stopped.js.map +1 -1
  22. package/dist/metrics/base/base.d.ts +4 -2
  23. package/dist/metrics/base/base.js +15 -5
  24. package/dist/metrics/base/base.js.map +1 -1
  25. package/dist/metrics/base/gauge.d.ts +7 -7
  26. package/dist/metrics/base/gauge.js.map +1 -1
  27. package/dist/metrics/base/observable.d.ts +5 -5
  28. package/dist/metrics/base/observable.js.map +1 -1
  29. package/dist/metrics/dependencyBuilder.d.ts +5 -1
  30. package/dist/metrics/dependencyBuilder.js +12 -0
  31. package/dist/metrics/dependencyBuilder.js.map +1 -1
  32. package/dist/metrics/factoryBuilder.d.ts +2 -3
  33. package/dist/metrics/factoryBuilder.js +20 -30
  34. package/dist/metrics/factoryBuilder.js.map +1 -1
  35. package/dist/metrics/layout/startupHistogram.d.ts +15 -5
  36. package/dist/metrics/layout/startupHistogram.js +35 -8
  37. package/dist/metrics/layout/startupHistogram.js.map +1 -1
  38. package/dist/metrics/platform/startup.d.ts +2 -2
  39. package/dist/metrics/platform/startup.js +5 -5
  40. package/dist/metrics/platform/startup.js.map +1 -1
  41. package/dist/metrics/settingsBuilder.d.ts +2 -3
  42. package/dist/metrics/settingsBuilder.js +24 -36
  43. package/dist/metrics/settingsBuilder.js.map +1 -1
  44. package/dist/metrics/system/cpu.d.ts +1 -1
  45. package/dist/metrics/system/cpu.js.map +1 -1
  46. package/dist/metrics/system/memory.d.ts +1 -1
  47. package/dist/metrics/system/memory.js.map +1 -1
  48. package/dist/metrics/types.d.ts +27 -12
  49. package/dist/metrics/workspace/startup.d.ts +8 -0
  50. package/dist/metrics/workspace/startup.js +12 -0
  51. package/dist/metrics/workspace/startup.js.map +1 -0
  52. package/dist/metrics/workspace/stopped.d.ts +17 -0
  53. package/dist/metrics/workspace/stopped.js +46 -0
  54. package/dist/metrics/workspace/stopped.js.map +1 -0
  55. package/dist/validation/metrics/application/count.d.ts +3 -6
  56. package/dist/validation/metrics/application/count.js +6 -6
  57. package/dist/validation/metrics/application/count.js.map +1 -1
  58. package/dist/validation/metrics/application/duration.d.ts +3 -5
  59. package/dist/validation/metrics/application/duration.js +4 -4
  60. package/dist/validation/metrics/application/duration.js.map +1 -1
  61. package/dist/validation/metrics/application/started.d.ts +2 -3
  62. package/dist/validation/metrics/application/started.js +3 -3
  63. package/dist/validation/metrics/application/started.js.map +1 -1
  64. package/dist/validation/metrics/application/startupHistogram.d.ts +6 -0
  65. package/dist/validation/metrics/application/startupHistogram.js +18 -0
  66. package/dist/validation/metrics/application/startupHistogram.js.map +1 -0
  67. package/dist/validation/metrics/application/stopped.d.ts +2 -3
  68. package/dist/validation/metrics/application/stopped.js +3 -3
  69. package/dist/validation/metrics/application/stopped.js.map +1 -1
  70. package/dist/validation/metrics/base/gauge.d.ts +2 -1
  71. package/dist/validation/metrics/base/gauge.js.map +1 -1
  72. package/dist/validation/metrics/layout/startupHistogram.d.ts +6 -0
  73. package/dist/validation/metrics/layout/startupHistogram.js +18 -0
  74. package/dist/validation/metrics/layout/startupHistogram.js.map +1 -0
  75. package/dist/validation/metrics/platform/startup.d.ts +2 -4
  76. package/dist/validation/metrics/platform/startup.js +4 -4
  77. package/dist/validation/metrics/platform/startup.js.map +1 -1
  78. package/dist/validation/metrics/workspace/stopped.d.ts +6 -0
  79. package/dist/validation/metrics/workspace/stopped.js +16 -0
  80. package/dist/validation/metrics/workspace/stopped.js.map +1 -0
  81. package/package.json +1 -1
  82. package/dist/metrics/application/durationBase.d.ts +0 -21
  83. package/dist/metrics/application/durationBase.js +0 -102
  84. package/dist/metrics/application/durationBase.js.map +0 -1
  85. package/dist/metrics/application/startup.d.ts +0 -8
  86. package/dist/metrics/application/startup.js +0 -29
  87. package/dist/metrics/application/startup.js.map +0 -1
  88. package/dist/metrics/application/startupBase.d.ts +0 -17
  89. package/dist/metrics/application/startupBase.js +0 -68
  90. package/dist/metrics/application/startupBase.js.map +0 -1
  91. package/dist/metrics/layout/startup.d.ts +0 -8
  92. package/dist/metrics/layout/startup.js +0 -29
  93. package/dist/metrics/layout/startup.js.map +0 -1
  94. package/dist/metrics/layout/startupBase.d.ts +0 -18
  95. package/dist/metrics/layout/startupBase.js +0 -71
  96. package/dist/metrics/layout/startupBase.js.map +0 -1
  97. package/dist/validation/metrics/application/startup.d.ts +0 -9
  98. package/dist/validation/metrics/application/startup.js +0 -18
  99. package/dist/validation/metrics/application/startup.js.map +0 -1
  100. package/dist/validation/metrics/layout/startup.d.ts +0 -9
  101. package/dist/validation/metrics/layout/startup.js +0 -18
  102. package/dist/validation/metrics/layout/startup.js.map +0 -1
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApplicationStartupMetric = void 0;
4
- const startupBase_1 = require("./startupBase");
5
- class ApplicationStartupMetric extends startupBase_1.ApplicationStartupMetricBase {
6
- constructor() {
7
- super(...arguments);
8
- // app -> last metric value
9
- this.lastMetrics = new Map();
10
- }
11
- createMetricCore() {
12
- this.appStartupMetric = this.meter.createUpDownCounter(this.settings.name, { description: this.settings.description, unit: this.settings.unit });
13
- return Promise.resolve();
14
- }
15
- sendMetric(startupTimes, data) {
16
- const application = data.application;
17
- const slowest = Math.max(...startupTimes);
18
- if (this.lastMetrics.has(application)) {
19
- const lastSlowestStartup = -this.lastMetrics.get(application);
20
- this.appStartupMetric.add(lastSlowestStartup, data);
21
- this.logger.debug(`metric ${this.settings.name} sent startup time ${lastSlowestStartup} for app ${application}`);
22
- }
23
- this.appStartupMetric.add(slowest, data);
24
- this.logger.debug(`metric ${this.settings.name} sent slowest startup time ${slowest} for app ${application}`);
25
- this.lastMetrics.set(application, slowest);
26
- }
27
- }
28
- exports.ApplicationStartupMetric = ApplicationStartupMetric;
29
- //# sourceMappingURL=startup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/metrics/application/startup.ts"],"names":[],"mappings":";;;AACA,+CAA6D;AAG7D,MAAa,wBAAyB,SAAQ,0CAA4B;IAA1E;;QACI,2BAA2B;QACnB,gBAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAuBpD,CAAC;IApBsB,gBAAgB;QAC/B,IAAI,CAAC,gBAAgB,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;QACjJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,UAAU,CAAC,YAAsB,EAAE,IAAyB;QAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,WAAY,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACnC,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;YAC/D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,kBAAkB,YAAY,WAAW,EAAE,CAAC,CAAC;SACpH;QAED,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,8BAA8B,OAAO,YAAY,WAAW,EAAE,CAAC,CAAC;QAE9G,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACJ;AAzBD,4DAyBC"}
@@ -1,17 +0,0 @@
1
- import { Meter } from "@opentelemetry/api";
2
- import { TelemetryMetricData, InstanceReadyHandler, TelemetryMetricSettings } from "../types";
3
- import { TelemetryLogger } from "../../types";
4
- import { ObservableMetricBase } from "../base/observable";
5
- export declare abstract class ApplicationStartupMetricBase extends ObservableMetricBase {
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(): Promise<void>;
13
- protected unsubscribeCore(): Promise<void>;
14
- protected abstract sendMetric(startupTimes: number[], data: TelemetryMetricData): void;
15
- private handleInstanceReady;
16
- private addStartupTime;
17
- }
@@ -1,68 +0,0 @@
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
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ApplicationStartupMetricBase = void 0;
13
- const startup_1 = require("../../validation/metrics/application/startup");
14
- const observable_1 = require("../base/observable");
15
- class ApplicationStartupMetricBase extends observable_1.ObservableMetricBase {
16
- constructor(settings, meter, userId, logger, instanceReadyHandler) {
17
- super(settings, meter, userId, logger);
18
- this.instanceReadyHandler = instanceReadyHandler;
19
- // application -> [data, startup times]
20
- this.startupTimes = new Map();
21
- this.validator = new startup_1.ApplicationStartupMetricValidator();
22
- this.validator.validate(this);
23
- }
24
- subscribeCore() {
25
- this.interopReadyUn = this.instanceReadyHandler(this.handleInstanceReady.bind(this));
26
- return Promise.resolve();
27
- }
28
- observeCore() {
29
- return __awaiter(this, void 0, void 0, function* () {
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);
35
- this.startupTimes.set(application, [data, []]);
36
- }
37
- });
38
- });
39
- }
40
- unsubscribeCore() {
41
- this.interopReadyUn();
42
- return Promise.resolve();
43
- }
44
- handleInstanceReady(e) {
45
- try {
46
- this.validator.validateInstanceReady(e);
47
- this.logger.debug(`instance ready for application ${e.application} and metric ${this.settings.name} is being invoked`);
48
- const startupTime = e.endTime.getTime() - e.startTime.getTime();
49
- this.addStartupTime(startupTime, e.application);
50
- this.logger.debug(`start up time ${startupTime} has been added for metric ${this.settings.name}`);
51
- }
52
- catch (error) {
53
- const message = `error while executing handleInstanceReady for metric from type: ${this.settings.type}`;
54
- this.logger.error(message, error);
55
- }
56
- }
57
- addStartupTime(time, application) {
58
- if (!this.startupTimes.has(application)) {
59
- const data = this.getData(application);
60
- this.startupTimes.set(application, [data, []]);
61
- }
62
- const kvp = this.startupTimes.get(application);
63
- const metrics = kvp[1];
64
- metrics.push(time);
65
- }
66
- }
67
- exports.ApplicationStartupMetricBase = ApplicationStartupMetricBase;
68
- //# sourceMappingURL=startupBase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startupBase.js","sourceRoot":"","sources":["../../../src/metrics/application/startupBase.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { LayoutStartupMetricBase } from "./startupBase";
2
- import { TelemetryMetricLayoutData } from "../types";
3
- export declare class LayoutStartupMetric extends LayoutStartupMetricBase {
4
- private lastMetrics;
5
- private layoutStartupMetric;
6
- protected createMetricCore(): Promise<void>;
7
- protected sendMetric(startupTimes: number[], data: TelemetryMetricLayoutData): void;
8
- }
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LayoutStartupMetric = void 0;
4
- const startupBase_1 = require("./startupBase");
5
- class LayoutStartupMetric extends startupBase_1.LayoutStartupMetricBase {
6
- constructor() {
7
- super(...arguments);
8
- // app -> last metric value
9
- this.lastMetrics = new Map();
10
- }
11
- createMetricCore() {
12
- this.layoutStartupMetric = this.meter.createUpDownCounter(this.settings.name, { description: this.settings.description, unit: this.settings.unit });
13
- return Promise.resolve();
14
- }
15
- sendMetric(startupTimes, data) {
16
- const application = data.application;
17
- const slowest = Math.max(...startupTimes);
18
- if (this.lastMetrics.has(application)) {
19
- const lastSlowestStartup = -this.lastMetrics.get(application);
20
- this.layoutStartupMetric.add(lastSlowestStartup, data);
21
- this.logger.debug(`metric ${this.settings.name} sent startup time ${lastSlowestStartup} for layout ${data.layout}`);
22
- }
23
- this.layoutStartupMetric.add(slowest);
24
- this.logger.debug(`metric ${this.settings.name} sent slowest startup time ${slowest} for layout ${data.layout}`);
25
- this.lastMetrics.set(application, slowest);
26
- }
27
- }
28
- exports.LayoutStartupMetric = LayoutStartupMetric;
29
- //# sourceMappingURL=startup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/metrics/layout/startup.ts"],"names":[],"mappings":";;;AACA,+CAAwD;AAGxD,MAAa,mBAAoB,SAAQ,qCAAuB;IAAhE;;QACI,2BAA2B;QACnB,gBAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAuBpD,CAAC;IApBsB,gBAAgB;QAC/B,IAAI,CAAC,mBAAmB,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;QACpJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,UAAU,CAAC,YAAsB,EAAE,IAA+B;QACjF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAY,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACnC,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;YAC/D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,kBAAkB,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACvH;QAED,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,8BAA8B,OAAO,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAEjH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACJ;AAzBD,kDAyBC"}
@@ -1,18 +0,0 @@
1
- import { Meter } from "@opentelemetry/api";
2
- import { TelemetryMetricLayoutData, LayoutRestoredHandler, TelemetryMetricSettings } from "../types";
3
- import { TelemetryLogger } from "../../types";
4
- import { ObservableMetricBase } from "../base/observable";
5
- export declare abstract class LayoutStartupMetricBase extends ObservableMetricBase {
6
- layoutRestoredHandler: LayoutRestoredHandler;
7
- private layoutStartupTimes;
8
- private layoutRestoredUn;
9
- private validator;
10
- constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, layoutRestoredHandler: LayoutRestoredHandler);
11
- protected subscribeCore(): Promise<void>;
12
- protected observeCore(): Promise<void>;
13
- protected unsubscribeCore(): Promise<void>;
14
- protected abstract sendMetric(startupTimes: number[], data: TelemetryMetricLayoutData): void;
15
- private observerCore;
16
- private handleLayoutRestored;
17
- private addRestoredTime;
18
- }
@@ -1,71 +0,0 @@
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
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.LayoutStartupMetricBase = void 0;
13
- const startup_1 = require("../../validation/metrics/layout/startup");
14
- const observable_1 = require("../base/observable");
15
- class LayoutStartupMetricBase extends observable_1.ObservableMetricBase {
16
- constructor(settings, meter, userId, logger, layoutRestoredHandler) {
17
- super(settings, meter, userId, logger);
18
- this.layoutRestoredHandler = layoutRestoredHandler;
19
- // layout name -> [data, restore times]
20
- this.layoutStartupTimes = new Map();
21
- this.validator = new startup_1.LayoutStartupMetricValidator();
22
- this.validator.validate(this);
23
- }
24
- subscribeCore() {
25
- this.layoutRestoredUn = this.layoutRestoredHandler(this.handleLayoutRestored.bind(this));
26
- return Promise.resolve();
27
- }
28
- observeCore() {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- this.layoutStartupTimes.forEach((kvp, layout) => {
31
- const metrics = kvp[1];
32
- if (metrics.length > 0) {
33
- const data = kvp[0];
34
- this.observerCore(metrics, data);
35
- this.layoutStartupTimes.set(layout, [data, []]);
36
- }
37
- });
38
- });
39
- }
40
- unsubscribeCore() {
41
- this.layoutRestoredUn();
42
- return Promise.resolve();
43
- }
44
- observerCore(startupTimes, data) {
45
- this.sendMetric(startupTimes, data);
46
- }
47
- handleLayoutRestored(e) {
48
- try {
49
- this.validator.validateLayoutRestored(e);
50
- this.logger.debug(`layout restored is being invoked for metric ${this.settings.name}`);
51
- const startupTime = e.endTime.getTime() - e.startTime.getTime();
52
- this.addRestoredTime(startupTime, e.layout);
53
- this.logger.debug(`startup time ${startupTime} has been added for metric ${this.settings.name}`);
54
- }
55
- catch (error) {
56
- const message = `error while executing handleLayoutRestored for metric from type: ${this.settings.type}`;
57
- this.logger.error(message, error);
58
- }
59
- }
60
- addRestoredTime(time, layout) {
61
- if (!this.layoutStartupTimes.has(layout)) {
62
- const data = Object.assign({ layout }, this.getData());
63
- this.layoutStartupTimes.set(layout, [data, []]);
64
- }
65
- const kvp = this.layoutStartupTimes.get(layout);
66
- const metrics = kvp[1];
67
- metrics.push(time);
68
- }
69
- }
70
- exports.LayoutStartupMetricBase = LayoutStartupMetricBase;
71
- //# sourceMappingURL=startupBase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startupBase.js","sourceRoot":"","sources":["../../../src/metrics/layout/startupBase.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { ApplicationStartupMetricBase } from "../../../metrics/application/startupBase";
2
- export declare class ApplicationStartupMetricValidator {
3
- validate(metric: ApplicationStartupMetricBase): void;
4
- validateInstanceReady(e: {
5
- application: string;
6
- startTime: Date;
7
- endTime: Date;
8
- }): void;
9
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApplicationStartupMetricValidator = void 0;
4
- const validator_1 = require("../../../utils/validator");
5
- class ApplicationStartupMetricValidator {
6
- validate(metric) {
7
- validator_1.Validator.throwIfNullOrUndefined(metric, "metric");
8
- validator_1.Validator.throwIfNullOrUndefined(metric.instanceReadyHandler, "instanceReadyHandler");
9
- }
10
- validateInstanceReady(e) {
11
- validator_1.Validator.throwIfNullOrUndefined(e, "e");
12
- validator_1.Validator.throwIfNullOrUndefined(e.application, "application");
13
- validator_1.Validator.throwIfNullOrUndefined(e.startTime, "startTime");
14
- validator_1.Validator.throwIfNullOrUndefined(e.endTime, "endTime");
15
- }
16
- }
17
- exports.ApplicationStartupMetricValidator = ApplicationStartupMetricValidator;
18
- //# sourceMappingURL=startup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../../src/validation/metrics/application/startup.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAErD,MAAa,iCAAiC;IACnC,QAAQ,CAAC,MAAoC;QAChD,qBAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,qBAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;IAC1F,CAAC;IAEM,qBAAqB,CAAC,CAA0D;QACnF,qBAAS,CAAC,sBAAsB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACzC,qBAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC/D,qBAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3D,qBAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;CACJ;AAZD,8EAYC"}
@@ -1,9 +0,0 @@
1
- import { LayoutStartupMetricBase } from "../../../metrics/layout/startupBase";
2
- export declare class LayoutStartupMetricValidator {
3
- validate(metric: LayoutStartupMetricBase): void;
4
- validateLayoutRestored(e: {
5
- layout: string;
6
- startTime: Date;
7
- endTime: Date;
8
- }): void;
9
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LayoutStartupMetricValidator = void 0;
4
- const validator_1 = require("../../../utils/validator");
5
- class LayoutStartupMetricValidator {
6
- validate(metric) {
7
- validator_1.Validator.throwIfNullOrUndefined(metric, "metric");
8
- validator_1.Validator.throwIfNullOrUndefined(metric.layoutRestoredHandler, "layoutRestoredHandler");
9
- }
10
- validateLayoutRestored(e) {
11
- validator_1.Validator.throwIfNullOrUndefined(e, "e");
12
- validator_1.Validator.throwIfNullOrUndefined(e.layout, "layout");
13
- validator_1.Validator.throwIfNullOrUndefined(e.startTime, "startTime");
14
- validator_1.Validator.throwIfNullOrUndefined(e.endTime, "endTime");
15
- }
16
- }
17
- exports.LayoutStartupMetricValidator = LayoutStartupMetricValidator;
18
- //# sourceMappingURL=startup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../../src/validation/metrics/layout/startup.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAErD,MAAa,4BAA4B;IAC9B,QAAQ,CAAC,MAA+B;QAC3C,qBAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,qBAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAC;IAC5F,CAAC;IAEM,sBAAsB,CAAC,CAAqD;QAC/E,qBAAS,CAAC,sBAAsB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACzC,qBAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrD,qBAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3D,qBAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;CACJ;AAZD,oEAYC"}