@interopio/otel 0.0.12 → 0.0.14

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 (184) hide show
  1. package/README.md +9 -1
  2. package/dist/builder.d.ts +5 -2
  3. package/dist/builder.js +37 -9
  4. package/dist/builder.js.map +1 -1
  5. package/dist/container.js +1 -0
  6. package/dist/container.js.map +1 -1
  7. package/dist/index.d.ts +5 -2
  8. package/dist/index.js +7 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/logger/log4jsWrapper.d.ts +13 -0
  11. package/dist/logger/log4jsWrapper.js +54 -0
  12. package/dist/logger/log4jsWrapper.js.map +1 -0
  13. package/dist/logger/types.d.ts +1 -1
  14. package/dist/metrics/factory/builder.d.ts +1 -0
  15. package/dist/metrics/factory/builder.js +27 -17
  16. package/dist/metrics/factory/builder.js.map +1 -1
  17. package/dist/metrics/factory/factory.d.ts +1 -1
  18. package/dist/metrics/factory/factory.js +1 -1
  19. package/dist/metrics/factory/factory.js.map +1 -1
  20. package/dist/metrics/factory/types.d.ts +1 -1
  21. package/dist/metrics/manager.d.ts +1 -1
  22. package/dist/metrics/manager.js +15 -15
  23. package/dist/metrics/manager.js.map +1 -1
  24. package/dist/metrics/{application → metrics/application}/count.d.ts +2 -2
  25. package/dist/metrics/{application → metrics/application}/count.js +1 -1
  26. package/dist/metrics/metrics/application/count.js.map +1 -0
  27. package/dist/metrics/{application → metrics/application}/cpu.d.ts +2 -2
  28. package/dist/metrics/{application → metrics/application}/cpu.js +2 -2
  29. package/dist/metrics/metrics/application/cpu.js.map +1 -0
  30. package/dist/metrics/{application → metrics/application}/crash.d.ts +2 -2
  31. package/dist/metrics/{application → metrics/application}/crash.js +1 -1
  32. package/dist/metrics/metrics/application/crash.js.map +1 -0
  33. package/dist/metrics/{application/durationBase.d.ts → metrics/application/duration.d.ts} +13 -8
  34. package/dist/metrics/{application/durationBase.js → metrics/application/duration.js} +19 -16
  35. package/dist/metrics/metrics/application/duration.js.map +1 -0
  36. package/dist/metrics/metrics/application/durationSoft.d.ts +4 -0
  37. package/dist/metrics/metrics/application/durationSoft.js +34 -0
  38. package/dist/metrics/metrics/application/durationSoft.js.map +1 -0
  39. package/dist/metrics/{application → metrics/application}/error.d.ts +2 -2
  40. package/dist/metrics/{application → metrics/application}/error.js +1 -1
  41. package/dist/metrics/metrics/application/error.js.map +1 -0
  42. package/dist/metrics/{application → metrics/application}/memory.d.ts +3 -2
  43. package/dist/metrics/{application → metrics/application}/memory.js +5 -5
  44. package/dist/metrics/metrics/application/memory.js.map +1 -0
  45. package/dist/metrics/{application → metrics/application}/started.d.ts +2 -2
  46. package/dist/metrics/{application → metrics/application}/started.js +1 -1
  47. package/dist/metrics/metrics/application/started.js.map +1 -0
  48. package/dist/metrics/{application → metrics/application}/startup.d.ts +2 -2
  49. package/dist/metrics/{application → metrics/application}/startup.js +1 -1
  50. package/dist/metrics/metrics/application/startup.js.map +1 -0
  51. package/dist/metrics/{application → metrics/application}/stopped.d.ts +2 -2
  52. package/dist/metrics/{application → metrics/application}/stopped.js +1 -1
  53. package/dist/metrics/metrics/application/stopped.js.map +1 -0
  54. package/dist/metrics/{base → metrics/base}/base.d.ts +2 -2
  55. package/dist/metrics/{base → metrics/base}/base.js +1 -1
  56. package/dist/metrics/metrics/base/base.js.map +1 -0
  57. package/dist/metrics/{base → metrics/base}/gauge.d.ts +2 -2
  58. package/dist/metrics/{base → metrics/base}/gauge.js +1 -1
  59. package/dist/metrics/metrics/base/gauge.js.map +1 -0
  60. package/dist/metrics/{base → metrics/base}/null.d.ts +1 -1
  61. package/dist/metrics/metrics/base/null.js.map +1 -0
  62. package/dist/metrics/{base → metrics/base}/observable.d.ts +2 -2
  63. package/dist/metrics/{base → metrics/base}/observable.js +1 -1
  64. package/dist/metrics/metrics/base/observable.js.map +1 -0
  65. package/dist/metrics/{base → metrics/base}/types.d.ts +1 -1
  66. package/dist/metrics/metrics/base/types.js.map +1 -0
  67. package/dist/metrics/{layout → metrics/layout}/startup.d.ts +2 -2
  68. package/dist/metrics/{layout → metrics/layout}/startup.js +1 -1
  69. package/dist/metrics/metrics/layout/startup.js.map +1 -0
  70. package/dist/metrics/{platform → metrics/platform}/error.d.ts +2 -2
  71. package/dist/metrics/{platform → metrics/platform}/error.js +1 -1
  72. package/dist/metrics/metrics/platform/error.js.map +1 -0
  73. package/dist/metrics/{platform → metrics/platform}/startup.d.ts +2 -2
  74. package/dist/metrics/{platform → metrics/platform}/startup.js +2 -2
  75. package/dist/metrics/metrics/platform/startup.js.map +1 -0
  76. package/dist/metrics/{system → metrics/system}/cpu.d.ts +3 -2
  77. package/dist/metrics/{system → metrics/system}/cpu.js +5 -5
  78. package/dist/metrics/metrics/system/cpu.js.map +1 -0
  79. package/dist/metrics/{system → metrics/system}/memory.d.ts +3 -2
  80. package/dist/metrics/{system → metrics/system}/memory.js +5 -5
  81. package/dist/metrics/metrics/system/memory.js.map +1 -0
  82. package/dist/metrics/{workspace → metrics/workspace}/count.d.ts +2 -2
  83. package/dist/metrics/{workspace → metrics/workspace}/count.js +1 -1
  84. package/dist/metrics/metrics/workspace/count.js.map +1 -0
  85. package/dist/metrics/{workspace → metrics/workspace}/startup.d.ts +2 -2
  86. package/dist/metrics/metrics/workspace/startup.js.map +1 -0
  87. package/dist/metrics/{workspace → metrics/workspace}/stopped.d.ts +2 -2
  88. package/dist/metrics/{workspace → metrics/workspace}/stopped.js +1 -1
  89. package/dist/metrics/metrics/workspace/stopped.js.map +1 -0
  90. package/dist/metrics/settings/builder.d.ts +1 -1
  91. package/dist/metrics/settings/default.d.ts +2 -2
  92. package/dist/metrics/settings/default.js +3 -3
  93. package/dist/metrics/settings/default.js.map +1 -1
  94. package/dist/metrics/settings/types.d.ts +1 -1
  95. package/dist/metrics/types.d.ts +1 -1
  96. package/dist/metrics/utils/nullMetricsManager.d.ts +1 -1
  97. package/dist/traces/builder.d.ts +25 -0
  98. package/dist/traces/builder.js +59 -0
  99. package/dist/traces/builder.js.map +1 -0
  100. package/dist/traces/ioInsightsSampler.d.ts +17 -0
  101. package/dist/traces/ioInsightsSampler.js +128 -0
  102. package/dist/traces/ioInsightsSampler.js.map +1 -0
  103. package/dist/traces/manager.d.ts +21 -0
  104. package/dist/traces/manager.js +183 -0
  105. package/dist/traces/manager.js.map +1 -0
  106. package/dist/traces/nullTracesManager.d.ts +6 -0
  107. package/dist/traces/nullTracesManager.js +45 -0
  108. package/dist/traces/nullTracesManager.js.map +1 -0
  109. package/dist/traces/nullTracingState.d.ts +23 -0
  110. package/dist/traces/nullTracingState.js +52 -0
  111. package/dist/traces/nullTracingState.js.map +1 -0
  112. package/dist/traces/tracingState.d.ts +27 -0
  113. package/dist/traces/tracingState.js +87 -0
  114. package/dist/traces/tracingState.js.map +1 -0
  115. package/dist/traces/types.d.ts +270 -0
  116. package/dist/traces/types.js +11 -0
  117. package/dist/traces/types.js.map +1 -1
  118. package/dist/traces/utils/index.d.ts +13 -0
  119. package/dist/traces/utils/index.js +163 -0
  120. package/dist/traces/utils/index.js.map +1 -0
  121. package/dist/validation/builder.js +0 -1
  122. package/dist/validation/builder.js.map +1 -1
  123. package/dist/validation/metrics/application/count.d.ts +1 -1
  124. package/dist/validation/metrics/application/duration.d.ts +2 -2
  125. package/dist/validation/metrics/application/duration.js.map +1 -1
  126. package/dist/validation/metrics/application/error.d.ts +1 -1
  127. package/dist/validation/metrics/application/started.d.ts +1 -1
  128. package/dist/validation/metrics/application/startupHistogram.d.ts +1 -1
  129. package/dist/validation/metrics/application/stopped.d.ts +1 -1
  130. package/dist/validation/metrics/base/base.d.ts +1 -1
  131. package/dist/validation/metrics/base/gauge.d.ts +2 -2
  132. package/dist/validation/metrics/layout/startupHistogram.d.ts +1 -1
  133. package/dist/validation/metrics/platform/crash.d.ts +1 -1
  134. package/dist/validation/metrics/platform/error.d.ts +1 -1
  135. package/dist/validation/metrics/platform/startup.d.ts +1 -1
  136. package/dist/validation/metrics/workspace/count.d.ts +1 -1
  137. package/dist/validation/metrics/workspace/stopped.d.ts +1 -1
  138. package/dist/validation/traces/attributeData.d.ts +3 -0
  139. package/dist/validation/traces/attributeData.js +18 -0
  140. package/dist/validation/traces/attributeData.js.map +1 -0
  141. package/dist/validation/traces/filter.d.ts +4 -0
  142. package/dist/validation/traces/filter.js +14 -0
  143. package/dist/validation/traces/filter.js.map +1 -0
  144. package/dist/validation/traces/manager.d.ts +4 -0
  145. package/dist/validation/traces/manager.js +12 -0
  146. package/dist/validation/traces/manager.js.map +1 -0
  147. package/dist/validation/traces/withSpan.d.ts +4 -0
  148. package/dist/validation/traces/withSpan.js +18 -0
  149. package/dist/validation/traces/withSpan.js.map +1 -0
  150. package/package.json +13 -4
  151. package/dist/containerBuilder.d.ts +0 -14
  152. package/dist/containerBuilder.js +0 -34
  153. package/dist/containerBuilder.js.map +0 -1
  154. package/dist/metrics/application/count.js.map +0 -1
  155. package/dist/metrics/application/cpu.js.map +0 -1
  156. package/dist/metrics/application/crash.js.map +0 -1
  157. package/dist/metrics/application/duration.d.ts +0 -7
  158. package/dist/metrics/application/duration.js +0 -19
  159. package/dist/metrics/application/duration.js.map +0 -1
  160. package/dist/metrics/application/durationBase.js.map +0 -1
  161. package/dist/metrics/application/error.js.map +0 -1
  162. package/dist/metrics/application/memory.js.map +0 -1
  163. package/dist/metrics/application/started.js.map +0 -1
  164. package/dist/metrics/application/startup.js.map +0 -1
  165. package/dist/metrics/application/stopped.js.map +0 -1
  166. package/dist/metrics/base/base.js.map +0 -1
  167. package/dist/metrics/base/gauge.js.map +0 -1
  168. package/dist/metrics/base/null.js.map +0 -1
  169. package/dist/metrics/base/observable.js.map +0 -1
  170. package/dist/metrics/base/types.js.map +0 -1
  171. package/dist/metrics/layout/startup.js.map +0 -1
  172. package/dist/metrics/platform/error.js.map +0 -1
  173. package/dist/metrics/platform/startup.js.map +0 -1
  174. package/dist/metrics/system/cpu.js.map +0 -1
  175. package/dist/metrics/system/memory.js.map +0 -1
  176. package/dist/metrics/workspace/count.js.map +0 -1
  177. package/dist/metrics/workspace/startup.js.map +0 -1
  178. package/dist/metrics/workspace/stopped.js.map +0 -1
  179. package/dist/validation/containerBuilder.d.ts +0 -4
  180. package/dist/validation/containerBuilder.js +0 -14
  181. package/dist/validation/containerBuilder.js.map +0 -1
  182. /package/dist/metrics/{base → metrics/base}/null.js +0 -0
  183. /package/dist/metrics/{base → metrics/base}/types.js +0 -0
  184. /package/dist/metrics/{workspace → metrics/workspace}/startup.js +0 -0
