@blaxel/telemetry 0.2.17-dev.117 → 0.2.17-dev.119

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.
@@ -58,6 +58,7 @@ declare class TelemetryManager {
58
58
  * Initialize and return the OTLP Log Exporter.
59
59
  */
60
60
  getLogExporter(): OTLPLogExporter;
61
+ setupTracerProvider(): void;
61
62
  instrumentApp(): void;
62
63
  setExporters(): void;
63
64
  shutdownApp(): Promise<void>;
package/dist/telemetry.js CHANGED
@@ -13,6 +13,9 @@ const resources_1 = require("@opentelemetry/resources");
13
13
  const sdk_logs_1 = require("@opentelemetry/sdk-logs");
14
14
  const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
15
15
  const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
16
+ // W3CTraceContextPropagator import - trying different paths
17
+ // import { W3CTraceContextPropagator } from "@opentelemetry/core";
18
+ // import { W3CTraceContextPropagator } from "@opentelemetry/sdk-trace-base";
16
19
  const telemetry_provider_1 = require("./telemetry_provider");
17
20
  class BlaxelResource {
18
21
  attributes;
@@ -191,8 +194,22 @@ class TelemetryManager {
191
194
  headers: this.authHeaders,
192
195
  });
193
196
  }
197
+ setupTracerProvider() {
198
+ if (this.nodeTracerProvider) {
199
+ return; // Already set up
200
+ }
201
+ const resource = new BlaxelResource(this.resourceAttributes);
202
+ this.nodeTracerProvider = new sdk_trace_node_1.NodeTracerProvider({
203
+ resource,
204
+ sampler: new sdk_trace_node_1.AlwaysOnSampler(),
205
+ });
206
+ this.nodeTracerProvider.register();
207
+ core_1.logger.debug("NodeTracerProvider registered early - propagation fields:", api_1.propagation.fields());
208
+ }
194
209
  instrumentApp() {
195
210
  core_1.logger.debug("Available propagation fields before setup:", api_1.propagation.fields());
211
+ // Set up tracer provider FIRST before instrumentation
212
+ this.setupTracerProvider();
196
213
  core_1.telemetryRegistry.registerProvider(new telemetry_provider_1.OtelTelemetryProvider());
197
214
  const httpInstrumentation = new instrumentation_http_1.HttpInstrumentation({
198
215
  requireParentforOutgoingSpans: true,
@@ -222,12 +239,12 @@ class TelemetryManager {
222
239
  // Try to manually parse the traceparent header
223
240
  const parts = traceparentValue.split("-");
224
241
  if (parts.length === 4) {
225
- core_1.logger.debug("Traceparent parts:", {
242
+ core_1.logger.debug("Traceparent parts:", JSON.stringify({
226
243
  version: parts[0],
227
244
  traceId: parts[1],
228
245
  spanId: parts[2],
229
246
  flags: parts[3],
230
- });
247
+ }));
231
248
  // Check if this looks like a valid traceparent
232
249
  if (parts[1] !== "00000000000000000000000000000000" &&
233
250
  parts[2] !== "0000000000000000") {
@@ -290,20 +307,23 @@ class TelemetryManager {
290
307
  this.loggerProvider.addLogRecordProcessor(new sdk_logs_1.BatchLogRecordProcessor(logExporter));
291
308
  api_logs_1.logs.setGlobalLoggerProvider(this.loggerProvider);
292
309
  const traceExporter = this.getTraceExporter();
293
- this.nodeTracerProvider = new sdk_trace_node_1.NodeTracerProvider({
294
- resource,
295
- sampler: new sdk_trace_node_1.AlwaysOnSampler(),
296
- spanProcessors: [
297
- new DefaultAttributesSpanProcessor({
298
- "workload.id": core_1.settings.name || "",
299
- "workload.type": core_1.settings.type ? core_1.settings.type + "s" : "",
300
- workspace: core_1.settings.workspace || "",
301
- }),
302
- new sdk_trace_node_1.BatchSpanProcessor(traceExporter),
303
- new HasBeenProcessedSpanProcessor(traceExporter),
304
- ],
305
- });
306
- this.nodeTracerProvider.register();
310
+ if (!this.nodeTracerProvider) {
311
+ // Create tracer provider if not already created
312
+ this.nodeTracerProvider = new sdk_trace_node_1.NodeTracerProvider({
313
+ resource,
314
+ sampler: new sdk_trace_node_1.AlwaysOnSampler(),
315
+ spanProcessors: [
316
+ new DefaultAttributesSpanProcessor({
317
+ "workload.id": core_1.settings.name || "",
318
+ "workload.type": core_1.settings.type ? core_1.settings.type + "s" : "",
319
+ workspace: core_1.settings.workspace || "",
320
+ }),
321
+ new sdk_trace_node_1.BatchSpanProcessor(traceExporter),
322
+ new HasBeenProcessedSpanProcessor(traceExporter),
323
+ ],
324
+ });
325
+ this.nodeTracerProvider.register();
326
+ }
307
327
  // Ensure W3C trace context propagation is working
308
328
  core_1.logger.debug("Propagation fields after tracer registration:", api_1.propagation.fields());
309
329
  const metricExporter = this.getMetricExporter();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaxel/telemetry",
3
- "version": "0.2.17-dev.117",
3
+ "version": "0.2.17-dev.119",
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.17-dev.117"
74
+ "@blaxel/core": "0.2.17-dev.119"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@eslint/js": "^9.26.0",