@respan/tracing 1.1.5 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/decorators/base.js +8 -2
- package/dist/decorators/base.js.map +1 -1
- package/dist/instrumentation/loader.d.ts +1 -1
- package/dist/instrumentation/loader.js +41 -73
- package/dist/instrumentation/loader.js.map +1 -1
- package/dist/instrumentation/manager.d.ts +1 -1
- package/dist/instrumentation/manager.js +10 -125
- package/dist/instrumentation/manager.js.map +1 -1
- package/dist/main.d.ts +5 -1
- package/dist/main.js +14 -3
- package/dist/main.js.map +1 -1
- package/dist/processor/manager.d.ts +12 -0
- package/dist/processor/manager.js +15 -4
- package/dist/processor/manager.js.map +1 -1
- package/dist/processor/spanName.d.ts +15 -0
- package/dist/processor/spanName.js +305 -0
- package/dist/processor/spanName.js.map +1 -0
- package/dist/types/clientTypes.d.ts +10 -0
- package/dist/types/clientTypes.js.map +1 -1
- package/dist/utils/client.js +2 -3
- package/dist/utils/client.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/tracing.d.ts +9 -1
- package/dist/utils/tracing.js +86 -34
- package/dist/utils/tracing.js.map +1 -1
- package/package.json +1 -1
package/dist/utils/tracing.js
CHANGED
|
@@ -11,6 +11,18 @@ import { shouldSendTraces } from "./context.js";
|
|
|
11
11
|
let _sdk;
|
|
12
12
|
let _initialized = false;
|
|
13
13
|
let _compositeProcessor;
|
|
14
|
+
let _flushPromise;
|
|
15
|
+
let _shutdownPromise;
|
|
16
|
+
let _beforeExitFlushRegistered = false;
|
|
17
|
+
const registerBeforeExitFlush = () => {
|
|
18
|
+
if (_beforeExitFlushRegistered || typeof process === "undefined") {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
_beforeExitFlushRegistered = true;
|
|
22
|
+
process.once("beforeExit", () => {
|
|
23
|
+
void flush();
|
|
24
|
+
});
|
|
25
|
+
};
|
|
14
26
|
/**
|
|
15
27
|
* Helper function to resolve and clean up the base URL
|
|
16
28
|
*/
|
|
@@ -45,13 +57,14 @@ export const startTracing = async (options) => {
|
|
|
45
57
|
console.log("[Respan] Tracing already initialized, skipping...");
|
|
46
58
|
return;
|
|
47
59
|
}
|
|
48
|
-
const { appName = "respan-app", apiKey = process.env.RESPAN_API_KEY || "", baseURL = process.env.RESPAN_BASE_URL || "https://api.respan.ai", logLevel = "error", exporter, headers = {}, propagator, contextManager, silenceInitializationMessage = false, tracingEnabled = true, instrumentModules, traceContent = true, disabledInstrumentations = [], resourceAttributes = {}, spanPostprocessCallback, } = options;
|
|
60
|
+
const { appName = "respan-app", apiKey = process.env.RESPAN_API_KEY || "", baseURL = process.env.RESPAN_BASE_URL || "https://api.respan.ai", logLevel = "error", exporter, headers = {}, propagator, contextManager, silenceInitializationMessage = false, tracingEnabled = true, spanNameStyle = process.env.RESPAN_SPAN_NAME_STYLE, instrumentModules, traceContent = true, disabledInstrumentations = [], resourceAttributes = {}, spanPostprocessCallback, disableBatch = false, } = options;
|
|
49
61
|
// Debug logging for configuration
|
|
50
62
|
console.debug("[Respan Debug] Tracing configuration:", {
|
|
51
63
|
appName,
|
|
52
64
|
baseURL,
|
|
53
65
|
logLevel,
|
|
54
66
|
tracingEnabled,
|
|
67
|
+
spanNameStyle,
|
|
55
68
|
traceContent,
|
|
56
69
|
hasApiKey: !!apiKey,
|
|
57
70
|
apiKeyLength: apiKey?.length || 0,
|
|
@@ -61,6 +74,7 @@ export const startTracing = async (options) => {
|
|
|
61
74
|
: [],
|
|
62
75
|
customHeaders: Object.keys(headers),
|
|
63
76
|
disabledInstrumentations: disabledInstrumentations || [],
|
|
77
|
+
disableBatch,
|
|
64
78
|
});
|
|
65
79
|
if (!tracingEnabled) {
|
|
66
80
|
if (!silenceInitializationMessage) {
|
|
@@ -83,7 +97,7 @@ export const startTracing = async (options) => {
|
|
|
83
97
|
}
|
|
84
98
|
else {
|
|
85
99
|
console.debug("[Respan Debug] Using automatic instrumentation discovery");
|
|
86
|
-
await initInstrumentations(disabledInstrumentations
|
|
100
|
+
await initInstrumentations(disabledInstrumentations);
|
|
87
101
|
}
|
|
88
102
|
const instrumentationsList = getInstrumentations();
|
|
89
103
|
console.debug(`[Respan Debug] Total instrumentations ready for SDK: ${instrumentationsList.length}`);
|
|
@@ -101,22 +115,15 @@ export const startTracing = async (options) => {
|
|
|
101
115
|
else {
|
|
102
116
|
console.debug("[Respan Debug] Trace content enabled - input/output data will be captured");
|
|
103
117
|
}
|
|
104
|
-
//
|
|
105
|
-
|
|
106
|
-
? DiagLogLevel.DEBUG
|
|
107
|
-
: logLevel === "info"
|
|
108
|
-
? DiagLogLevel.INFO
|
|
109
|
-
: logLevel === "warn"
|
|
110
|
-
? DiagLogLevel.WARN
|
|
111
|
-
: DiagLogLevel.ERROR;
|
|
112
|
-
console.debug(`[Respan Debug] Setting OpenTelemetry diagnostic log level to: ${logLevel}`);
|
|
118
|
+
// Only surface errors from OTEL internals — suppress info/debug
|
|
119
|
+
// which includes noisy "exported XX spans" messages from exporters
|
|
113
120
|
diag.setLogger({
|
|
114
|
-
error: (...args) => console.error("[Respan
|
|
115
|
-
warn: (
|
|
116
|
-
info: (
|
|
117
|
-
debug: (
|
|
118
|
-
verbose: (
|
|
119
|
-
},
|
|
121
|
+
error: (...args) => console.error("[Respan]", ...args),
|
|
122
|
+
warn: () => { },
|
|
123
|
+
info: () => { },
|
|
124
|
+
debug: () => { },
|
|
125
|
+
verbose: () => { },
|
|
126
|
+
}, DiagLogLevel.ERROR);
|
|
120
127
|
// Create resource with custom attributes
|
|
121
128
|
const resource = new Resource({
|
|
122
129
|
[ATTR_SERVICE_NAME]: appName,
|
|
@@ -144,7 +151,7 @@ export const startTracing = async (options) => {
|
|
|
144
151
|
});
|
|
145
152
|
console.debug("[Respan Debug] Created OTLP trace exporter");
|
|
146
153
|
// Initialize multi-processor manager
|
|
147
|
-
const processorManager = new MultiProcessorManager();
|
|
154
|
+
const processorManager = new MultiProcessorManager({ disableBatch, spanNameStyle });
|
|
148
155
|
// Add default Respan processor to the manager
|
|
149
156
|
// This ensures backward compatibility: spans without a `processors` attribute
|
|
150
157
|
// automatically go to the default Respan exporter
|
|
@@ -175,6 +182,7 @@ export const startTracing = async (options) => {
|
|
|
175
182
|
try {
|
|
176
183
|
console.debug("[Respan Debug] Starting OpenTelemetry SDK...");
|
|
177
184
|
_sdk.start();
|
|
185
|
+
registerBeforeExitFlush();
|
|
178
186
|
// Strip noisy resource attributes that NodeSDK adds automatically.
|
|
179
187
|
// These pollute span metadata on the backend with no user value.
|
|
180
188
|
try {
|
|
@@ -213,26 +221,70 @@ export const startTracing = async (options) => {
|
|
|
213
221
|
}
|
|
214
222
|
};
|
|
215
223
|
/**
|
|
216
|
-
*
|
|
224
|
+
* Flush pending spans without shutting down the SDK.
|
|
217
225
|
*/
|
|
218
|
-
export const
|
|
219
|
-
if (
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
await _sdk.shutdown();
|
|
223
|
-
console.debug("[Respan Debug] SDK shutdown completed");
|
|
224
|
-
}
|
|
225
|
-
catch (error) {
|
|
226
|
-
console.error("[Respan Debug] Error during SDK shutdown:", error);
|
|
227
|
-
console.error("[Respan Debug] Shutdown error details:", {
|
|
228
|
-
message: error.message,
|
|
229
|
-
stack: error.stack,
|
|
230
|
-
});
|
|
231
|
-
}
|
|
226
|
+
export const flush = async () => {
|
|
227
|
+
if (!_compositeProcessor) {
|
|
228
|
+
console.debug("[Respan Debug] No SDK to flush");
|
|
229
|
+
return;
|
|
232
230
|
}
|
|
233
|
-
|
|
231
|
+
if (!_flushPromise) {
|
|
232
|
+
_flushPromise = (async () => {
|
|
233
|
+
try {
|
|
234
|
+
console.debug("[Respan Debug] Flushing traces...");
|
|
235
|
+
await _compositeProcessor?.forceFlush();
|
|
236
|
+
console.debug("[Respan Debug] Trace flush completed");
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
console.error("[Respan Debug] Error during trace flush:", error);
|
|
240
|
+
console.error("[Respan Debug] Flush error details:", {
|
|
241
|
+
message: error.message,
|
|
242
|
+
stack: error.stack,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
})().finally(() => {
|
|
246
|
+
_flushPromise = undefined;
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
await _flushPromise;
|
|
250
|
+
};
|
|
251
|
+
/**
|
|
252
|
+
* Backward-compatible alias for flushing pending spans.
|
|
253
|
+
*/
|
|
254
|
+
export const forceFlush = flush;
|
|
255
|
+
/**
|
|
256
|
+
* Flush pending spans and shut down the SDK.
|
|
257
|
+
*/
|
|
258
|
+
export const shutdownTracing = async () => {
|
|
259
|
+
if (!_sdk) {
|
|
234
260
|
console.debug("[Respan Debug] No SDK to shutdown");
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
if (!_shutdownPromise) {
|
|
264
|
+
_shutdownPromise = (async () => {
|
|
265
|
+
try {
|
|
266
|
+
console.debug("[Respan Debug] Shutting down SDK...");
|
|
267
|
+
await flush();
|
|
268
|
+
await _sdk?.shutdown();
|
|
269
|
+
console.debug("[Respan Debug] SDK shutdown completed");
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
console.error("[Respan Debug] Error during SDK shutdown:", error);
|
|
273
|
+
console.error("[Respan Debug] Shutdown error details:", {
|
|
274
|
+
message: error.message,
|
|
275
|
+
stack: error.stack,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
finally {
|
|
279
|
+
_initialized = false;
|
|
280
|
+
_compositeProcessor = undefined;
|
|
281
|
+
_sdk = undefined;
|
|
282
|
+
}
|
|
283
|
+
})().finally(() => {
|
|
284
|
+
_shutdownPromise = undefined;
|
|
285
|
+
});
|
|
235
286
|
}
|
|
287
|
+
await _shutdownPromise;
|
|
236
288
|
};
|
|
237
289
|
/**
|
|
238
290
|
* Gets the current SDK instance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/utils/tracing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,kCAAkC;AAClC,IAAI,
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/utils/tracing.ts"],"names":[],"mappings":"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"}
|