@@ -1,6 +1,276 @@
1
+ import { Attributes, Span, SpanStatus, SpanStatusCode, TimeInput, TracerProvider } from "@opentelemetry/api";
2
+ import { Logger } from "../logger/types";
1
3
  import { Manager } from "../types";
4
+ import { OTLPExporterNodeConfigBase } from "@opentelemetry/otlp-exporter-base";
2
5
  export interface TracesManager extends Manager<TracesSettings> {
6
+ extractTracingPropagationInfo(propagationInfoCarrier: PropagationInfo | PropagationInfoCarrier, deleteProperty?: boolean): PropagationInfo | null;
7
+ withSpan<T>(source: string, callback: WithSpanCallback<T>): Promise<T>;
8
+ withSpan<T>(source: string, tracingContext: TracingContext, callback: WithSpanCallback<T>): Promise<T>;
9
+ withSpan<T>(source: string, tracingContext: TracingContext, propagationInfo: PropagationInfo | PropagationInfoCarrier, callback: WithSpanCallback<T>): Promise<T>;
10
+ }
11
+ export type WithSpanCallback<T> = (tracingState: TracingState) => T | Promise<T>;
12
+ export interface PropagationInfo {
13
+ traceparent?: string;
14
+ tracestate?: string;
15
+ }
16
+ export interface PropagationInfoCarrier {
17
+ __interopIOTracePropagationInfo?: PropagationInfo;
18
+ }
19
+ export interface TracingState {
20
+ enabled: boolean;
21
+ SpanStatusCode?: typeof SpanStatusCode;
22
+ level: keyof typeof Verbosity;
23
+ addData(level: Verbosity | keyof typeof Verbosity, data: AttributeData): Promise<void>;
24
+ source: string;
25
+ id?: string;
26
+ endSpan(): Promise<void>;
27
+ span?: Span;
28
+ getPropagationInfo: () => PropagationInfo | null;
29
+ injectPropagationInfo: (carrier: PropagationInfoCarrier & object) => void;
30
+ setStatus?: (status: SpanStatus) => this;
31
+ addEvent?: (name: string, attributesOrStartTime?: Attributes | TimeInput, startTime?: TimeInput) => this;
32
+ recordException?: Span["recordException"];
33
+ isRecording?: Span["isRecording"];
34
+ updateName?: (name: string) => this;
35
+ spanContext?: Span["spanContext"] | (() => undefined);
36
+ }
37
+ export type AttributeArray = Array<null | undefined | string> | Array<null | undefined | number> | Array<null | undefined | boolean>;
38
+ export interface AttributeData {
39
+ [key: string]: string | number | boolean | undefined | AttributeArray | unknown[] | object;
40
+ }
41
+ export interface TracingContext {
42
+ app?: string;
43
+ user?: string;
44
+ serviceName?: string;
45
+ [key: string]: string | number | undefined;
46
+ }
47
+ export declare enum Verbosity {
48
+ OFF = 0,
49
+ LOWEST = 1,
50
+ DIAGNOSTIC = 2,
51
+ DEBUG = 3,
52
+ INFO = 4,
53
+ WARN = 5,
54
+ HIGHEST = 6
55
+ }
56
+ export interface Filter {
57
+ /**
58
+ * Specifies the source string used for matching spans.
59
+ * Spans match only if their source equals this value, or
60
+ * if their source starts with '<source>.' (e.g. my.api.foo
61
+ * starts with my.api).
62
+ *
63
+ * Start string with "#" for case-insensitive regex match.
64
+ */
65
+ source?: string;
66
+ /**
67
+ * Specifies the context values used for matching spans.
68
+ * Spans match only if all the values in this object match
69
+ * the context values returned by the context getter callback
70
+ * and the filteringContext config property.
71
+ *
72
+ * Start strings with "#" for case-insensitive regex match.
73
+ */
74
+ context?: {
75
+ [key: string]: string | number | boolean;
76
+ };
77
+ /**
78
+ * Whether the matched span will be created or will be a no-op.
79
+ *
80
+ * If not specified, see 'TracesDefaultsSettings'.
81
+ */
82
+ enabled?: boolean;
83
+ /**
84
+ * The attribute verbosity level of matched spans.
85
+ *
86
+ * If not specified, see 'TracesDefaultsSettings'.
87
+ */
88
+ level?: keyof typeof Verbosity;
89
+ /**
90
+ * Whether the filtering context will be added as span attributes
91
+ * to the matched span.
92
+ *
93
+ * If not specified, see 'TracesDefaultsSettings'.
94
+ */
95
+ addContextToTrace?: boolean;
96
+ /**
97
+ * Whether the span's status will be set to OK on completion, if
98
+ * it's still UNSET.
99
+ *
100
+ * If not specified, see 'TracesDefaultsSettings'.
101
+ */
102
+ autoSetSuccessStatus?: boolean;
103
+ }
104
+ /**
105
+ * Used for spans that didn't match a Filter or SamplingSettings entry,
106
+ * or if particular property isn't provided in matched entry.
107
+ */
108
+ export interface TracesDefaultsSettings {
109
+ /**
110
+ * Whether the span will be created or will be a no-op. See 'Filter'.
111
+ *
112
+ * Defaults to 'true'.
113
+ */
114
+ enabled?: boolean;
115
+ /**
116
+ * Default span attribute verbosity level. See 'Filter'.
117
+ *
118
+ * Defaults to 'INFO'.
119
+ */
120
+ level?: keyof typeof Verbosity;
121
+ /**
122
+ * Whether the filtering context will be added as span attributes
123
+ * to the span. See 'Filter'.
124
+ *
125
+ * Defaults to 'true'.
126
+ */
127
+ addContextToTrace?: boolean;
128
+ /**
129
+ * Whether the span's status will be set to OK on completion, if
130
+ * it's still UNSET. See 'Filter'.
131
+ *
132
+ * Defaults to 'false'.
133
+ */
134
+ autoSetSuccessStatus?: boolean;
135
+ /**
136
+ * Default sampling setting/probability. See 'SamplingSettings'.
137
+ *
138
+ * Defaults to 'true'.
139
+ */
140
+ sample?: number | boolean;
3
141
  }
