@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
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
TBD
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TelemetryLogsManager } from "./logs/types";
|
|
2
|
+
import { TelemetryMetricsManager } from "./metrics/types";
|
|
3
|
+
import { TelemetryTracesManager } from "./traces/types";
|
|
4
|
+
import { TelemetryContainer } from "./types";
|
|
5
|
+
export declare class Container implements TelemetryContainer {
|
|
6
|
+
traces: TelemetryTracesManager;
|
|
7
|
+
metrics: TelemetryMetricsManager;
|
|
8
|
+
logs: TelemetryLogsManager;
|
|
9
|
+
constructor(traces: TelemetryTracesManager, metrics: TelemetryMetricsManager, logs: TelemetryLogsManager);
|
|
10
|
+
start(): Promise<void>;
|
|
11
|
+
stop(): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
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.Container = void 0;
|
|
13
|
+
class Container {
|
|
14
|
+
constructor(traces, metrics, logs) {
|
|
15
|
+
this.traces = traces;
|
|
16
|
+
this.metrics = metrics;
|
|
17
|
+
this.logs = logs;
|
|
18
|
+
}
|
|
19
|
+
start() {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
const metricsPromise = this.metrics.start();
|
|
22
|
+
const tracesPromise = this.traces.start();
|
|
23
|
+
const logsPromise = this.logs.start();
|
|
24
|
+
yield Promise.all([metricsPromise, tracesPromise, logsPromise]);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
stop() {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const metricsPromise = this.metrics.stop();
|
|
30
|
+
const tracesPromise = this.traces.stop();
|
|
31
|
+
const logsPromise = this.logs.stop();
|
|
32
|
+
yield Promise.all([metricsPromise, tracesPromise, logsPromise]);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.Container = Container;
|
|
37
|
+
//# sourceMappingURL=container.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,MAAa,SAAS;IAClB,YACW,MAA8B,EAC9B,OAAgC,EAChC,IAA0B;QAF1B,WAAM,GAAN,MAAM,CAAwB;QAC9B,YAAO,GAAP,OAAO,CAAyB;QAChC,SAAI,GAAJ,IAAI,CAAsB;IACrC,CAAC;IAEY,KAAK;;YACd,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAEtC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;QACpE,CAAC;KAAA;IAEY,IAAI;;YACb,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAErC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;QACpE,CAAC;KAAA;CACJ;AAtBD,8BAsBC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TelemetryContainer } from "./types";
|
|
2
|
+
import { TelemetryMetricsManager } from "./metrics/types";
|
|
3
|
+
import { TelemetryTracesManager } from "./traces/types";
|
|
4
|
+
import { TelemetryLogsManager } from "./logs/types";
|
|
5
|
+
export declare class ContainerBuilder {
|
|
6
|
+
private traces;
|
|
7
|
+
private metrics;
|
|
8
|
+
private logs;
|
|
9
|
+
constructor();
|
|
10
|
+
withMetrics(manager: TelemetryMetricsManager): this;
|
|
11
|
+
withTraces(manager: TelemetryTracesManager): this;
|
|
12
|
+
withLogs(manager: TelemetryLogsManager): this;
|
|
13
|
+
build(): TelemetryContainer;
|
|
14
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContainerBuilder = void 0;
|
|
4
|
+
const container_1 = require("./container");
|
|
5
|
+
const nullManager_1 = require("./utils/nullManager");
|
|
6
|
+
const nullMetricsManager_1 = require("./metrics/utils/nullMetricsManager");
|
|
7
|
+
class ContainerBuilder {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.traces = new nullManager_1.NullManager();
|
|
10
|
+
this.metrics = new nullMetricsManager_1.NullMetricsManager();
|
|
11
|
+
this.logs = new nullManager_1.NullManager();
|
|
12
|
+
}
|
|
13
|
+
withMetrics(manager) {
|
|
14
|
+
this.metrics = manager;
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
withTraces(manager) {
|
|
18
|
+
this.traces = manager;
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
withLogs(manager) {
|
|
22
|
+
this.logs = manager;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
build() {
|
|
26
|
+
const container = new container_1.Container(this.traces, this.metrics, this.logs);
|
|
27
|
+
return container;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.ContainerBuilder = ContainerBuilder;
|
|
31
|
+
//# sourceMappingURL=containerBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"containerBuilder.js","sourceRoot":"","sources":["../src/containerBuilder.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,qDAAkD;AAClD,2EAAwE;AAKxE,MAAa,gBAAgB;IAKzB;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,uCAAkB,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,yBAAW,EAAE,CAAC;IAClC,CAAC;IAEM,WAAW,CAAC,OAAgC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,UAAU,CAAC,OAA+B;QAC7C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,QAAQ,CAAC,OAA6B;QACzC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK;QACR,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AA9BD,4CA8BC"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.MetricsDependencyBuilder = exports.Pipeline = void 0;
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
var pipeline_1 = require("./pipeline");
|
|
20
|
+
Object.defineProperty(exports, "Pipeline", { enumerable: true, get: function () { return pipeline_1.Pipeline; } });
|
|
21
|
+
__exportStar(require("./metrics/types"), exports);
|
|
22
|
+
var dependencyBuilder_1 = require("./metrics/dependencyBuilder");
|
|
23
|
+
Object.defineProperty(exports, "MetricsDependencyBuilder", { enumerable: true, get: function () { return dependencyBuilder_1.MetricsDependencyBuilder; } });
|
|
24
|
+
__exportStar(require("./traces/types"), exports);
|
|
25
|
+
__exportStar(require("./logs/types"), exports);
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAEjB,kDAAgC;AAChC,iEAAuE;AAA9D,6HAAA,wBAAwB,OAAA;AAEjC,iDAA+B;AAC/B,+CAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/logs/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
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 ApplicationCountMetric extends MetricBase {
|
|
6
|
+
private meter;
|
|
7
|
+
private appCountMetric;
|
|
8
|
+
private instanceStartedHandler;
|
|
9
|
+
private instanceStoppedHandler;
|
|
10
|
+
private instanceStartedUn;
|
|
11
|
+
private instanceStoppedUn;
|
|
12
|
+
constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceStartedHandler: InstanceActionHandler, instanceStoppedHandler: InstanceActionHandler);
|
|
13
|
+
protected createMetric(): Promise<void>;
|
|
14
|
+
protected subscribe(): Promise<void>;
|
|
15
|
+
protected unsubscribe(): Promise<void>;
|
|
16
|
+
protected destroyMetric(): Promise<void>;
|
|
17
|
+
private handleInstanceStarted;
|
|
18
|
+
private handleInstanceStopped;
|
|
19
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationCountMetric = void 0;
|
|
4
|
+
const base_1 = require("../base/base");
|
|
5
|
+
class ApplicationCountMetric extends base_1.MetricBase {
|
|
6
|
+
constructor(settings, meter, userId, logger, instanceStartedHandler, instanceStoppedHandler) {
|
|
7
|
+
super(settings, userId, logger);
|
|
8
|
+
this.meter = meter;
|
|
9
|
+
this.instanceStartedHandler = instanceStartedHandler;
|
|
10
|
+
this.instanceStoppedHandler = instanceStoppedHandler;
|
|
11
|
+
}
|
|
12
|
+
createMetric() {
|
|
13
|
+
const name = this.name;
|
|
14
|
+
const description = this.description;
|
|
15
|
+
this.appCountMetric = this.meter.createUpDownCounter(name, { description });
|
|
16
|
+
return Promise.resolve();
|
|
17
|
+
}
|
|
18
|
+
subscribe() {
|
|
19
|
+
this.instanceStartedUn = this.instanceStartedHandler(this.handleInstanceStarted.bind(this));
|
|
20
|
+
this.instanceStoppedUn = this.instanceStoppedHandler(this.handleInstanceStopped.bind(this));
|
|
21
|
+
return Promise.resolve();
|
|
22
|
+
}
|
|
23
|
+
unsubscribe() {
|
|
24
|
+
this.instanceStartedUn();
|
|
25
|
+
this.instanceStoppedUn();
|
|
26
|
+
return Promise.resolve();
|
|
27
|
+
}
|
|
28
|
+
destroyMetric() {
|
|
29
|
+
return Promise.resolve();
|
|
30
|
+
}
|
|
31
|
+
handleInstanceStarted(e) {
|
|
32
|
+
try {
|
|
33
|
+
const data = this.getData(e.application);
|
|
34
|
+
this.appCountMetric.add(1, data);
|
|
35
|
+
this.logger.debug(`metric ${this.name} sent 1 more for app ${data.application}`);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
this.logger.error(error);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
handleInstanceStopped(e) {
|
|
42
|
+
try {
|
|
43
|
+
const data = this.getData(e.application);
|
|
44
|
+
this.appCountMetric.add(-1, data);
|
|
45
|
+
this.logger.debug(`metric ${this.name} sent 1 less for app ${data.application}`);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
this.logger.error(error);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.ApplicationCountMetric = ApplicationCountMetric;
|
|
53
|
+
//# sourceMappingURL=count.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"count.js","sourceRoot":"","sources":["../../../src/metrics/application/count.ts"],"names":[],"mappings":";;;AAGA,uCAA0C;AAE1C,MAAa,sBAAuB,SAAQ,iBAAU;IAUlD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,sBAA6C,EAC7C,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;QACrD,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,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAE5E,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;QAC5F,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;QACzB,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,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEjC,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;IAEO,qBAAqB,CAAC,CAA0B;QACpD,IAAI;YACA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAElC,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;AAxED,wDAwEC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Meter, ObservableResult } from "@opentelemetry/api";
|
|
2
|
+
import { TelemetryMetricData, TelemetryMetricSettings, PerformanceProvider } from "../types";
|
|
3
|
+
import { TelemetryLogger } from "../../types";
|
|
4
|
+
import { GaugeMetricBase } from "../base/gauge";
|
|
5
|
+
export declare class ApplicationCPUMetric extends GaugeMetricBase {
|
|
6
|
+
private perfProvider;
|
|
7
|
+
constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, perfProvider: PerformanceProvider);
|
|
8
|
+
protected subscribeCore(): Promise<void>;
|
|
9
|
+
protected observeCore(result: ObservableResult<TelemetryMetricData>): Promise<void>;
|
|
10
|
+
protected unsubscribeCore(): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
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.ApplicationCPUMetric = void 0;
|
|
13
|
+
const gauge_1 = require("../base/gauge");
|
|
14
|
+
class ApplicationCPUMetric extends gauge_1.GaugeMetricBase {
|
|
15
|
+
constructor(settings, meter, userId, logger, perfProvider) {
|
|
16
|
+
super(settings, meter, userId, logger);
|
|
17
|
+
this.perfProvider = perfProvider;
|
|
18
|
+
}
|
|
19
|
+
subscribeCore() { return Promise.resolve(); }
|
|
20
|
+
observeCore(result) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
const appsCPU = yield this.perfProvider.getAppsCPU();
|
|
23
|
+
appsCPU.forEach((info) => {
|
|
24
|
+
const data = Object.assign({ applicationInstance: info.instance }, this.getData(info.app));
|
|
25
|
+
result.observe(info.cpu, data);
|
|
26
|
+
this.logger.debug(`metric ${this.name} sent cpu ${info.cpu} for app ${data.application} and instance ${data.applicationInstance}`);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
unsubscribeCore() { return Promise.resolve(); }
|
|
31
|
+
}
|
|
32
|
+
exports.ApplicationCPUMetric = ApplicationCPUMetric;
|
|
33
|
+
//# sourceMappingURL=cpu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cpu.js","sourceRoot":"","sources":["../../../src/metrics/application/cpu.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,yCAAgD;AAEhD,MAAa,oBAAqB,SAAQ,uBAAe;IAGrD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,YAAiC;QAEjC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,MAA6C;;YAC9E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YACrD,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrB,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;gBAC/E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACvI,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AA1BD,oDA0BC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Meter, ObservableResult } from "@opentelemetry/api";
|
|
2
|
+
import { TelemetryMetricData, InstanceFocusedHandler, TelemetryMetricSettings } from "../types";
|
|
3
|
+
import { TelemetryLogger } from "../../types";
|
|
4
|
+
import { GaugeMetricBase } from "../base/gauge";
|
|
5
|
+
export declare class ApplicationDurationMetric extends GaugeMetricBase {
|
|
6
|
+
private focusedTimes;
|
|
7
|
+
private currentFocusedApp?;
|
|
8
|
+
private instanceFocusHandler;
|
|
9
|
+
private unInstanceFocusHandler;
|
|
10
|
+
constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceFocusHandler: InstanceFocusedHandler);
|
|
11
|
+
protected subscribeCore(): Promise<void>;
|
|
12
|
+
protected observeCore(result: ObservableResult<TelemetryMetricData>): Promise<void>;
|
|
13
|
+
protected unsubscribeCore(): Promise<void>;
|
|
14
|
+
protected sendMetric(focusedPeriods: number[], data: TelemetryMetricData, result: ObservableResult<TelemetryMetricData>): void;
|
|
15
|
+
private handleFocusChanged;
|
|
16
|
+
private handleFocusChangedCore;
|
|
17
|
+
private handleGotFocus;
|
|
18
|
+
private handleLostFocus;
|
|
19
|
+
private addFocusLostEventCore;
|
|
20
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationDurationMetric = void 0;
|
|
4
|
+
const validator_1 = require("../../utils/validator");
|
|
5
|
+
const gauge_1 = require("../base/gauge");
|
|
6
|
+
class ApplicationDurationMetric extends gauge_1.GaugeMetricBase {
|
|
7
|
+
constructor(settings, meter, userId, logger, instanceFocusHandler) {
|
|
8
|
+
super(settings, meter, userId, logger);
|
|
9
|
+
// application -> focused times for a given period
|
|
10
|
+
this.focusedTimes = new Map();
|
|
11
|
+
this.instanceFocusHandler = instanceFocusHandler;
|
|
12
|
+
}
|
|
13
|
+
subscribeCore() {
|
|
14
|
+
this.unInstanceFocusHandler = this.instanceFocusHandler(this.handleFocusChanged.bind(this));
|
|
15
|
+
return Promise.resolve();
|
|
16
|
+
}
|
|
17
|
+
observeCore(result) {
|
|
18
|
+
const hasFocusedApp = this.currentFocusedApp !== undefined;
|
|
19
|
+
const currentFocusedApp = hasFocusedApp ? this.currentFocusedApp.name : undefined;
|
|
20
|
+
if (hasFocusedApp) {
|
|
21
|
+
this.handleFocusChanged({ application: currentFocusedApp, focused: false });
|
|
22
|
+
}
|
|
23
|
+
this.focusedTimes.forEach((focusedPeriods, application) => {
|
|
24
|
+
const data = this.getData(application);
|
|
25
|
+
this.sendMetric(focusedPeriods, data, result);
|
|
26
|
+
focusedPeriods.splice(0);
|
|
27
|
+
});
|
|
28
|
+
if (hasFocusedApp) {
|
|
29
|
+
this.handleFocusChanged({ application: currentFocusedApp, focused: true });
|
|
30
|
+
}
|
|
31
|
+
return Promise.resolve();
|
|
32
|
+
}
|
|
33
|
+
unsubscribeCore() {
|
|
34
|
+
this.unInstanceFocusHandler();
|
|
35
|
+
return Promise.resolve();
|
|
36
|
+
}
|
|
37
|
+
sendMetric(focusedPeriods, data, result) {
|
|
38
|
+
const focusedTime = focusedPeriods.length === 0 ? 0 : focusedPeriods.reduce((prev, current) => prev + current);
|
|
39
|
+
result.observe(focusedTime, data);
|
|
40
|
+
this.logger.debug(`metric ${this.name} sent focused time ${focusedTime} for app ${data.application}`);
|
|
41
|
+
}
|
|
42
|
+
handleFocusChanged(e) {
|
|
43
|
+
try {
|
|
44
|
+
this.logger.debug(`focused changed is being invoked for metric ${this.name}`);
|
|
45
|
+
return this.handleFocusChangedCore(e);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
this.logger.error(error);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
handleFocusChangedCore(e) {
|
|
52
|
+
const focused = e.focused;
|
|
53
|
+
const application = e.application;
|
|
54
|
+
if (focused) {
|
|
55
|
+
this.handleGotFocus(application);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
try {
|
|
59
|
+
this.handleLostFocus(application);
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
this.currentFocusedApp = undefined;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
handleGotFocus(application) {
|
|
67
|
+
const now = new Date().getTime();
|
|
68
|
+
this.currentFocusedApp = { name: application, gotFocusTime: now };
|
|
69
|
+
if (!this.focusedTimes.has(this.currentFocusedApp.name)) {
|
|
70
|
+
this.focusedTimes.set(this.currentFocusedApp.name, []);
|
|
71
|
+
}
|
|
72
|
+
this.logger.debug(`got focus event has been added for metric ${this.name}`);
|
|
73
|
+
}
|
|
74
|
+
handleLostFocus(application) {
|
|
75
|
+
if (validator_1.Validator.isNullOrUndefined(this.currentFocusedApp)) {
|
|
76
|
+
throw new Error(`cannot handle focus lost for application ${application} since there is no previous got focus event`);
|
|
77
|
+
}
|
|
78
|
+
const currentFocusedApp = this.currentFocusedApp.name;
|
|
79
|
+
const gotFocusTime = this.currentFocusedApp.gotFocusTime;
|
|
80
|
+
if (application !== currentFocusedApp) {
|
|
81
|
+
throw new Error(`cannot handle focus lost for application ${application} since the previous got focus event had come from application ${currentFocusedApp}`);
|
|
82
|
+
}
|
|
83
|
+
if (!this.focusedTimes.has(application)) {
|
|
84
|
+
throw new Error(`there is no got focus event for ${application}`);
|
|
85
|
+
}
|
|
86
|
+
this.addFocusLostEventCore(currentFocusedApp, gotFocusTime);
|
|
87
|
+
this.logger.debug(`lost focus event has been added for metric ${this.name}`);
|
|
88
|
+
}
|
|
89
|
+
addFocusLostEventCore(application, gotFocusTime) {
|
|
90
|
+
const now = new Date().getTime();
|
|
91
|
+
const focusedTime = (now - gotFocusTime);
|
|
92
|
+
const focusedTimes = this.focusedTimes.get(application);
|
|
93
|
+
focusedTimes.push(focusedTime);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.ApplicationDurationMetric = ApplicationDurationMetric;
|
|
97
|
+
//# sourceMappingURL=duration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../src/metrics/application/duration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Meter } from "@opentelemetry/api";
|
|
2
|
+
import { TelemetryMetricData, InstanceFocusedHandler, TelemetryMetricSettings } from "../types";
|
|
3
|
+
import { TelemetryLogger } from "../../types";
|
|
4
|
+
import { ApplicationDurationMetric } from "./duration";
|
|
5
|
+
export declare class ApplicationDurationHistogramMetric extends ApplicationDurationMetric {
|
|
6
|
+
private appDurationMetric;
|
|
7
|
+
constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceFocusHandler: InstanceFocusedHandler);
|
|
8
|
+
protected sendMetric(focusedPeriods: number[], data: TelemetryMetricData): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationDurationHistogramMetric = void 0;
|
|
4
|
+
const duration_1 = require("./duration");
|
|
5
|
+
class ApplicationDurationHistogramMetric extends duration_1.ApplicationDurationMetric {
|
|
6
|
+
constructor(settings, meter, userId, logger, instanceFocusHandler) {
|
|
7
|
+
super(settings, meter, userId, logger, instanceFocusHandler);
|
|
8
|
+
const advice = { explicitBucketBoundaries: this.buckets };
|
|
9
|
+
this.appDurationMetric = this.meter.createHistogram(this.name, { description: this.description, unit: this.unit, advice });
|
|
10
|
+
}
|
|
11
|
+
sendMetric(focusedPeriods, data) {
|
|
12
|
+
focusedPeriods.forEach((period) => {
|
|
13
|
+
this.appDurationMetric.record(period, data);
|
|
14
|
+
this.logger.debug(`metric ${this.name} sent focused time ${period} for app ${data.application}`);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.ApplicationDurationHistogramMetric = ApplicationDurationHistogramMetric;
|
|
19
|
+
//# sourceMappingURL=durationHistogram.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"durationHistogram.js","sourceRoot":"","sources":["../../../src/metrics/application/durationHistogram.ts"],"names":[],"mappings":";;;AAGA,yCAAuD;AAEvD,MAAa,kCAAmC,SAAQ,oCAAyB;IAG7E,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,oBAA4C;QAE5C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,EAAE,wBAAwB,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1D,IAAI,CAAC,iBAAiB,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;IAC/H,CAAC;IAEkB,UAAU,CAAC,cAAwB,EAAE,IAAyB;QAC7E,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,sBAAsB,MAAM,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACrG,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAtBD,gFAsBC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Meter } from "@opentelemetry/api";
|
|
2
|
+
import { TelemetryMetricData, InstanceFocusedHandler, TelemetryMetricSettings } from "../types";
|
|
3
|
+
import { TelemetryLogger } from "../../types";
|
|
4
|
+
import { ApplicationDurationMetric } from "./duration";
|
|
5
|
+
export declare class ApplicationDurationSumMetric extends ApplicationDurationMetric {
|
|
6
|
+
private appDurationMetric;
|
|
7
|
+
constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceFocusHandler: InstanceFocusedHandler);
|
|
8
|
+
protected sendMetric(focusedPeriods: number[], data: TelemetryMetricData): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationDurationSumMetric = void 0;
|
|
4
|
+
const duration_1 = require("./duration");
|
|
5
|
+
class ApplicationDurationSumMetric extends duration_1.ApplicationDurationMetric {
|
|
6
|
+
constructor(settings, meter, userId, logger, instanceFocusHandler) {
|
|
7
|
+
super(settings, meter, userId, logger, instanceFocusHandler);
|
|
8
|
+
this.appDurationMetric = this.meter.createCounter(this.name, { description: this.description, unit: this.unit });
|
|
9
|
+
}
|
|
10
|
+
sendMetric(focusedPeriods, data) {
|
|
11
|
+
const focusedTime = focusedPeriods.length === 0 ? 0 : focusedPeriods.reduce((prev, current) => prev + current);
|
|
12
|
+
this.appDurationMetric.add(focusedTime, data);
|
|
13
|
+
this.logger.debug(`metric ${this.name} sent focused time ${focusedTime} for app ${data.application}`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.ApplicationDurationSumMetric = ApplicationDurationSumMetric;
|
|
17
|
+
//# sourceMappingURL=durationSum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"durationSum.js","sourceRoot":"","sources":["../../../src/metrics/application/durationSum.ts"],"names":[],"mappings":";;;AAGA,yCAAuD;AAEvD,MAAa,4BAA6B,SAAQ,oCAAyB;IAGvE,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,oBAA4C;QAE5C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrH,CAAC;IAEkB,UAAU,CAAC,cAAwB,EAAE,IAAyB;QAC7E,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;QAC/G,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,sBAAsB,WAAW,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1G,CAAC;CACJ;AAnBD,oEAmBC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Meter, ObservableResult } from "@opentelemetry/api";
|
|
2
|
+
import { TelemetryMetricData, TelemetryMetricSettings, PerformanceProvider } from "../types";
|
|
3
|
+
import { TelemetryLogger } from "../../types";
|
|
4
|
+
import { GaugeMetricBase } from "../base/gauge";
|
|
5
|
+
export declare class ApplicationMemoryMetric extends GaugeMetricBase {
|
|
6
|
+
private perfProvider;
|
|
7
|
+
constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, perfProvider: PerformanceProvider);
|
|
8
|
+
protected subscribeCore(): Promise<void>;
|
|
9
|
+
protected observeCore(result: ObservableResult<TelemetryMetricData>): Promise<void>;
|
|
10
|
+
protected unsubscribeCore(): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
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.ApplicationMemoryMetric = void 0;
|
|
13
|
+
const gauge_1 = require("../base/gauge");
|
|
14
|
+
class ApplicationMemoryMetric extends gauge_1.GaugeMetricBase {
|
|
15
|
+
constructor(settings, meter, userId, logger, perfProvider) {
|
|
16
|
+
super(settings, meter, userId, logger);
|
|
17
|
+
this.perfProvider = perfProvider;
|
|
18
|
+
}
|
|
19
|
+
subscribeCore() { return Promise.resolve(); }
|
|
20
|
+
observeCore(result) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
const memory = yield this.perfProvider.getAppsMemory();
|
|
23
|
+
memory.forEach((info) => {
|
|
24
|
+
var _a;
|
|
25
|
+
const data = Object.assign({ applicationInstance: info.instance }, this.getData(info.app));
|
|
26
|
+
result.observe((_a = info.memory) !== null && _a !== void 0 ? _a : 0, data);
|
|
27
|
+
this.logger.debug(`metric ${this.name} sent memory ${info.memory} for app ${data.application} and instance ${data.applicationInstance}`);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
unsubscribeCore() { return Promise.resolve(); }
|
|
32
|
+
}
|
|
33
|
+
exports.ApplicationMemoryMetric = ApplicationMemoryMetric;
|
|
34
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/metrics/application/memory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,yCAAgD;AAEhD,MAAa,uBAAwB,SAAQ,uBAAe;IAGxD,YACI,QAAiC,EACjC,KAAY,EACZ,MAAc,EACd,MAAuB,EACvB,YAAiC;QAEjC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,MAA6C;;YAC9E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YACvD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;gBACpB,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;gBAC/E,MAAM,CAAC,OAAO,CAAC,MAAA,IAAI,CAAC,MAAM,mCAAI,CAAC,EAAE,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,gBAAgB,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;YAC7I,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AA1BD,0DA0BC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Meter } from "@opentelemetry/api";
|
|
2
|
+
import { TelemetryMetricSettings, InstanceActionHandler } from "../types";
|
|
3
|
+
import { TelemetryLogger } from "../../types";
|
|
4
|
+
import { MetricBase } from "../base/base";
|
|
5
|
+
export declare class ApplicationStartedMetric extends MetricBase {
|
|
6
|
+
private meter;
|
|
7
|
+
private appStartedMetric;
|
|
8
|
+
private instanceStartedHandler;
|
|
9
|
+
private instanceStartedUn;
|
|
10
|
+
constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceStartedHandler: InstanceActionHandler);
|
|
11
|
+
protected createMetric(): Promise<void>;
|
|
12
|
+
protected subscribe(): Promise<void>;
|
|
13
|
+
protected destroyMetric(): Promise<void>;
|
|
14
|
+
protected unsubscribe(): Promise<void>;
|
|
15
|
+
private handleInstanceStarted;
|
|
16
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationStartedMetric = void 0;
|
|
4
|
+
const base_1 = require("../base/base");
|
|
5
|
+
class ApplicationStartedMetric extends base_1.MetricBase {
|
|
6
|
+
constructor(settings, meter, userId, logger, instanceStartedHandler) {
|
|
7
|
+
super(settings, userId, logger);
|
|
8
|
+
this.meter = meter;
|
|
9
|
+
this.instanceStartedHandler = instanceStartedHandler;
|
|
10
|
+
}
|
|
11
|
+
createMetric() {
|
|
12
|
+
const name = this.name;
|
|
13
|
+
const description = this.description;
|
|
14
|
+
this.appStartedMetric = this.meter.createCounter(name, { description });
|
|
15
|
+
return Promise.resolve();
|
|
16
|
+
}
|
|
17
|
+
subscribe() {
|
|
18
|
+
this.instanceStartedUn = this.instanceStartedHandler(this.handleInstanceStarted.bind(this));
|
|
19
|
+
return Promise.resolve();
|
|
20
|
+
}
|
|
21
|
+
destroyMetric() {
|
|
22
|
+
return Promise.resolve();
|
|
23
|
+
}
|
|
24
|
+
unsubscribe() {
|
|
25
|
+
this.instanceStartedUn();
|
|
26
|
+
return Promise.resolve();
|
|
27
|
+
}
|
|
28
|
+
handleInstanceStarted(e) {
|
|
29
|
+
try {
|
|
30
|
+
const data = this.getData(e.application);
|
|
31
|
+
this.appStartedMetric.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.ApplicationStartedMetric = ApplicationStartedMetric;
|
|
40
|
+
//# sourceMappingURL=started.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"started.js","sourceRoot":"","sources":["../../../src/metrics/application/started.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;QAEhC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,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,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,qBAAqB,CAAC,CAA0B;QACpD,IAAI;YACA,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;AArDD,4DAqDC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Meter, ObservableResult } from "@opentelemetry/api";
|
|
2
|
+
import { GaugeMetricBase } from "../base/gauge";
|
|
3
|
+
import { TelemetryMetricData, InstanceReadyHandler, TelemetryMetricSettings } from "../types";
|
|
4
|
+
import { TelemetryLogger } from "../../types";
|
|
5
|
+
export declare class ApplicationStartupMetric extends GaugeMetricBase {
|
|
6
|
+
private startupTimes;
|
|
7
|
+
private instanceReadyHandler;
|
|
8
|
+
private interopReadyUn;
|
|
9
|
+
constructor(settings: TelemetryMetricSettings, meter: Meter, userId: string, logger: TelemetryLogger, instanceReadyHandler: InstanceReadyHandler);
|
|
10
|
+
protected subscribeCore(): Promise<void>;
|
|
11
|
+
protected observeCore(result: ObservableResult<TelemetryMetricData>): Promise<void>;
|
|
12
|
+
protected unsubscribeCore(): Promise<void>;
|
|
13
|
+
protected sendMetric(startupTimes: number[], data: TelemetryMetricData, result: ObservableResult<TelemetryMetricData>): void;
|
|
14
|
+
private handleInteropReady;
|
|
15
|
+
private addStartupTime;
|
|
16
|
+
}
|