@interopio/otel 0.0.11 → 0.0.13

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.
Files changed (251) hide show
  1. package/README.md +9 -1
  2. package/dist/builder.d.ts +19 -0
  3. package/dist/builder.js +75 -0
  4. package/dist/builder.js.map +1 -0
  5. package/dist/container.d.ts +14 -0
  6. package/dist/container.js +51 -0
  7. package/dist/container.js.map +1 -0
  8. package/dist/index.d.ts +13 -0
  9. package/dist/index.js +27 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/logger/log4jsWrapper.d.ts +13 -0
  12. package/dist/logger/log4jsWrapper.js +54 -0
  13. package/dist/logger/log4jsWrapper.js.map +1 -0
  14. package/dist/logger/null.d.ts +9 -0
  15. package/dist/logger/null.js +25 -0
  16. package/dist/logger/null.js.map +1 -0
  17. package/dist/logger/types.d.ts +17 -0
  18. package/dist/logger/types.js +3 -0
  19. package/dist/logger/types.js.map +1 -0
  20. package/dist/logs/types.d.ts +6 -0
  21. package/dist/logs/types.js +3 -0
  22. package/dist/logs/types.js.map +1 -0
  23. package/dist/metrics/builder.d.ts +20 -0
  24. package/dist/metrics/builder.js +63 -0
  25. package/dist/metrics/builder.js.map +1 -0
  26. package/dist/metrics/dependencies/builder.d.ts +29 -0
  27. package/dist/metrics/dependencies/builder.js +87 -0
  28. package/dist/metrics/dependencies/builder.js.map +1 -0
  29. package/dist/metrics/dependencies/types.d.ts +91 -0
  30. package/dist/metrics/dependencies/types.js +3 -0
  31. package/dist/metrics/dependencies/types.js.map +1 -0
  32. package/dist/metrics/factory/builder.d.ts +31 -0
  33. package/dist/metrics/factory/builder.js +198 -0
  34. package/dist/metrics/factory/builder.js.map +1 -0
  35. package/dist/metrics/factory/factory.d.ts +10 -0
  36. package/dist/metrics/factory/factory.js +33 -0
  37. package/dist/metrics/factory/factory.js.map +1 -0
  38. package/dist/metrics/factory/types.d.ts +5 -0
  39. package/dist/metrics/factory/types.js +3 -0
  40. package/dist/metrics/factory/types.js.map +1 -0
  41. package/dist/metrics/manager.d.ts +23 -0
  42. package/dist/metrics/manager.js +120 -0
  43. package/dist/metrics/manager.js.map +1 -0
  44. package/dist/metrics/meter/lazyProvider.d.ts +11 -0
  45. package/dist/metrics/meter/lazyProvider.js +23 -0
  46. package/dist/metrics/meter/lazyProvider.js.map +1 -0
  47. package/dist/metrics/meter/providerFactory.d.ts +6 -0
  48. package/dist/metrics/meter/providerFactory.js +34 -0
  49. package/dist/metrics/meter/providerFactory.js.map +1 -0
  50. package/dist/metrics/meter/types.d.ts +14 -0
  51. package/dist/metrics/meter/types.js +3 -0
  52. package/dist/metrics/meter/types.js.map +1 -0
  53. package/dist/metrics/metrics/application/count.d.ts +21 -0
  54. package/dist/metrics/metrics/application/count.js +62 -0
  55. package/dist/metrics/metrics/application/count.js.map +1 -0
  56. package/dist/metrics/metrics/application/cpu.d.ts +12 -0
  57. package/dist/metrics/metrics/application/cpu.js +40 -0
  58. package/dist/metrics/metrics/application/cpu.js.map +1 -0
  59. package/dist/metrics/metrics/application/crash.d.ts +18 -0
  60. package/dist/metrics/metrics/application/crash.js +46 -0
  61. package/dist/metrics/metrics/application/crash.js.map +1 -0
  62. package/dist/metrics/metrics/application/duration.d.ts +7 -0
  63. package/dist/metrics/metrics/application/duration.js +19 -0
  64. package/dist/metrics/metrics/application/duration.js.map +1 -0
  65. package/dist/metrics/metrics/application/durationBase.d.ts +22 -0
  66. package/dist/metrics/metrics/application/durationBase.js +97 -0
  67. package/dist/metrics/metrics/application/durationBase.js.map +1 -0
  68. package/dist/metrics/metrics/application/error.d.ts +18 -0
  69. package/dist/metrics/metrics/application/error.js +46 -0
  70. package/dist/metrics/metrics/application/error.js.map +1 -0
  71. package/dist/metrics/metrics/application/memory.d.ts +13 -0
  72. package/dist/metrics/metrics/application/memory.js +41 -0
  73. package/dist/metrics/metrics/application/memory.js.map +1 -0
  74. package/dist/metrics/metrics/application/started.d.ts +18 -0
  75. package/dist/metrics/metrics/application/started.js +46 -0
  76. package/dist/metrics/metrics/application/started.js.map +1 -0
  77. package/dist/metrics/metrics/application/startup.d.ts +18 -0
  78. package/dist/metrics/metrics/application/startup.js +46 -0
  79. package/dist/metrics/metrics/application/startup.js.map +1 -0
  80. package/dist/metrics/metrics/application/stopped.d.ts +18 -0
  81. package/dist/metrics/metrics/application/stopped.js +46 -0
  82. package/dist/metrics/metrics/application/stopped.js.map +1 -0
  83. package/dist/metrics/metrics/base/base.d.ts +17 -0
  84. package/dist/metrics/metrics/base/base.js +71 -0
  85. package/dist/metrics/metrics/base/base.js.map +1 -0
  86. package/dist/metrics/metrics/base/gauge.d.ts +18 -0
  87. package/dist/metrics/metrics/base/gauge.js +61 -0
  88. package/dist/metrics/metrics/base/gauge.js.map +1 -0
  89. package/dist/metrics/metrics/base/null.d.ts +10 -0
  90. package/dist/metrics/metrics/base/null.js +22 -0
  91. package/dist/metrics/metrics/base/null.js.map +1 -0
  92. package/dist/metrics/metrics/base/observable.d.ts +20 -0
  93. package/dist/metrics/metrics/base/observable.js +69 -0
  94. package/dist/metrics/metrics/base/observable.js.map +1 -0
  95. package/dist/metrics/metrics/base/types.d.ts +31 -0
  96. package/dist/metrics/metrics/base/types.js +3 -0
  97. package/dist/metrics/metrics/base/types.js.map +1 -0
  98. package/dist/metrics/metrics/layout/startup.d.ts +18 -0
  99. package/dist/metrics/metrics/layout/startup.js +46 -0
  100. package/dist/metrics/metrics/layout/startup.js.map +1 -0
  101. package/dist/metrics/metrics/platform/error.d.ts +18 -0
  102. package/dist/metrics/metrics/platform/error.js +46 -0
  103. package/dist/metrics/metrics/platform/error.js.map +1 -0
  104. package/dist/metrics/metrics/platform/startup.d.ts +18 -0
  105. package/dist/metrics/metrics/platform/startup.js +58 -0
  106. package/dist/metrics/metrics/platform/startup.js.map +1 -0
  107. package/dist/metrics/metrics/system/cpu.d.ts +14 -0
  108. package/dist/metrics/metrics/system/cpu.js +46 -0
  109. package/dist/metrics/metrics/system/cpu.js.map +1 -0
  110. package/dist/metrics/metrics/system/memory.d.ts +14 -0
  111. package/dist/metrics/metrics/system/memory.js +47 -0
  112. package/dist/metrics/metrics/system/memory.js.map +1 -0
  113. package/dist/metrics/metrics/workspace/count.d.ts +21 -0
  114. package/dist/metrics/metrics/workspace/count.js +62 -0
  115. package/dist/metrics/metrics/workspace/count.js.map +1 -0
  116. package/dist/metrics/metrics/workspace/startup.d.ts +9 -0
  117. package/dist/metrics/metrics/workspace/startup.js +12 -0
  118. package/dist/metrics/metrics/workspace/startup.js.map +1 -0
  119. package/dist/metrics/metrics/workspace/stopped.d.ts +18 -0
  120. package/dist/metrics/metrics/workspace/stopped.js +46 -0
  121. package/dist/metrics/metrics/workspace/stopped.js.map +1 -0
  122. package/dist/metrics/settings/builder.d.ts +24 -0
  123. package/dist/metrics/settings/builder.js +115 -0
  124. package/dist/metrics/settings/builder.js.map +1 -0
  125. package/dist/metrics/settings/default.d.ts +30 -0
  126. package/dist/metrics/settings/default.js +121 -0
  127. package/dist/metrics/settings/default.js.map +1 -0
  128. package/dist/metrics/settings/types.d.ts +14 -0
  129. package/dist/metrics/settings/types.js +3 -0
  130. package/dist/metrics/settings/types.js.map +1 -0
  131. package/dist/metrics/types.d.ts +16 -0
  132. package/dist/metrics/types.js +3 -0
  133. package/dist/metrics/types.js.map +1 -0
  134. package/dist/metrics/utils/nullMetricsManager.d.ts +6 -0
  135. package/dist/metrics/utils/nullMetricsManager.js +11 -0
  136. package/dist/metrics/utils/nullMetricsManager.js.map +1 -0
  137. package/dist/metrics/utils/nullPerfProvider.d.ts +7 -0
  138. package/dist/metrics/utils/nullPerfProvider.js +19 -0
  139. package/dist/metrics/utils/nullPerfProvider.js.map +1 -0
  140. package/dist/traces/builder.d.ts +15 -0
  141. package/dist/traces/builder.js +39 -0
  142. package/dist/traces/builder.js.map +1 -0
  143. package/dist/traces/ioInsightsSampler.d.ts +16 -0
  144. package/dist/traces/ioInsightsSampler.js +123 -0
  145. package/dist/traces/ioInsightsSampler.js.map +1 -0
  146. package/dist/traces/manager.d.ts +19 -0
  147. package/dist/traces/manager.js +151 -0
  148. package/dist/traces/manager.js.map +1 -0
  149. package/dist/traces/nullTracesManager.d.ts +6 -0
  150. package/dist/traces/nullTracesManager.js +23 -0
  151. package/dist/traces/nullTracesManager.js.map +1 -0
  152. package/dist/traces/tracingState.d.ts +28 -0
  153. package/dist/traces/tracingState.js +103 -0
  154. package/dist/traces/tracingState.js.map +1 -0
  155. package/dist/traces/types.d.ts +96 -0
  156. package/dist/traces/types.js +14 -0
  157. package/dist/traces/types.js.map +1 -0
  158. package/dist/traces/utils/index.d.ts +13 -0
  159. package/dist/traces/utils/index.js +119 -0
  160. package/dist/traces/utils/index.js.map +1 -0
  161. package/dist/types.d.ts +20 -0
  162. package/dist/types.js +3 -0
  163. package/dist/types.js.map +1 -0
  164. package/dist/utils/nullManager.d.ts +7 -0
  165. package/dist/utils/nullManager.js +21 -0
  166. package/dist/utils/nullManager.js.map +1 -0
  167. package/dist/validation/builder.d.ts +4 -0
  168. package/dist/validation/builder.js +12 -0
  169. package/dist/validation/builder.js.map +1 -0
  170. package/dist/validation/container.d.ts +4 -0
  171. package/dist/validation/container.js +14 -0
  172. package/dist/validation/container.js.map +1 -0
  173. package/dist/validation/metrics/application/count.d.ts +7 -0
  174. package/dist/validation/metrics/application/count.js +21 -0
  175. package/dist/validation/metrics/application/count.js.map +1 -0
  176. package/dist/validation/metrics/application/duration.d.ts +6 -0
  177. package/dist/validation/metrics/application/duration.js +17 -0
  178. package/dist/validation/metrics/application/duration.js.map +1 -0
  179. package/dist/validation/metrics/application/error.d.ts +6 -0
  180. package/dist/validation/metrics/application/error.js +16 -0
  181. package/dist/validation/metrics/application/error.js.map +1 -0
  182. package/dist/validation/metrics/application/started.d.ts +6 -0
  183. package/dist/validation/metrics/application/started.js +16 -0
  184. package/dist/validation/metrics/application/started.js.map +1 -0
  185. package/dist/validation/metrics/application/startupHistogram.d.ts +6 -0
  186. package/dist/validation/metrics/application/startupHistogram.js +18 -0
  187. package/dist/validation/metrics/application/startupHistogram.js.map +1 -0
  188. package/dist/validation/metrics/application/stopped.d.ts +6 -0
  189. package/dist/validation/metrics/application/stopped.js +16 -0
  190. package/dist/validation/metrics/application/stopped.js.map +1 -0
  191. package/dist/validation/metrics/base/base.d.ts +5 -0
  192. package/dist/validation/metrics/base/base.js +22 -0
  193. package/dist/validation/metrics/base/base.js.map +1 -0
  194. package/dist/validation/metrics/base/gauge.d.ts +6 -0
  195. package/dist/validation/metrics/base/gauge.js +12 -0
  196. package/dist/validation/metrics/base/gauge.js.map +1 -0
  197. package/dist/validation/metrics/builder.d.ts +4 -0
  198. package/dist/validation/metrics/builder.js +13 -0
  199. package/dist/validation/metrics/builder.js.map +1 -0
  200. package/dist/validation/metrics/factory.d.ts +4 -0
  201. package/dist/validation/metrics/factory.js +13 -0
  202. package/dist/validation/metrics/factory.js.map +1 -0
  203. package/dist/validation/metrics/factoryBuilder.d.ts +5 -0
  204. package/dist/validation/metrics/factoryBuilder.js +23 -0
  205. package/dist/validation/metrics/factoryBuilder.js.map +1 -0
  206. package/dist/validation/metrics/layout/startupHistogram.d.ts +6 -0
  207. package/dist/validation/metrics/layout/startupHistogram.js +18 -0
  208. package/dist/validation/metrics/layout/startupHistogram.js.map +1 -0
  209. package/dist/validation/metrics/manager.d.ts +4 -0
  210. package/dist/validation/metrics/manager.js +15 -0
  211. package/dist/validation/metrics/manager.js.map +1 -0
  212. package/dist/validation/metrics/meterFactory.d.ts +4 -0
  213. package/dist/validation/metrics/meterFactory.js +16 -0
  214. package/dist/validation/metrics/meterFactory.js.map +1 -0
  215. package/dist/validation/metrics/perf.d.ts +8 -0
  216. package/dist/validation/metrics/perf.js +41 -0
  217. package/dist/validation/metrics/perf.js.map +1 -0
  218. package/dist/validation/metrics/platform/crash.d.ts +6 -0
  219. package/dist/validation/metrics/platform/crash.js +16 -0
  220. package/dist/validation/metrics/platform/crash.js.map +1 -0
  221. package/dist/validation/metrics/platform/error.d.ts +6 -0
  222. package/dist/validation/metrics/platform/error.js +15 -0
  223. package/dist/validation/metrics/platform/error.js.map +1 -0
  224. package/dist/validation/metrics/platform/startup.d.ts +6 -0
  225. package/dist/validation/metrics/platform/startup.js +18 -0
  226. package/dist/validation/metrics/platform/startup.js.map +1 -0
  227. package/dist/validation/metrics/settingsBuilder.d.ts +4 -0
  228. package/dist/validation/metrics/settingsBuilder.js +22 -0
  229. package/dist/validation/metrics/settingsBuilder.js.map +1 -0
  230. package/dist/validation/metrics/workspace/count.d.ts +7 -0
  231. package/dist/validation/metrics/workspace/count.js +21 -0
  232. package/dist/validation/metrics/workspace/count.js.map +1 -0
  233. package/dist/validation/metrics/workspace/stopped.d.ts +6 -0
  234. package/dist/validation/metrics/workspace/stopped.js +16 -0
  235. package/dist/validation/metrics/workspace/stopped.js.map +1 -0
  236. package/dist/validation/traces/attributeData.d.ts +3 -0
  237. package/dist/validation/traces/attributeData.js +18 -0
  238. package/dist/validation/traces/attributeData.js.map +1 -0
  239. package/dist/validation/traces/filter.d.ts +4 -0
  240. package/dist/validation/traces/filter.js +12 -0
  241. package/dist/validation/traces/filter.js.map +1 -0
  242. package/dist/validation/traces/manager.d.ts +4 -0
  243. package/dist/validation/traces/manager.js +12 -0
  244. package/dist/validation/traces/manager.js.map +1 -0
  245. package/dist/validation/traces/withSpan.d.ts +4 -0
  246. package/dist/validation/traces/withSpan.js +18 -0
  247. package/dist/validation/traces/withSpan.js.map +1 -0
  248. package/dist/validation/validator.d.ts +4 -0
  249. package/dist/validation/validator.js +15 -0
  250. package/dist/validation/validator.js.map +1 -0
  251. package/package.json +12 -4