4
142
  export interface TracesSettings {
143
+ /**
144
+ * Whether tracing functionality is enabled.
145
+ * If disabled, API is still usable, but methods are no-ops.
146
+ */
5
147
  enabled: boolean;
148
+ /**
149
+ * If provided, this value will be added to the span attributes
150
+ * and to the span filtering context (see 'filters').
151
+ */
152
+ platformVersion?: string;
153
+ /**
154
+ * If provided, these values will be added to the span attributes
155
+ * and to the span filtering context (see 'filters').
156
+ */
157
+ filteringContext?: {
158
+ [key: string]: string;
159
+ };
160
+ /**
161
+ * Array of filter entries used to determine whether
162
+ * a particular operation will create a tracing span, and
163
+ * what verbosity level will apply to attributes added
164
+ * to that span.
165
+ *
166
+ * If no matching filter entry is found,
167
+ * the settings from 'default' are used.
168
+ */
169
+ filters?: Filter[];
170
+ /**
171
+ * Array of sampling setting entries used to determine
172
+ * whether a span will be sampled.
173
+ *
174
+ * If no matching sampling setting entry is found,
175
+ * the settings from 'default' are used.
176
+ */
177
+ sampling?: SamplingSettings[];
178
+ /**
179
+ * Default settings if appropriate entries aren't found
180
+ * in 'filters' and 'sampling' collections.
181
+ */
182
+ default?: TracesDefaultsSettings;
183
+ /**
184
+ * If an OTEL TraceProvider isn't provided to the library,
185
+ * it will initialize its own.
186
+ *
187
+ * If 'url' is specified, TracerProvider will
188
+ * have an OTLPTraceExporter using this destination URL.
189
+ */
190
+ url?: string;
191
+ /**
192
+ * If an OTEL TraceProvider isn't provided to the library,
193
+ * it will initialize its own.
194
+ *
195
+ * If 'url' is specified, TracerProvider will
196
+ * have an OTLPTraceExporter with 'url' as detination URL and
197
+ * 'otlpExporterConfig' as additional * config.
198
+ */
199
+ otlpExporterConfig?: OTLPExporterNodeConfigBase;
200
+ /**
201
+ * If an OTEL TraceProvider isn't provided to the library,
202
+ * it will initialize its own.
203
+ *
204
+ * If 'console' is 'true', TracerProvider will
205
+ * have a ConsoleTraceExporter.
206
+ */
207
+ console?: boolean;
208
+ /**
209
+ * If an OTEL TraceProvider isn't provided to the library,
210
+ * it will initialize its own, with this provided service.name
211
+ * attribute.
212
+ */
213
+ serviceName?: string;
214
+ /**
215
+ * If an OTEL TraceProvider isn't provided to the library,
216
+ * it will initialize its own, with this provided service.instance.id
217
+ * attribute.
218
+ */
219
+ serviceId?: string;
220
+ /**
221
+ * If an OTEL TraceProvider isn't provided to the library,
222
+ * it will initialize its own, with this provided service.version
223
+ * attribute.
224
+ */
225
+ serviceVersion?: string;
226
+ /**
227
+ * If an OTEL TraceProvider isn't provided to the library,
228
+ * it will initialize its own, with this provided user.id
229
+ * attribute.
230
+ */
231
+ userId?: string;
232
+ }
233
+ export interface SamplingSettings {
234
+ /**
235
+ * Span name to determine if span will match this sampling setting entry.
236
+ * Start string with "#" for case-insensitive regex match
237
+ */
238
+ name?: string;
239
+ /**
240
+ * Span attributes that determine if span will match this sampling setting entry.
241
+ * Useful e.g. for checking otel.library.name/otel.scope.name attribute to filter
242
+ * auto-instrumentated spans.
243
+ * Start strings with "#" for case-insensitive regex match.
244
+ */
245
+ attributes?: {
246
+ [key: string]: string | number | boolean;
247
+ };
248
+ /**
249
+ * Context values that determine if span will match this sampling setting entry.
250
+ * 'Context' here refers to the object returned from the 'contextGetter' callback at the
251
+ * time of sampling, not the OTEL context concept.
252
+ * This is useful for sampling based on the current client environment - current user, application,
253
+ * server node, time of day, etc.
254
+ * Start strings with "#" for case-insensitive regex match.
255
+ */
256
+ context?: {
257
+ [key: string]: string | number | boolean;
258
+ };
259
+ /**
260
+ * Probability that span will be sampled, based on its traceId
261
+ * Spans from the same trace will always either all be sampled, or none will,
262
+ * provided they all have the same sampling probability.
263
+ * If true: will be sampled
264
+ * If false: will not be sampled
265
+ * If number between 0 and 1: has this probability of being sampled.
266
+ * Precision: 3 decimal digits
267
+ */
268
+ sample: number | boolean;
269
+ }
270
+ export interface TracesManagerBuilder {
271
+ build(): TracesManager;
272
+ withLogger(logger: Logger): this;
273
+ withSettings(settings: TracesSettings): this;
274
+ withTracingContextGetter(tracingContextGetter?: () => TracingContext): this;
275
+ withTracerProvider(tracerProvider: TracerProvider): this;
6
276
  }
