@interopio/otel 0.0.11 → 0.0.12

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 (223) hide show
  1. package/dist/builder.d.ts +15 -0
  2. package/dist/builder.js +44 -0
  3. package/dist/builder.js.map +1 -0
  4. package/dist/container.d.ts +14 -0
  5. package/dist/container.js +50 -0
  6. package/dist/container.js.map +1 -0
  7. package/dist/containerBuilder.d.ts +14 -0
  8. package/dist/containerBuilder.js +34 -0
  9. package/dist/containerBuilder.js.map +1 -0
  10. package/dist/index.d.ts +11 -0
  11. package/dist/index.js +23 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/logger/null.d.ts +9 -0
  14. package/dist/logger/null.js +25 -0
  15. package/dist/logger/null.js.map +1 -0
  16. package/dist/logger/types.d.ts +17 -0
  17. package/dist/logger/types.js +3 -0
  18. package/dist/logger/types.js.map +1 -0
  19. package/dist/logs/types.d.ts +6 -0
  20. package/dist/logs/types.js +3 -0
  21. package/dist/logs/types.js.map +1 -0
  22. package/dist/metrics/application/count.d.ts +21 -0
  23. package/dist/metrics/application/count.js +62 -0
  24. package/dist/metrics/application/count.js.map +1 -0
  25. package/dist/metrics/application/cpu.d.ts +12 -0
  26. package/dist/metrics/application/cpu.js +40 -0
  27. package/dist/metrics/application/cpu.js.map +1 -0
  28. package/dist/metrics/application/crash.d.ts +18 -0
  29. package/dist/metrics/application/crash.js +46 -0
  30. package/dist/metrics/application/crash.js.map +1 -0
  31. package/dist/metrics/application/duration.d.ts +7 -0
  32. package/dist/metrics/application/duration.js +19 -0
  33. package/dist/metrics/application/duration.js.map +1 -0
  34. package/dist/metrics/application/durationBase.d.ts +22 -0
  35. package/dist/metrics/application/durationBase.js +97 -0
  36. package/dist/metrics/application/durationBase.js.map +1 -0
  37. package/dist/metrics/application/error.d.ts +18 -0
  38. package/dist/metrics/application/error.js +46 -0
  39. package/dist/metrics/application/error.js.map +1 -0
  40. package/dist/metrics/application/memory.d.ts +12 -0
  41. package/dist/metrics/application/memory.js +41 -0
  42. package/dist/metrics/application/memory.js.map +1 -0
  43. package/dist/metrics/application/started.d.ts +18 -0
  44. package/dist/metrics/application/started.js +46 -0
  45. package/dist/metrics/application/started.js.map +1 -0
  46. package/dist/metrics/application/startup.d.ts +18 -0
  47. package/dist/metrics/application/startup.js +46 -0
  48. package/dist/metrics/application/startup.js.map +1 -0
  49. package/dist/metrics/application/stopped.d.ts +18 -0
  50. package/dist/metrics/application/stopped.js +46 -0
  51. package/dist/metrics/application/stopped.js.map +1 -0
  52. package/dist/metrics/base/base.d.ts +17 -0
  53. package/dist/metrics/base/base.js +71 -0
  54. package/dist/metrics/base/base.js.map +1 -0
  55. package/dist/metrics/base/gauge.d.ts +18 -0
  56. package/dist/metrics/base/gauge.js +61 -0
  57. package/dist/metrics/base/gauge.js.map +1 -0
  58. package/dist/metrics/base/null.d.ts +10 -0
  59. package/dist/metrics/base/null.js +22 -0
  60. package/dist/metrics/base/null.js.map +1 -0
  61. package/dist/metrics/base/observable.d.ts +20 -0
  62. package/dist/metrics/base/observable.js +69 -0
  63. package/dist/metrics/base/observable.js.map +1 -0
  64. package/dist/metrics/base/types.d.ts +31 -0
  65. package/dist/metrics/base/types.js +3 -0
  66. package/dist/metrics/base/types.js.map +1 -0
  67. package/dist/metrics/builder.d.ts +20 -0
  68. package/dist/metrics/builder.js +63 -0
  69. package/dist/metrics/builder.js.map +1 -0
  70. package/dist/metrics/dependencies/builder.d.ts +29 -0
  71. package/dist/metrics/dependencies/builder.js +87 -0
  72. package/dist/metrics/dependencies/builder.js.map +1 -0
  73. package/dist/metrics/dependencies/types.d.ts +91 -0
  74. package/dist/metrics/dependencies/types.js +3 -0
  75. package/dist/metrics/dependencies/types.js.map +1 -0
  76. package/dist/metrics/factory/builder.d.ts +31 -0
  77. package/dist/metrics/factory/builder.js +198 -0
  78. package/dist/metrics/factory/builder.js.map +1 -0
  79. package/dist/metrics/factory/factory.d.ts +10 -0
  80. package/dist/metrics/factory/factory.js +33 -0
  81. package/dist/metrics/factory/factory.js.map +1 -0
  82. package/dist/metrics/factory/types.d.ts +5 -0
  83. package/dist/metrics/factory/types.js +3 -0
  84. package/dist/metrics/factory/types.js.map +1 -0
  85. package/dist/metrics/layout/startup.d.ts +18 -0
  86. package/dist/metrics/layout/startup.js +46 -0
  87. package/dist/metrics/layout/startup.js.map +1 -0
  88. package/dist/metrics/manager.d.ts +23 -0
  89. package/dist/metrics/manager.js +120 -0
  90. package/dist/metrics/manager.js.map +1 -0
  91. package/dist/metrics/meter/lazyProvider.d.ts +11 -0
  92. package/dist/metrics/meter/lazyProvider.js +23 -0
  93. package/dist/metrics/meter/lazyProvider.js.map +1 -0
  94. package/dist/metrics/meter/providerFactory.d.ts +6 -0
  95. package/dist/metrics/meter/providerFactory.js +34 -0
  96. package/dist/metrics/meter/providerFactory.js.map +1 -0
  97. package/dist/metrics/meter/types.d.ts +14 -0
  98. package/dist/metrics/meter/types.js +3 -0
  99. package/dist/metrics/meter/types.js.map +1 -0
  100. package/dist/metrics/platform/error.d.ts +18 -0
  101. package/dist/metrics/platform/error.js +46 -0
  102. package/dist/metrics/platform/error.js.map +1 -0
  103. package/dist/metrics/platform/startup.d.ts +18 -0
  104. package/dist/metrics/platform/startup.js +58 -0
  105. package/dist/metrics/platform/startup.js.map +1 -0
  106. package/dist/metrics/settings/builder.d.ts +24 -0
  107. package/dist/metrics/settings/builder.js +115 -0
  108. package/dist/metrics/settings/builder.js.map +1 -0
  109. package/dist/metrics/settings/default.d.ts +30 -0
  110. package/dist/metrics/settings/default.js +121 -0
  111. package/dist/metrics/settings/default.js.map +1 -0
  112. package/dist/metrics/settings/types.d.ts +14 -0
  113. package/dist/metrics/settings/types.js +3 -0
  114. package/dist/metrics/settings/types.js.map +1 -0
  115. package/dist/metrics/system/cpu.d.ts +13 -0
  116. package/dist/metrics/system/cpu.js +46 -0
  117. package/dist/metrics/system/cpu.js.map +1 -0
  118. package/dist/metrics/system/memory.d.ts +13 -0
  119. package/dist/metrics/system/memory.js +47 -0
  120. package/dist/metrics/system/memory.js.map +1 -0
  121. package/dist/metrics/types.d.ts +16 -0
  122. package/dist/metrics/types.js +3 -0
  123. package/dist/metrics/types.js.map +1 -0
  124. package/dist/metrics/utils/nullMetricsManager.d.ts +6 -0
  125. package/dist/metrics/utils/nullMetricsManager.js +11 -0
  126. package/dist/metrics/utils/nullMetricsManager.js.map +1 -0
  127. package/dist/metrics/utils/nullPerfProvider.d.ts +7 -0
  128. package/dist/metrics/utils/nullPerfProvider.js +19 -0
  129. package/dist/metrics/utils/nullPerfProvider.js.map +1 -0
  130. package/dist/metrics/workspace/count.d.ts +21 -0
  131. package/dist/metrics/workspace/count.js +62 -0
  132. package/dist/metrics/workspace/count.js.map +1 -0
  133. package/dist/metrics/workspace/startup.d.ts +9 -0
  134. package/dist/metrics/workspace/startup.js +12 -0
  135. package/dist/metrics/workspace/startup.js.map +1 -0
  136. package/dist/metrics/workspace/stopped.d.ts +18 -0
  137. package/dist/metrics/workspace/stopped.js +46 -0
  138. package/dist/metrics/workspace/stopped.js.map +1 -0
  139. package/dist/traces/types.d.ts +6 -0
  140. package/dist/traces/types.js +3 -0
  141. package/dist/traces/types.js.map +1 -0
  142. package/dist/types.d.ts +20 -0
  143. package/dist/types.js +3 -0
  144. package/dist/types.js.map +1 -0
  145. package/dist/utils/nullManager.d.ts +7 -0
  146. package/dist/utils/nullManager.js +21 -0
  147. package/dist/utils/nullManager.js.map +1 -0
  148. package/dist/validation/builder.d.ts +4 -0
  149. package/dist/validation/builder.js +13 -0
  150. package/dist/validation/builder.js.map +1 -0
  151. package/dist/validation/container.d.ts +4 -0
  152. package/dist/validation/container.js +14 -0
  153. package/dist/validation/container.js.map +1 -0
  154. package/dist/validation/containerBuilder.d.ts +4 -0
  155. package/dist/validation/containerBuilder.js +14 -0
  156. package/dist/validation/containerBuilder.js.map +1 -0
  157. package/dist/validation/metrics/application/count.d.ts +7 -0
  158. package/dist/validation/metrics/application/count.js +21 -0
  159. package/dist/validation/metrics/application/count.js.map +1 -0
  160. package/dist/validation/metrics/application/duration.d.ts +6 -0
  161. package/dist/validation/metrics/application/duration.js +17 -0
  162. package/dist/validation/metrics/application/duration.js.map +1 -0
  163. package/dist/validation/metrics/application/error.d.ts +6 -0
  164. package/dist/validation/metrics/application/error.js +16 -0
  165. package/dist/validation/metrics/application/error.js.map +1 -0
  166. package/dist/validation/metrics/application/started.d.ts +6 -0
  167. package/dist/validation/metrics/application/started.js +16 -0
  168. package/dist/validation/metrics/application/started.js.map +1 -0
  169. package/dist/validation/metrics/application/startupHistogram.d.ts +6 -0
  170. package/dist/validation/metrics/application/startupHistogram.js +18 -0
  171. package/dist/validation/metrics/application/startupHistogram.js.map +1 -0
  172. package/dist/validation/metrics/application/stopped.d.ts +6 -0
  173. package/dist/validation/metrics/application/stopped.js +16 -0
  174. package/dist/validation/metrics/application/stopped.js.map +1 -0
  175. package/dist/validation/metrics/base/base.d.ts +5 -0
  176. package/dist/validation/metrics/base/base.js +22 -0
  177. package/dist/validation/metrics/base/base.js.map +1 -0
  178. package/dist/validation/metrics/base/gauge.d.ts +6 -0
  179. package/dist/validation/metrics/base/gauge.js +12 -0
  180. package/dist/validation/metrics/base/gauge.js.map +1 -0
  181. package/dist/validation/metrics/builder.d.ts +4 -0
  182. package/dist/validation/metrics/builder.js +13 -0
  183. package/dist/validation/metrics/builder.js.map +1 -0
  184. package/dist/validation/metrics/factory.d.ts +4 -0
  185. package/dist/validation/metrics/factory.js +13 -0
  186. package/dist/validation/metrics/factory.js.map +1 -0
  187. package/dist/validation/metrics/factoryBuilder.d.ts +5 -0
  188. package/dist/validation/metrics/factoryBuilder.js +23 -0
  189. package/dist/validation/metrics/factoryBuilder.js.map +1 -0
  190. package/dist/validation/metrics/layout/startupHistogram.d.ts +6 -0
  191. package/dist/validation/metrics/layout/startupHistogram.js +18 -0
  192. package/dist/validation/metrics/layout/startupHistogram.js.map +1 -0
  193. package/dist/validation/metrics/manager.d.ts +4 -0
  194. package/dist/validation/metrics/manager.js +15 -0
  195. package/dist/validation/metrics/manager.js.map +1 -0
  196. package/dist/validation/metrics/meterFactory.d.ts +4 -0
  197. package/dist/validation/metrics/meterFactory.js +16 -0
  198. package/dist/validation/metrics/meterFactory.js.map +1 -0
  199. package/dist/validation/metrics/perf.d.ts +8 -0
  200. package/dist/validation/metrics/perf.js +41 -0
  201. package/dist/validation/metrics/perf.js.map +1 -0
  202. package/dist/validation/metrics/platform/crash.d.ts +6 -0
  203. package/dist/validation/metrics/platform/crash.js +16 -0
  204. package/dist/validation/metrics/platform/crash.js.map +1 -0
  205. package/dist/validation/metrics/platform/error.d.ts +6 -0
  206. package/dist/validation/metrics/platform/error.js +15 -0
  207. package/dist/validation/metrics/platform/error.js.map +1 -0
  208. package/dist/validation/metrics/platform/startup.d.ts +6 -0
  209. package/dist/validation/metrics/platform/startup.js +18 -0
  210. package/dist/validation/metrics/platform/startup.js.map +1 -0
  211. package/dist/validation/metrics/settingsBuilder.d.ts +4 -0
  212. package/dist/validation/metrics/settingsBuilder.js +22 -0
  213. package/dist/validation/metrics/settingsBuilder.js.map +1 -0
  214. package/dist/validation/metrics/workspace/count.d.ts +7 -0
  215. package/dist/validation/metrics/workspace/count.js +21 -0
  216. package/dist/validation/metrics/workspace/count.js.map +1 -0
  217. package/dist/validation/metrics/workspace/stopped.d.ts +6 -0
  218. package/dist/validation/metrics/workspace/stopped.js +16 -0
  219. package/dist/validation/metrics/workspace/stopped.js.map +1 -0
  220. package/dist/validation/validator.d.ts +4 -0
  221. package/dist/validation/validator.js +15 -0
  222. package/dist/validation/validator.js.map +1 -0
  223. package/package.json +1 -1
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetricsFactoryBuilder = void 0;
4
+ const started_1 = require("../application/started");
5
+ const stopped_1 = require("../application/stopped");
6
+ const count_1 = require("../application/count");
7
+ const duration_1 = require("../application/duration");
8
+ const memory_1 = require("../application/memory");
9
+ const cpu_1 = require("../application/cpu");
10
+ const memory_2 = require("../system/memory");
11
+ const cpu_2 = require("../system/cpu");
12
+ const startup_1 = require("../platform/startup");
13
+ const factory_1 = require("./factory");
14
+ const factoryBuilder_1 = require("../../validation/metrics/factoryBuilder");
15
+ const startup_2 = require("../workspace/startup");
16
+ const stopped_2 = require("../workspace/stopped");
17
+ const startup_3 = require("../application/startup");
18
+ const startup_4 = require("../layout/startup");
19
+ const error_1 = require("../application/error");
20
+ const crash_1 = require("../application/crash");
21
+ const error_2 = require("../platform/error");
22
+ const count_2 = require("../workspace/count");
23
+ class MetricsFactoryBuilder {
24
+ constructor(lazyMeterProvider, dependencyContainer, logger) {
25
+ this.lazyMeterProvider = lazyMeterProvider;
26
+ this.dependencyContainer = dependencyContainer;
27
+ this.logger = logger;
28
+ this.metricsFactories = new Map();
29
+ this.metricsFactories = new Map();
30
+ }
31
+ get meter() {
32
+ const meter = this.lazyMeterProvider.getMeter();
33
+ return meter;
34
+ }
35
+ build() {
36
+ const validator = new factoryBuilder_1.MetricsFactoryBuilderValidator();
37
+ validator.validate(this);
38
+ const metricsFactory = new factory_1.MetricsFactory(this.logger, this.metricsFactories);
39
+ return metricsFactory;
40
+ }
41
+ withDefaults() {
42
+ return this.withAppStarted()
43
+ .withAppStopped()
44
+ .withAppStartupHistogram()
45
+ .withAppCount()
46
+ .withAppDurationHistogram()
47
+ .withAppMemory()
48
+ .withAppCPU()
49
+ .withSystemMemory()
50
+ .withSystemCPU()
51
+ .withAppError()
52
+ .withAppCrash()
53
+ .withLayoutStartupHistogram()
54
+ .withWorkspaceStartupHistogram()
55
+ .withWorkspaceStopped()
56
+ .withWorkspaceCount()
57
+ .withPlatformStartup()
58
+ .withPlatformError();
59
+ }
60
+ withAppStarted() {
61
+ const func = (settings) => {
62
+ const metric = new started_1.ApplicationStartedMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceStartedHandler);
63
+ return metric;
64
+ };
65
+ this.metricsFactories.set("app_started", func.bind(this));
66
+ return this;
67
+ }
68
+ withAppStopped() {
69
+ const func = (settings) => {
70
+ const metric = new stopped_1.ApplicationStoppedMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceStoppedHandler);
71
+ return metric;
72
+ };
73
+ this.metricsFactories.set("app_stopped", func.bind(this));
74
+ return this;
75
+ }
76
+ withAppStartupHistogram() {
77
+ const func = (settings) => {
78
+ const metric = new startup_3.ApplicationStartupMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceReadyHandler);
79
+ return metric;
80
+ };
81
+ this.metricsFactories.set("app_startup", func.bind(this));
82
+ return this;
83
+ }
84
+ withAppCount() {
85
+ const func = (settings) => {
86
+ const metric = new count_1.ApplicationCountMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceStartedHandler, this.dependencyContainer.instanceStoppedHandler);
87
+ return metric;
88
+ };
89
+ this.metricsFactories.set("app_count", func.bind(this));
90
+ return this;
91
+ }
92
+ withAppDurationHistogram() {
93
+ const func = (settings) => {
94
+ const metric = new duration_1.ApplicationDurationMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceFocusedHandler);
95
+ return metric;
96
+ };
97
+ this.metricsFactories.set("app_duration", func.bind(this));
98
+ return this;
99
+ }
100
+ withAppMemory() {
101
+ const func = (settings) => {
102
+ const metric = new memory_1.ApplicationMemoryMetric(settings, this.meter, this.logger, this.dependencyContainer.performanceProvider);
103
+ return metric;
104
+ };
105
+ this.metricsFactories.set("app_memory", func.bind(this));
106
+ return this;
107
+ }
108
+ withAppCPU() {
109
+ const func = (settings) => {
110
+ const metric = new cpu_1.ApplicationCPUMetric(settings, this.meter, this.logger, this.dependencyContainer.performanceProvider);
111
+ return metric;
112
+ };
113
+ this.metricsFactories.set("app_cpu", func.bind(this));
114
+ return this;
115
+ }
116
+ withAppError() {
117
+ const func = (settings) => {
118
+ const metric = new error_1.ApplicationErrorMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceErrorHandler);
119
+ return metric;
120
+ };
121
+ this.metricsFactories.set("app_error", func.bind(this));
122
+ return this;
123
+ }
124
+ withAppCrash() {
125
+ const func = (settings) => {
126
+ const metric = new crash_1.ApplicationCrashMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceCrashHandler);
127
+ return metric;
128
+ };
129
+ this.metricsFactories.set("app_crash", func.bind(this));
130
+ return this;
131
+ }
132
+ withSystemMemory() {
133
+ const func = (settings) => {
134
+ const metric = new memory_2.SystemMemoryMetric(settings, this.meter, this.logger, this.dependencyContainer.performanceProvider);
135
+ return metric;
136
+ };
137
+ this.metricsFactories.set("system_memory", func.bind(this));
138
+ return this;
139
+ }
140
+ withSystemCPU() {
141
+ const func = (settings) => {
142
+ const metric = new cpu_2.SystemCPUMetric(settings, this.meter, this.logger, this.dependencyContainer.performanceProvider);
143
+ return metric;
144
+ };
145
+ this.metricsFactories.set("system_cpu", func.bind(this));
146
+ return this;
147
+ }
148
+ withLayoutStartupHistogram() {
149
+ const func = (settings) => {
150
+ const metric = new startup_4.LayoutStartupMetric(settings, this.meter, this.logger, this.dependencyContainer.layoutRestoredHandler);
151
+ return metric;
152
+ };
153
+ this.metricsFactories.set("layout_startup", func.bind(this));
154
+ return this;
155
+ }
156
+ withWorkspaceStartupHistogram() {
157
+ const func = (settings) => {
158
+ const metric = new startup_2.WorkspaceStartupHistogramMetric(settings, this.meter, this.logger, this.dependencyContainer.workspaceRestoredHandler);
159
+ return metric;
160
+ };
161
+ this.metricsFactories.set("workspace_startup", func.bind(this));
162
+ return this;
163
+ }
164
+ withWorkspaceStopped() {
165
+ const func = (settings) => {
166
+ const metric = new stopped_2.WorkspaceStoppedMetric(settings, this.meter, this.logger, this.dependencyContainer.workspaceStoppedHandler);
167
+ return metric;
168
+ };
169
+ this.metricsFactories.set("workspace_stopped", func.bind(this));
170
+ return this;
171
+ }
172
+ withWorkspaceCount() {
173
+ const func = (settings) => {
174
+ const metric = new count_2.WorkspaceCountMetric(settings, this.meter, this.logger, this.dependencyContainer.workspaceRestoredHandler, this.dependencyContainer.workspaceStoppedHandler);
175
+ return metric;
176
+ };
177
+ this.metricsFactories.set("workspace_count", func.bind(this));
178
+ return this;
179
+ }
180
+ withPlatformStartup() {
181
+ const func = (settings) => {
182
+ const metric = new startup_1.PlatformStartupMetric(settings, this.meter, this.logger, this.dependencyContainer.platformStartedHandler);
183
+ return metric;
184
+ };
185
+ this.metricsFactories.set("platform_startup", func.bind(this));
186
+ return this;
187
+ }
188
+ withPlatformError() {
189
+ const func = (settings) => {
190
+ const metric = new error_2.PlatformErrorMetric(settings, this.meter, this.logger, this.dependencyContainer.platformErrorHandler);
191
+ return metric;
192
+ };
193
+ this.metricsFactories.set("platform_error", func.bind(this));
194
+ return this;
195
+ }
196
+ }
197
+ exports.MetricsFactoryBuilder = MetricsFactoryBuilder;
198
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/metrics/factory/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Logger } from "../../logger/types";
2
+ import { Metric, InternalMetricSettings, MetricType } from "../base/types";
3
+ import { CreateMetricFunc, MetricsFactory as IMetricsFactory } from "./types";
4
+ export declare class MetricsFactory implements IMetricsFactory {
5
+ logger: Logger;
6
+ metricsFactories: Map<MetricType, CreateMetricFunc>;
7
+ constructor(logger: Logger, metricsFactories: Map<MetricType, CreateMetricFunc>);
8
+ create(metricSettings: InternalMetricSettings): Metric;
9
+ private createNullMetric;
10
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetricsFactory = void 0;
4
+ const factory_1 = require("../../validation/metrics/factory");
5
+ const null_1 = require("../base/null");
6
+ class MetricsFactory {
7
+ constructor(logger, metricsFactories) {
8
+ this.logger = logger;
9
+ this.metricsFactories = metricsFactories;
10
+ const validator = new factory_1.MetricsFactoryValidator();
11
+ validator.validate(this);
12
+ }
13
+ create(metricSettings) {
14
+ const metricType = metricSettings.type;
15
+ const hasMetricFactory = this.metricsFactories.has(metricType);
16
+ if (hasMetricFactory) {
17
+ const metricFactory = this.metricsFactories.get(metricType);
18
+ const metric = metricFactory(metricSettings);
19
+ return metric;
20
+ }
21
+ else {
22
+ const nullMetric = this.createNullMetric(metricSettings, "not supported");
23
+ return nullMetric;
24
+ }
25
+ }
26
+ createNullMetric(settings, reason) {
27
+ this.logger.debug(`cannot create ${settings.name} metric, reason: ${reason}`);
28
+ const nullMetric = new null_1.NullMetric(settings, this.logger);
29
+ return nullMetric;
30
+ }
31
+ }
32
+ exports.MetricsFactory = MetricsFactory;
33
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/metrics/factory/factory.ts"],"names":[],"mappings":";;;AACA,8DAA2E;AAE3E,uCAA0C;AAG1C,MAAa,cAAc;IACvB,YACW,MAAc,EACd,gBAAmD;QADnD,WAAM,GAAN,MAAM,CAAQ;QACd,qBAAgB,GAAhB,gBAAgB,CAAmC;QAE1D,MAAM,SAAS,GAAG,IAAI,iCAAuB,EAAE,CAAC;QAChD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,cAAsC;QAChD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC;QACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE/D,IAAI,gBAAgB,EAAE;YAClB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;YAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;YAC7C,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAC1E,OAAO,UAAU,CAAC;SACrB;IACL,CAAC;IAEO,gBAAgB,CAAC,QAAgC,EAAE,MAAc;QACrE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,QAAQ,CAAC,IAAI,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,IAAI,iBAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AA5BD,wCA4BC"}
@@ -0,0 +1,5 @@
1
+ import { Metric, InternalMetricSettings } from "../base/types";
2
+ export interface MetricsFactory {
3
+ create(settings: InternalMetricSettings): Metric;
4
+ }
5
+ export type CreateMetricFunc = (settings: InternalMetricSettings) => Metric;
@@ -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/factory/types.ts"],"names":[],"mappings":""}
@@ -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 { LayoutRestoredHandler } from "../dependencies/types";
6
+ export declare class LayoutStartupMetric extends MetricBase {
7
+ private meter;
8
+ layoutRestoredHandler: LayoutRestoredHandler;
9
+ private layoutRestoredUn;
10
+ private validator;
11
+ private layoutStartupMetric;
12
+ constructor(settings: InternalMetricSettings, meter: Meter, logger: Logger, layoutRestoredHandler: LayoutRestoredHandler);
13
+ protected createMetric(): Promise<void>;
14
+ protected subscribe(): Promise<void>;
15
+ protected unsubscribe(): Promise<void>;
16
+ protected destroyMetric(): Promise<void>;
17
+ private handleLayoutRestored;
18
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LayoutStartupMetric = void 0;
4
+ const startupHistogram_1 = require("../../validation/metrics/layout/startupHistogram");
5
+ const base_1 = require("../base/base");
6
+ class LayoutStartupMetric extends base_1.MetricBase {
7
+ constructor(settings, meter, logger, layoutRestoredHandler) {
8
+ super(settings, logger);
9
+ this.meter = meter;
10
+ this.layoutRestoredHandler = layoutRestoredHandler;
11
+ this.validator = new startupHistogram_1.LayoutStartupMetricHistogramValidator();
12
+ this.validator.validate(this);
13
+ }
14
+ createMetric() {
15
+ const advice = { explicitBucketBoundaries: this.settings.buckets };
16
+ this.layoutStartupMetric = this.meter.createHistogram(this.settings.name, { description: this.settings.description, unit: this.settings.unit, advice });
17
+ return Promise.resolve();
18
+ }
19
+ subscribe() {
20
+ this.layoutRestoredUn = this.layoutRestoredHandler(this.handleLayoutRestored.bind(this));
21
+ return Promise.resolve();
22
+ }
23
+ unsubscribe() {
24
+ this.layoutRestoredUn();
25
+ return Promise.resolve();
26
+ }
27
+ destroyMetric() {
28
+ return Promise.resolve();
29
+ }
30
+ handleLayoutRestored(args) {
31
+ try {
32
+ this.validator.validateLayoutRestored(args);
33
+ this.logger.debug(`layout restored is being invoked for metric ${this.settings.name}`);
34
+ const startupTime = args.endTime.getTime() - args.startTime.getTime();
35
+ const data = this.getLayoutData(args.layout);
36
+ this.layoutStartupMetric.record(startupTime, data);
37
+ this.logger.debug(`metric ${this.settings.name} sent startup time ${startupTime} for layout ${data.layout}`);
38
+ }
39
+ catch (error) {
40
+ const message = `error while executing handleLayoutRestored for metric from type: ${this.settings.type}`;
41
+ this.logger.warn(message, error);
42
+ }
43
+ }
44
+ }
45
+ exports.LayoutStartupMetric = LayoutStartupMetric;
46
+ //# sourceMappingURL=startup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/metrics/layout/startup.ts"],"names":[],"mappings":";;;AAEA,uFAAyG;AACzG,uCAA0C;AAI1C,MAAa,mBAAoB,SAAQ,iBAAU;IAK/C,YACI,QAAgC,EACxB,KAAY,EACpB,MAAc,EACP,qBAA4C;QAEnD,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAJhB,UAAK,GAAL,KAAK,CAAO;QAEb,0BAAqB,GAArB,qBAAqB,CAAuB;QAInD,IAAI,CAAC,SAAS,GAAG,IAAI,wDAAqC,EAAE,CAAC;QAC7D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEkB,YAAY;QAC3B,MAAM,MAAM,GAAG,EAAE,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnE,IAAI,CAAC,mBAAmB,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;QAExJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,oBAAoB,CAAC,IAA+B;QACxD,IAAI;YACA,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAE5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAEvF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAEnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,WAAW,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAChH;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,OAAO,GAAG,oEAAoE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACpC;IACL,CAAC;CACJ;AAtDD,kDAsDC"}
@@ -0,0 +1,23 @@
1
+ import { Logger } from "../logger/types";
2
+ import { Metric, MetricType } from "./base/types";
3
+ import { MetricsFactory } from "./factory/types";
4
+ import { LazyMetricsMeterProvider } from "./meter/lazyProvider";
5
+ import { InternalMetricsSettings } from "./settings/types";
6
+ import { MetricsManager as IMetricsManager } from "./types";
7
+ export declare class MetricsManager implements IMetricsManager {
8
+ settings: InternalMetricsSettings;
9
+ metricsFactory: MetricsFactory;
10
+ meterProvider: LazyMetricsMeterProvider;
11
+ logger: Logger;
12
+ private metrics;
13
+ started: boolean;
14
+ constructor(settings: InternalMetricsSettings, metricsFactory: MetricsFactory, meterProvider: LazyMetricsMeterProvider, logger: Logger);
15
+ get(type: MetricType): Metric | undefined;
16
+ start(): Promise<void>;
17
+ stop(): Promise<void>;
18
+ private createEnabledMetrics;
19
+ private getOrCreateMetric;
20
+ private createMetric;
21
+ private startMetric;
22
+ private stopMetric;
23
+ }
@@ -0,0 +1,120 @@
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
+ class MetricsManager {
15
+ constructor(settings, metricsFactory, meterProvider, logger) {
16
+ this.settings = settings;
17
+ this.metricsFactory = metricsFactory;
18
+ this.meterProvider = meterProvider;
19
+ this.logger = logger;
20
+ this.metrics = new Map();
21
+ this.started = false;
22
+ const validator = new manager_1.MetricsManagerValidator();
23
+ validator.validate(this);
24
+ }
25
+ get(type) {
26
+ const metric = this.getOrCreateMetric(type);
27
+ return metric;
28
+ }
29
+ start() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ try {
32
+ this.metrics = this.createEnabledMetrics(this.settings.metrics);
33
+ for (const metricKvp of this.metrics) {
34
+ const metric = metricKvp[1];
35
+ yield this.startMetric(metric);
36
+ }
37
+ this.started = true;
38
+ this.logger.debug("metrics manager has been started");
39
+ }
40
+ catch (error) {
41
+ const message = "error while starting metrics manager";
42
+ this.logger.warn(message, error);
43
+ }
44
+ });
45
+ }
46
+ stop() {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ try {
49
+ for (const metricKvp of this.metrics) {
50
+ const metric = metricKvp[1];
51
+ yield this.stopMetric(metric);
52
+ }
53
+ yield this.meterProvider.forceFlush();
54
+ this.started = false;
55
+ this.logger.debug("metrics manager has been stopped");
56
+ }
57
+ catch (error) {
58
+ const message = "error while stopping metrics manager";
59
+ this.logger.warn(message, error);
60
+ }
61
+ });
62
+ }
63
+ createEnabledMetrics(metrics) {
64
+ const notCreateYet = metrics.filter((m) => !this.metrics.has(m.type));
65
+ const enabled = notCreateYet.filter((m) => m.enabled);
66
+ const created = new Map();
67
+ enabled.forEach((metricSettings) => {
68
+ const metric = this.createMetric(metricSettings);
69
+ if (metric) {
70
+ created.set(metric.settings.type, metric);
71
+ }
72
+ });
73
+ return created;
74
+ }
75
+ getOrCreateMetric(type) {
76
+ const metricSettings = this.settings.metrics.find((m) => m.type === type);
77
+ if (metricSettings) {
78
+ const metric = this.createMetric(metricSettings);
79
+ if (metric) {
80
+ this.metrics.set(metric.settings.type, metric);
81
+ return metric;
82
+ }
83
+ }
84
+ }
85
+ createMetric(settings) {
86
+ try {
87
+ const metric = this.metricsFactory.create(settings);
88
+ return metric;
89
+ }
90
+ catch (error) {
91
+ const message = `error while creating metric from type: ${settings.type}`;
92
+ this.logger.warn(message, error);
93
+ return undefined;
94
+ }
95
+ }
96
+ startMetric(metric) {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ try {
99
+ yield metric.start();
100
+ }
101
+ catch (error) {
102
+ const message = `error while starting metric from type: ${metric.settings.type}`;
103
+ this.logger.warn(message, error);
104
+ }
105
+ });
106
+ }
107
+ stopMetric(metric) {
108
+ return __awaiter(this, void 0, void 0, function* () {
109
+ try {
110
+ yield metric.stop();
111
+ }
112
+ catch (error) {
113
+ const message = `error while stopping metric from type: ${metric.settings.type}`;
114
+ this.logger.warn(message, error);
115
+ }
116
+ });
117
+ }
118
+ }
119
+ exports.MetricsManager = MetricsManager;
120
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/metrics/manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2DAAwE;AAOxE,MAAa,cAAc;IAKvB,YACW,QAAiC,EACjC,cAA8B,EAC9B,aAAuC,EACvC,MAAc;QAHd,aAAQ,GAAR,QAAQ,CAAyB;QACjC,mBAAc,GAAd,cAAc,CAAgB;QAC9B,kBAAa,GAAb,aAAa,CAA0B;QACvC,WAAM,GAAN,MAAM,CAAQ;QARjB,YAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;QAEzC,YAAO,GAAG,KAAK,CAAC;QAQnB,MAAM,SAAS,GAAG,IAAI,iCAAuB,EAAE,CAAC;QAChD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,GAAG,CAAC,IAAgB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC;IAClB,CAAC;IAEY,KAAK;;YACd,IAAI;gBACA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAEhE,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE;oBAClC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;iBAClC;gBAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;aACzD;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,OAAO,GAAG,sCAAsC,CAAC;gBACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACpC;QACL,CAAC;KAAA;IAEY,IAAI;;YACb,IAAI;gBACA,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE;oBAClC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;iBACjC;gBAED,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;gBAEtC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;aACzD;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,OAAO,GAAG,sCAAsC,CAAC;gBACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACpC;QACL,CAAC;KAAA;IAEO,oBAAoB,CAAC,OAAiC;QAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAEtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC9C,OAAO,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;YACjD,IAAI,MAAM,EAAE;gBACR,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;aAC7C;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,iBAAiB,CAAC,IAAgB;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAE1E,IAAI,cAAc,EAAE;YAChB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;YACjD,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC/C,OAAO,MAAM,CAAC;aACjB;SACJ;IACL,CAAC;IAEO,YAAY,CAAC,QAAgC;QACjD,IAAI;YACA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpD,OAAO,MAAM,CAAC;SACjB;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,OAAO,GAAG,0CAA0C,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACjC,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAEa,WAAW,CAAC,MAAc;;YACpC,IAAI;gBACA,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;aACxB;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,OAAO,GAAG,0CAA0C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACjF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACpC;QACL,CAAC;KAAA;IAEa,UAAU,CAAC,MAAc;;YACnC,IAAI;gBACA,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;aACvB;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,OAAO,GAAG,0CAA0C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACjF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACpC;QACL,CAAC;KAAA;CACJ;AA7GD,wCA6GC"}
@@ -0,0 +1,11 @@
1
+ import { Meter } from "@opentelemetry/api";
2
+ import { MetricsMeterProviderCreateFunc } from "./types";
3
+ export declare class LazyMetricsMeterProvider {
4
+ private meterProviderCreateFunc;
5
+ private serviceName;
6
+ private meterProvider;
7
+ constructor(meterProviderCreateFunc: MetricsMeterProviderCreateFunc, serviceName: string);
8
+ getMeter(): Meter;
9
+ forceFlush(): Promise<void>;
10
+ private getMeterProvider;
11
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LazyMetricsMeterProvider = void 0;
4
+ class LazyMetricsMeterProvider {
5
+ constructor(meterProviderCreateFunc, serviceName) {
6
+ this.meterProviderCreateFunc = meterProviderCreateFunc;
7
+ this.serviceName = serviceName;
8
+ }
9
+ getMeter() {
10
+ const provider = this.getMeterProvider();
11
+ return provider.getMeter(this.serviceName);
12
+ }
13
+ forceFlush() {
14
+ const provider = this.getMeterProvider();
15
+ return provider.forceFlush();
16
+ }
17
+ getMeterProvider() {
18
+ var _a;
19
+ return (_a = this.meterProvider) !== null && _a !== void 0 ? _a : (this.meterProvider = this.meterProviderCreateFunc());
20
+ }
21
+ }
22
+ exports.LazyMetricsMeterProvider = LazyMetricsMeterProvider;
23
+ //# sourceMappingURL=lazyProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazyProvider.js","sourceRoot":"","sources":["../../../src/metrics/meter/lazyProvider.ts"],"names":[],"mappings":";;;AAGA,MAAa,wBAAwB;IAGjC,YACY,uBAAuD,EACvD,WAAmB;QADnB,4BAAuB,GAAvB,uBAAuB,CAAgC;QACvD,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;IAEO,gBAAgB;;QACpB,OAAO,MAAA,IAAI,CAAC,aAAa,mCAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACvF,CAAC;CACJ;AApBD,4DAoBC"}
@@ -0,0 +1,6 @@
1
+ import { MeterProvider } from "@opentelemetry/sdk-metrics";
2
+ import { InternalMetricsMeterSettings } from "./types";
3
+ export declare class MetricsMeterProviderFactory {
4
+ create(settings: InternalMetricsMeterSettings): MeterProvider;
5
+ private createMeterProvider;
6
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetricsMeterProviderFactory = void 0;
4
+ const resources_1 = require("@opentelemetry/resources");
5
+ const exporter_metrics_otlp_http_1 = require("@opentelemetry/exporter-metrics-otlp-http");
6
+ const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
7
+ const meterFactory_1 = require("../../validation/metrics/meterFactory");
8
+ class MetricsMeterProviderFactory {
9
+ create(settings) {
10
+ const validator = new meterFactory_1.MetricsMeterFactoryValidator();
11
+ validator.validate(settings);
12
+ const metricExporter = new exporter_metrics_otlp_http_1.OTLPMetricExporter(Object.assign({}, settings));
13
+ const metricReader = new sdk_metrics_1.PeriodicExportingMetricReader({
14
+ exporter: metricExporter,
15
+ exportIntervalMillis: settings.publishInterval,
16
+ });
17
+ const meterProvider = this.createMeterProvider(settings, metricReader);
18
+ return meterProvider;
19
+ }
20
+ createMeterProvider(settings, metricReader) {
21
+ const meterProvider = new sdk_metrics_1.MeterProvider({
22
+ resource: new resources_1.Resource({
23
+ "service.name": `${settings.serviceName}`,
24
+ "service.instance.id": `${settings.serviceId}`,
25
+ "service.version": `${settings.serviceVersion}`,
26
+ "user.id": `${settings.userId}`
27
+ }),
28
+ readers: [metricReader]
29
+ });
30
+ return meterProvider;
31
+ }
32
+ }
33
+ exports.MetricsMeterProviderFactory = MetricsMeterProviderFactory;
34
+ //# sourceMappingURL=providerFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerFactory.js","sourceRoot":"","sources":["../../../src/metrics/meter/providerFactory.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AACpD,0FAA+E;AAC/E,4DAAwG;AACxG,wEAAqF;AAGrF,MAAa,2BAA2B;IAC7B,MAAM,CAAC,QAAsC;QAChD,MAAM,SAAS,GAAG,IAAI,2CAA4B,EAAE,CAAC;QACrD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE7B,MAAM,cAAc,GAAG,IAAI,+CAAkB,mBAAM,QAAQ,EAAG,CAAC;QAE/D,MAAM,YAAY,GAAG,IAAI,2CAA6B,CAAC;YACnD,QAAQ,EAAE,cAAc;YACxB,oBAAoB,EAAE,QAAQ,CAAC,eAAe;SACjD,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEvE,OAAO,aAAa,CAAC;IACzB,CAAC;IAEO,mBAAmB,CAAC,QAAsC,EAAE,YAA0B;QAC1F,MAAM,aAAa,GAAG,IAAI,2BAAa,CAAC;YACpC,QAAQ,EAAE,IAAI,oBAAQ,CAClB;gBACI,cAAc,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE;gBACzC,qBAAqB,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE;gBAC9C,iBAAiB,EAAE,GAAG,QAAQ,CAAC,cAAc,EAAE;gBAC/C,SAAS,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE;aAClC,CAAC;YACN,OAAO,EAAE,CAAC,YAAY,CAAC;SAC1B,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACzB,CAAC;CACJ;AA/BD,kEA+BC"}
@@ -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,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 { PlatformErrorHandler } from "../dependencies/types";
6
+ export declare class PlatformErrorMetric extends MetricBase {
7
+ meter: Meter;
8
+ platformErrorHandler: PlatformErrorHandler;
9
+ private platformErrorMetric;
10
+ private platformErrorUn;
11
+ private validator;
12
+ constructor(settings: InternalMetricSettings, meter: Meter, logger: Logger, platformErrorHandler: PlatformErrorHandler);
13
+ protected createMetric(): Promise<void>;
14
+ protected subscribe(): Promise<void>;
15
+ protected destroyMetric(): Promise<void>;
16
+ protected unsubscribe(): Promise<void>;
17
+ private handlePlatformError;
18
+ }