@@ -0,0 +1,14 @@
1
+ import { MeterProvider } from "@opentelemetry/api";
2
+ export interface MetricsMeterProvider extends MeterProvider {
3
+ forceFlush(): Promise<void>;
4
+ }
5
+ export interface InternalMetricsMeterSettings {
6
+ url: string;
7
+ publishInterval: number;
8
+ serviceName: string;
9
+ serviceId: string;
10
+ serviceVersion: string;
11
+ [key: string]: unknown;
12
+ }
13
+ export type MetricsMeterSettings = Partial<InternalMetricsMeterSettings>;
14
+ export type MetricsMeterProviderCreateFunc = () => MetricsMeterProvider;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/metrics/meter/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { Meter } from "@opentelemetry/api";
2
+ import { InternalMetricSettings } from "../base/types";
3
+ import { MetricBase } from "../base/base";
4
+ import { Logger } from "../../../logger/types";
5
+ import { InstanceActionHandler } from "../../dependencies/types";
6
+ export declare class ApplicationCountMetric extends MetricBase {
7
+ meter: Meter;
8
+ instanceStartedHandler: InstanceActionHandler;
9
+ instanceStoppedHandler: InstanceActionHandler;
10
+ private validator;
11
+ private appCountMetric;
12
+ private instanceStartedUn;
13
+ private instanceStoppedUn;
14
+ constructor(settings: InternalMetricSettings, meter: Meter, logger: Logger, instanceStartedHandler: InstanceActionHandler, instanceStoppedHandler: InstanceActionHandler);
15
+ protected createMetric(): Promise<void>;
16
+ protected subscribe(): Promise<void>;
17
+ protected unsubscribe(): Promise<void>;
18
+ protected destroyMetric(): Promise<void>;
19
+ private handleInstanceStarted;
20
+ private handleInstanceStopped;
21
+ }
@@ -0,0 +1,62 @@
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
+ class ApplicationCountMetric extends base_1.MetricBase {
7
+ constructor(settings, meter, logger, instanceStartedHandler, instanceStoppedHandler) {
8
+ super(settings, logger);
9
+ this.meter = meter;
10
+ this.instanceStartedHandler = instanceStartedHandler;
11
+ this.instanceStoppedHandler = instanceStoppedHandler;
12
+ this.validator = new count_1.ApplicationCountMetricValidator();
13
+ this.validator.validate(this);
14
+ }
15
+ createMetric() {
16
+ const name = this.settings.name;
17
+ const description = this.settings.description;
18
+ this.appCountMetric = this.meter.createUpDownCounter(name, { description });
19
+ return Promise.resolve();
20
+ }
21
+ subscribe() {
22
+ this.instanceStartedUn = this.instanceStartedHandler(this.handleInstanceStarted.bind(this));
23
+ this.instanceStoppedUn = this.instanceStoppedHandler(this.handleInstanceStopped.bind(this));
24
+ return Promise.resolve();
25
+ }
26
+ unsubscribe() {
27
+ this.instanceStartedUn();
28
+ this.instanceStoppedUn();
29
+ return Promise.resolve();
30
+ }
31
+ destroyMetric() {
32
+ return Promise.resolve();
33
+ }
34
+ handleInstanceStarted(args) {
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
+ this.appCountMetric.add(1, 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 handleInstanceStarted for metric from type: ${this.settings.type}`;
44
+ this.logger.warn(message, error);
45
+ }
46
+ }
47
+ handleInstanceStopped(args) {
48
+ try {
49
+ this.validator.validateInstanceStopped(args);
50
+ this.logger.debug(`instance stopped for application ${args.application} and metric ${this.settings.name} is being invoked`);
51
+ const data = this.getApplicationData(args.application);
52
+ this.appCountMetric.add(-1, data);
53
+ this.logger.debug(`metric ${this.settings.name} sent 1 less for app ${data.application}`);
54
+ }
55
+ catch (error) {
56
+ const message = `error while executing handleInstanceStopped for metric from type: ${this.settings.type}`;
57
+ this.logger.warn(message, error);
58
+ }
59
+ }
60
+ }
61
+ exports.ApplicationCountMetric = ApplicationCountMetric;
62
+ //# sourceMappingURL=count.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count.js","sourceRoot":"","sources":["../../../../src/metrics/metrics/application/count.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Meter, ObservableResult } from "@opentelemetry/api";
2
+ import { ApplicationMetricData, InternalMetricSettings } from "../base/types";
3
+ import { GaugeMetricBase } from "../base/gauge";
4
+ import { Logger } from "../../../logger/types";
5
+ import { PerformanceProvider } from "../../dependencies/types";
6
+ export declare class ApplicationCPUMetric extends GaugeMetricBase<ApplicationMetricData> {
7
+ perfProvider: PerformanceProvider;
8
+ constructor(settings: InternalMetricSettings, meter: Meter, logger: Logger, perfProvider: PerformanceProvider);
9
+ protected subscribeCore(): Promise<void>;
10
+ protected observeCore(result: ObservableResult<ApplicationMetricData>): Promise<void>;
11
+ protected unsubscribeCore(): Promise<void>;
12
+ }
@@ -0,0 +1,40 @@
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
+ const perf_1 = require("../../../validation/metrics/perf");
15
+ const validator_1 = require("../../../validation/validator");
16
+ class ApplicationCPUMetric extends gauge_1.GaugeMetricBase {
17
+ constructor(settings, meter, logger, perfProvider) {
18
+ super(settings, meter, logger);
19
+ this.perfProvider = perfProvider;
20
+ }
21
+ subscribeCore() { return Promise.resolve(); }
22
+ observeCore(result) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const performanceValidator = new perf_1.PerformanceProviderValidator();
25
+ performanceValidator.validate(this.perfProvider);
26
+ const appsCPU = yield this.perfProvider.getAppsCPU();
27
+ if (!validator_1.Validator.isNullOrUndefined(appsCPU)) {
28
+ performanceValidator.validateAppsCPU(appsCPU);
29
+ appsCPU.forEach((info) => {
30
+ const data = Object.assign({ applicationInstance: info.instance }, this.getApplicationData(info.app));
31
+ result.observe(info.cpu, data);
32
+ this.logger.debug(`metric ${this.settings.name} sent cpu ${info.cpu} for app ${data.application} and instance ${data.applicationInstance}`);
33
+ });
34
+ }
35
+ });
36
+ }
37
+ unsubscribeCore() { return Promise.resolve(); }
38
+ }
39
+ exports.ApplicationCPUMetric = ApplicationCPUMetric;
40
+ //# sourceMappingURL=cpu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpu.js","sourceRoot":"","sources":["../../../../src/metrics/metrics/application/cpu.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,yCAAgD;AAChD,2DAAgF;AAChF,6DAA0D;AAI1D,MAAa,oBAAqB,SAAQ,uBAAsC;IAC5E,YACI,QAAgC,EAChC,KAAY,EACZ,MAAc,EACP,YAAiC;QAExC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAFxB,iBAAY,GAAZ,YAAY,CAAqB;IAG5C,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,MAA+C;;YAChF,MAAM,oBAAoB,GAAG,IAAI,mCAA4B,EAAE,CAAC;YAChE,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YACrD,IAAI,CAAC,qBAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;gBACvC,oBAAoB,CAAC,eAAe,CAAC,OAAQ,CAAC,CAAC;gBAE/C,OAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtB,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;oBAC1F,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC/B,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;aACN;QACL,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AA7BD,oDA6BC"}
@@ -0,0 +1,18 @@
1
+ import { Meter } from "@opentelemetry/api";
2
+ import { MetricBase } from "../base/base";
3
+ import { InternalMetricSettings } from "../base/types";
4
+ import { Logger } from "../../../logger/types";
5
+ import { InstanceCrashHandler } from "../../dependencies/types";
6
+ export declare class ApplicationCrashMetric extends MetricBase {
7
+ meter: Meter;
8
+ instanceCrashHandler: InstanceCrashHandler;
9
+ private applicationCrashMetric;
10
+ private applicationCrashUn;
11
+ private validator;
12
+ constructor(settings: InternalMetricSettings, meter: Meter, logger: Logger, instanceCrashHandler: InstanceCrashHandler);
13
+ protected createMetric(): Promise<void>;
14
+ protected subscribe(): Promise<void>;
15
+ protected destroyMetric(): Promise<void>;
16
+ protected unsubscribe(): Promise<void>;
17
+ private handleInstanceCrash;
18
+ }
@@ -0,0 +1,46 @@
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
+ class ApplicationCrashMetric extends base_1.MetricBase {
7
+ constructor(settings, meter, logger, instanceCrashHandler) {
8
+ super(settings, logger);
9
+ this.meter = meter;
10
+ this.instanceCrashHandler = instanceCrashHandler;
11
+ this.validator = new crash_1.PlatformCrashMetricValidator();
12
+ this.validator.validate(this);
13
+ }
14
+ createMetric() {
15
+ const name = this.settings.name;
16
+ const description = this.settings.description;
17
+ this.applicationCrashMetric = this.meter.createCounter(name, { description });
18
+ return Promise.resolve();
19
+ }
20
+ subscribe() {
21
+ this.applicationCrashUn = this.instanceCrashHandler(this.handleInstanceCrash.bind(this));
22
+ return Promise.resolve();
23
+ }
24
+ destroyMetric() {
25
+ return Promise.resolve();
26
+ }
27
+ unsubscribe() {
28
+ this.applicationCrashUn();
29
+ return Promise.resolve();
30
+ }
31
+ handleInstanceCrash(args) {
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
+ this.applicationCrashMetric.add(1, data);
37
+ this.logger.debug(`metric ${this.settings.name} sent 1 more for app ${data.application}`);
38
+ }
39
+ catch (error) {
40
+ const message = `error while executing handleApplicationCrash for metric from type: ${this.settings.type}`;
41
+ this.logger.warn(message, error);
42
+ }
43
+ }
44
+ }
45
+ exports.ApplicationCrashMetric = ApplicationCrashMetric;
46
+ //# sourceMappingURL=crash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crash.js","sourceRoot":"","sources":["../../../../src/metrics/metrics/application/crash.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAE1C,sEAA6H;AAI7H,MAAa,sBAAuB,SAAQ,iBAAU;IAKlD,YACI,QAAgC,EACzB,KAAY,EACnB,MAAc,EACP,oBAA0C;QAEjD,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAJjB,UAAK,GAAL,KAAK,CAAO;QAEZ,yBAAoB,GAApB,oBAAoB,CAAsB;QAGjD,IAAI,CAAC,SAAS,GAAG,IAAI,oCAA+B,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAE9E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,mBAAmB,CAAC,IAA8B;QACtD,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,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEzC,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;AAtDD,wDAsDC"}
@@ -0,0 +1,7 @@
1
+ import { ApplicationMetricData } from "../base/types";
2
+ import { ApplicationDurationMetricBase } from "./durationBase";
3
+ export declare class ApplicationDurationMetric extends ApplicationDurationMetricBase {
4
+ private appDurationMetric;
5
+ protected createMetricCore(): Promise<void>;
6
+ protected sendMetric(focusedPeriods: number[], data: ApplicationMetricData): void;
7
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApplicationDurationMetric = void 0;
4
+ const durationBase_1 = require("./durationBase");
5
+ class ApplicationDurationMetric extends durationBase_1.ApplicationDurationMetricBase {
6
+ createMetricCore() {
7
+ const advice = { explicitBucketBoundaries: this.settings.buckets };
8
+ this.appDurationMetric = this.meter.createHistogram(this.settings.name, { description: this.settings.description, unit: this.settings.unit, advice });
9
+ return Promise.resolve();
10
+ }
11
+ sendMetric(focusedPeriods, data) {
12
+ focusedPeriods.forEach((period) => {
13
+ this.appDurationMetric.record(period, data);
14
+ this.logger.debug(`metric ${this.settings.name} sent focused time ${period} for app ${data.application}`);
15
+ });
16
+ }
17
+ }
18
+ exports.ApplicationDurationMetric = ApplicationDurationMetric;
19
+ //# sourceMappingURL=duration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../../src/metrics/metrics/application/duration.ts"],"names":[],"mappings":";;;AAEA,iDAA+D;AAE/D,MAAa,yBAA0B,SAAQ,4CAA6B;IAGrD,gBAAgB;QAC/B,MAAM,MAAM,GAAG,EAAE,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,UAAU,CAAC,cAAwB,EAAE,IAA2B;QAC/E,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,QAAQ,CAAC,IAAI,sBAAsB,MAAM,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9G,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAhBD,8DAgBC"}
@@ -0,0 +1,22 @@
1
+ import { Meter } from "@opentelemetry/api";
2
+ import { InternalMetricSettings, ApplicationMetricData } from "../base/types";
3
+ import { ObservableMetricBase } from "../base/observable";
4
+ import { Logger } from "../../../logger/types";
5
+ import { InstanceFocusedHandler } from "../../dependencies/types";
6
+ export declare abstract class ApplicationDurationMetricBase extends ObservableMetricBase<ApplicationMetricData> {
7
+ instanceFocusHandler: InstanceFocusedHandler;
8
+ private focusedTimes;
9
+ private currentFocusedApp?;
10
+ private unInstanceFocusHandler;
11
+ private validator;
12
+ constructor(settings: InternalMetricSettings, meter: Meter, logger: Logger, instanceFocusHandler: InstanceFocusedHandler);
13
+ protected subscribeCore(): Promise<void>;
14
+ protected observeCore(): Promise<void>;
15
+ protected unsubscribeCore(): Promise<void>;
16
+ protected abstract sendMetric(focusedPeriods: number[], data: ApplicationMetricData): void;
17
+ private handleFocusChanged;
18
+ private handleFocusChangedCore;
19
+ private handleGotFocus;
20
+ private handleLostFocus;
21
+ private addFocusLostEventCore;
22
+ }
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApplicationDurationMetricBase = void 0;
4
+ const validator_1 = require("../../../validation/validator");
5
+ const duration_1 = require("../../../validation/metrics/application/duration");
6
+ const observable_1 = require("../base/observable");
7
+ class ApplicationDurationMetricBase extends observable_1.ObservableMetricBase {
8
+ constructor(settings, meter, logger, instanceFocusHandler) {
9
+ super(settings, meter, logger);
10
+ this.instanceFocusHandler = instanceFocusHandler;
11
+ // application -> focused times for a given period
12
+ this.focusedTimes = new Map();
13
+ this.validator = new duration_1.ApplicationDurationMetricValidator();
14
+ this.validator.validate(this);
15
+ }
16
+ subscribeCore() {
17
+ this.unInstanceFocusHandler = this.instanceFocusHandler(this.handleFocusChanged.bind(this));
18
+ return Promise.resolve();
19
+ }
20
+ observeCore() {
21
+ const hasFocusedApp = this.currentFocusedApp !== undefined;
22
+ const currentFocusedApp = hasFocusedApp ? this.currentFocusedApp.name : undefined;
23
+ if (hasFocusedApp) {
24
+ this.handleFocusChanged({ application: currentFocusedApp, focused: false });
25
+ }
26
+ this.focusedTimes.forEach((focusedPeriods, application) => {
27
+ const data = this.getApplicationData(application);
28
+ this.sendMetric(focusedPeriods, data);
29
+ focusedPeriods.splice(0);
30
+ });
31
+ if (hasFocusedApp) {
32
+ this.handleFocusChanged({ application: currentFocusedApp, focused: true });
33
+ }
34
+ return Promise.resolve();
35
+ }
36
+ unsubscribeCore() {
37
+ this.unInstanceFocusHandler();
38
+ return Promise.resolve();
39
+ }
40
+ handleFocusChanged(args) {
41
+ try {
42
+ this.validator.validateFocusChanged(args);
43
+ this.logger.debug(`focused changed is being invoked for metric ${this.settings.name} with ${JSON.stringify(args)}`);
44
+ return this.handleFocusChangedCore(args);
45
+ }
46
+ catch (error) {
47
+ const message = `error while executing handleFocusChanges for metric from type: ${this.settings.type}`;
48
+ this.logger.warn(message, 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.settings.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.settings.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.ApplicationDurationMetricBase = ApplicationDurationMetricBase;
97
+ //# sourceMappingURL=durationBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durationBase.js","sourceRoot":"","sources":["../../../../src/metrics/metrics/application/durationBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Meter } from "@opentelemetry/api";
2
+ import { MetricBase } from "../base/base";
3
+ import { InternalMetricSettings } from "../base/types";
4
+ import { Logger } from "../../../logger/types";
5
+ import { InstanceErrorHandler } from "../../dependencies/types";
6
+ export declare class ApplicationErrorMetric extends MetricBase {
7
+ meter: Meter;
8
+ instanceErrorHandler: InstanceErrorHandler;
9
+ private appErrorMetric;
10
+ private appErrorUn;
11
+ private validator;
12
+ constructor(settings: InternalMetricSettings, meter: Meter, logger: Logger, instanceErrorHandler: InstanceErrorHandler);
13
+ protected createMetric(): Promise<void>;
14
+ protected subscribe(): Promise<void>;
15
+ protected destroyMetric(): Promise<void>;
16
+ protected unsubscribe(): Promise<void>;
17
+ private instanceApplicationError;
18
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApplicationErrorMetric = void 0;
4
+ const base_1 = require("../base/base");
5
+ const error_1 = require("../../../validation/metrics/application/error");
6
+ class ApplicationErrorMetric extends base_1.MetricBase {
7
+ constructor(settings, meter, logger, instanceErrorHandler) {
8
+ super(settings, logger);
9
+ this.meter = meter;
10
+ this.instanceErrorHandler = instanceErrorHandler;
11
+ this.validator = new error_1.ApplicationErrorMetricValidator();
12
+ this.validator.validate(this);
13
+ }
14
+ createMetric() {
15
+ const name = this.settings.name;
16
+ const description = this.settings.description;
17
+ this.appErrorMetric = this.meter.createCounter(name, { description });
18
+ return Promise.resolve();
19
+ }
20
+ subscribe() {
21
+ this.appErrorUn = this.instanceErrorHandler(this.instanceApplicationError.bind(this));
22
+ return Promise.resolve();
23
+ }
24
+ destroyMetric() {
25
+ return Promise.resolve();
26
+ }
27
+ unsubscribe() {
28
+ this.appErrorUn();
29
+ return Promise.resolve();
30
+ }
31
+ instanceApplicationError(args) {
32
+ try {
33
+ this.validator.validateApplicationError(args);
34
+ this.logger.debug(`app error for application ${args.application} and metric ${this.settings.name} is being invoked`);
35
+ const data = this.getApplicationData(args.application);
36
+ this.appErrorMetric.add(1, data);
37
+ this.logger.debug(`metric ${this.settings.name} sent 1 more for app ${data.application}`);
38
+ }
39
+ catch (error) {
40
+ const message = `error while executing handleAppError for metric from type: ${this.settings.type}`;
41
+ this.logger.warn(message, error);
42
+ }
43
+ }
44
+ }
45
+ exports.ApplicationErrorMetric = ApplicationErrorMetric;
46
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../src/metrics/metrics/application/error.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAC1C,yEAAgG;AAKhG,MAAa,sBAAuB,SAAQ,iBAAU;IAKlD,YACI,QAAgC,EACzB,KAAY,EACnB,MAAc,EACP,oBAA0C;QAEjD,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAJjB,UAAK,GAAL,KAAK,CAAO;QAEZ,yBAAoB,GAApB,oBAAoB,CAAsB;QAGjD,IAAI,CAAC,SAAS,GAAG,IAAI,uCAA+B,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAEtE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,wBAAwB,CAAC,IAA8B;QAC3D,IAAI;YACA,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAE9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,WAAW,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAErH,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEjC,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,8DAA8D,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACpC;IACL,CAAC;CACJ;AAtDD,wDAsDC"}
@@ -0,0 +1,13 @@
1
+ import { Meter, ObservableResult } from "@opentelemetry/api";
2
+ import { ApplicationMetricData, InternalMetricSettings } from "../base/types";
3
+ import { GaugeMetricBase } from "../base/gauge";
4
+ import { Logger } from "../../../logger/types";
5
+ import { PerformanceProvider } from "../../dependencies/types";
6
+ export declare class ApplicationMemoryMetric extends GaugeMetricBase<ApplicationMetricData> {
7
+ perfProvider: PerformanceProvider;
8
+ private validator;
9
+ constructor(settings: InternalMetricSettings, meter: Meter, logger: Logger, perfProvider: PerformanceProvider);
10
+ protected subscribeCore(): Promise<void>;
11
+ protected observeCore(result: ObservableResult<ApplicationMetricData>): Promise<void>;
12
+ protected unsubscribeCore(): Promise<void>;
13
+ }
@@ -0,0 +1,41 @@
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
+ const perf_1 = require("../../../validation/metrics/perf");
15
+ const validator_1 = require("../../../validation/validator");
16
+ class ApplicationMemoryMetric extends gauge_1.GaugeMetricBase {
17
+ constructor(settings, meter, logger, perfProvider) {
18
+ super(settings, meter, logger);
19
+ this.perfProvider = perfProvider;
20
+ this.validator = new perf_1.PerformanceProviderValidator();
21
+ this.validator.validate(this.perfProvider);
22
+ }
23
+ subscribeCore() { return Promise.resolve(); }
24
+ observeCore(result) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ const appsMemory = yield this.perfProvider.getAppsMemory();
27
+ if (!validator_1.Validator.isNullOrUndefined(appsMemory)) {
28
+ this.validator.validateAppsMemory(appsMemory);
29
+ appsMemory.forEach((info) => {
30
+ var _a;
31
+ const data = Object.assign({ applicationInstance: info.instance }, this.getApplicationData(info.app));
32
+ result.observe((_a = info.memory) !== null && _a !== void 0 ? _a : 0, data);
33
+ this.logger.debug(`metric ${this.settings.name} sent memory ${info.memory} for app ${data.application} and instance ${data.applicationInstance}`);
34
+ });
35
+ }
36
+ });
37
+ }
38
+ unsubscribeCore() { return Promise.resolve(); }
39
+ }
40
+ exports.ApplicationMemoryMetric = ApplicationMemoryMetric;
41
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../../src/metrics/metrics/application/memory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,yCAAgD;AAChD,2DAAgF;AAChF,6DAA0D;AAI1D,MAAa,uBAAwB,SAAQ,uBAAsC;IAG/E,YACI,QAAgC,EAChC,KAAY,EACZ,MAAc,EACP,YAAiC;QAExC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAFxB,iBAAY,GAAZ,YAAY,CAAqB;QANpC,cAAS,GAAG,IAAI,mCAA4B,EAAE,CAAC;QASnD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,MAA+C;;YAChF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YAE3D,IAAI,CAAC,qBAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE;gBAE1C,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAW,CAAC,CAAC;gBAE/C,UAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;oBACzB,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;oBAC1F,MAAM,CAAC,OAAO,CAAC,MAAA,IAAI,CAAC,MAAM,mCAAI,CAAC,EAAE,IAAI,CAAC,CAAC;oBACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,gBAAgB,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACtJ,CAAC,CAAC,CAAC;aACN;QACL,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AA/BD,0DA+BC"}
@@ -0,0 +1,18 @@
1
+ import { Meter } from "@opentelemetry/api";
2
+ import { InternalMetricSettings } from "../base/types";
3
+ import { MetricBase } from "../base/base";
4
+ import { Logger } from "../../../logger/types";
5
+ import { InstanceActionHandler } from "../../dependencies/types";
6
+ export declare class ApplicationStartedMetric extends MetricBase {
7
+ meter: Meter;
8
+ instanceStartedHandler: InstanceActionHandler;
9
+ private appStartedMetric;
10
+ private instanceStartedUn;
11
+ private validator;
12
+ constructor(settings: InternalMetricSettings, meter: Meter, logger: Logger, instanceStartedHandler: InstanceActionHandler);
13
+ protected createMetric(): Promise<void>;
14
+ protected subscribe(): Promise<void>;
15
+ protected destroyMetric(): Promise<void>;
16
+ protected unsubscribe(): Promise<void>;
17
+ private handleInstanceStarted;
18
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApplicationStartedMetric = void 0;
4
+ const base_1 = require("../base/base");
5
+ const started_1 = require("../../../validation/metrics/application/started");
6
+ class ApplicationStartedMetric extends base_1.MetricBase {
7
+ constructor(settings, meter, logger, instanceStartedHandler) {
8
+ super(settings, logger);
9
+ this.meter = meter;
10
+ this.instanceStartedHandler = instanceStartedHandler;
11
+ this.validator = new started_1.ApplicationStartedMetricValidator();
12
+ this.validator.validate(this);
13
+ }
14
+ createMetric() {
15
+ const name = this.settings.name;
16
+ const description = this.settings.description;
17
+ this.appStartedMetric = this.meter.createCounter(name, { description });
18
+ return Promise.resolve();
19
+ }
20
+ subscribe() {
21
+ this.instanceStartedUn = this.instanceStartedHandler(this.handleInstanceStarted.bind(this));
22
+ return Promise.resolve();
23
+ }
24
+ destroyMetric() {
25
+ return Promise.resolve();
26
+ }
27
+ unsubscribe() {
28
+ this.instanceStartedUn();
29
+ return Promise.resolve();
30
+ }
31
+ handleInstanceStarted(args) {
32
+ try {
33
+ this.validator.validateInstanceStarted(args);
34
+ this.logger.debug(`instance started for application ${args.application} and metric ${this.settings.name} is being invoked`);
35
+ const data = this.getApplicationData(args.application);
36
+ this.appStartedMetric.add(1, data);
37
+ this.logger.debug(`metric ${this.settings.name} sent 1 more for app ${data.application}`);
38
+ }
39
+ catch (error) {
40
+ const message = `error while executing handleInstanceStarted for metric from type: ${this.settings.type}`;
41
+ this.logger.warn(message, error);
42
+ }
43
+ }
44
+ }
45
+ exports.ApplicationStartedMetric = ApplicationStartedMetric;
46
+ //# sourceMappingURL=started.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"started.js","sourceRoot":"","sources":["../../../../src/metrics/metrics/application/started.ts"],"names":[],"mappings":";;;AAEA,uCAA0C;AAC1C,6EAAoG;AAIpG,MAAa,wBAAyB,SAAQ,iBAAU;IAKpD,YACI,QAAgC,EACzB,KAAY,EACnB,MAAc,EACP,sBAA6C;QAEpD,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAJjB,UAAK,GAAL,KAAK,CAAO;QAEZ,2BAAsB,GAAtB,sBAAsB,CAAuB;QAGpD,IAAI,CAAC,SAAS,GAAG,IAAI,2CAAiC,EAAE,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAExE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5F,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,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,IAA+B;QACzD,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,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC7F;QAAC,OAAO,KAAK,EAAE;YACZ,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;AAtDD,4DAsDC"}
@@ -0,0 +1,18 @@
1
+ import { Meter } from "@opentelemetry/api";
2
+ import { InternalMetricSettings } from "../base/types";
3
+ import { MetricBase } from "../base/base";
4
+ import { Logger } from "../../../logger/types";
5
+ import { InstanceReadyHandler } from "../../dependencies/types";
6
+ export declare class ApplicationStartupMetric extends MetricBase {
7
+ private meter;
8
+ instanceReadyHandler: InstanceReadyHandler;
9
+ private instanceReadyUn;
10
+ private validator;
11
+ private appStartupMetric;
12
+ constructor(settings: InternalMetricSettings, meter: Meter, logger: Logger, instanceReadyHandler: InstanceReadyHandler);
13
+ protected createMetric(): Promise<void>;
14
+ protected subscribe(): Promise<void>;
15
+ protected unsubscribe(): Promise<void>;
16
+ protected destroyMetric(): Promise<void>;
17
+ private handleInstanceReady;
18
+ }