@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.
Files changed (2) hide show
  1. package/dist/telemetry.js +53 -28
  2. 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 minimal setup for context propagation
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
- // Add exporters to existing TracerProvider (don't recreate!)
275
- if (this.nodeTracerProvider) {
276
- const traceExporter = this.getTraceExporter();
277
- // Create new TracerProvider with exporters but keep context continuity
278
- const newTracerProvider = new sdk_trace_node_1.NodeTracerProvider({
279
- resource,
280
- sampler: new sdk_trace_node_1.AlwaysOnSampler(),
281
- spanProcessors: [
282
- new DefaultAttributesSpanProcessor({
283
- "workload.id": core_1.settings.name || "",
284
- "workload.type": core_1.settings.type ? core_1.settings.type + "s" : "",
285
- workspace: core_1.settings.workspace || "",
286
- }),
287
- new sdk_trace_node_1.BatchSpanProcessor(traceExporter),
288
- new HasBeenProcessedSpanProcessor(traceExporter),
289
- ],
290
- });
291
- this.nodeTracerProvider = newTracerProvider;
292
- this.nodeTracerProvider.register();
293
- console.log("📡 Exporters added to TracerProvider - spans will now be sent to backend");
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.139",
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.139"
74
+ "@blaxel/core": "0.2.18-dev.141"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@eslint/js": "^9.26.0",