@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.
- package/dist/builder.d.ts +14 -0
- package/dist/builder.js +47 -0
- package/dist/builder.js.map +1 -0
- package/dist/container.d.ts +4 -2
- package/dist/container.js +10 -1
- package/dist/container.js.map +1 -1
- package/dist/containerBuilder.d.ts +6 -4
- package/dist/containerBuilder.js +8 -1
- package/dist/containerBuilder.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/metrics/application/count.d.ts +4 -3
- package/dist/metrics/application/count.js +11 -4
- package/dist/metrics/application/count.js.map +1 -1
- package/dist/metrics/application/cpu.d.ts +1 -1
- package/dist/metrics/application/cpu.js +5 -1
- package/dist/metrics/application/cpu.js.map +1 -1
- package/dist/metrics/application/duration.d.ts +2 -1
- package/dist/metrics/application/duration.js +9 -5
- package/dist/metrics/application/duration.js.map +1 -1
- package/dist/metrics/application/durationHistogram.js +3 -3
- package/dist/metrics/application/durationHistogram.js.map +1 -1
- package/dist/metrics/application/durationSum.js +2 -2
- package/dist/metrics/application/durationSum.js.map +1 -1
- package/dist/metrics/application/memory.d.ts +1 -1
- package/dist/metrics/application/memory.js +7 -3
- package/dist/metrics/application/memory.js.map +1 -1
- package/dist/metrics/application/started.d.ts +3 -2
- package/dist/metrics/application/started.js +8 -3
- package/dist/metrics/application/started.js.map +1 -1
- package/dist/metrics/application/startup.d.ts +3 -2
- package/dist/metrics/application/startup.js +18 -19
- package/dist/metrics/application/startup.js.map +1 -1
- package/dist/metrics/application/startupHistogram.js +3 -3
- package/dist/metrics/application/startupHistogram.js.map +1 -1
- package/dist/metrics/application/stopped.d.ts +3 -2
- package/dist/metrics/application/stopped.js +8 -3
- package/dist/metrics/application/stopped.js.map +1 -1
- package/dist/metrics/base/base.d.ts +5 -10
- package/dist/metrics/base/base.js +41 -40
- package/dist/metrics/base/base.js.map +1 -1
- package/dist/metrics/base/gauge.d.ts +1 -1
- package/dist/metrics/base/gauge.js +9 -5
- package/dist/metrics/base/gauge.js.map +1 -1
- package/dist/metrics/base/null.d.ts +5 -9
- package/dist/metrics/base/null.js +5 -17
- package/dist/metrics/base/null.js.map +1 -1
- package/dist/metrics/builder.d.ts +15 -0
- package/dist/metrics/builder.js +44 -0
- package/dist/metrics/builder.js.map +1 -0
- package/dist/metrics/dependencyBuilder.d.ts +1 -1
- package/dist/metrics/dependencyBuilder.js +3 -3
- package/dist/metrics/dependencyBuilder.js.map +1 -1
- package/dist/metrics/factory.d.ts +2 -2
- package/dist/metrics/factory.js +7 -4
- package/dist/metrics/factory.js.map +1 -1
- package/dist/metrics/factoryBuilder.d.ts +5 -6
- package/dist/metrics/factoryBuilder.js +11 -21
- package/dist/metrics/factoryBuilder.js.map +1 -1
- package/dist/metrics/layout/startup.d.ts +2 -1
- package/dist/metrics/layout/startup.js +16 -17
- package/dist/metrics/layout/startup.js.map +1 -1
- package/dist/metrics/layout/startupHistogram.js +3 -3
- package/dist/metrics/layout/startupHistogram.js.map +1 -1
- package/dist/metrics/manager.d.ts +7 -6
- package/dist/metrics/manager.js +22 -24
- package/dist/metrics/manager.js.map +1 -1
- package/dist/metrics/platform/startup.d.ts +2 -1
- package/dist/metrics/platform/startup.js +12 -18
- package/dist/metrics/platform/startup.js.map +1 -1
- package/dist/metrics/settingsBuilder.d.ts +11 -4
- package/dist/metrics/settingsBuilder.js +57 -23
- package/dist/metrics/settingsBuilder.js.map +1 -1
- package/dist/metrics/system/cpu.d.ts +1 -1
- package/dist/metrics/system/cpu.js +12 -10
- package/dist/metrics/system/cpu.js.map +1 -1
- package/dist/metrics/system/memory.d.ts +1 -1
- package/dist/metrics/system/memory.js +13 -11
- package/dist/metrics/system/memory.js.map +1 -1
- package/dist/metrics/types.d.ts +15 -12
- package/dist/metrics/utils/nullMetricsManager.d.ts +3 -3
- package/dist/metrics/utils/nullMetricsManager.js +1 -1
- package/dist/metrics/utils/nullMetricsManager.js.map +1 -1
- package/dist/metrics/utils/nullPerfProvider.d.ts +2 -2
- package/dist/metrics/utils/nullPerfProvider.js +10 -2
- package/dist/metrics/utils/nullPerfProvider.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/utils/nullLogger.d.ts +6 -0
- package/dist/utils/nullLogger.js +10 -0
- package/dist/utils/nullLogger.js.map +1 -0
- package/dist/utils/nullManager.d.ts +1 -0
- package/dist/utils/nullManager.js +5 -0
- package/dist/utils/nullManager.js.map +1 -1
- package/dist/utils/validator.d.ts +2 -1
- package/dist/utils/validator.js +5 -0
- package/dist/utils/validator.js.map +1 -1
- package/dist/validation/builder.d.ts +4 -0
- package/dist/validation/builder.js +13 -0
- package/dist/validation/builder.js.map +1 -0
- package/dist/validation/container.d.ts +4 -0
- package/dist/validation/container.js +15 -0
- package/dist/validation/container.js.map +1 -0
- package/dist/validation/containerBuilder.d.ts +4 -0
- package/dist/validation/containerBuilder.js +15 -0
- package/dist/validation/containerBuilder.js.map +1 -0
- package/dist/validation/metrics/application/count.d.ts +10 -0
- package/dist/validation/metrics/application/count.js +21 -0
- package/dist/validation/metrics/application/count.js.map +1 -0
- package/dist/validation/metrics/application/duration.d.ts +8 -0
- package/dist/validation/metrics/application/duration.js +17 -0
- package/dist/validation/metrics/application/duration.js.map +1 -0
- package/dist/validation/metrics/application/started.d.ts +7 -0
- package/dist/validation/metrics/application/started.js +16 -0
- package/dist/validation/metrics/application/started.js.map +1 -0
- package/dist/validation/metrics/application/startup.d.ts +8 -0
- package/dist/validation/metrics/application/startup.js +17 -0
- package/dist/validation/metrics/application/startup.js.map +1 -0
- package/dist/validation/metrics/application/stopped.d.ts +7 -0
- package/dist/validation/metrics/application/stopped.js +16 -0
- package/dist/validation/metrics/application/stopped.js.map +1 -0
- package/dist/validation/metrics/base/base.d.ts +5 -0
- package/dist/validation/metrics/base/base.js +20 -0
- package/dist/validation/metrics/base/base.js.map +1 -0
- package/dist/validation/metrics/base/gauge.d.ts +4 -0
- package/dist/validation/metrics/base/gauge.js +12 -0
- package/dist/validation/metrics/base/gauge.js.map +1 -0
- package/dist/validation/metrics/builder.d.ts +4 -0
- package/dist/validation/metrics/builder.js +14 -0
- package/dist/validation/metrics/builder.js.map +1 -0
- package/dist/validation/metrics/factory.d.ts +4 -0
- package/dist/validation/metrics/factory.js +13 -0
- package/dist/validation/metrics/factory.js.map +1 -0
- package/dist/validation/metrics/factoryBuilder.d.ts +5 -0
- package/dist/validation/metrics/factoryBuilder.js +25 -0
- package/dist/validation/metrics/factoryBuilder.js.map +1 -0
- package/dist/validation/metrics/layout/startup.d.ts +8 -0
- package/dist/validation/metrics/layout/startup.js +17 -0
- package/dist/validation/metrics/layout/startup.js.map +1 -0
- package/dist/validation/metrics/manager.d.ts +4 -0
- package/dist/validation/metrics/manager.js +14 -0
- package/dist/validation/metrics/manager.js.map +1 -0
- package/dist/validation/metrics/perf.d.ts +8 -0
- package/dist/validation/metrics/perf.js +41 -0
- package/dist/validation/metrics/perf.js.map +1 -0
- package/dist/validation/metrics/platform/startup.d.ts +7 -0
- package/dist/validation/metrics/platform/startup.js +16 -0
- package/dist/validation/metrics/platform/startup.js.map +1 -0
- package/dist/validation/metrics/settingsBuilder.d.ts +4 -0
- package/dist/validation/metrics/settingsBuilder.js +14 -0
- package/dist/validation/metrics/settingsBuilder.js.map +1 -0
- package/package.json +4 -1
- package/dist/metrics/pipeline.d.ts +0 -13
- package/dist/metrics/pipeline.js +0 -49
- package/dist/metrics/pipeline.js.map +0 -1
- package/dist/pipeline.d.ts +0 -14
- package/dist/pipeline.js +0 -66
- package/dist/pipeline.js.map +0 -1
|
@@ -17,18 +17,19 @@ const startup_2 = require("./layout/startup");
|
|
|
17
17
|
const startupHistogram_2 = require("./layout/startupHistogram");
|
|
18
18
|
const startup_3 = require("./platform/startup");
|
|
19
19
|
const factory_1 = require("./factory");
|
|
20
|
-
const
|
|
20
|
+
const factoryBuilder_1 = require("../validation/metrics/factoryBuilder");
|
|
21
21
|
class MetricsFactoryBuilder {
|
|
22
|
-
constructor(meter,
|
|
23
|
-
this.metricsFactories = new Map();
|
|
24
|
-
this.metricsFactories = new Map();
|
|
22
|
+
constructor(meter, dependencyContainer, userId, logger) {
|
|
25
23
|
this.meter = meter;
|
|
26
|
-
this.userId = userId;
|
|
27
24
|
this.dependencyContainer = dependencyContainer;
|
|
25
|
+
this.userId = userId;
|
|
28
26
|
this.logger = logger;
|
|
29
|
-
this.
|
|
27
|
+
this.metricsFactories = new Map();
|
|
28
|
+
this.metricsFactories = new Map();
|
|
30
29
|
}
|
|
31
30
|
build() {
|
|
31
|
+
const validator = new factoryBuilder_1.MetricsFactoryBuilderValidator();
|
|
32
|
+
validator.validate(this);
|
|
32
33
|
const metricsFactory = new factory_1.MetricsFactory(this.logger, this.metricsFactories);
|
|
33
34
|
return metricsFactory;
|
|
34
35
|
}
|
|
@@ -119,7 +120,7 @@ class MetricsFactoryBuilder {
|
|
|
119
120
|
}
|
|
120
121
|
withAppMemory() {
|
|
121
122
|
const func = (settings) => {
|
|
122
|
-
const metric = new memory_1.ApplicationMemoryMetric(settings, this.meter, this.userId, this.logger, this.dependencyContainer.
|
|
123
|
+
const metric = new memory_1.ApplicationMemoryMetric(settings, this.meter, this.userId, this.logger, this.dependencyContainer.performanceProvider);
|
|
123
124
|
return metric;
|
|
124
125
|
};
|
|
125
126
|
this.metricsFactories.set("app_memory", func.bind(this));
|
|
@@ -127,7 +128,7 @@ class MetricsFactoryBuilder {
|
|
|
127
128
|
}
|
|
128
129
|
withAppCPU() {
|
|
129
130
|
const func = (settings) => {
|
|
130
|
-
const metric = new cpu_1.ApplicationCPUMetric(settings, this.meter, this.userId, this.logger, this.dependencyContainer.
|
|
131
|
+
const metric = new cpu_1.ApplicationCPUMetric(settings, this.meter, this.userId, this.logger, this.dependencyContainer.performanceProvider);
|
|
131
132
|
return metric;
|
|
132
133
|
};
|
|
133
134
|
this.metricsFactories.set("app_cpu", func.bind(this));
|
|
@@ -135,7 +136,7 @@ class MetricsFactoryBuilder {
|
|
|
135
136
|
}
|
|
136
137
|
withSystemMemory() {
|
|
137
138
|
const func = (settings) => {
|
|
138
|
-
const metric = new memory_2.SystemMemoryMetric(settings, this.meter, this.userId, this.logger, this.dependencyContainer.
|
|
139
|
+
const metric = new memory_2.SystemMemoryMetric(settings, this.meter, this.userId, this.logger, this.dependencyContainer.performanceProvider);
|
|
139
140
|
return metric;
|
|
140
141
|
};
|
|
141
142
|
this.metricsFactories.set("system_memory", func.bind(this));
|
|
@@ -143,7 +144,7 @@ class MetricsFactoryBuilder {
|
|
|
143
144
|
}
|
|
144
145
|
withSystemCPU() {
|
|
145
146
|
const func = (settings) => {
|
|
146
|
-
const metric = new cpu_2.SystemCPUMetric(settings, this.meter, this.userId, this.logger, this.dependencyContainer.
|
|
147
|
+
const metric = new cpu_2.SystemCPUMetric(settings, this.meter, this.userId, this.logger, this.dependencyContainer.performanceProvider);
|
|
147
148
|
return metric;
|
|
148
149
|
};
|
|
149
150
|
this.metricsFactories.set("system_cpu", func.bind(this));
|
|
@@ -173,17 +174,6 @@ class MetricsFactoryBuilder {
|
|
|
173
174
|
this.metricsFactories.set("platform_startup", func.bind(this));
|
|
174
175
|
return this;
|
|
175
176
|
}
|
|
176
|
-
throwIfNotPresent() {
|
|
177
|
-
if (validator_1.Validator.isNullOrUndefined(this.logger)) {
|
|
178
|
-
throw new Error("logger must be provided");
|
|
179
|
-
}
|
|
180
|
-
if (validator_1.Validator.isNullOrUndefined(this.meter)) {
|
|
181
|
-
throw new Error("meter must be provided");
|
|
182
|
-
}
|
|
183
|
-
if (validator_1.Validator.isNullOrUndefined(this.dependencyContainer)) {
|
|
184
|
-
throw new Error("dependency container must be provided");
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
177
|
}
|
|
188
178
|
exports.MetricsFactoryBuilder = MetricsFactoryBuilder;
|
|
189
179
|
//# sourceMappingURL=factoryBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factoryBuilder.js","sourceRoot":"","sources":["../../src/metrics/factoryBuilder.ts"],"names":[],"mappings":";;;AAEA,mDAAiE;AACjE,mDAAiE;AACjE,mDAAiE;AACjE,qEAAmF;AACnF,+CAA6D;AAC7D,qDAAmE;AACnE,2DAAyE;AACzE,uEAAqF;AACrF,iDAA+D;AAC/D,2CAAyD;AACzD,4CAAqD;AACrD,sCAA+C;AAC/C,8CAAuD;AACvD,gEAAyE;AACzE,gDAA2D;AAC3D,uCAA2C;
|
|
1
|
+
{"version":3,"file":"factoryBuilder.js","sourceRoot":"","sources":["../../src/metrics/factoryBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,10 @@ import { GaugeMetricBase } from "../base/gauge";
|
|
|
3
3
|
import { TelemetryMetricLayoutData, LayoutRestoredHandler, TelemetryMetricSettings } from "../types";
|
|
4
4
|
import { TelemetryLogger } from "../../types";
|
|
5
5
|
export declare class LayoutStartupMetric extends GaugeMetricBase {
|
|
6
|
+
layoutRestoredHandler: LayoutRestoredHandler;
|
|
6
7
|
private layoutStartupTimes;
|
|
7
|
-
private layoutRestoredHandler;
|
|
8
8
|
private layoutRestoredUn;
|
|
9
|
+
private validator;
|
|
9
10
|
constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, layoutRestoredHandler: LayoutRestoredHandler);
|
|
10
11
|
protected subscribeCore(): Promise<void>;
|
|
11
12
|
protected observeCore(result: ObservableResult<TelemetryMetricLayoutData>): Promise<void>;
|
|
@@ -11,12 +11,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.LayoutStartupMetric = void 0;
|
|
13
13
|
const gauge_1 = require("../base/gauge");
|
|
14
|
+
const startup_1 = require("../../validation/metrics/layout/startup");
|
|
14
15
|
class LayoutStartupMetric extends gauge_1.GaugeMetricBase {
|
|
15
16
|
constructor(settings, meter, userId, logger, layoutRestoredHandler) {
|
|
16
17
|
super(settings, meter, userId, logger);
|
|
18
|
+
this.layoutRestoredHandler = layoutRestoredHandler;
|
|
17
19
|
// layout name -> [data, restore times]
|
|
18
20
|
this.layoutStartupTimes = new Map();
|
|
19
|
-
this.
|
|
21
|
+
this.validator = new startup_1.LayoutStartupMetricValidator();
|
|
22
|
+
this.validator.validate(this);
|
|
20
23
|
}
|
|
21
24
|
subscribeCore() {
|
|
22
25
|
this.layoutRestoredUn = this.layoutRestoredHandler(this.handleLayoutRestored.bind(this));
|
|
@@ -24,19 +27,14 @@ class LayoutStartupMetric extends gauge_1.GaugeMetricBase {
|
|
|
24
27
|
}
|
|
25
28
|
observeCore(result) {
|
|
26
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
this.logger.error(error);
|
|
39
|
-
}
|
|
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, result);
|
|
35
|
+
this.layoutStartupTimes.set(layout, [data, []]);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
40
38
|
});
|
|
41
39
|
}
|
|
42
40
|
unsubscribeCore() {
|
|
@@ -46,18 +44,19 @@ class LayoutStartupMetric 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 layout ${data.layout}`);
|
|
47
|
+
this.logger.debug(`metric ${this.settings.name} sent slowest startup time ${slowest} for layout ${data.layout}`);
|
|
50
48
|
}
|
|
51
49
|
observerCore(startupTimes, data, result) {
|
|
52
50
|
this.sendMetric(startupTimes, data, result);
|
|
53
51
|
}
|
|
54
52
|
handleLayoutRestored(e) {
|
|
55
53
|
try {
|
|
56
|
-
this.
|
|
54
|
+
this.validator.validateLayoutRestored(e);
|
|
55
|
+
this.logger.debug(`layout restored is being invoked for metric ${this.settings.name}`);
|
|
57
56
|
const now = (new Date()).getTime();
|
|
58
57
|
const startupTime = now - e.startTime.getTime();
|
|
59
58
|
this.addRestoredTime(startupTime, e.layout);
|
|
60
|
-
this.logger.debug(`startup time ${startupTime} has been added for metric ${this.name}`);
|
|
59
|
+
this.logger.debug(`startup time ${startupTime} has been added for metric ${this.settings.name}`);
|
|
61
60
|
}
|
|
62
61
|
catch (error) {
|
|
63
62
|
this.logger.error(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/metrics/layout/startup.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,yCAAgD;
|
|
1
|
+
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/metrics/layout/startup.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,13 +5,13 @@ const startup_1 = require("./startup");
|
|
|
5
5
|
class LayoutStartupHistogramMetric extends startup_1.LayoutStartupMetric {
|
|
6
6
|
constructor(settings, meter, userId, logger, layoutRestoredHandler) {
|
|
7
7
|
super(settings, meter, userId, logger, layoutRestoredHandler);
|
|
8
|
-
const advice = { explicitBucketBoundaries: this.buckets };
|
|
9
|
-
this.layoutStartupMetric = this.meter.createHistogram(this.name, { description: this.description, unit: this.unit, advice });
|
|
8
|
+
const advice = { explicitBucketBoundaries: this.settings.buckets };
|
|
9
|
+
this.layoutStartupMetric = 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.layoutStartupMetric.record(time, data);
|
|
14
|
-
this.logger.debug(`metric ${this.name} sent startup time ${time} for layout ${data.layout}`);
|
|
14
|
+
this.logger.debug(`metric ${this.settings.name} sent startup time ${time} for layout ${data.layout}`);
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startupHistogram.js","sourceRoot":"","sources":["../../../src/metrics/layout/startupHistogram.ts"],"names":[],"mappings":";;;AACA,uCAAgD;AAIhD,MAAa,4BAA6B,SAAQ,6BAAmB;IAGjE,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,qBAA4C;QAE5C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,EAAE,wBAAwB,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"startupHistogram.js","sourceRoot":"","sources":["../../../src/metrics/layout/startupHistogram.ts"],"names":[],"mappings":";;;AACA,uCAAgD;AAIhD,MAAa,4BAA6B,SAAQ,6BAAmB;IAGjE,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,qBAA4C;QAE5C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,EAAE,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnE,IAAI,CAAC,mBAAmB,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;IAC5J,CAAC;IAEkB,UAAU,CAAC,YAAsB,EAAE,IAA+B;QACjF,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,IAAI,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1G,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAtBD,oEAsBC"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { TelemetryLogger } from "../types";
|
|
2
|
-
import { TelemetryMetric, TelemetryMetricsFactory,
|
|
2
|
+
import { TelemetryMetric, TelemetryMetricsFactory, TelemetryMetricType, TelemetryMetricsManager, TelemetryMetricsSettings } from "./types";
|
|
3
3
|
export declare class MetricsManager implements TelemetryMetricsManager {
|
|
4
|
-
settings:
|
|
4
|
+
settings: TelemetryMetricsSettings;
|
|
5
|
+
factory: TelemetryMetricsFactory;
|
|
6
|
+
logger: TelemetryLogger;
|
|
5
7
|
private metrics;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
constructor(settings: TelemetryMetricSettings[], factory: TelemetryMetricsFactory, logger: TelemetryLogger);
|
|
8
|
+
started: boolean;
|
|
9
|
+
constructor(settings: TelemetryMetricsSettings, factory: TelemetryMetricsFactory, logger: TelemetryLogger);
|
|
9
10
|
get(type: TelemetryMetricType): TelemetryMetric | undefined;
|
|
10
11
|
start(): Promise<void>;
|
|
11
12
|
stop(): Promise<void>;
|
|
13
|
+
startCore(): Promise<void>;
|
|
12
14
|
private createMetrics;
|
|
13
15
|
private createMetric;
|
|
14
16
|
private startMetric;
|
|
15
17
|
private stopMetric;
|
|
16
|
-
private throwIfNotPresent;
|
|
17
18
|
}
|
package/dist/metrics/manager.js
CHANGED
|
@@ -10,42 +10,51 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.MetricsManager = void 0;
|
|
13
|
-
const
|
|
13
|
+
const manager_1 = require("../validation/metrics/manager");
|
|
14
14
|
class MetricsManager {
|
|
15
15
|
constructor(settings, factory, logger) {
|
|
16
16
|
this.settings = settings;
|
|
17
|
-
this.metrics = new Map();
|
|
18
17
|
this.factory = factory;
|
|
19
18
|
this.logger = logger;
|
|
20
|
-
this.
|
|
19
|
+
this.metrics = new Map();
|
|
20
|
+
this.started = false;
|
|
21
|
+
const validator = new manager_1.MetricsManagerValidator();
|
|
22
|
+
validator.validate(this);
|
|
21
23
|
}
|
|
22
24
|
get(type) {
|
|
23
25
|
const metric = this.metrics.get(type);
|
|
24
26
|
return metric;
|
|
25
27
|
}
|
|
26
28
|
start() {
|
|
29
|
+
// keep in mind that the manager can be started dynamically
|
|
30
|
+
const startPromise = this.settings.enabled ? this.startCore() : Promise.resolve();
|
|
31
|
+
return startPromise;
|
|
32
|
+
}
|
|
33
|
+
stop() {
|
|
27
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
35
|
try {
|
|
29
|
-
this.metrics = this.createMetrics(this.settings);
|
|
30
36
|
for (const metricKvp of this.metrics) {
|
|
31
37
|
const metric = metricKvp[1];
|
|
32
|
-
yield this.
|
|
38
|
+
yield this.stopMetric(metric);
|
|
33
39
|
}
|
|
34
|
-
this.
|
|
40
|
+
this.started = false;
|
|
41
|
+
this.logger.info("metrics manager has been stopped");
|
|
35
42
|
}
|
|
36
43
|
catch (error) {
|
|
37
44
|
this.logger.error(error);
|
|
38
45
|
}
|
|
39
46
|
});
|
|
40
47
|
}
|
|
41
|
-
|
|
48
|
+
startCore() {
|
|
42
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
43
50
|
try {
|
|
51
|
+
this.metrics = this.createMetrics(this.settings.metrics);
|
|
44
52
|
for (const metricKvp of this.metrics) {
|
|
45
53
|
const metric = metricKvp[1];
|
|
46
|
-
yield this.
|
|
54
|
+
yield this.startMetric(metric);
|
|
47
55
|
}
|
|
48
|
-
this.
|
|
56
|
+
this.started = true;
|
|
57
|
+
this.logger.info("metrics manager has been started");
|
|
49
58
|
}
|
|
50
59
|
catch (error) {
|
|
51
60
|
this.logger.error(error);
|
|
@@ -57,7 +66,7 @@ class MetricsManager {
|
|
|
57
66
|
settings.forEach((metricSettings) => {
|
|
58
67
|
const metric = this.createMetric(metricSettings);
|
|
59
68
|
if (metric) {
|
|
60
|
-
metrics.set(metric.type, metric);
|
|
69
|
+
metrics.set(metric.settings.type, metric);
|
|
61
70
|
}
|
|
62
71
|
});
|
|
63
72
|
return metrics;
|
|
@@ -74,9 +83,9 @@ class MetricsManager {
|
|
|
74
83
|
startMetric(metric) {
|
|
75
84
|
return __awaiter(this, void 0, void 0, function* () {
|
|
76
85
|
try {
|
|
77
|
-
if (!metric.enabled) {
|
|
78
|
-
// metric can be started dynamically
|
|
79
|
-
this.logger.info(`metric ${metric.name} is disabled, will not start it.`);
|
|
86
|
+
if (!metric.settings.enabled) {
|
|
87
|
+
// keep in mind that a metric can be started dynamically
|
|
88
|
+
this.logger.info(`metric ${metric.settings.name} is disabled, will not start it.`);
|
|
80
89
|
}
|
|
81
90
|
else {
|
|
82
91
|
yield metric.start();
|
|
@@ -98,17 +107,6 @@ class MetricsManager {
|
|
|
98
107
|
}
|
|
99
108
|
});
|
|
100
109
|
}
|
|
101
|
-
throwIfNotPresent() {
|
|
102
|
-
if (validator_1.Validator.isNullOrUndefined(this.logger)) {
|
|
103
|
-
throw new Error("logger must be provided");
|
|
104
|
-
}
|
|
105
|
-
if (validator_1.Validator.isNullOrUndefined(this.settings)) {
|
|
106
|
-
throw new Error("settings must be provided");
|
|
107
|
-
}
|
|
108
|
-
if (validator_1.Validator.isNullOrUndefined(this.factory)) {
|
|
109
|
-
throw new Error("factory container must be provided");
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
110
|
}
|
|
113
111
|
exports.MetricsManager = MetricsManager;
|
|
114
112
|
//# sourceMappingURL=manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/metrics/manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/metrics/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,10 @@ import { GaugeMetricBase } from "../base/gauge";
|
|
|
3
3
|
import { TelemetryMetricData, TelemetryMetricSettings, PlatformStartedHandler } from "../types";
|
|
4
4
|
import { TelemetryLogger } from "../../types";
|
|
5
5
|
export declare class PlatformStartupMetric extends GaugeMetricBase {
|
|
6
|
+
platformStartedHandler: PlatformStartedHandler;
|
|
6
7
|
private startupTime;
|
|
7
|
-
private platformStartedHandler;
|
|
8
8
|
private applicationStartedUn;
|
|
9
|
+
private validator;
|
|
9
10
|
constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, platformStartedHandler: PlatformStartedHandler);
|
|
10
11
|
protected subscribeCore(): Promise<void>;
|
|
11
12
|
protected observeCore(result: ObservableResult<TelemetryMetricData>): Promise<void>;
|
|
@@ -12,10 +12,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.PlatformStartupMetric = void 0;
|
|
13
13
|
const gauge_1 = require("../base/gauge");
|
|
14
14
|
const validator_1 = require("../../utils/validator");
|
|
15
|
+
const startup_1 = require("../../validation/metrics/platform/startup");
|
|
15
16
|
class PlatformStartupMetric extends gauge_1.GaugeMetricBase {
|
|
16
17
|
constructor(settings, meter, userId, logger, platformStartedHandler) {
|
|
17
18
|
super(settings, meter, userId, logger);
|
|
18
19
|
this.platformStartedHandler = platformStartedHandler;
|
|
20
|
+
this.validator = new startup_1.PlatformStartupMetricValidator();
|
|
21
|
+
this.validator.validate(this);
|
|
19
22
|
}
|
|
20
23
|
subscribeCore() {
|
|
21
24
|
this.applicationStartedUn = this.platformStartedHandler(this.handlePlatformStarted.bind(this));
|
|
@@ -23,14 +26,9 @@ class PlatformStartupMetric extends gauge_1.GaugeMetricBase {
|
|
|
23
26
|
}
|
|
24
27
|
observeCore(result) {
|
|
25
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this.sendMetric(this.startupTime, data, result);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
this.logger.error(error);
|
|
29
|
+
if (!validator_1.Validator.isNullOrUndefined(this.startupTime)) {
|
|
30
|
+
const data = this.getData();
|
|
31
|
+
this.sendMetric(this.startupTime, data, result);
|
|
34
32
|
}
|
|
35
33
|
});
|
|
36
34
|
}
|
|
@@ -40,19 +38,15 @@ class PlatformStartupMetric extends gauge_1.GaugeMetricBase {
|
|
|
40
38
|
}
|
|
41
39
|
sendMetric(startupTime, data, result) {
|
|
42
40
|
result.observe(startupTime, data);
|
|
43
|
-
this.logger.debug(`metric ${this.name} sent startup time ${startupTime}`);
|
|
41
|
+
this.logger.debug(`metric ${this.settings.name} sent startup time ${startupTime}`);
|
|
44
42
|
}
|
|
45
43
|
handlePlatformStarted(e) {
|
|
46
44
|
try {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
this.logger.error(error);
|
|
55
|
-
}
|
|
45
|
+
this.validator.validatePlatformStarted(e);
|
|
46
|
+
this.logger.debug(`platform started is being invoked for metric ${this.settings.name}`);
|
|
47
|
+
const now = (new Date()).getTime();
|
|
48
|
+
this.startupTime = now - e.startTime;
|
|
49
|
+
this.logger.debug(`start up time ${this.startupTime} has been added for metric ${this.settings.name}`);
|
|
56
50
|
}
|
|
57
51
|
catch (error) {
|
|
58
52
|
this.logger.error(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/metrics/platform/startup.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,yCAAgD;AAGhD,qDAAkD;
|
|
1
|
+
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/metrics/platform/startup.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,yCAAgD;AAGhD,qDAAkD;AAClD,uEAA2F;AAE3F,MAAa,qBAAsB,SAAQ,uBAAe;IAKtD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EAChB,sBAA8C;QAErD,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAFhC,2BAAsB,GAAtB,sBAAsB,CAAwB;QAGrD,IAAI,CAAC,SAAS,GAAG,IAAI,wCAA8B,EAAE,CAAC;QACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEkB,aAAa;QAC5B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/F,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEwB,WAAW,CAAC,MAA6C;;YAC9E,IAAI,CAAC,qBAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;aACnD;QACL,CAAC;KAAA;IAEkB,eAAe;QAC9B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,UAAU,CAAC,WAAmB,EAAE,IAAyB,EAAE,MAA6C;QAC5G,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAElC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,WAAW,EAAE,CAAC,CAAC;IACvF,CAAC;IAEO,qBAAqB,CAAC,CAAwB;QAClD,IAAI;YACA,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;YAE1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAExF,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC;YAErC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,WAAW,8BAA8B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;SAC1G;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;IACL,CAAC;CACJ;AAtDD,sDAsDC"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import { TelemetryMetricSettings } from "./types";
|
|
1
|
+
import { TelemetryMetricSettings, TelemetryMetricsSettings } from "./types";
|
|
2
2
|
export declare class MetricsSettingsBuilder {
|
|
3
|
-
private
|
|
3
|
+
private metrics;
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
userId: string;
|
|
6
|
+
defaultMetricsEnabled: boolean;
|
|
4
7
|
constructor();
|
|
5
|
-
build():
|
|
6
|
-
|
|
8
|
+
build(): TelemetryMetricsSettings;
|
|
9
|
+
withSettings(settings: TelemetryMetricsSettings): this;
|
|
10
|
+
withEnabled(enabled: boolean): this;
|
|
11
|
+
withUserId(userId: string): this;
|
|
12
|
+
withDefaultMetricsEnabled(enabled: boolean): this;
|
|
13
|
+
withDefaultMetrics(enabled?: boolean): this;
|
|
7
14
|
withCustomMetrics(settings: TelemetryMetricSettings[], mergeIfExists?: boolean): this;
|
|
8
15
|
withCustomMetric(custom: TelemetryMetricSettings, mergeIfExists?: boolean): this;
|
|
9
16
|
withAppStarted(enabled?: boolean): this;
|