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