@@ -1,3 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Verbosity = void 0;
4
+ var Verbosity;
5
+ (function (Verbosity) {
6
+ Verbosity[Verbosity["OFF"] = 0] = "OFF";
7
+ Verbosity[Verbosity["LOWEST"] = 1] = "LOWEST";
8
+ Verbosity[Verbosity["DIAGNOSTIC"] = 2] = "DIAGNOSTIC";
9
+ Verbosity[Verbosity["DEBUG"] = 3] = "DEBUG";
10
+ Verbosity[Verbosity["INFO"] = 4] = "INFO";
11
+ Verbosity[Verbosity["WARN"] = 5] = "WARN";
12
+ Verbosity[Verbosity["HIGHEST"] = 6] = "HIGHEST";
13
+ })(Verbosity = exports.Verbosity || (exports.Verbosity = {}));
3
14
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/traces/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/traces/types.ts"],"names":[],"mappings":";;;AAwEA,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,uCAAG,CAAA;IACH,6CAAM,CAAA;IACN,qDAAU,CAAA;IACV,2CAAK,CAAA;IACL,yCAAI,CAAA;IACJ,yCAAI,CAAA;IACJ,+CAAO,CAAA;AACT,CAAC,EARW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAQpB"}
@@ -0,0 +1,13 @@
1
+ import { Sampler, SpanExporter, SpanProcessor } from "@opentelemetry/sdk-trace-base";
2
+ import { ContextManager, TracerProvider } from "@opentelemetry/api";
3
+ import { AttributeData, Filter, TracesDefaultsSettings, TracesSettings, TracingContext } from "../types";
4
+ import { Span } from "@opentelemetry/api";
5
+ import { Logger } from "../../logger/types";
6
+ export declare const isSpanEnabled: (match: Filter | undefined, defaultMatch: TracesDefaultsSettings | undefined) => boolean | undefined;
7
+ export declare const isFilterMatch: (filter: Filter, context: TracingContext, source: string) => boolean;
8
+ export declare const setTracerProvider: (tracerProvider?: TracerProvider, sampler?: ((defaultSampler: Sampler) => Sampler) | undefined, spanProcessors?: SpanProcessor[], spanExporters?: SpanExporter[], providerRegistrationSettings?: {
9
+ contextManager?: ContextManager;
10
+ }, contextGetter?: () => TracingContext, logger?: Logger, settings?: TracesSettings) => void;
11
+ export declare const saveDataInAttribute: (data: AttributeData, otelSpan: Span) => void;
12
+ export declare const replacePlaceHolders: (settings: any, context: any) => any;
13
+ export declare const isFunctionType: (variable: unknown) => boolean;
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFunctionType = exports.replacePlaceHolders = exports.saveDataInAttribute = exports.setTracerProvider = exports.isFilterMatch = exports.isSpanEnabled = void 0;
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
6
+ const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
7
+ const resources_1 = require("@opentelemetry/resources");
8
+ const filter_1 = require("../../validation/traces/filter");
9
+ const attributeData_1 = require("../../validation/traces/attributeData");
10
+ const ioInsightsSampler_1 = require("../ioInsightsSampler");
11
+ const isSpanEnabled = (match, defaultMatch) => {
12
+ let enabled;
13
+ if (match) {
14
+ if (match.enabled === undefined) {
15
+ enabled = true;
16
+ }
17
+ else {
18
+ enabled = match.enabled;
19
+ }
20
+ }
21
+ else if (defaultMatch) {
22
+ enabled = defaultMatch.enabled;
23
+ }
24
+ else {
25
+ enabled = true;
26
+ }
27
+ return enabled;
28
+ };
29
+ exports.isSpanEnabled = isSpanEnabled;
30
+ const isFilterMatch = (filter, context, source) => {
31
+ let isMatch = true;
32
+ if (filter) {
33
+ const validator = new filter_1.TracesFilterValidator();
34
+ validator.validate(filter);
35
+ }
36
+ if (filter.source && filter.source.startsWith("#")) {
37
+ if (!new RegExp(filter.source.substring(1), "i").test(source)) {
38
+ return false;
39
+ }
40
+ }
41
+ else if (filter.source && !source.startsWith(filter.source + ".") && source !== filter.source) {
42
+ return false;
43
+ }
44
+ if (!filter.context) {
45
+ return true;
46
+ }
47
+ for (const key of Object.keys(filter.context)) {
48
+ if (context[key] !== filter.context[key]) {
49
+ isMatch = false;
50
+ break;
51
+ }
52
+ }
53
+ return isMatch;
54
+ };
55
+ exports.isFilterMatch = isFilterMatch;
56
+ const setTracerProvider = (tracerProvider, sampler, spanProcessors, spanExporters, providerRegistrationSettings, contextGetter, logger, settings) => {
57
+ if (!tracerProvider && !settings) {
58
+ throw new Error("Required arguments not provided");
59
+ }
60
+ if (!tracerProvider) {
61
+ const defaultSampler = new sdk_trace_base_1.ParentBasedSampler({
62
+ root: new ioInsightsSampler_1.ioInsightsSampler((settings === null || settings === void 0 ? void 0 : settings.sampling) || [], settings === null || settings === void 0 ? void 0 : settings.default, contextGetter, logger)
63
+ });
64
+ const btProvider = (tracerProvider = new sdk_trace_base_1.BasicTracerProvider({
65
+ sampler: typeof sampler === "function" ? sampler(defaultSampler) : defaultSampler,
66
+ resource: resources_1.Resource.default().merge(new resources_1.Resource({
67
+ "service.name": `${settings === null || settings === void 0 ? void 0 : settings.serviceName}`,
68
+ "service.instance.id": `${settings === null || settings === void 0 ? void 0 : settings.serviceId}`,
69
+ "service.version": `${settings === null || settings === void 0 ? void 0 : settings.serviceVersion}`,
70
+ "user.id": `${settings === null || settings === void 0 ? void 0 : settings.userId}`
71
+ })),
72
+ }));
73
+ if (spanProcessors) {
74
+ for (const spanProcessor of spanProcessors) {
75
+ btProvider.addSpanProcessor(spanProcessor);
76
+ }
77
+ }
78
+ if (spanExporters) {
79
+ for (const spanExporter of spanExporters) {
80
+ btProvider.addSpanProcessor(new sdk_trace_base_1.BatchSpanProcessor(spanExporter));
81
+ }
82
+ }
83
+ if (settings === null || settings === void 0 ? void 0 : settings.url) {
84
+ btProvider.addSpanProcessor(new sdk_trace_base_1.BatchSpanProcessor(new exporter_trace_otlp_http_1.OTLPTraceExporter(Object.assign(Object.assign({}, settings.otlpExporterConfig), {
85
+ // url: "https://jaeger-otlp-http.interop.io/v1/traces",
86
+ // url: "http://localhost:4318/v1/traces",
87
+ url: settings.url }))));
88
+ }
89
+ if (console) {
90
+ btProvider.addSpanProcessor(new sdk_trace_base_1.BatchSpanProcessor(new sdk_trace_base_1.ConsoleSpanExporter()));
91
+ }
92
+ }
93
+ if (tracerProvider.register && providerRegistrationSettings) {
94
+ tracerProvider.register(providerRegistrationSettings);
95
+ }
96
+ };
97
+ exports.setTracerProvider = setTracerProvider;
98
+ const isAttributeArray = (value) => {
99
+ if (!Array.isArray(value)) {
100
+ return false;
101
+ }
102
+ return value.every((item) => item === null ||
103
+ item === undefined ||
104
+ typeof item === "string" ||
105
+ typeof item === "number" ||
106
+ typeof item === "boolean");
107
+ };
108
+ // TODO vnikolov: test this
109
+ const saveDataInAttribute = (data, otelSpan) => {
110
+ const validator = new attributeData_1.TracesAttributeDataValidator();
111
+ validator.validate(data);
112
+ for (const [key, value] of Object.entries(data)) {
113
+ const otelValues = getOTELData(key, value);
114
+ for (const [otelKey, otelValue] of otelValues) {
115
+ otelSpan.setAttribute(otelKey, otelValue);
116
+ }
117
+ }
118
+ };
119
+ exports.saveDataInAttribute = saveDataInAttribute;
120
+ const getOTELData = (key, value) => {
121
+ const isObject = Boolean(value && typeof value === "object");
122
+ const isValidPrimitiveValue = typeof value === "number" || typeof value === "string" || typeof value === "boolean";
123
+ if (isValidPrimitiveValue) {
124
+ return [[key, value]];
125
+ }
126
+ if (isAttributeArray(value)) {
127
+ return [[key, value]].concat(flatten(key, value));
128
+ }
129
+ else if (isObject) {
130
+ return flatten(key, value);
131
+ }
132
+ else if (value) {
133
+ return [[key, value + ""]];
134
+ }
135
+ else {
136
+ return [];
137
+ }
138
+ };
139
+ const flatten = (key, obj) => {
140
+ const toReturn = [];
141
+ for (const [key2, val2] of Object.entries(obj)) {
142
+ for (const [key3, val3] of getOTELData(key2, val2)) {
143
+ toReturn.push([key + "." + key3, val3]);
144
+ }
145
+ }
146
+ return toReturn;
147
+ };
148
+ const replacePlaceHolders = (settings, context) => {
149
+ const regex = /[$][a-zA-Z0-9]+/g;
150
+ const toParse = JSON.stringify(settings).replace(regex, (m) => {
151
+ const key = m.replace(/^[$]/, "");
152
+ const dollarVar = context[key];
153
+ if (dollarVar !== undefined) {
154
+ return JSON.stringify(dollarVar).replace(/^"/, "").replace(/"$/, "");
155
+ }
156
+ return m;
157
+ });
158
+ return JSON.parse(toParse);
159
+ };
160
+ exports.replacePlaceHolders = replacePlaceHolders;
161
+ const isFunctionType = (variable) => typeof variable === "function";
162
+ exports.isFunctionType = isFunctionType;
163
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/traces/utils/index.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,6 @@ class BuilderValidator {
6
6
  validate(builder) {
7
7
  validator_1.Validator.throwIfNullOrUndefined(builder, "builder");
8
8
  validator_1.Validator.throwIfNullOrUndefined(builder.logger, "logger");
9
- validator_1.Validator.throwIfNullOrUndefined(builder.metricsBuilder, "metricsBuilder");
10
9
  }
11
10
  }
