@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.
- package/README.md +9 -1
- package/dist/builder.d.ts +5 -2
- package/dist/builder.js +37 -9
- package/dist/builder.js.map +1 -1
- package/dist/container.js +1 -0
- package/dist/container.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/logger/log4jsWrapper.d.ts +13 -0
- package/dist/logger/log4jsWrapper.js +54 -0
- package/dist/logger/log4jsWrapper.js.map +1 -0
- package/dist/logger/types.d.ts +1 -1
- package/dist/metrics/factory/builder.d.ts +1 -0
- package/dist/metrics/factory/builder.js +27 -17
- package/dist/metrics/factory/builder.js.map +1 -1
- package/dist/metrics/factory/factory.d.ts +1 -1
- package/dist/metrics/factory/factory.js +1 -1
- package/dist/metrics/factory/factory.js.map +1 -1
- package/dist/metrics/factory/types.d.ts +1 -1
- package/dist/metrics/manager.d.ts +1 -1
- package/dist/metrics/manager.js +15 -15
- package/dist/metrics/manager.js.map +1 -1
- package/dist/metrics/{application → metrics/application}/count.d.ts +2 -2
- package/dist/metrics/{application → metrics/application}/count.js +1 -1
- package/dist/metrics/metrics/application/count.js.map +1 -0
- package/dist/metrics/{application → metrics/application}/cpu.d.ts +2 -2
- package/dist/metrics/{application → metrics/application}/cpu.js +2 -2
- package/dist/metrics/metrics/application/cpu.js.map +1 -0
- package/dist/metrics/{application → metrics/application}/crash.d.ts +2 -2
- package/dist/metrics/{application → metrics/application}/crash.js +1 -1
- package/dist/metrics/metrics/application/crash.js.map +1 -0
- package/dist/metrics/{application/durationBase.d.ts → metrics/application/duration.d.ts} +13 -8
- package/dist/metrics/{application/durationBase.js → metrics/application/duration.js} +19 -16
- package/dist/metrics/metrics/application/duration.js.map +1 -0
- package/dist/metrics/metrics/application/durationSoft.d.ts +4 -0
- package/dist/metrics/metrics/application/durationSoft.js +34 -0
- package/dist/metrics/metrics/application/durationSoft.js.map +1 -0
- package/dist/metrics/{application → metrics/application}/error.d.ts +2 -2
- package/dist/metrics/{application → metrics/application}/error.js +1 -1
- package/dist/metrics/metrics/application/error.js.map +1 -0
- package/dist/metrics/{application → metrics/application}/memory.d.ts +3 -2
- package/dist/metrics/{application → metrics/application}/memory.js +5 -5
- package/dist/metrics/metrics/application/memory.js.map +1 -0
- package/dist/metrics/{application → metrics/application}/started.d.ts +2 -2
- package/dist/metrics/{application → metrics/application}/started.js +1 -1
- package/dist/metrics/metrics/application/started.js.map +1 -0
- package/dist/metrics/{application → metrics/application}/startup.d.ts +2 -2
- package/dist/metrics/{application → metrics/application}/startup.js +1 -1
- package/dist/metrics/metrics/application/startup.js.map +1 -0
- package/dist/metrics/{application → metrics/application}/stopped.d.ts +2 -2
- package/dist/metrics/{application → metrics/application}/stopped.js +1 -1
- package/dist/metrics/metrics/application/stopped.js.map +1 -0
- package/dist/metrics/{base → metrics/base}/base.d.ts +2 -2
- package/dist/metrics/{base → metrics/base}/base.js +1 -1
- package/dist/metrics/metrics/base/base.js.map +1 -0
- package/dist/metrics/{base → metrics/base}/gauge.d.ts +2 -2
- package/dist/metrics/{base → metrics/base}/gauge.js +1 -1
- package/dist/metrics/metrics/base/gauge.js.map +1 -0
- package/dist/metrics/{base → metrics/base}/null.d.ts +1 -1
- package/dist/metrics/metrics/base/null.js.map +1 -0
- package/dist/metrics/{base → metrics/base}/observable.d.ts +2 -2
- package/dist/metrics/{base → metrics/base}/observable.js +1 -1
- package/dist/metrics/metrics/base/observable.js.map +1 -0
- package/dist/metrics/{base → metrics/base}/types.d.ts +1 -1
- package/dist/metrics/metrics/base/types.js.map +1 -0
- package/dist/metrics/{layout → metrics/layout}/startup.d.ts +2 -2
- package/dist/metrics/{layout → metrics/layout}/startup.js +1 -1
- package/dist/metrics/metrics/layout/startup.js.map +1 -0
- package/dist/metrics/{platform → metrics/platform}/error.d.ts +2 -2
- package/dist/metrics/{platform → metrics/platform}/error.js +1 -1
- package/dist/metrics/metrics/platform/error.js.map +1 -0
- package/dist/metrics/{platform → metrics/platform}/startup.d.ts +2 -2
- package/dist/metrics/{platform → metrics/platform}/startup.js +2 -2
- package/dist/metrics/metrics/platform/startup.js.map +1 -0
- package/dist/metrics/{system → metrics/system}/cpu.d.ts +3 -2
- package/dist/metrics/{system → metrics/system}/cpu.js +5 -5
- package/dist/metrics/metrics/system/cpu.js.map +1 -0
- package/dist/metrics/{system → metrics/system}/memory.d.ts +3 -2
- package/dist/metrics/{system → metrics/system}/memory.js +5 -5
- package/dist/metrics/metrics/system/memory.js.map +1 -0
- package/dist/metrics/{workspace → metrics/workspace}/count.d.ts +2 -2
- package/dist/metrics/{workspace → metrics/workspace}/count.js +1 -1
- package/dist/metrics/metrics/workspace/count.js.map +1 -0
- package/dist/metrics/{workspace → metrics/workspace}/startup.d.ts +2 -2
- package/dist/metrics/metrics/workspace/startup.js.map +1 -0
- package/dist/metrics/{workspace → metrics/workspace}/stopped.d.ts +2 -2
- package/dist/metrics/{workspace → metrics/workspace}/stopped.js +1 -1
- package/dist/metrics/metrics/workspace/stopped.js.map +1 -0
- package/dist/metrics/settings/builder.d.ts +1 -1
- package/dist/metrics/settings/default.d.ts +2 -2
- package/dist/metrics/settings/default.js +3 -3
- package/dist/metrics/settings/default.js.map +1 -1
- package/dist/metrics/settings/types.d.ts +1 -1
- package/dist/metrics/types.d.ts +1 -1
- package/dist/metrics/utils/nullMetricsManager.d.ts +1 -1
- package/dist/traces/builder.d.ts +25 -0
- package/dist/traces/builder.js +59 -0
- package/dist/traces/builder.js.map +1 -0
- package/dist/traces/ioInsightsSampler.d.ts +17 -0
- package/dist/traces/ioInsightsSampler.js +128 -0
- package/dist/traces/ioInsightsSampler.js.map +1 -0
- package/dist/traces/manager.d.ts +21 -0
- package/dist/traces/manager.js +183 -0
- package/dist/traces/manager.js.map +1 -0
- package/dist/traces/nullTracesManager.d.ts +6 -0
- package/dist/traces/nullTracesManager.js +45 -0
- package/dist/traces/nullTracesManager.js.map +1 -0
- package/dist/traces/nullTracingState.d.ts +23 -0
- package/dist/traces/nullTracingState.js +52 -0
- package/dist/traces/nullTracingState.js.map +1 -0
- package/dist/traces/tracingState.d.ts +27 -0
- package/dist/traces/tracingState.js +87 -0
- package/dist/traces/tracingState.js.map +1 -0
- package/dist/traces/types.d.ts +270 -0
- package/dist/traces/types.js +11 -0
- package/dist/traces/types.js.map +1 -1
- package/dist/traces/utils/index.d.ts +13 -0
- package/dist/traces/utils/index.js +163 -0
- package/dist/traces/utils/index.js.map +1 -0
- package/dist/validation/builder.js +0 -1
- package/dist/validation/builder.js.map +1 -1
- package/dist/validation/metrics/application/count.d.ts +1 -1
- package/dist/validation/metrics/application/duration.d.ts +2 -2
- package/dist/validation/metrics/application/duration.js.map +1 -1
- package/dist/validation/metrics/application/error.d.ts +1 -1
- package/dist/validation/metrics/application/started.d.ts +1 -1
- package/dist/validation/metrics/application/startupHistogram.d.ts +1 -1
- package/dist/validation/metrics/application/stopped.d.ts +1 -1
- package/dist/validation/metrics/base/base.d.ts +1 -1
- package/dist/validation/metrics/base/gauge.d.ts +2 -2
- package/dist/validation/metrics/layout/startupHistogram.d.ts +1 -1
- package/dist/validation/metrics/platform/crash.d.ts +1 -1
- package/dist/validation/metrics/platform/error.d.ts +1 -1
- package/dist/validation/metrics/platform/startup.d.ts +1 -1
- package/dist/validation/metrics/workspace/count.d.ts +1 -1
- package/dist/validation/metrics/workspace/stopped.d.ts +1 -1
- package/dist/validation/traces/attributeData.d.ts +3 -0
- package/dist/validation/traces/attributeData.js +18 -0
- package/dist/validation/traces/attributeData.js.map +1 -0
- package/dist/validation/traces/filter.d.ts +4 -0
- package/dist/validation/traces/filter.js +14 -0
- package/dist/validation/traces/filter.js.map +1 -0
- package/dist/validation/traces/manager.d.ts +4 -0
- package/dist/validation/traces/manager.js +12 -0
- package/dist/validation/traces/manager.js.map +1 -0
- package/dist/validation/traces/withSpan.d.ts +4 -0
- package/dist/validation/traces/withSpan.js +18 -0
- package/dist/validation/traces/withSpan.js.map +1 -0
- package/package.json +13 -4
- package/dist/containerBuilder.d.ts +0 -14
- package/dist/containerBuilder.js +0 -34
- package/dist/containerBuilder.js.map +0 -1
- package/dist/metrics/application/count.js.map +0 -1
- package/dist/metrics/application/cpu.js.map +0 -1
- package/dist/metrics/application/crash.js.map +0 -1
- package/dist/metrics/application/duration.d.ts +0 -7
- package/dist/metrics/application/duration.js +0 -19
- package/dist/metrics/application/duration.js.map +0 -1
- package/dist/metrics/application/durationBase.js.map +0 -1
- package/dist/metrics/application/error.js.map +0 -1
- package/dist/metrics/application/memory.js.map +0 -1
- package/dist/metrics/application/started.js.map +0 -1
- package/dist/metrics/application/startup.js.map +0 -1
- package/dist/metrics/application/stopped.js.map +0 -1
- package/dist/metrics/base/base.js.map +0 -1
- package/dist/metrics/base/gauge.js.map +0 -1
- package/dist/metrics/base/null.js.map +0 -1
- package/dist/metrics/base/observable.js.map +0 -1
- package/dist/metrics/base/types.js.map +0 -1
- package/dist/metrics/layout/startup.js.map +0 -1
- package/dist/metrics/platform/error.js.map +0 -1
- package/dist/metrics/platform/startup.js.map +0 -1
- package/dist/metrics/system/cpu.js.map +0 -1
- package/dist/metrics/system/memory.js.map +0 -1
- package/dist/metrics/workspace/count.js.map +0 -1
- package/dist/metrics/workspace/startup.js.map +0 -1
- package/dist/metrics/workspace/stopped.js.map +0 -1
- package/dist/validation/containerBuilder.d.ts +0 -4
- package/dist/validation/containerBuilder.js +0 -14
- package/dist/validation/containerBuilder.js.map +0 -1
- /package/dist/metrics/{base → metrics/base}/null.js +0 -0
- /package/dist/metrics/{base → metrics/base}/types.js +0 -0
- /package/dist/metrics/{workspace → metrics/workspace}/startup.js +0 -0
package/dist/traces/types.d.ts
CHANGED
|
@@ -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
|
}
|
package/dist/traces/types.js
CHANGED
|
@@ -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
|
package/dist/traces/types.js.map
CHANGED
|
@@ -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;
|
|
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 {
|
|
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:
|
|
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,
|
|
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,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,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"}
|