@interopio/otel 0.0.1
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/README.md +1 -0
- package/dist/container.d.ts +12 -0
- package/dist/container.js +37 -0
- package/dist/container.js.map +1 -0
- package/dist/containerBuilder.d.ts +14 -0
- package/dist/containerBuilder.js +31 -0
- package/dist/containerBuilder.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/logs/types.d.ts +6 -0
- package/dist/logs/types.js +3 -0
- package/dist/logs/types.js.map +1 -0
- package/dist/metrics/application/count.d.ts +19 -0
- package/dist/metrics/application/count.js +53 -0
- package/dist/metrics/application/count.js.map +1 -0
- package/dist/metrics/application/cpu.d.ts +11 -0
- package/dist/metrics/application/cpu.js +33 -0
- package/dist/metrics/application/cpu.js.map +1 -0
- package/dist/metrics/application/duration.d.ts +20 -0
- package/dist/metrics/application/duration.js +97 -0
- package/dist/metrics/application/duration.js.map +1 -0
- package/dist/metrics/application/durationHistogram.d.ts +9 -0
- package/dist/metrics/application/durationHistogram.js +19 -0
- package/dist/metrics/application/durationHistogram.js.map +1 -0
- package/dist/metrics/application/durationSum.d.ts +9 -0
- package/dist/metrics/application/durationSum.js +17 -0
- package/dist/metrics/application/durationSum.js.map +1 -0
- package/dist/metrics/application/memory.d.ts +11 -0
- package/dist/metrics/application/memory.js +34 -0
- package/dist/metrics/application/memory.js.map +1 -0
- package/dist/metrics/application/started.d.ts +16 -0
- package/dist/metrics/application/started.js +40 -0
- package/dist/metrics/application/started.js.map +1 -0
- package/dist/metrics/application/startup.d.ts +16 -0
- package/dist/metrics/application/startup.js +74 -0
- package/dist/metrics/application/startup.js.map +1 -0
- package/dist/metrics/application/startupHistogram.d.ts +9 -0
- package/dist/metrics/application/startupHistogram.js +19 -0
- package/dist/metrics/application/startupHistogram.js.map +1 -0
- package/dist/metrics/application/stopped.d.ts +16 -0
- package/dist/metrics/application/stopped.js +40 -0
- package/dist/metrics/application/stopped.js.map +1 -0
- package/dist/metrics/base/base.d.ts +21 -0
- package/dist/metrics/base/base.js +64 -0
- package/dist/metrics/base/base.js.map +1 -0
- package/dist/metrics/base/gauge.d.ts +18 -0
- package/dist/metrics/base/gauge.js +54 -0
- package/dist/metrics/base/gauge.js.map +1 -0
- package/dist/metrics/base/null.d.ts +14 -0
- package/dist/metrics/base/null.js +34 -0
- package/dist/metrics/base/null.js.map +1 -0
- package/dist/metrics/dependencyBuilder.d.ts +19 -0
- package/dist/metrics/dependencyBuilder.js +58 -0
- package/dist/metrics/dependencyBuilder.js.map +1 -0
- package/dist/metrics/factory.d.ts +9 -0
- package/dist/metrics/factory.js +30 -0
- package/dist/metrics/factory.js.map +1 -0
- package/dist/metrics/factoryBuilder.d.ts +30 -0
- package/dist/metrics/factoryBuilder.js +189 -0
- package/dist/metrics/factoryBuilder.js.map +1 -0
- package/dist/metrics/layout/startup.d.ts +17 -0
- package/dist/metrics/layout/startup.js +77 -0
- package/dist/metrics/layout/startup.js.map +1 -0
- package/dist/metrics/layout/startupHistogram.d.ts +9 -0
- package/dist/metrics/layout/startupHistogram.js +19 -0
- package/dist/metrics/layout/startupHistogram.js.map +1 -0
- package/dist/metrics/manager.d.ts +17 -0
- package/dist/metrics/manager.js +114 -0
- package/dist/metrics/manager.js.map +1 -0
- package/dist/metrics/pipeline.d.ts +13 -0
- package/dist/metrics/pipeline.js +49 -0
- package/dist/metrics/pipeline.js.map +1 -0
- package/dist/metrics/platform/startup.d.ts +15 -0
- package/dist/metrics/platform/startup.js +63 -0
- package/dist/metrics/platform/startup.js.map +1 -0
- package/dist/metrics/settingsBuilder.d.ts +25 -0
- package/dist/metrics/settingsBuilder.js +230 -0
- package/dist/metrics/settingsBuilder.js.map +1 -0
- package/dist/metrics/system/cpu.d.ts +11 -0
- package/dist/metrics/system/cpu.js +38 -0
- package/dist/metrics/system/cpu.js.map +1 -0
- package/dist/metrics/system/memory.d.ts +11 -0
- package/dist/metrics/system/memory.js +39 -0
- package/dist/metrics/system/memory.js.map +1 -0
- package/dist/metrics/types.d.ts +95 -0
- package/dist/metrics/types.js +3 -0
- package/dist/metrics/types.js.map +1 -0
- package/dist/metrics/utils/nullMetricsManager.d.ts +5 -0
- package/dist/metrics/utils/nullMetricsManager.js +11 -0
- package/dist/metrics/utils/nullMetricsManager.js.map +1 -0
- package/dist/metrics/utils/nullPerfProvider.d.ts +7 -0
- package/dist/metrics/utils/nullPerfProvider.js +19 -0
- package/dist/metrics/utils/nullPerfProvider.js.map +1 -0
- package/dist/pipeline.d.ts +14 -0
- package/dist/pipeline.js +66 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/traces/types.d.ts +6 -0
- package/dist/traces/types.js +3 -0
- package/dist/traces/types.js.map +1 -0
- package/dist/types.d.ts +25 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/nullManager.d.ts +6 -0
- package/dist/utils/nullManager.js +16 -0
- package/dist/utils/nullManager.js.map +1 -0
- package/dist/utils/validator.d.ts +3 -0
- package/dist/utils/validator.js +10 -0
- package/dist/utils/validator.js.map +1 -0
- package/package.json +32 -0
|
@@ -0,0 +1,74 @@
|
|
|
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.ApplicationStartupMetric = void 0;
|
|
13
|
+
const gauge_1 = require("../base/gauge");
|
|
14
|
+
class ApplicationStartupMetric extends gauge_1.GaugeMetricBase {
|
|
15
|
+
constructor(settings, meter, userId, logger, instanceReadyHandler) {
|
|
16
|
+
super(settings, meter, userId, logger);
|
|
17
|
+
// application -> [data, startup times]
|
|
18
|
+
this.startupTimes = new Map();
|
|
19
|
+
this.instanceReadyHandler = instanceReadyHandler;
|
|
20
|
+
}
|
|
21
|
+
subscribeCore() {
|
|
22
|
+
this.interopReadyUn = this.instanceReadyHandler(this.handleInteropReady.bind(this));
|
|
23
|
+
return Promise.resolve();
|
|
24
|
+
}
|
|
25
|
+
observeCore(result) {
|
|
26
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
try {
|
|
28
|
+
this.startupTimes.forEach((kvp, application) => {
|
|
29
|
+
const metrics = kvp[1];
|
|
30
|
+
if (metrics.length > 0) {
|
|
31
|
+
const data = kvp[0];
|
|
32
|
+
this.sendMetric(metrics, data, result);
|
|
33
|
+
this.startupTimes.set(application, [data, []]);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
this.logger.error(error);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
unsubscribeCore() {
|
|
43
|
+
this.interopReadyUn();
|
|
44
|
+
return Promise.resolve();
|
|
45
|
+
}
|
|
46
|
+
sendMetric(startupTimes, data, result) {
|
|
47
|
+
const slowest = Math.max(...startupTimes);
|
|
48
|
+
result.observe(slowest, data);
|
|
49
|
+
this.logger.debug(`metric ${this.name} sent slowest startup time ${slowest} for app ${data.application}`);
|
|
50
|
+
}
|
|
51
|
+
handleInteropReady(e) {
|
|
52
|
+
try {
|
|
53
|
+
this.logger.debug(`interop ready for application ${e.application} and metric ${this.name} is being invoked`);
|
|
54
|
+
const now = (new Date()).getTime();
|
|
55
|
+
const startupTime = now - e.startTime.getTime();
|
|
56
|
+
this.addStartupTime(startupTime, e.application);
|
|
57
|
+
this.logger.debug(`start up time ${startupTime} has been added for metric ${this.name}`);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
this.logger.error(error);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
addStartupTime(time, application) {
|
|
64
|
+
if (!this.startupTimes.has(application)) {
|
|
65
|
+
const data = this.getData(application);
|
|
66
|
+
this.startupTimes.set(application, [data, []]);
|
|
67
|
+
}
|
|
68
|
+
const kvp = this.startupTimes.get(application);
|
|
69
|
+
const metrics = kvp[1];
|
|
70
|
+
metrics.push(time);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.ApplicationStartupMetric = ApplicationStartupMetric;
|
|
74
|
+
//# sourceMappingURL=startup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/metrics/application/startup.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,yCAAgD;AAIhD,MAAa,wBAAyB,SAAQ,uBAAe;IAOzD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,oBAA0C;QAE1C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAb3C,uCAAuC;QAC/B,iBAAY,GAAG,IAAI,GAAG,EAA2C,CAAC;QAatE,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACrD,CAAC;IAEkB,aAAa;QAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEwB,WAAW,CAAC,MAA6C;;YAC9E,IAAI;gBACA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;oBAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;wBACpB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;wBACvC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;qBAClD;gBACL,CAAC,CAAC,CAAC;aACN;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC5B;QACL,CAAC;KAAA;IAEkB,eAAe;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAES,UAAU,CAAC,YAAsB,EAAE,IAAyB,EAAE,MAA6C;QACjH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,8BAA8B,OAAO,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9G,CAAC;IAEO,kBAAkB,CAAC,CAA2C;QAClE,IAAI;YACA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,WAAW,eAAe,IAAI,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAE7G,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAChD,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,WAAW,8BAA8B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SAC5F;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;IACL,CAAC;IAEO,cAAc,CAAC,IAAY,EAAE,WAAmB;QACpD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;SAClD;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;QAChD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;CACJ;AAzED,4DAyEC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Meter } from "@opentelemetry/api";
|
|
2
|
+
import { ApplicationStartupMetric } from "./startup";
|
|
3
|
+
import { TelemetryMetricData, InstanceReadyHandler, TelemetryMetricSettings } from "../types";
|
|
4
|
+
import { TelemetryLogger } from "../../types";
|
|
5
|
+
export declare class ApplicationStartupHistogramMetric extends ApplicationStartupMetric {
|
|
6
|
+
private appStartupMetric;
|
|
7
|
+
constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceReadyHandler: InstanceReadyHandler);
|
|
8
|
+
protected sendMetric(startupTimes: number[], data: TelemetryMetricData): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationStartupHistogramMetric = void 0;
|
|
4
|
+
const startup_1 = require("./startup");
|
|
5
|
+
class ApplicationStartupHistogramMetric extends startup_1.ApplicationStartupMetric {
|
|
6
|
+
constructor(settings, meter, userId, logger, instanceReadyHandler) {
|
|
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 });
|
|
10
|
+
}
|
|
11
|
+
sendMetric(startupTimes, data) {
|
|
12
|
+
startupTimes.forEach((time) => {
|
|
13
|
+
this.appStartupMetric.record(time, data);
|
|
14
|
+
this.logger.debug(`metric ${this.name} sent startup time ${time} for app ${data.application}`);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.ApplicationStartupHistogramMetric = ApplicationStartupHistogramMetric;
|
|
19
|
+
//# sourceMappingURL=startupHistogram.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startupHistogram.js","sourceRoot":"","sources":["../../../src/metrics/application/startupHistogram.ts"],"names":[],"mappings":";;;AACA,uCAAqD;AAIrD,MAAa,iCAAkC,SAAQ,kCAAwB;IAE3E,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,oBAA0C;QAE1C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,EAAE,wBAAwB,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9H,CAAC;IAEkB,UAAU,CAAC,YAAsB,EAAE,IAAyB;QAC3E,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,sBAAsB,IAAI,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AArBD,8EAqBC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Meter } from "@opentelemetry/api";
|
|
2
|
+
import { InstanceActionHandler, TelemetryMetricSettings } from "../types";
|
|
3
|
+
import { TelemetryLogger } from "../../types";
|
|
4
|
+
import { MetricBase } from "../base/base";
|
|
5
|
+
export declare class ApplicationStoppedMetric extends MetricBase {
|
|
6
|
+
private meter;
|
|
7
|
+
private appStoppedMetric;
|
|
8
|
+
private instanceStoppedHandler;
|
|
9
|
+
private instanceStoppedUn;
|
|
10
|
+
constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceStoppedHandler: InstanceActionHandler);
|
|
11
|
+
protected createMetric(): Promise<void>;
|
|
12
|
+
protected subscribe(): Promise<void>;
|
|
13
|
+
protected unsubscribe(): Promise<void>;
|
|
14
|
+
protected destroyMetric(): Promise<void>;
|
|
15
|
+
private handleInstanceStopped;
|
|
16
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationStoppedMetric = void 0;
|
|
4
|
+
const base_1 = require("../base/base");
|
|
5
|
+
class ApplicationStoppedMetric extends base_1.MetricBase {
|
|
6
|
+
constructor(settings, meter, userId, logger, instanceStoppedHandler) {
|
|
7
|
+
super(settings, userId, logger);
|
|
8
|
+
this.meter = meter;
|
|
9
|
+
this.instanceStoppedHandler = instanceStoppedHandler;
|
|
10
|
+
}
|
|
11
|
+
createMetric() {
|
|
12
|
+
const name = this.name;
|
|
13
|
+
const description = this.description;
|
|
14
|
+
this.appStoppedMetric = this.meter.createCounter(name, { description });
|
|
15
|
+
return Promise.resolve();
|
|
16
|
+
}
|
|
17
|
+
subscribe() {
|
|
18
|
+
this.instanceStoppedUn = this.instanceStoppedHandler(this.handleInstanceStopped.bind(this));
|
|
19
|
+
return Promise.resolve();
|
|
20
|
+
}
|
|
21
|
+
unsubscribe() {
|
|
22
|
+
this.instanceStoppedUn();
|
|
23
|
+
return Promise.resolve();
|
|
24
|
+
}
|
|
25
|
+
destroyMetric() {
|
|
26
|
+
return Promise.resolve();
|
|
27
|
+
}
|
|
28
|
+
handleInstanceStopped(e) {
|
|
29
|
+
try {
|
|
30
|
+
const data = this.getData(e.application);
|
|
31
|
+
this.appStoppedMetric.add(1, data);
|
|
32
|
+
this.logger.debug(`metric ${this.name} sent 1 more for app ${data.application}`);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
this.logger.error(error);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.ApplicationStoppedMetric = ApplicationStoppedMetric;
|
|
40
|
+
//# sourceMappingURL=stopped.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stopped.js","sourceRoot":"","sources":["../../../src/metrics/application/stopped.ts"],"names":[],"mappings":";;;AAGA,uCAA0C;AAE1C,MAAa,wBAAyB,SAAQ,iBAAU;IAOpD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,sBAA6C;QAE7C,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACzD,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAExE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5F,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,qBAAqB,CAAC,CAA0B;QACpD,IAAI;YACA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SACpF;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;IACL,CAAC;CACJ;AAtDD,4DAsDC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TelemetryMetricData, TelemetryMetric, TelemetryMetricSettings, TelemetryMetricType } from "../types";
|
|
2
|
+
import { TelemetryLogger } from "../../types";
|
|
3
|
+
export declare abstract class MetricBase implements TelemetryMetric {
|
|
4
|
+
protected logger: TelemetryLogger;
|
|
5
|
+
private settings;
|
|
6
|
+
private userId;
|
|
7
|
+
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
|
+
start(): Promise<void>;
|
|
15
|
+
stop(): Promise<void>;
|
|
16
|
+
protected abstract createMetric(): Promise<void>;
|
|
17
|
+
protected abstract subscribe(): Promise<void>;
|
|
18
|
+
protected abstract unsubscribe(): Promise<void>;
|
|
19
|
+
protected abstract destroyMetric(): Promise<void>;
|
|
20
|
+
protected getData(application?: string): TelemetryMetricData;
|
|
21
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MetricBase = void 0;
|
|
4
|
+
const validator_1 = require("../../utils/validator");
|
|
5
|
+
class MetricBase {
|
|
6
|
+
constructor(settings, userId, logger) {
|
|
7
|
+
this.logger = logger;
|
|
8
|
+
this.userId = userId;
|
|
9
|
+
this.settings = settings;
|
|
10
|
+
}
|
|
11
|
+
get enabled() {
|
|
12
|
+
return this.settings.enabled;
|
|
13
|
+
}
|
|
14
|
+
get name() {
|
|
15
|
+
return this.settings.name;
|
|
16
|
+
}
|
|
17
|
+
get description() {
|
|
18
|
+
return this.settings.description;
|
|
19
|
+
}
|
|
20
|
+
get type() {
|
|
21
|
+
return this.settings.type;
|
|
22
|
+
}
|
|
23
|
+
get unit() {
|
|
24
|
+
return this.settings.unit;
|
|
25
|
+
}
|
|
26
|
+
get buckets() {
|
|
27
|
+
return this.settings.buckets;
|
|
28
|
+
}
|
|
29
|
+
start() {
|
|
30
|
+
try {
|
|
31
|
+
this.createMetric();
|
|
32
|
+
this.logger.info(`metric ${this.name} has been created`);
|
|
33
|
+
this.subscribe();
|
|
34
|
+
this.logger.info(`metric ${this.name} has subscribed`);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
this.logger.error(error);
|
|
38
|
+
}
|
|
39
|
+
return Promise.resolve();
|
|
40
|
+
}
|
|
41
|
+
stop() {
|
|
42
|
+
try {
|
|
43
|
+
this.unsubscribe();
|
|
44
|
+
this.logger.info(`metric ${this.name} has unsubscribed`);
|
|
45
|
+
this.destroyMetric();
|
|
46
|
+
this.logger.info(`metric ${this.name} has been destroyed`);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
this.logger.error(error);
|
|
50
|
+
}
|
|
51
|
+
return Promise.resolve();
|
|
52
|
+
}
|
|
53
|
+
getData(application) {
|
|
54
|
+
const data = {
|
|
55
|
+
user: this.userId
|
|
56
|
+
};
|
|
57
|
+
if (!validator_1.Validator.isNullOrUndefined(application)) {
|
|
58
|
+
data.application = application;
|
|
59
|
+
}
|
|
60
|
+
return data;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.MetricBase = MetricBase;
|
|
64
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/metrics/base/base.ts"],"names":[],"mappings":";;;AAEA,qDAAkD;AAElD,MAAsB,UAAU;IAK5B,YAAY,QAAiC,EAAE,MAAc,EAAE,MAAuB;QAClF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACrC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IACjC,CAAC;IAEM,KAAK;QACR,IAAI;YACA,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAEzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,iBAAiB,CAAC,CAAC;SAC1D;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEM,IAAI;QACP,IAAI;YACA,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAEzD,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,qBAAqB,CAAC,CAAC;SAC9D;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAQS,OAAO,CAAC,WAAoB;QAClC,MAAM,IAAI,GAAwB;YAC9B,IAAI,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QAEF,IAAI,CAAC,qBAAS,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;YAC3C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAClC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA9ED,gCA8EC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Meter, Observable, ObservableCallback, ObservableResult } from "@opentelemetry/api";
|
|
2
|
+
import { TelemetryMetricData, TelemetryMetricSettings } from "../types";
|
|
3
|
+
import { TelemetryLogger } from "../../types";
|
|
4
|
+
import { MetricBase } from "./base";
|
|
5
|
+
export declare abstract class GaugeMetricBase extends MetricBase {
|
|
6
|
+
protected meter: Meter;
|
|
7
|
+
protected metric: Observable<TelemetryMetricData>;
|
|
8
|
+
protected observableCallback: ObservableCallback<TelemetryMetricData>;
|
|
9
|
+
constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger);
|
|
10
|
+
protected createMetric(): Promise<void>;
|
|
11
|
+
protected subscribe(): Promise<void>;
|
|
12
|
+
protected destroyMetric(): Promise<void>;
|
|
13
|
+
protected unsubscribe(): Promise<void>;
|
|
14
|
+
protected observe(result: ObservableResult<TelemetryMetricData>): Promise<void>;
|
|
15
|
+
protected abstract subscribeCore(): Promise<void>;
|
|
16
|
+
protected abstract observeCore(result: ObservableResult<TelemetryMetricData>): Promise<void>;
|
|
17
|
+
protected abstract unsubscribeCore(): Promise<void>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
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.GaugeMetricBase = void 0;
|
|
13
|
+
const base_1 = require("./base");
|
|
14
|
+
class GaugeMetricBase extends base_1.MetricBase {
|
|
15
|
+
constructor(settings, meter, userId, logger) {
|
|
16
|
+
super(settings, userId, logger);
|
|
17
|
+
this.meter = meter;
|
|
18
|
+
}
|
|
19
|
+
createMetric() {
|
|
20
|
+
const name = this.name;
|
|
21
|
+
const description = this.description;
|
|
22
|
+
const unit = this.unit;
|
|
23
|
+
this.metric = this.meter.createObservableGauge(name, { description, unit });
|
|
24
|
+
return Promise.resolve();
|
|
25
|
+
}
|
|
26
|
+
subscribe() {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
this.observableCallback = this.observe.bind(this);
|
|
29
|
+
this.metric.addCallback(this.observableCallback);
|
|
30
|
+
yield this.subscribeCore();
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
destroyMetric() {
|
|
34
|
+
this.metric.removeCallback(this.observableCallback);
|
|
35
|
+
return Promise.resolve();
|
|
36
|
+
}
|
|
37
|
+
unsubscribe() {
|
|
38
|
+
return this.unsubscribeCore();
|
|
39
|
+
}
|
|
40
|
+
observe(result) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
try {
|
|
43
|
+
this.logger.debug(`observe is being invoked for metric ${this.name}`);
|
|
44
|
+
yield this.observeCore(result);
|
|
45
|
+
this.logger.debug(`metric ${this.name} has been observed`);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
this.logger.error(error);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.GaugeMetricBase = GaugeMetricBase;
|
|
54
|
+
//# sourceMappingURL=gauge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gauge.js","sourceRoot":"","sources":["../../../src/metrics/base/gauge.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,iCAAoC;AAEpC,MAAsB,eAAgB,SAAQ,iBAAU;IAKpD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB;QAEvB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEwB,SAAS;;YAC9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEjD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC;KAAA;IAEkB,aAAa;QAC5B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC;IAEe,OAAO,CAAC,MAA6C;;YACjE,IAAI;gBACA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAEtE,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAE/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,oBAAoB,CAAC,CAAC;aAC9D;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC5B;QACL,CAAC;KAAA;CAKJ;AAxDD,0CAwDC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TelemetryMetric, TelemetryMetricSettings, TelemetryMetricType } from "../types";
|
|
2
|
+
import { TelemetryLogger } from "../../types";
|
|
3
|
+
export declare class NullMetric implements TelemetryMetric {
|
|
4
|
+
private logger;
|
|
5
|
+
private settings;
|
|
6
|
+
constructor(logger: TelemetryLogger, settings: TelemetryMetricSettings);
|
|
7
|
+
get enabled(): boolean;
|
|
8
|
+
get name(): string;
|
|
9
|
+
get description(): string;
|
|
10
|
+
get unit(): string;
|
|
11
|
+
get type(): TelemetryMetricType;
|
|
12
|
+
start(): Promise<void>;
|
|
13
|
+
stop(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NullMetric = void 0;
|
|
4
|
+
class NullMetric {
|
|
5
|
+
constructor(logger, settings) {
|
|
6
|
+
this.logger = logger;
|
|
7
|
+
this.settings = settings;
|
|
8
|
+
}
|
|
9
|
+
get enabled() {
|
|
10
|
+
return this.settings.enabled;
|
|
11
|
+
}
|
|
12
|
+
get name() {
|
|
13
|
+
return "null_metric";
|
|
14
|
+
}
|
|
15
|
+
get description() {
|
|
16
|
+
return "a null metric which publishes nothing";
|
|
17
|
+
}
|
|
18
|
+
get unit() {
|
|
19
|
+
return "";
|
|
20
|
+
}
|
|
21
|
+
get type() {
|
|
22
|
+
return "null";
|
|
23
|
+
}
|
|
24
|
+
start() {
|
|
25
|
+
this.logger.info(`null metric has been started instead of ${this.settings.type} one`);
|
|
26
|
+
return Promise.resolve();
|
|
27
|
+
}
|
|
28
|
+
stop() {
|
|
29
|
+
this.logger.info(`null metric has been stopped instead of ${this.settings.type} one`);
|
|
30
|
+
return Promise.resolve();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.NullMetric = NullMetric;
|
|
34
|
+
//# sourceMappingURL=null.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"null.js","sourceRoot":"","sources":["../../../src/metrics/base/null.ts"],"names":[],"mappings":";;;AAGA,MAAa,UAAU;IAInB,YAAY,MAAuB,EAAE,QAAiC;QAClE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,uCAAuC,CAAC;IACnD,CAAC;IAED,IAAW,IAAI;QACX,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAW,IAAI;QACX,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;QAEtF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;QAEtF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ;AAxCD,gCAwCC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { InstanceActionHandler, InstanceFocusedHandler, InstanceReadyHandler, LayoutRestoredHandler, PerformanceProvider, PlatformStartedHandler, TelemetryMetricsDependencyContainer } from "./types";
|
|
2
|
+
export declare class MetricsDependencyBuilder {
|
|
3
|
+
private perfProvider;
|
|
4
|
+
private instanceStartedHandler;
|
|
5
|
+
private instanceStoppedHandler;
|
|
6
|
+
private instanceReadyHandler;
|
|
7
|
+
private instanceFocusedHandler;
|
|
8
|
+
private layoutRestoredHandler;
|
|
9
|
+
private platformStartedHandler;
|
|
10
|
+
constructor();
|
|
11
|
+
build(): TelemetryMetricsDependencyContainer;
|
|
12
|
+
withInstanceStartedHandler(instanceStartedHandler: InstanceActionHandler): this;
|
|
13
|
+
withInstanceStoppedHandler(instanceStoppedHandler: InstanceActionHandler): this;
|
|
14
|
+
withInstanceReadyHandler(instanceReadyHandler: InstanceReadyHandler): this;
|
|
15
|
+
withInstanceFocusedHandler(instanceFocusedHandler: InstanceFocusedHandler): this;
|
|
16
|
+
withLayoutRestoredHandler(layoutRestoredHandler: LayoutRestoredHandler): this;
|
|
17
|
+
withPlatformStartedHandler(platformStartedHandler: PlatformStartedHandler): this;
|
|
18
|
+
withPerfProvider(perfProvider: PerformanceProvider): this;
|
|
19
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MetricsDependencyBuilder = void 0;
|
|
4
|
+
const nullPerfProvider_1 = require("./utils/nullPerfProvider");
|
|
5
|
+
class MetricsDependencyBuilder {
|
|
6
|
+
constructor() {
|
|
7
|
+
// set default dependencies
|
|
8
|
+
this.perfProvider = new nullPerfProvider_1.NullPerformanceProvider();
|
|
9
|
+
this.instanceFocusedHandler = () => () => { };
|
|
10
|
+
this.instanceStartedHandler = () => () => { };
|
|
11
|
+
this.instanceStoppedHandler = () => () => { };
|
|
12
|
+
this.instanceReadyHandler = () => () => { };
|
|
13
|
+
this.layoutRestoredHandler = () => () => { };
|
|
14
|
+
this.platformStartedHandler = () => () => { };
|
|
15
|
+
}
|
|
16
|
+
build() {
|
|
17
|
+
const container = {
|
|
18
|
+
perfProvider: this.perfProvider,
|
|
19
|
+
instanceStartedHandler: this.instanceStartedHandler,
|
|
20
|
+
instanceStoppedHandler: this.instanceStoppedHandler,
|
|
21
|
+
instanceReadyHandler: this.instanceReadyHandler,
|
|
22
|
+
instanceFocusedHandler: this.instanceFocusedHandler,
|
|
23
|
+
layoutRestoredHandler: this.layoutRestoredHandler,
|
|
24
|
+
platformStartedHandler: this.platformStartedHandler
|
|
25
|
+
};
|
|
26
|
+
return container;
|
|
27
|
+
}
|
|
28
|
+
withInstanceStartedHandler(instanceStartedHandler) {
|
|
29
|
+
this.instanceStartedHandler = instanceStartedHandler;
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
withInstanceStoppedHandler(instanceStoppedHandler) {
|
|
33
|
+
this.instanceStoppedHandler = instanceStoppedHandler;
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
withInstanceReadyHandler(instanceReadyHandler) {
|
|
37
|
+
this.instanceReadyHandler = instanceReadyHandler;
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
withInstanceFocusedHandler(instanceFocusedHandler) {
|
|
41
|
+
this.instanceFocusedHandler = instanceFocusedHandler;
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
withLayoutRestoredHandler(layoutRestoredHandler) {
|
|
45
|
+
this.layoutRestoredHandler = layoutRestoredHandler;
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
withPlatformStartedHandler(platformStartedHandler) {
|
|
49
|
+
this.platformStartedHandler = platformStartedHandler;
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
withPerfProvider(perfProvider) {
|
|
53
|
+
this.perfProvider = perfProvider;
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.MetricsDependencyBuilder = MetricsDependencyBuilder;
|
|
58
|
+
//# sourceMappingURL=dependencyBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencyBuilder.js","sourceRoot":"","sources":["../../src/metrics/dependencyBuilder.ts"],"names":[],"mappings":";;;AAAA,+DAAmE;AAWnE,MAAa,wBAAwB;IASjC;QACI,2BAA2B;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,0CAAuB,EAAE,CAAC;QAClD,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,qBAAqB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK;QACR,MAAM,SAAS,GAAwC;YACnD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;SACtD,CAAA;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEM,0BAA0B,CAAC,sBAA6C;QAC3E,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,0BAA0B,CAAC,sBAA6C;QAC3E,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,wBAAwB,CAAC,oBAA0C;QACtE,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,0BAA0B,CAAC,sBAA8C;QAC5E,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,yBAAyB,CAAC,qBAA4C;QACzE,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,0BAA0B,CAAC,sBAA8C;QAC5E,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,gBAAgB,CAAC,YAAiC;QACrD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAnED,4DAmEC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TelemetryLogger } from "../types";
|
|
2
|
+
import { CreateTelemetryMetricFunc, TelemetryMetric, TelemetryMetricsFactory, TelemetryMetricSettings, TelemetryMetricType } from "./types";
|
|
3
|
+
export declare class MetricsFactory implements TelemetryMetricsFactory {
|
|
4
|
+
private logger;
|
|
5
|
+
private factories;
|
|
6
|
+
constructor(logger: TelemetryLogger, metricsFactories: Map<TelemetryMetricType, CreateTelemetryMetricFunc>);
|
|
7
|
+
create(metricSettings: TelemetryMetricSettings): TelemetryMetric;
|
|
8
|
+
private createNullMetric;
|
|
9
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MetricsFactory = void 0;
|
|
4
|
+
const null_1 = require("./base/null");
|
|
5
|
+
class MetricsFactory {
|
|
6
|
+
constructor(logger, metricsFactories) {
|
|
7
|
+
this.logger = logger;
|
|
8
|
+
this.factories = metricsFactories;
|
|
9
|
+
}
|
|
10
|
+
create(metricSettings) {
|
|
11
|
+
const metricType = metricSettings.type;
|
|
12
|
+
const hasMetricFactory = this.factories.has(metricType);
|
|
13
|
+
if (hasMetricFactory) {
|
|
14
|
+
const metricFactory = this.factories.get(metricType);
|
|
15
|
+
const metric = metricFactory(metricSettings);
|
|
16
|
+
return metric;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const nullMetric = this.createNullMetric(metricSettings, "not supported");
|
|
20
|
+
return nullMetric;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
createNullMetric(settings, reason) {
|
|
24
|
+
this.logger.info(`cannot create ${settings.name} metric, reason: ${reason}`);
|
|
25
|
+
const nullMetric = new null_1.NullMetric(this.logger, settings);
|
|
26
|
+
return nullMetric;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.MetricsFactory = MetricsFactory;
|
|
30
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/metrics/factory.ts"],"names":[],"mappings":";;;AACA,sCAAyC;AAGzC,MAAa,cAAc;IAIvB,YACI,MAAuB,EACvB,gBAAqE;QAErE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,cAAuC;QACjD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC;QACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAExD,IAAI,gBAAgB,EAAE;YAClB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;YACtD,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;YAC7C,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAC1E,OAAO,UAAU,CAAC;SACrB;IACL,CAAC;IAEO,gBAAgB,CAAC,QAAiC,EAAE,MAAc;QACtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,QAAQ,CAAC,IAAI,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAI,iBAAU,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACzD,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AA/BD,wCA+BC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Meter } from "@opentelemetry/api";
|
|
2
|
+
import { TelemetryLogger } from "../types";
|
|
3
|
+
import { CreateTelemetryMetricFunc, TelemetryMetricType, TelemetryMetricsDependencyContainer, TelemetryMetricsFactory } from "./types";
|
|
4
|
+
export declare class MetricsFactoryBuilder {
|
|
5
|
+
private metricsFactories;
|
|
6
|
+
private meter;
|
|
7
|
+
private userId;
|
|
8
|
+
private dependencyContainer;
|
|
9
|
+
private logger;
|
|
10
|
+
constructor(meter: Meter, userId: string, dependencyContainer: TelemetryMetricsDependencyContainer, logger: TelemetryLogger);
|
|
11
|
+
build(): TelemetryMetricsFactory;
|
|
12
|
+
withDefaults(): this;
|
|
13
|
+
withCustomMetric(type: TelemetryMetricType, createFunc: CreateTelemetryMetricFunc): this;
|
|
14
|
+
withAppStarted(): this;
|
|
15
|
+
withAppStopped(): this;
|
|
16
|
+
withAppStartup(): this;
|
|
17
|
+
withAppStartupHistogram(): this;
|
|
18
|
+
withAppCount(): this;
|
|
19
|
+
withAppDuration(): this;
|
|
20
|
+
withAppDurationSum(): this;
|
|
21
|
+
withAppDurationHistogram(): this;
|
|
22
|
+
withAppMemory(): this;
|
|
23
|
+
withAppCPU(): this;
|
|
24
|
+
withSystemMemory(): this;
|
|
25
|
+
withSystemCPU(): this;
|
|
26
|
+
withLayoutStartup(): this;
|
|
27
|
+
withLayoutStartupHistogram(): this;
|
|
28
|
+
withPlatformStartup(): this;
|
|
29
|
+
private throwIfNotPresent;
|
|
30
|
+
}
|