@blaxel/telemetry 0.2.18-dev.139 → 0.2.18-dev.141
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/telemetry.js +53 -28
- package/package.json +2 -2
package/dist/telemetry.js
CHANGED
|
@@ -91,17 +91,31 @@ class TelemetryManager {
|
|
|
91
91
|
}
|
|
92
92
|
setupBasicTracerProvider() {
|
|
93
93
|
const resource = new BlaxelResource(this.resourceAttributes);
|
|
94
|
-
// Create TracerProvider with
|
|
94
|
+
// Create TracerProvider with complete setup including exporters
|
|
95
|
+
// This ensures we don't need to recreate it later, preserving context
|
|
96
|
+
const spanProcessors = [
|
|
97
|
+
new DefaultAttributesSpanProcessor({
|
|
98
|
+
"workload.id": core_1.settings.name || "",
|
|
99
|
+
"workload.type": core_1.settings.type ? core_1.settings.type + "s" : "",
|
|
100
|
+
workspace: core_1.settings.workspace || "",
|
|
101
|
+
}),
|
|
102
|
+
];
|
|
103
|
+
// Try to add exporters if authentication is available
|
|
104
|
+
try {
|
|
105
|
+
if (core_1.settings.authorization) {
|
|
106
|
+
const traceExporter = this.getTraceExporter();
|
|
107
|
+
spanProcessors.push(new sdk_trace_node_1.BatchSpanProcessor(traceExporter));
|
|
108
|
+
spanProcessors.push(new HasBeenProcessedSpanProcessor(traceExporter));
|
|
109
|
+
console.log("🚀 TracerProvider created with exporters from the start");
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
console.log("🚀 TracerProvider created without exporters - will be added later");
|
|
114
|
+
}
|
|
95
115
|
this.nodeTracerProvider = new sdk_trace_node_1.NodeTracerProvider({
|
|
96
116
|
resource,
|
|
97
117
|
sampler: new sdk_trace_node_1.AlwaysOnSampler(),
|
|
98
|
-
spanProcessors
|
|
99
|
-
new DefaultAttributesSpanProcessor({
|
|
100
|
-
"workload.id": core_1.settings.name || "",
|
|
101
|
-
"workload.type": core_1.settings.type ? core_1.settings.type + "s" : "",
|
|
102
|
-
workspace: core_1.settings.workspace || "",
|
|
103
|
-
}),
|
|
104
|
-
],
|
|
118
|
+
spanProcessors,
|
|
105
119
|
});
|
|
106
120
|
// Register immediately - this enables context propagation
|
|
107
121
|
this.nodeTracerProvider.register();
|
|
@@ -271,26 +285,37 @@ class TelemetryManager {
|
|
|
271
285
|
});
|
|
272
286
|
this.loggerProvider.addLogRecordProcessor(new sdk_logs_1.BatchLogRecordProcessor(logExporter));
|
|
273
287
|
api_logs_1.logs.setGlobalLoggerProvider(this.loggerProvider);
|
|
274
|
-
//
|
|
275
|
-
if (this.nodeTracerProvider) {
|
|
276
|
-
|
|
277
|
-
//
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
288
|
+
// Check if we need to add exporters to existing TracerProvider
|
|
289
|
+
if (this.nodeTracerProvider && !core_1.settings.authorization) {
|
|
290
|
+
// If we didn't have authorization before but we do now, recreate with exporters
|
|
291
|
+
// But only if we didn't already have them
|
|
292
|
+
try {
|
|
293
|
+
const traceExporter = this.getTraceExporter();
|
|
294
|
+
// Unfortunately, we need to recreate the TracerProvider to add exporters
|
|
295
|
+
// This is a limitation of OpenTelemetry SDK
|
|
296
|
+
const newTracerProvider = new sdk_trace_node_1.NodeTracerProvider({
|
|
297
|
+
resource,
|
|
298
|
+
sampler: new sdk_trace_node_1.AlwaysOnSampler(),
|
|
299
|
+
spanProcessors: [
|
|
300
|
+
new DefaultAttributesSpanProcessor({
|
|
301
|
+
"workload.id": core_1.settings.name || "",
|
|
302
|
+
"workload.type": core_1.settings.type ? core_1.settings.type + "s" : "",
|
|
303
|
+
workspace: core_1.settings.workspace || "",
|
|
304
|
+
}),
|
|
305
|
+
new sdk_trace_node_1.BatchSpanProcessor(traceExporter),
|
|
306
|
+
new HasBeenProcessedSpanProcessor(traceExporter),
|
|
307
|
+
],
|
|
308
|
+
});
|
|
309
|
+
this.nodeTracerProvider = newTracerProvider;
|
|
310
|
+
this.nodeTracerProvider.register();
|
|
311
|
+
console.log("📡 TracerProvider updated with exporters");
|
|
312
|
+
}
|
|
313
|
+
catch {
|
|
314
|
+
console.log("📡 Could not add exporters to TracerProvider");
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
console.log("📡 TracerProvider already has exporters or no changes needed");
|
|
294
319
|
}
|
|
295
320
|
// Setup metrics
|
|
296
321
|
const metricExporter = this.getMetricExporter();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaxel/telemetry",
|
|
3
|
-
"version": "0.2.18-dev.
|
|
3
|
+
"version": "0.2.18-dev.141",
|
|
4
4
|
"description": "Blaxel SDK for TypeScript",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Blaxel, INC (https://blaxel.ai)",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"@opentelemetry/sdk-trace-base": "^2.0.0",
|
|
72
72
|
"@opentelemetry/sdk-trace-node": "^2.0.0",
|
|
73
73
|
"ai": "^4.3.13",
|
|
74
|
-
"@blaxel/core": "0.2.18-dev.
|
|
74
|
+
"@blaxel/core": "0.2.18-dev.141"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"@eslint/js": "^9.26.0",
|