12
11
  exports.BuilderValidator = BuilderValidator;
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/validation/builder.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC,MAAa,gBAAgB;IAClB,QAAQ,CAAC,OAAgB;QAC5B,qBAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrD,qBAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3D,qBAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAC/E,CAAC;CACJ;AAND,4CAMC"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/validation/builder.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC,MAAa,gBAAgB;IAClB,QAAQ,CAAC,OAAgB;QAC5B,qBAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrD,qBAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;CACJ;AALD,4CAKC"}
@@ -1,4 +1,4 @@
1
- import { ApplicationCountMetric } from "../../../metrics/application/count";
1
+ import { ApplicationCountMetric } from "../../../metrics/metrics/application/count";
2
2
  import { InstanceActionHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class ApplicationCountMetricValidator {
4
4
  validate(metric: ApplicationCountMetric): void;
@@ -1,6 +1,6 @@
1
- import { ApplicationDurationMetricBase } from "../../../metrics/application/durationBase";
1
+ import { ApplicationDurationMetric } from "../../../metrics/metrics/application/duration";
2
2
  import { InstanceFocusedHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class ApplicationDurationMetricValidator {
4
- validate(metric: ApplicationDurationMetricBase): void;
4
+ validate(metric: ApplicationDurationMetric): void;
5
5
  validateFocusChanged(args: InstanceFocusedHandlerArgs): void;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../../src/validation/metrics/application/duration.ts"],"names":[],"mappings":";;;AAEA,+CAA4C;AAE5C,MAAa,kCAAkC;IACpC,QAAQ,CAAC,MAAqC;QACjD,qBAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,qBAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;IAC1F,CAAC;IAEM,oBAAoB,CAAC,IAAgC;QACxD,qBAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,qBAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAClE,qBAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;CACJ;AAXD,gFAWC"}
1
+ {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../../src/validation/metrics/application/duration.ts"],"names":[],"mappings":";;;AAEA,+CAA4C;AAE5C,MAAa,kCAAkC;IACpC,QAAQ,CAAC,MAAiC;QAC7C,qBAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,qBAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;IAC1F,CAAC;IAEM,oBAAoB,CAAC,IAAgC;QACxD,qBAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,qBAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAClE,qBAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;CACJ;AAXD,gFAWC"}
@@ -1,4 +1,4 @@
1
- import { ApplicationErrorMetric } from "../../../metrics/application/error";
1
+ import { ApplicationErrorMetric } from "../../../metrics/metrics/application/error";
2
2
  import { InstanceErrorHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class ApplicationErrorMetricValidator {
4
4
  validate(metric: ApplicationErrorMetric): void;
@@ -1,4 +1,4 @@
1
- import { ApplicationStartedMetric } from "../../../metrics/application/started";
1
+ import { ApplicationStartedMetric } from "../../../metrics/metrics/application/started";
2
2
  import { InstanceActionHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class ApplicationStartedMetricValidator {
4
4
  validate(metric: ApplicationStartedMetric): void;
@@ -1,4 +1,4 @@
1
- import { ApplicationStartupMetric } from "../../../metrics/application/startup";
1
+ import { ApplicationStartupMetric } from "../../../metrics/metrics/application/startup";
2
2
  import { InstanceReadyHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class ApplicationStartupHistogramMetricValidator {
4
4
  validate(metric: ApplicationStartupMetric): void;
@@ -1,4 +1,4 @@
1
- import { ApplicationStoppedMetric } from "../../../metrics/application/stopped";
1
+ import { ApplicationStoppedMetric } from "../../../metrics/metrics/application/stopped";
2
2
  import { InstanceActionHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class ApplicationStoppedMetricValidator {
4
4
  validate(metric: ApplicationStoppedMetric): void;
@@ -1,4 +1,4 @@
1
- import { MetricBase } from "../../../metrics/base/base";
1
+ import { MetricBase } from "../../../metrics/metrics/base/base";
2
2
  export declare class MetricBaseValidator {
3
3
  validate(base: MetricBase): void;
4
4
  private validateSettings;
@@ -1,6 +1,6 @@
1
1
  import { Attributes } from "@opentelemetry/api";
2
- import { GaugeMetricBase } from "../../../metrics/base/gauge";
3
- import { ObservableMetricBase } from "../../../metrics/base/observable";
2
+ import { GaugeMetricBase } from "../../../metrics/metrics/base/gauge";
3
+ import { ObservableMetricBase } from "../../../metrics/metrics/base/observable";
4
4
  export declare class GaugeMetricBaseValidator {
5
5
  validate<TData extends Attributes>(base: GaugeMetricBase<TData> | ObservableMetricBase<TData>): void;
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import { LayoutRestoredHandlerArgs } from "../../../metrics/dependencies/types";
2
- import { LayoutStartupMetric } from "../../../metrics/layout/startup";
2
+ import { LayoutStartupMetric } from "../../../metrics/metrics/layout/startup";
3
3
  export declare class LayoutStartupMetricHistogramValidator {
4
4
  validate(metric: LayoutStartupMetric): void;
5
5
  validateLayoutRestored(args: LayoutRestoredHandlerArgs): void;
@@ -1,4 +1,4 @@
1
- import { ApplicationCrashMetric } from "../../../metrics/application/crash";
1
+ import { ApplicationCrashMetric } from "../../../metrics/metrics/application/crash";
2
2
  import { InstanceCrashHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class PlatformCrashMetricValidator {
4
4
  validate(metric: ApplicationCrashMetric): void;
@@ -1,5 +1,5 @@
1
1
  import { PlatformErrorHandlerArgs } from "../../../metrics/dependencies/types";
2
- import { PlatformErrorMetric } from "../../../metrics/platform/error";
2
+ import { PlatformErrorMetric } from "../../../metrics/metrics/platform/error";
3
3
  export declare class PlatformErrorMetricValidator {
4
4
  validate(metric: PlatformErrorMetric): void;
5
5
  validatePlatformError(args: PlatformErrorHandlerArgs): void;
@@ -1,5 +1,5 @@
1
1
  import { PlatformStartedHandlerArgs } from "../../../metrics/dependencies/types";
2
- import { PlatformStartupMetric } from "../../../metrics/platform/startup";
2
+ import { PlatformStartupMetric } from "../../../metrics/metrics/platform/startup";
3
3
  export declare class PlatformStartupMetricValidator {
4
4
  validate(metric: PlatformStartupMetric): void;
5
5
  validatePlatformStarted(args: PlatformStartedHandlerArgs): void;
@@ -1,5 +1,5 @@
1
1
  import { LayoutRestoredHandlerArgs, WorkspaceActionHandlerArgs } from "../../../metrics/dependencies/types";
2
- import { WorkspaceCountMetric } from "../../../metrics/workspace/count";
2
+ import { WorkspaceCountMetric } from "../../../metrics/metrics/workspace/count";
3
3
  export declare class WorkspaceCountMetricValidator {
4
4
  validate(metric: WorkspaceCountMetric): void;
5
5
  validateWorkspaceStarted(args: LayoutRestoredHandlerArgs): void;
@@ -1,5 +1,5 @@
1
1
  import { WorkspaceActionHandlerArgs } from "../../../metrics/dependencies/types";
2
- import { WorkspaceStoppedMetric } from "../../../metrics/workspace/stopped";
2
+ import { WorkspaceStoppedMetric } from "../../../metrics/metrics/workspace/stopped";
3
3
  export declare class WorkspaceStoppedMetricValidator {
4
4
  validate(metric: WorkspaceStoppedMetric): void;
5
5
  validateWorkspaceStopped(args: WorkspaceActionHandlerArgs): void;
@@ -0,0 +1,3 @@
1
+ export declare class TracesAttributeDataValidator {
2
+ validate(data: unknown): void;
3
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TracesAttributeDataValidator = void 0;
4
+ const validator_1 = require("../validator");
5
+ class TracesAttributeDataValidator {
6
+ validate(data) {
7
+ validator_1.Validator.throwIfNullOrUndefined(data, "data");
8
+ if (data instanceof Array || typeof data !== "object") {
9
+ throw new Error("'data' must be a non-array object");
10
+ }
11
+ if (data &&
12
+ Object.values(data).some((value) => typeof value === "symbol" || typeof value === "bigint")) {
13
+ throw new Error("Invalid data type: 'symbol' or 'bigint' values cannot be stored in OTEL spans.");
14
+ }
15
+ }
16
+ }
17
+ exports.TracesAttributeDataValidator = TracesAttributeDataValidator;
18
+ //# sourceMappingURL=attributeData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributeData.js","sourceRoot":"","sources":["../../../src/validation/traces/attributeData.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AAEzC,MAAa,4BAA4B;IAChC,QAAQ,CAAC,IAAa;QAC3B,qBAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/C,IAAI,IAAI,YAAY,KAAK,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;QACD,IACE,IAAI;YACJ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EAC3F;YACA,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;SACH;IACH,CAAC;CACF;AAhBD,oEAgBC"}