@interopio/insights-metrics 0.0.171 → 0.0.172
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/constants.d.ts +27 -0
- package/dist/constants.js +31 -0
- package/dist/constants.js.map +1 -0
- package/dist/factory/builder.d.ts +34 -0
- package/dist/factory/builder.js +290 -0
- package/dist/factory/builder.js.map +1 -0
- package/dist/factory/factory.d.ts +10 -0
- package/dist/factory/factory.js +71 -0
- package/dist/factory/factory.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +41 -6
- package/dist/index.js.map +1 -1
- package/dist/manager.d.ts +26 -0
- package/dist/manager.js +164 -0
- package/dist/manager.js.map +1 -0
- package/dist/meter/lazyProvider.d.ts +15 -0
- package/dist/meter/lazyProvider.js +36 -0
- package/dist/meter/lazyProvider.js.map +1 -0
- package/dist/meter/providerFactory.d.ts +6 -0
- package/dist/meter/providerFactory.js +38 -0
- package/dist/meter/providerFactory.js.map +1 -0
- package/dist/metrics/application/count.d.ts +19 -0
- package/dist/metrics/application/count.js +69 -0
- package/dist/metrics/application/count.js.map +1 -0
- package/dist/metrics/application/cpu.d.ts +10 -0
- package/dist/metrics/application/cpu.js +48 -0
- package/dist/metrics/application/cpu.js.map +1 -0
- package/dist/metrics/application/crash.d.ts +16 -0
- package/dist/metrics/application/crash.js +49 -0
- package/dist/metrics/application/crash.js.map +1 -0
- package/dist/metrics/application/duration.d.ts +25 -0
- package/dist/metrics/application/duration.js +105 -0
- package/dist/metrics/application/duration.js.map +1 -0
- package/dist/metrics/application/durationSoft.d.ts +4 -0
- package/dist/metrics/application/durationSoft.js +34 -0
- package/dist/metrics/application/durationSoft.js.map +1 -0
- package/dist/metrics/application/error.d.ts +16 -0
- package/dist/metrics/application/error.js +49 -0
- package/dist/metrics/application/error.js.map +1 -0
- package/dist/metrics/application/memory.d.ts +11 -0
- package/dist/metrics/application/memory.js +50 -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 +49 -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 +50 -0
- package/dist/metrics/application/startup.js.map +1 -0
- package/dist/metrics/application/stopped.d.ts +16 -0
- package/dist/metrics/application/stopped.js +49 -0
- package/dist/metrics/application/stopped.js.map +1 -0
- package/dist/metrics/base/base.d.ts +29 -0
- package/dist/metrics/base/base.js +198 -0
- package/dist/metrics/base/base.js.map +1 -0
- package/dist/metrics/base/observable.d.ts +19 -0
- package/dist/metrics/base/observable.js +83 -0
- package/dist/metrics/base/observable.js.map +1 -0
- package/dist/metrics/base/observableGauge.d.ts +6 -0
- package/dist/metrics/base/observableGauge.js +12 -0
- package/dist/metrics/base/observableGauge.js.map +1 -0
- package/dist/metrics/base/zeroOutClosedAppObservableGaugeMetricBase.d.ts +12 -0
- package/dist/metrics/base/zeroOutClosedAppObservableGaugeMetricBase.js +39 -0
- package/dist/metrics/base/zeroOutClosedAppObservableGaugeMetricBase.js.map +1 -0
- package/dist/metrics/custom/customCounter.d.ts +10 -0
- package/dist/metrics/custom/customCounter.js +24 -0
- package/dist/metrics/custom/customCounter.js.map +1 -0
- package/dist/metrics/custom/customGauge.d.ts +10 -0
- package/dist/metrics/custom/customGauge.js +24 -0
- package/dist/metrics/custom/customGauge.js.map +1 -0
- package/dist/metrics/custom/customHistogram.d.ts +10 -0
- package/dist/metrics/custom/customHistogram.js +24 -0
- package/dist/metrics/custom/customHistogram.js.map +1 -0
- package/dist/metrics/custom/customObservableCounter.d.ts +6 -0
- package/dist/metrics/custom/customObservableCounter.js +13 -0
- package/dist/metrics/custom/customObservableCounter.js.map +1 -0
- package/dist/metrics/custom/customObservableGauge.d.ts +6 -0
- package/dist/metrics/custom/customObservableGauge.js +13 -0
- package/dist/metrics/custom/customObservableGauge.js.map +1 -0
- package/dist/metrics/custom/customObservableUpDownCounter.d.ts +6 -0
- package/dist/metrics/custom/customObservableUpDownCounter.js +13 -0
- package/dist/metrics/custom/customObservableUpDownCounter.js.map +1 -0
- package/dist/metrics/custom/customUpDownCounter.d.ts +10 -0
- package/dist/metrics/custom/customUpDownCounter.js +24 -0
- package/dist/metrics/custom/customUpDownCounter.js.map +1 -0
- package/dist/metrics/layout/startup.d.ts +15 -0
- package/dist/metrics/layout/startup.js +47 -0
- package/dist/metrics/layout/startup.js.map +1 -0
- package/dist/metrics/platform/error.d.ts +15 -0
- package/dist/metrics/platform/error.js +47 -0
- package/dist/metrics/platform/error.js.map +1 -0
- package/dist/metrics/platform/startup.d.ts +16 -0
- package/dist/metrics/platform/startup.js +63 -0
- package/dist/metrics/platform/startup.js.map +1 -0
- package/dist/metrics/system/cpu.d.ts +10 -0
- package/dist/metrics/system/cpu.js +50 -0
- package/dist/metrics/system/cpu.js.map +1 -0
- package/dist/metrics/system/memory.d.ts +10 -0
- package/dist/metrics/system/memory.js +51 -0
- package/dist/metrics/system/memory.js.map +1 -0
- package/dist/metrics/workspace/count.d.ts +23 -0
- package/dist/metrics/workspace/count.js +94 -0
- package/dist/metrics/workspace/count.js.map +1 -0
- package/dist/metrics/workspace/selected.d.ts +14 -0
- package/dist/metrics/workspace/selected.js +47 -0
- package/dist/metrics/workspace/selected.js.map +1 -0
- package/dist/metrics/workspace/started.d.ts +17 -0
- package/dist/metrics/workspace/started.js +49 -0
- package/dist/metrics/workspace/started.js.map +1 -0
- package/dist/metrics/workspace/startupLegacy.d.ts +8 -0
- package/dist/metrics/workspace/startupLegacy.js +20 -0
- package/dist/metrics/workspace/startupLegacy.js.map +1 -0
- package/dist/metrics/workspace/stopped.d.ts +15 -0
- package/dist/metrics/workspace/stopped.js +46 -0
- package/dist/metrics/workspace/stopped.js.map +1 -0
- package/dist/metrics/workspace/timedGauge.d.ts +14 -0
- package/dist/metrics/workspace/timedGauge.js +54 -0
- package/dist/metrics/workspace/timedGauge.js.map +1 -0
- package/dist/settings/builder.d.ts +26 -0
- package/dist/settings/builder.js +142 -0
- package/dist/settings/builder.js.map +1 -0
- package/dist/settings/default.d.ts +40 -0
- package/dist/settings/default.js +178 -0
- package/dist/settings/default.js.map +1 -0
- package/dist/validation/builder.d.ts +4 -0
- package/dist/validation/builder.js +12 -0
- package/dist/validation/builder.js.map +1 -0
- package/dist/validation/container.d.ts +4 -0
- package/dist/validation/container.js +14 -0
- package/dist/validation/container.js.map +1 -0
- package/dist/validation/metrics/application/count.d.ts +7 -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 +6 -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/error.d.ts +6 -0
- package/dist/validation/metrics/application/error.js +16 -0
- package/dist/validation/metrics/application/error.js.map +1 -0
- package/dist/validation/metrics/application/started.d.ts +6 -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/startupHistogram.d.ts +6 -0
- package/dist/validation/metrics/application/startupHistogram.js +18 -0
- package/dist/validation/metrics/application/startupHistogram.js.map +1 -0
- package/dist/validation/metrics/application/stopped.d.ts +6 -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 +22 -0
- package/dist/validation/metrics/base/base.js.map +1 -0
- package/dist/validation/metrics/base/gauge.d.ts +5 -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 +2 -0
- package/dist/validation/metrics/builder.js +7 -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 +23 -0
- package/dist/validation/metrics/factoryBuilder.js.map +1 -0
- package/dist/validation/metrics/layout/startupHistogram.d.ts +6 -0
- package/dist/validation/metrics/layout/startupHistogram.js +18 -0
- package/dist/validation/metrics/layout/startupHistogram.js.map +1 -0
- package/dist/validation/metrics/manager.d.ts +4 -0
- package/dist/validation/metrics/manager.js +15 -0
- package/dist/validation/metrics/manager.js.map +1 -0
- package/dist/validation/metrics/meterFactory.d.ts +2 -0
- package/dist/validation/metrics/meterFactory.js +8 -0
- package/dist/validation/metrics/meterFactory.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/crash.d.ts +6 -0
- package/dist/validation/metrics/platform/crash.js +16 -0
- package/dist/validation/metrics/platform/crash.js.map +1 -0
- package/dist/validation/metrics/platform/error.d.ts +6 -0
- package/dist/validation/metrics/platform/error.js +15 -0
- package/dist/validation/metrics/platform/error.js.map +1 -0
- package/dist/validation/metrics/platform/startup.d.ts +6 -0
- package/dist/validation/metrics/platform/startup.js +18 -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 +26 -0
- package/dist/validation/metrics/settingsBuilder.js.map +1 -0
- package/dist/validation/metrics/workspace/count.d.ts +8 -0
- package/dist/validation/metrics/workspace/count.js +25 -0
- package/dist/validation/metrics/workspace/count.js.map +1 -0
- package/dist/validation/metrics/workspace/startedOrStoppedMetric.d.ts +8 -0
- package/dist/validation/metrics/workspace/startedOrStoppedMetric.js +19 -0
- package/dist/validation/metrics/workspace/startedOrStoppedMetric.js.map +1 -0
- package/dist/validation/validator.d.ts +4 -0
- package/dist/validation/validator.js +15 -0
- package/dist/validation/validator.js.map +1 -0
- package/package.json +2 -1
package/dist/manager.js
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
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.MetricsManager = void 0;
|
|
13
|
+
const manager_1 = require("./validation/metrics/manager");
|
|
14
|
+
const constants_1 = require("./constants");
|
|
15
|
+
const otel_1 = require("@interopio/otel");
|
|
16
|
+
class MetricsManager {
|
|
17
|
+
constructor(otelSettings, settings, metricsFactory, meterProvider, logger) {
|
|
18
|
+
this.otelSettings = otelSettings;
|
|
19
|
+
this.settings = settings;
|
|
20
|
+
this.metricsFactory = metricsFactory;
|
|
21
|
+
this.meterProvider = meterProvider;
|
|
22
|
+
this.logger = logger;
|
|
23
|
+
this.metrics = new Map();
|
|
24
|
+
this.started = false;
|
|
25
|
+
if ((otelSettings === null || otelSettings === void 0 ? void 0 : otelSettings.logSettingsOnStartup) !== false) {
|
|
26
|
+
logger === null || logger === void 0 ? void 0 : logger.info(`Starting MetricsManager with settings ${(0, otel_1.safeStringify)(settings)}`);
|
|
27
|
+
}
|
|
28
|
+
const validator = new manager_1.MetricsManagerValidator();
|
|
29
|
+
validator.validate(this);
|
|
30
|
+
}
|
|
31
|
+
get(name) {
|
|
32
|
+
const metric = this.getOrCreateMetric(name);
|
|
33
|
+
return metric;
|
|
34
|
+
}
|
|
35
|
+
getFromSettings(settings) {
|
|
36
|
+
const metric = this.getOrCreateMetricFromSettings(settings);
|
|
37
|
+
return metric;
|
|
38
|
+
}
|
|
39
|
+
getObservable(name, observeCallback, subscribeCallback, unsubscribeCallback) {
|
|
40
|
+
const metric = this.getOrCreateMetric(name, observeCallback, subscribeCallback, unsubscribeCallback);
|
|
41
|
+
return metric;
|
|
42
|
+
}
|
|
43
|
+
getObservableFromSettings(settings, observeCallback, subscribeCallback, unsubscribeCallback) {
|
|
44
|
+
const metric = this.getOrCreateMetricFromSettings(settings, observeCallback, subscribeCallback, unsubscribeCallback);
|
|
45
|
+
return metric;
|
|
46
|
+
}
|
|
47
|
+
start() {
|
|
48
|
+
var _a;
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
try {
|
|
51
|
+
this.createEnabledMetrics((_a = this.settings.metrics) !== null && _a !== void 0 ? _a : []);
|
|
52
|
+
for (const metricKvp of this.metrics) {
|
|
53
|
+
const metric = metricKvp[1];
|
|
54
|
+
yield this.startMetric(metric);
|
|
55
|
+
}
|
|
56
|
+
this.started = true;
|
|
57
|
+
this.logger.debug("metrics manager has been started");
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
const message = "error while starting metrics manager";
|
|
61
|
+
this.logger.warn(message, error);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
stop() {
|
|
66
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
try {
|
|
68
|
+
for (const metricKvp of this.metrics) {
|
|
69
|
+
const metric = metricKvp[1];
|
|
70
|
+
yield this.stopMetric(metric);
|
|
71
|
+
}
|
|
72
|
+
yield this.meterProvider.forceFlush();
|
|
73
|
+
this.started = false;
|
|
74
|
+
this.logger.debug("metrics manager has been stopped");
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
const message = "error while stopping metrics manager";
|
|
78
|
+
this.logger.warn(message, error);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
waitForFinalExport(timeoutMs) {
|
|
83
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
84
|
+
const now = new Date();
|
|
85
|
+
this.meterProvider.metricReader.collect({ timeoutMillis: timeoutMs });
|
|
86
|
+
const remainingMs = timeoutMs ? timeoutMs - (new Date().getTime() - now.getTime()) : undefined;
|
|
87
|
+
this.meterProvider.metricReader.forceFlush({ timeoutMillis: remainingMs });
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
createEnabledMetrics(metrics) {
|
|
91
|
+
const notCreateYet = metrics.filter((m) => { var _a; return !this.metrics.has((_a = m.name) !== null && _a !== void 0 ? _a : m.type); });
|
|
92
|
+
const enabled = notCreateYet.filter((m) => m.enabled);
|
|
93
|
+
enabled.forEach((metricSettings) => this.createMetric(metricSettings));
|
|
94
|
+
}
|
|
95
|
+
getOrCreateMetric(name, observeCallback, subscribeCallback, unsubscribeCallback) {
|
|
96
|
+
var _a;
|
|
97
|
+
const hasMetric = this.metrics.has(name);
|
|
98
|
+
if (hasMetric) {
|
|
99
|
+
return this.metrics.get(name);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
let metric;
|
|
103
|
+
const metricSettings = (_a = this.settings.metrics) === null || _a === void 0 ? void 0 : _a.find((m) => m.name === name);
|
|
104
|
+
if (metricSettings) {
|
|
105
|
+
metric = this.createMetric(metricSettings, observeCallback, subscribeCallback, unsubscribeCallback);
|
|
106
|
+
}
|
|
107
|
+
return metric;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
getOrCreateMetricFromSettings(settings, observeCallback, subscribeCallback, unsubscribeCallback) {
|
|
111
|
+
var _a;
|
|
112
|
+
if (!settings.name) {
|
|
113
|
+
throw new Error("settings.name not defined");
|
|
114
|
+
}
|
|
115
|
+
const hasMetric = this.metrics.has(settings.name);
|
|
116
|
+
if (hasMetric) {
|
|
117
|
+
return this.metrics.get(settings.name);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
return this.createMetric(Object.assign(Object.assign({}, settings), { enabled: (_a = settings.enabled) !== null && _a !== void 0 ? _a : true }), observeCallback, subscribeCallback, unsubscribeCallback);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
createMetric(settings, observeCallback, subscribeCallback, unsubscribeCallback) {
|
|
124
|
+
var _a;
|
|
125
|
+
try {
|
|
126
|
+
const providedSettings = settings.additionalAttributes;
|
|
127
|
+
settings = Object.assign(Object.assign({}, settings), { description: settings.description || constants_1.Defaults.DEFAULT_METRIC_DESCRIPTION, platformVersion: settings.platformVersion || this.otelSettings.platformVersion || "unknown", user: settings.user || this.otelSettings.userId || constants_1.Defaults.DEFAULT_USER, additionalAttributes: () => (Object.assign(Object.assign(Object.assign({}, otel_1.Container.errorless(this.otelSettings.additionalAttributes)), otel_1.Container.errorless(this.settings.additionalAttributes)), otel_1.Container.errorless(providedSettings))) });
|
|
128
|
+
const metric = this.metricsFactory.create(settings, this.settings, observeCallback, subscribeCallback, unsubscribeCallback);
|
|
129
|
+
if (metric) {
|
|
130
|
+
this.metrics.set((_a = settings.name) !== null && _a !== void 0 ? _a : settings.type, metric);
|
|
131
|
+
}
|
|
132
|
+
return metric;
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
const message = `error while creating metric from type: ${settings.type}`;
|
|
136
|
+
this.logger.warn(message, error);
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
startMetric(metric) {
|
|
141
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
142
|
+
try {
|
|
143
|
+
yield metric.start();
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
const message = `error while starting metric from type: ${metric.settings.type}`;
|
|
147
|
+
this.logger.warn(message, error);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
stopMetric(metric) {
|
|
152
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
153
|
+
try {
|
|
154
|
+
yield metric.stop();
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
const message = `error while stopping metric from type: ${metric.settings.type}`;
|
|
158
|
+
this.logger.warn(message, error);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.MetricsManager = MetricsManager;
|
|
164
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Meter } from "@opentelemetry/api";
|
|
2
|
+
import { type MetricReader } from "@opentelemetry/sdk-metrics";
|
|
3
|
+
import { IOInsights } from "@interopio/otel/insights";
|
|
4
|
+
export declare class LazyMetricsMeterProvider {
|
|
5
|
+
private meterProviderCreateFunc;
|
|
6
|
+
private serviceName;
|
|
7
|
+
private meterProvider;
|
|
8
|
+
private _metricReader;
|
|
9
|
+
get metricReader(): MetricReader;
|
|
10
|
+
constructor(meterProviderCreateFunc: IOInsights.MetricsMeterProviderCreateFunc, serviceName: string);
|
|
11
|
+
getMeter(): Meter;
|
|
12
|
+
forceFlush(): Promise<void>;
|
|
13
|
+
getMeterProvider(): IOInsights.MetricsMeterProvider;
|
|
14
|
+
private buildMeterProvider;
|
|
15
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LazyMetricsMeterProvider = void 0;
|
|
4
|
+
class LazyMetricsMeterProvider {
|
|
5
|
+
get metricReader() {
|
|
6
|
+
if (!this._metricReader) {
|
|
7
|
+
this.buildMeterProvider();
|
|
8
|
+
}
|
|
9
|
+
return this._metricReader;
|
|
10
|
+
}
|
|
11
|
+
constructor(meterProviderCreateFunc, serviceName) {
|
|
12
|
+
this.meterProviderCreateFunc = meterProviderCreateFunc;
|
|
13
|
+
this.serviceName = serviceName;
|
|
14
|
+
}
|
|
15
|
+
getMeter() {
|
|
16
|
+
const provider = this.getMeterProvider();
|
|
17
|
+
return provider.getMeter(this.serviceName);
|
|
18
|
+
}
|
|
19
|
+
forceFlush() {
|
|
20
|
+
const provider = this.getMeterProvider();
|
|
21
|
+
return provider.forceFlush();
|
|
22
|
+
}
|
|
23
|
+
getMeterProvider() {
|
|
24
|
+
if (!this.meterProvider) {
|
|
25
|
+
this.buildMeterProvider();
|
|
26
|
+
}
|
|
27
|
+
return this.meterProvider;
|
|
28
|
+
}
|
|
29
|
+
buildMeterProvider() {
|
|
30
|
+
const result = this.meterProviderCreateFunc();
|
|
31
|
+
this.meterProvider = result.meterProvider;
|
|
32
|
+
this._metricReader = result.metricReader;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.LazyMetricsMeterProvider = LazyMetricsMeterProvider;
|
|
36
|
+
//# sourceMappingURL=lazyProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazyProvider.js","sourceRoot":"","sources":["../../src/meter/lazyProvider.ts"],"names":[],"mappings":";;;AAGA,MAAa,wBAAwB;IAIjC,IAAW,YAAY;QACnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,YACY,uBAAkE,EAClE,WAAmB;QADnB,4BAAuB,GAAvB,uBAAuB,CAA2C;QAClE,gBAAW,GAAX,WAAW,CAAQ;IAAI,CAAC;IAE7B,QAAQ;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IAEM,UAAU;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAEM,gBAAgB;QACnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAEO,kBAAkB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;IAC7C,CAAC;CACJ;AArCD,4DAqCC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IOInsights } from "@interopio/otel/insights";
|
|
2
|
+
import { Logger } from "@interopio/otel";
|
|
3
|
+
export declare class MetricsMeterProviderFactory {
|
|
4
|
+
create(settings: IOInsights.MetricsSettings, otelSettings: IOInsights.Settings, logger: Logger): ReturnType<IOInsights.MetricsMeterProviderCreateFunc>;
|
|
5
|
+
private createMeterProvider;
|
|
6
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MetricsMeterProviderFactory = void 0;
|
|
4
|
+
const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
|
|
5
|
+
const otel_1 = require("@interopio/otel");
|
|
6
|
+
const exporter_metrics_otlp_http_1 = require("@opentelemetry/exporter-metrics-otlp-http");
|
|
7
|
+
class MetricsMeterProviderFactory {
|
|
8
|
+
create(settings, otelSettings, logger) {
|
|
9
|
+
var _a;
|
|
10
|
+
// const validator = new MetricsMeterFactoryValidator();
|
|
11
|
+
// validator.validate(meterSettings);
|
|
12
|
+
let metricExporter;
|
|
13
|
+
if (settings.metricExporter) {
|
|
14
|
+
metricExporter = settings.metricExporter;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
metricExporter = new exporter_metrics_otlp_http_1.OTLPMetricExporter(Object.assign(Object.assign({ url: settings.url, concurrencyLimit: settings.concurrencyLimit, timeoutMillis: settings.timeoutMillis, compression: settings.compression, keepAlive: settings.keepAlive }, settings.metricExporterOptions), { headers: Object.assign(Object.assign(Object.assign({}, otel_1.Container.errorless(otelSettings.headers)), otel_1.Container.errorless((_a = settings.metricExporterOptions) === null || _a === void 0 ? void 0 : _a.headers)), otel_1.Container.errorless(settings.headers)) }));
|
|
18
|
+
}
|
|
19
|
+
const metricReader = new sdk_metrics_1.PeriodicExportingMetricReader(Object.assign(Object.assign({}, settings.metricReaderOptions), { exporter: metricExporter, exportIntervalMillis: settings.publishInterval }));
|
|
20
|
+
const meterProvider = this.createMeterProvider(settings, otelSettings, metricReader, logger);
|
|
21
|
+
return { meterProvider, metricReader };
|
|
22
|
+
}
|
|
23
|
+
createMeterProvider(settings, otelSettings, metricReader, logger) {
|
|
24
|
+
var _a;
|
|
25
|
+
const basePlugin = (0, otel_1.loadInsightsPlugin)("base", logger);
|
|
26
|
+
if (!basePlugin) {
|
|
27
|
+
logger.error("Unable to create meter provider without loaded @interopio/insights-base package");
|
|
28
|
+
}
|
|
29
|
+
const meterProvider = new sdk_metrics_1.MeterProvider({
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
|
+
resource: basePlugin === null || basePlugin === void 0 ? void 0 : basePlugin.resourceFromAttributes((_a = otel_1.Container.errorless(settings.additionalResourceAttributes)) !== null && _a !== void 0 ? _a : {}),
|
|
32
|
+
readers: [metricReader]
|
|
33
|
+
});
|
|
34
|
+
return meterProvider;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.MetricsMeterProviderFactory = MetricsMeterProviderFactory;
|
|
38
|
+
//# sourceMappingURL=providerFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerFactory.js","sourceRoot":"","sources":["../../src/meter/providerFactory.ts"],"names":[],"mappings":";;;AAAA,4DAAsI;AAGtI,0CAAuH;AACvH,0FAA+E;AAE/E,MAAa,2BAA2B;IAC7B,MAAM,CACT,QAAoC,EACpC,YAAiC,EACjC,MAAc;;QACd,wDAAwD;QACxD,qCAAqC;QACrC,IAAI,cAAkC,CAAC;QAEvC,IAAI,QAAQ,CAAC,cAAc,EAAE;YACxB,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;SAC7C;aAAM;YACH,cAAc,GAAG,IAAI,+CAAkB,+BACnC,GAAG,EAAE,QAAQ,CAAC,GAAG,EACjB,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,EAC3C,aAAa,EAAE,QAAQ,CAAC,aAAa,EACrC,WAAW,EAAE,QAAQ,CAAC,WAAW,EACjC,SAAS,EAAE,QAAQ,CAAC,SAAS,IAC1B,QAAQ,CAAC,qBAAqB,KACjC,OAAO,gDACA,gBAAS,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,GACzC,gBAAS,CAAC,SAAS,CAAC,MAAA,QAAQ,CAAC,qBAAqB,0CAAE,OAAO,CAAC,GAC5D,gBAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAE9C,CAAC;SACN;QAED,MAAM,YAAY,GAAG,IAAI,2CAA6B,iCAC/C,QAAQ,CAAC,mBAAmB,KAC/B,QAAQ,EAAE,cAAc,EACxB,oBAAoB,EAAE,QAAQ,CAAC,eAAe,IAChD,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAC1C,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,MAAM,CAAC,CAAC;QAEZ,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;IAC3C,CAAC;IAEO,mBAAmB,CACvB,QAAoC,EACpC,YAAiC,EACjC,YAA0B,EAC1B,MAAc;;QACd,MAAM,UAAU,GAAG,IAAA,yBAAkB,EAAuB,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5E,IAAI,CAAC,UAAU,EAAE;YACb,MAAM,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;SACnG;QACD,MAAM,aAAa,GAAG,IAAI,2BAAa,CAAC;YACpC,8DAA8D;YAC9D,QAAQ,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,sBAAsB,CAAC,MAAA,gBAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,4BAA4B,CAAC,mCAAI,EAAS,CAAC;YACrH,OAAO,EAAE,CAAC,YAAY,CAAC;SAC1B,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACzB,CAAC;CACJ;AA3DD,kEA2DC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Meter, type UpDownCounter } from "@opentelemetry/api";
|
|
2
|
+
import { MetricBase } from "../base/base";
|
|
3
|
+
import { IOInsights } from "@interopio/otel/insights";
|
|
4
|
+
export declare class ApplicationCountMetric extends MetricBase {
|
|
5
|
+
meter: Meter;
|
|
6
|
+
instanceStartedHandler: IOInsights.InstanceActionHandler;
|
|
7
|
+
instanceStoppedHandler: IOInsights.InstanceActionHandler;
|
|
8
|
+
private validator;
|
|
9
|
+
private appCountMetric;
|
|
10
|
+
private instanceStartedUn?;
|
|
11
|
+
private instanceStoppedUn?;
|
|
12
|
+
constructor(settings: IOInsights.MetricSettings, meter: Meter, logger: IOInsights.Logger, generalSettings: IOInsights.MetricsSettings, instanceStartedHandler: IOInsights.InstanceActionHandler, instanceStoppedHandler: IOInsights.InstanceActionHandler, defaultFilters?: IOInsights.MetricDefaultFilter[]);
|
|
13
|
+
protected createMetricCore(name: string, baseSettings: any): UpDownCounter<IOInsights.ApplicationMetricData>;
|
|
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,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationCountMetric = void 0;
|
|
4
|
+
const base_1 = require("../base/base");
|
|
5
|
+
const count_1 = require("../../validation/metrics/application/count");
|
|
6
|
+
const otel_1 = require("@interopio/otel");
|
|
7
|
+
class ApplicationCountMetric extends base_1.MetricBase {
|
|
8
|
+
constructor(settings, meter, logger, generalSettings, instanceStartedHandler, instanceStoppedHandler, defaultFilters) {
|
|
9
|
+
super(settings, meter, logger, generalSettings, defaultFilters);
|
|
10
|
+
this.meter = meter;
|
|
11
|
+
this.instanceStartedHandler = instanceStartedHandler;
|
|
12
|
+
this.instanceStoppedHandler = instanceStoppedHandler;
|
|
13
|
+
this.validator = new count_1.ApplicationCountMetricValidator();
|
|
14
|
+
this.validator.validate(this);
|
|
15
|
+
}
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17
|
+
createMetricCore(name, baseSettings) {
|
|
18
|
+
return this.appCountMetric = this.meter.createUpDownCounter(name, baseSettings);
|
|
19
|
+
}
|
|
20
|
+
subscribe() {
|
|
21
|
+
this.instanceStartedUn = otel_1.Container.errorless(() => this.instanceStartedHandler(this.handleInstanceStarted.bind(this)));
|
|
22
|
+
this.instanceStoppedUn = otel_1.Container.errorless(() => this.instanceStoppedHandler(this.handleInstanceStopped.bind(this)));
|
|
23
|
+
return Promise.resolve();
|
|
24
|
+
}
|
|
25
|
+
unsubscribe() {
|
|
26
|
+
otel_1.Container.errorless(() => this.instanceStartedUn);
|
|
27
|
+
otel_1.Container.errorless(() => this.instanceStoppedUn);
|
|
28
|
+
return Promise.resolve();
|
|
29
|
+
}
|
|
30
|
+
destroyMetric() {
|
|
31
|
+
return Promise.resolve();
|
|
32
|
+
}
|
|
33
|
+
handleInstanceStarted(args) {
|
|
34
|
+
var _a;
|
|
35
|
+
try {
|
|
36
|
+
this.validator.validateInstanceStarted(args);
|
|
37
|
+
this.logger.debug(`instance started for application ${args.application} and metric ${this.settings.name} is being invoked`);
|
|
38
|
+
const data = this.getApplicationData(args.application);
|
|
39
|
+
if (((_a = this.getFilter(data)) === null || _a === void 0 ? void 0 : _a.enabled) === false) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this.appCountMetric.add(1, this.prePublish(data));
|
|
43
|
+
this.logger.debug(`metric ${this.settings.name} sent 1 more for app ${data.application}`);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
const message = `error while executing handleInstanceStarted for metric from type: ${this.settings.type}`;
|
|
47
|
+
this.logger.warn(message, error);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
handleInstanceStopped(args) {
|
|
51
|
+
var _a;
|
|
52
|
+
try {
|
|
53
|
+
this.validator.validateInstanceStopped(args);
|
|
54
|
+
this.logger.debug(`instance stopped for application ${args.application} and metric ${this.settings.name} is being invoked`);
|
|
55
|
+
const data = this.getApplicationData(args.application);
|
|
56
|
+
if (((_a = this.getFilter(data)) === null || _a === void 0 ? void 0 : _a.enabled) === false) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.appCountMetric.add(-1, this.prePublish(data));
|
|
60
|
+
this.logger.debug(`metric ${this.settings.name} sent 1 less for app ${data.application}`);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
const message = `error while executing handleInstanceStopped for metric from type: ${this.settings.type}`;
|
|
64
|
+
this.logger.warn(message, error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.ApplicationCountMetric = ApplicationCountMetric;
|
|
69
|
+
//# sourceMappingURL=count.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"count.js","sourceRoot":"","sources":["../../../src/metrics/application/count.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAC1C,sEAA6F;AAC7F,0CAA4C;AAE5C,MAAa,sBAAuB,SAAQ,iBAAU;IAMlD,YACI,QAAmC,EAC5B,KAAY,EACnB,MAAyB,EACzB,eAA2C,EACpC,sBAAwD,EACxD,sBAAwD,EAC/D,cAAiD;QAEjD,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;QAPzD,UAAK,GAAL,KAAK,CAAO;QAGZ,2BAAsB,GAAtB,sBAAsB,CAAkC;QACxD,2BAAsB,GAAtB,sBAAsB,CAAkC;QAK/D,IAAI,CAAC,SAAS,GAAG,IAAI,uCAA+B,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,8DAA8D;IAC3C,gBAAgB,CAAC,IAAY,EAAE,YAAiB;QAC/D,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACpF,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,iBAAiB,GAAG,gBAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvH,IAAI,CAAC,iBAAiB,GAAG,gBAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEvH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,gBAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAClD,gBAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAElD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,qBAAqB,CAAC,IAA0C;;QACpE,IAAI;YACA,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAE7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,WAAW,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAE5H,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvD,IAAI,CAAA,MAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0CAAE,OAAO,MAAK,KAAK,EAAE;gBACzC,OAAO;aACV;YACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAQ,CAAC,CAAC;YAEzD,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,MAAM,OAAO,GAAG,qEAAqE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACpC;IACL,CAAC;IAEO,qBAAqB,CAAC,IAA0C;;QACpE,IAAI;YACA,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAE7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,WAAW,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAE5H,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvD,IAAI,CAAA,MAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0CAAE,OAAO,MAAK,KAAK,EAAE;gBACzC,OAAO;aACV;YACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAQ,CAAC,CAAC;YAE1D,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,MAAM,OAAO,GAAG,qEAAqE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACpC;IACL,CAAC;CACJ;AAjFD,wDAiFC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type Meter, type ObservableResult } from "@opentelemetry/api";
|
|
2
|
+
import { ZeroOutClosedAppObservableGaugeMetricBase } from "../base/zeroOutClosedAppObservableGaugeMetricBase";
|
|
3
|
+
import { IOInsights } from "@interopio/otel/insights";
|
|
4
|
+
export declare class ApplicationCPUMetric extends ZeroOutClosedAppObservableGaugeMetricBase {
|
|
5
|
+
perfProvider: IOInsights.PerformanceProvider;
|
|
6
|
+
constructor(settings: IOInsights.MetricSettings, meter: Meter, logger: IOInsights.Logger, generalSettings: IOInsights.MetricsSettings, perfProvider: IOInsights.PerformanceProvider, defaultFilters?: IOInsights.MetricDefaultFilter[]);
|
|
7
|
+
protected subscribeCore(): Promise<void>;
|
|
8
|
+
protected observeCoreCore(result: ObservableResult<IOInsights.ApplicationMetricData>): Promise<IOInsights.AppCPU[]>;
|
|
9
|
+
protected unsubscribeCore(): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
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 zeroOutClosedAppObservableGaugeMetricBase_1 = require("../base/zeroOutClosedAppObservableGaugeMetricBase");
|
|
14
|
+
const otel_1 = require("@interopio/otel");
|
|
15
|
+
const perf_1 = require("../../validation/metrics/perf");
|
|
16
|
+
const validator_1 = require("../../validation/validator");
|
|
17
|
+
class ApplicationCPUMetric extends zeroOutClosedAppObservableGaugeMetricBase_1.ZeroOutClosedAppObservableGaugeMetricBase {
|
|
18
|
+
constructor(settings, meter, logger, generalSettings, perfProvider, defaultFilters) {
|
|
19
|
+
super(settings, meter, logger, generalSettings, defaultFilters);
|
|
20
|
+
this.perfProvider = perfProvider;
|
|
21
|
+
}
|
|
22
|
+
subscribeCore() { return Promise.resolve(); }
|
|
23
|
+
observeCoreCore(result) {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
const performanceValidator = new perf_1.PerformanceProviderValidator();
|
|
26
|
+
performanceValidator.validate(this.perfProvider);
|
|
27
|
+
const appsCPU = yield otel_1.Container.errorlessAsync(() => this.perfProvider.getAppsCPU());
|
|
28
|
+
if (!validator_1.Validator.isNullOrUndefined(appsCPU)) {
|
|
29
|
+
performanceValidator.validateAppsCPU(appsCPU);
|
|
30
|
+
appsCPU.forEach((info) => {
|
|
31
|
+
var _a;
|
|
32
|
+
// vnikolov todo: deal with the instance attribute
|
|
33
|
+
const data = Object.assign({ applicationInstance: info.instance }, this.getApplicationData(info.app));
|
|
34
|
+
if (((_a = this.getFilter(data)) === null || _a === void 0 ? void 0 : _a.enabled) === false) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
result.observe(info.cpu, this.prePublish(data));
|
|
38
|
+
this.logger.debug(`metric ${this.settings.name} sent cpu ${info.cpu} for app ${data.application} and instance ${data.applicationInstance}`);
|
|
39
|
+
});
|
|
40
|
+
return appsCPU;
|
|
41
|
+
}
|
|
42
|
+
return [];
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
unsubscribeCore() { return Promise.resolve(); }
|
|
46
|
+
}
|
|
47
|
+
exports.ApplicationCPUMetric = ApplicationCPUMetric;
|
|
48
|
+
//# sourceMappingURL=cpu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cpu.js","sourceRoot":"","sources":["../../../src/metrics/application/cpu.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iHAA8G;AAC9G,0CAA4C;AAE5C,wDAA6E;AAC7E,0DAAuD;AAEvD,MAAa,oBAAqB,SAAQ,qFAAyC;IAC/E,YACI,QAAmC,EACnC,KAAY,EACZ,MAAyB,EACzB,eAA2C,EACpC,YAA4C,EACnD,cAAiD;QAEjD,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;QAHzD,iBAAY,GAAZ,YAAY,CAAgC;IAIvD,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,eAAe,CAAC,MAA0D;;YAC/F,MAAM,oBAAoB,GAAG,IAAI,mCAA4B,EAAE,CAAC;YAChE,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,OAAO,GAAG,MAAM,gBAAS,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,qBAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;gBACvC,oBAAoB,CAAC,eAAe,CAAC,OAAQ,CAAC,CAAC;gBAE9C,OAAgC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;oBAC/C,kDAAkD;oBAClD,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;oBAC1F,IAAI,CAAA,MAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0CAAE,OAAO,MAAK,KAAK,EAAE;wBACzC,OAAO;qBACV;oBACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAQ,CAAC,CAAC;oBACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBAChJ,CAAC,CAAC,CAAC;gBACH,OAAO,OAAQ,CAAC;aACnB;YACD,OAAO,EAAE,CAAC;QACd,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AArCD,oDAqCC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Counter, type Meter } from "@opentelemetry/api";
|
|
2
|
+
import { MetricBase } from "../base/base";
|
|
3
|
+
import { IOInsights } from "@interopio/otel/insights";
|
|
4
|
+
export declare class ApplicationCrashMetric extends MetricBase {
|
|
5
|
+
meter: Meter;
|
|
6
|
+
instanceCrashHandler: IOInsights.InstanceCrashHandler;
|
|
7
|
+
private applicationCrashMetric;
|
|
8
|
+
private applicationCrashUn?;
|
|
9
|
+
private validator;
|
|
10
|
+
constructor(settings: IOInsights.MetricSettings, meter: Meter, logger: IOInsights.Logger, generalSettings: IOInsights.MetricsSettings, instanceCrashHandler: IOInsights.InstanceCrashHandler, defaultFilters?: IOInsights.MetricDefaultFilter[]);
|
|
11
|
+
protected createMetricCore(name: string, baseSettings: any): Counter<IOInsights.ApplicationMetricData>;
|
|
12
|
+
protected subscribe(): Promise<void>;
|
|
13
|
+
protected destroyMetric(): Promise<void>;
|
|
14
|
+
protected unsubscribe(): Promise<void>;
|
|
15
|
+
private handleInstanceCrash;
|
|
16
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationCrashMetric = void 0;
|
|
4
|
+
const base_1 = require("../base/base");
|
|
5
|
+
const crash_1 = require("../../validation/metrics/platform/crash");
|
|
6
|
+
const otel_1 = require("@interopio/otel");
|
|
7
|
+
class ApplicationCrashMetric extends base_1.MetricBase {
|
|
8
|
+
constructor(settings, meter, logger, generalSettings, instanceCrashHandler, defaultFilters) {
|
|
9
|
+
super(settings, meter, logger, generalSettings, defaultFilters);
|
|
10
|
+
this.meter = meter;
|
|
11
|
+
this.instanceCrashHandler = instanceCrashHandler;
|
|
12
|
+
this.validator = new crash_1.PlatformCrashMetricValidator();
|
|
13
|
+
this.validator.validate(this);
|
|
14
|
+
}
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
+
createMetricCore(name, baseSettings) {
|
|
17
|
+
return this.applicationCrashMetric = this.meter.createCounter(name, baseSettings);
|
|
18
|
+
}
|
|
19
|
+
subscribe() {
|
|
20
|
+
this.applicationCrashUn = otel_1.Container.errorless(() => this.instanceCrashHandler(this.handleInstanceCrash.bind(this)));
|
|
21
|
+
return Promise.resolve();
|
|
22
|
+
}
|
|
23
|
+
destroyMetric() {
|
|
24
|
+
return Promise.resolve();
|
|
25
|
+
}
|
|
26
|
+
unsubscribe() {
|
|
27
|
+
otel_1.Container.errorless(() => { var _a; return (_a = this.applicationCrashUn) === null || _a === void 0 ? void 0 : _a.call(this); });
|
|
28
|
+
return Promise.resolve();
|
|
29
|
+
}
|
|
30
|
+
handleInstanceCrash(args) {
|
|
31
|
+
var _a;
|
|
32
|
+
try {
|
|
33
|
+
this.validator.validateApplicationCrash(args);
|
|
34
|
+
this.logger.debug(`crash for application ${args.application} and metric ${this.settings.name} is being invoked`);
|
|
35
|
+
const data = Object.assign({ reason: args.reason }, this.getApplicationData(args.application));
|
|
36
|
+
if (((_a = this.getFilter(data)) === null || _a === void 0 ? void 0 : _a.enabled) === false) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
this.applicationCrashMetric.add(1, this.prePublish(data));
|
|
40
|
+
this.logger.debug(`metric ${this.settings.name} sent 1 more for app ${data.application}`);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
const message = `error while executing handleApplicationCrash for metric from type: ${this.settings.type}`;
|
|
44
|
+
this.logger.warn(message, error);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.ApplicationCrashMetric = ApplicationCrashMetric;
|
|
49
|
+
//# sourceMappingURL=crash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crash.js","sourceRoot":"","sources":["../../../src/metrics/application/crash.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAC1C,mEAA0H;AAC1H,0CAA4C;AAE5C,MAAa,sBAAuB,SAAQ,iBAAU;IAKlD,YACI,QAAmC,EAC5B,KAAY,EACnB,MAAyB,EACzB,eAA2C,EACpC,oBAAqD,EAC5D,cAAiD;QAEjD,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;QANzD,UAAK,GAAL,KAAK,CAAO;QAGZ,yBAAoB,GAApB,oBAAoB,CAAiC;QAI5D,IAAI,CAAC,SAAS,GAAG,IAAI,oCAA+B,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,8DAA8D;IAC3C,gBAAgB,CAAC,IAAY,EAAE,YAAiB;QAC/D,OAAO,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACtF,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,kBAAkB,GAAG,gBAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,gBAAS,CAAC,SAAS,CAAC,GAAG,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,kBAAkB,oDAAI,CAAA,EAAA,CAAC,CAAC;QACvD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,mBAAmB,CAAC,IAAyC;;QACjE,IAAI;YACA,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAE9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,WAAW,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAEjH,MAAM,IAAI,mBAAK,MAAM,EAAE,IAAI,CAAC,MAAM,IAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAE,CAAC;YACnF,IAAI,CAAA,MAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0CAAE,OAAO,MAAK,KAAK,EAAE;gBACzC,OAAO;aACV;YACD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAQ,CAAC,CAAC;YAEjE,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,MAAM,OAAO,GAAG,sEAAsE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACpC;IACL,CAAC;CACJ;AAxDD,wDAwDC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Meter, type Observable } from "@opentelemetry/api";
|
|
2
|
+
import { ObservableMetricBase } from "../base/observable";
|
|
3
|
+
import { IOInsights } from "@interopio/otel/insights";
|
|
4
|
+
export declare class ApplicationDurationMetric extends ObservableMetricBase<IOInsights.ApplicationMetricData> {
|
|
5
|
+
instanceFocusHandler: IOInsights.InstanceFocusedHandler;
|
|
6
|
+
protected focusedTimes: Map<string, number[]>;
|
|
7
|
+
protected currentFocusedApp?: {
|
|
8
|
+
name: string;
|
|
9
|
+
gotFocusTime: number;
|
|
10
|
+
};
|
|
11
|
+
private unInstanceFocusHandler?;
|
|
12
|
+
private validator;
|
|
13
|
+
private appDurationMetric;
|
|
14
|
+
constructor(settings: IOInsights.MetricSettings, meter: Meter, logger: IOInsights.Logger, generalSettings: IOInsights.MetricsSettings, instanceFocusHandler: IOInsights.InstanceFocusedHandler, defaultFilters?: IOInsights.MetricDefaultFilter[]);
|
|
15
|
+
protected createMetricCore(name: string, baseSettings: any): Observable<IOInsights.ApplicationMetricData>;
|
|
16
|
+
protected sendMetric(focusedPeriods: number[], data: IOInsights.ApplicationMetricData): void;
|
|
17
|
+
protected observeCore(): Promise<void>;
|
|
18
|
+
protected subscribeCore(): Promise<void>;
|
|
19
|
+
protected unsubscribeCore(): Promise<void>;
|
|
20
|
+
protected handleFocusChanged(args: IOInsights.InstanceFocusedHandlerArgs): void;
|
|
21
|
+
private handleFocusChangedCore;
|
|
22
|
+
private handleGotFocus;
|
|
23
|
+
private handleLostFocus;
|
|
24
|
+
private addFocusLostEventCore;
|
|
25
|
+
}
|