@blaxel/telemetry 0.2.0-dev5 → 0.2.0-dev7

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/index.js CHANGED
@@ -7,9 +7,9 @@ const legacy_logger_1 = require("./legacy_logger");
7
7
  const telemetry_1 = require("./telemetry");
8
8
  Object.defineProperty(exports, "blaxelTelemetry", { enumerable: true, get: function () { return telemetry_1.blaxelTelemetry; } });
9
9
  telemetry_1.blaxelTelemetry.initialize();
10
- if (core_1.env.BL_LOGGER === "legacy") {
10
+ if (core_1.settings.loggerType === "http") {
11
11
  (0, legacy_logger_1.setLegacyLogger)();
12
12
  }
13
- else if (core_1.env.BL_LOGGER === "json") {
13
+ else if (core_1.settings.loggerType === "json") {
14
14
  (0, json_logger_1.setJsonLogger)();
15
15
  }
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.originalLogger = void 0;
5
5
  exports.setJsonLogger = setJsonLogger;
6
6
  exports.stringify = stringify;
7
- const core_1 = require("@blaxel/core");
7
+ const api_1 = require("@opentelemetry/api");
8
8
  function setJsonLogger() {
9
9
  console.debug = (message, ...args) => {
10
10
  const msg = formatLogMessage("DEBUG", message, args);
@@ -72,9 +72,12 @@ function formatLogMessage(severity, message, args) {
72
72
  });
73
73
  }
74
74
  function getLabels() {
75
- return {
76
- "blaxel-workspace": core_1.settings.workspace,
77
- "blaxel-name": core_1.settings.name,
78
- "blaxel-type": core_1.settings.type,
79
- };
75
+ const currentSpan = api_1.trace.getActiveSpan();
76
+ if (currentSpan) {
77
+ const { traceId, spanId } = currentSpan.spanContext();
78
+ return {
79
+ "trace-id": traceId,
80
+ "span-id": spanId
81
+ };
82
+ }
80
83
  }
package/dist/telemetry.js CHANGED
@@ -14,6 +14,7 @@ const resources_1 = require("@opentelemetry/resources");
14
14
  const sdk_logs_1 = require("@opentelemetry/sdk-logs");
15
15
  const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
16
16
  const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
17
+ const telemetry_provider_1 = require("./telemetry_provider");
17
18
  class BlaxelResource {
18
19
  attributes;
19
20
  constructor(attributes) {
@@ -181,6 +182,7 @@ class TelemetryManager {
181
182
  });
182
183
  }
183
184
  instrumentApp() {
185
+ core_1.telemetryRegistry.registerProvider(new telemetry_provider_1.OtelTelemetryProvider());
184
186
  const httpInstrumentation = new instrumentation_http_1.HttpInstrumentation({
185
187
  requireParentforOutgoingSpans: true,
186
188
  });
@@ -0,0 +1,4 @@
1
+ import { BlaxelSpan, BlaxelSpanOptions, BlaxelTelemetryProvider } from "@blaxel/core";
2
+ export declare class OtelTelemetryProvider implements BlaxelTelemetryProvider {
3
+ startSpan(name: string, options?: BlaxelSpanOptions): BlaxelSpan;
4
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OtelTelemetryProvider = void 0;
4
+ const api_1 = require("@opentelemetry/api");
5
+ class OtelSpan {
6
+ span;
7
+ constructor(span) {
8
+ this.span = span;
9
+ }
10
+ setAttribute(key, value) {
11
+ this.span.setAttribute(key, value);
12
+ }
13
+ setAttributes(attributes) {
14
+ Object.entries(attributes).forEach(([k, v]) => this.span.setAttribute(k, v));
15
+ }
16
+ recordException(error) {
17
+ this.span.recordException(error);
18
+ this.span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: error.message });
19
+ }
20
+ setStatus(status, message) {
21
+ this.span.setStatus({
22
+ code: status === 'ok' ? api_1.SpanStatusCode.OK : api_1.SpanStatusCode.ERROR,
23
+ message,
24
+ });
25
+ }
26
+ end() {
27
+ this.span.end();
28
+ }
29
+ getContext() {
30
+ return this.span.spanContext();
31
+ }
32
+ }
33
+ class OtelTelemetryProvider {
34
+ startSpan(name, options) {
35
+ // Use the tracer from the registered NodeTracerProvider
36
+ const tracer = api_1.trace.getTracer("blaxel");
37
+ // Prepare OpenTelemetry span options
38
+ const otelOptions = {
39
+ attributes: options?.attributes,
40
+ root: options?.isRoot,
41
+ };
42
+ // Handle parent context if provided
43
+ let ctx = api_1.context.active();
44
+ if (options?.parentContext) {
45
+ ctx = options.parentContext;
46
+ }
47
+ // Start the span
48
+ const span = tracer.startSpan(name, otelOptions, ctx);
49
+ return new OtelSpan(span);
50
+ }
51
+ }
52
+ exports.OtelTelemetryProvider = OtelTelemetryProvider;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaxel/telemetry",
3
- "version": "0.2.0-dev5",
3
+ "version": "0.2.0-dev7",
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.0-dev5"
74
+ "@blaxel/core": "0.2.0-dev7"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@eslint/js": "^9.26.0",