@blaxel/telemetry 0.2.0-dev6 → 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 +2 -2
- package/dist/telemetry.js +2 -0
- package/dist/telemetry_provider.d.ts +4 -0
- package/dist/telemetry_provider.js +52 -0
- package/package.json +2 -2
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.
|
|
10
|
+
if (core_1.settings.loggerType === "http") {
|
|
11
11
|
(0, legacy_logger_1.setLegacyLogger)();
|
|
12
12
|
}
|
|
13
|
-
else if (core_1.
|
|
13
|
+
else if (core_1.settings.loggerType === "json") {
|
|
14
14
|
(0, json_logger_1.setJsonLogger)();
|
|
15
15
|
}
|
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,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-
|
|
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-
|
|
74
|
+
"@blaxel/core": "0.2.0-dev7"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"@eslint/js": "^9.26.0",
|