@blaxel/telemetry 0.2.23-dev.172 → 0.2.23-dev.173
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 +1 -5
- package/dist/telemetry.d.ts +0 -9
- package/dist/telemetry.js +13 -40
- package/package.json +2 -2
- package/dist/legacy_logger.d.ts +0 -8
- package/dist/legacy_logger.js +0 -58
package/dist/index.js
CHANGED
|
@@ -3,14 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.blaxelTelemetry = exports.setJsonLogger = void 0;
|
|
4
4
|
const core_1 = require("@blaxel/core");
|
|
5
5
|
const json_logger_1 = require("./json_logger");
|
|
6
|
-
const legacy_logger_1 = require("./legacy_logger");
|
|
7
6
|
const telemetry_1 = require("./telemetry");
|
|
8
7
|
Object.defineProperty(exports, "blaxelTelemetry", { enumerable: true, get: function () { return telemetry_1.blaxelTelemetry; } });
|
|
9
8
|
telemetry_1.blaxelTelemetry.initialize();
|
|
10
|
-
if (core_1.settings.loggerType === "
|
|
11
|
-
(0, legacy_logger_1.setLegacyLogger)();
|
|
12
|
-
}
|
|
13
|
-
else if (core_1.settings.loggerType === "json") {
|
|
9
|
+
if (core_1.settings.loggerType === "json") {
|
|
14
10
|
(0, json_logger_1.setJsonLogger)();
|
|
15
11
|
}
|
|
16
12
|
var json_logger_2 = require("./json_logger");
|
package/dist/telemetry.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { Span } from "@opentelemetry/api";
|
|
2
|
-
import { Logger } from "@opentelemetry/api-logs";
|
|
3
|
-
import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
|
|
4
2
|
import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http";
|
|
5
3
|
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
|
|
6
4
|
import { RawResourceAttribute, Resource } from "@opentelemetry/resources";
|
|
@@ -28,8 +26,6 @@ export type TelemetryOptions = {
|
|
|
28
26
|
declare class TelemetryManager {
|
|
29
27
|
private nodeTracerProvider;
|
|
30
28
|
private meterProvider;
|
|
31
|
-
private loggerProvider;
|
|
32
|
-
private otelLogger;
|
|
33
29
|
private initialized;
|
|
34
30
|
private configured;
|
|
35
31
|
constructor();
|
|
@@ -40,7 +36,6 @@ declare class TelemetryManager {
|
|
|
40
36
|
get authHeaders(): Record<string, string>;
|
|
41
37
|
sleep(ms: number): Promise<unknown>;
|
|
42
38
|
flush(): Promise<void>;
|
|
43
|
-
getLogger(): Promise<Logger>;
|
|
44
39
|
setupSignalHandler(): void;
|
|
45
40
|
/**
|
|
46
41
|
* Get resource attributes for OpenTelemetry.
|
|
@@ -54,10 +49,6 @@ declare class TelemetryManager {
|
|
|
54
49
|
* Initialize and return the OTLP Trace Exporter.
|
|
55
50
|
*/
|
|
56
51
|
getTraceExporter(): OTLPTraceExporter;
|
|
57
|
-
/**
|
|
58
|
-
* Initialize and return the OTLP Log Exporter.
|
|
59
|
-
*/
|
|
60
|
-
getLogExporter(): OTLPLogExporter;
|
|
61
52
|
instrumentApp(): void;
|
|
62
53
|
setExporters(): void;
|
|
63
54
|
shutdownApp(): Promise<void>;
|
package/dist/telemetry.js
CHANGED
|
@@ -3,14 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.blaxelTelemetry = exports.DefaultAttributesSpanProcessor = exports.BlaxelResource = void 0;
|
|
4
4
|
const core_1 = require("@blaxel/core");
|
|
5
5
|
const api_1 = require("@opentelemetry/api");
|
|
6
|
-
const api_logs_1 = require("@opentelemetry/api-logs");
|
|
7
|
-
const exporter_logs_otlp_http_1 = require("@opentelemetry/exporter-logs-otlp-http");
|
|
8
6
|
const exporter_metrics_otlp_http_1 = require("@opentelemetry/exporter-metrics-otlp-http");
|
|
9
7
|
const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
|
|
10
8
|
const instrumentation_1 = require("@opentelemetry/instrumentation");
|
|
11
9
|
const instrumentation_http_1 = require("@opentelemetry/instrumentation-http");
|
|
12
10
|
const resources_1 = require("@opentelemetry/resources");
|
|
13
|
-
const sdk_logs_1 = require("@opentelemetry/sdk-logs");
|
|
14
11
|
const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
|
|
15
12
|
const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
|
|
16
13
|
const telemetry_provider_1 = require("./telemetry_provider");
|
|
@@ -54,6 +51,9 @@ class DefaultAttributesSpanProcessor {
|
|
|
54
51
|
}
|
|
55
52
|
exports.DefaultAttributesSpanProcessor = DefaultAttributesSpanProcessor;
|
|
56
53
|
class HasBeenProcessedSpanProcessor extends sdk_trace_node_1.BatchSpanProcessor {
|
|
54
|
+
constructor(exporter, config) {
|
|
55
|
+
super(exporter, config);
|
|
56
|
+
}
|
|
57
57
|
onEnd(span) {
|
|
58
58
|
super.onEnd(span);
|
|
59
59
|
}
|
|
@@ -61,15 +61,11 @@ class HasBeenProcessedSpanProcessor extends sdk_trace_node_1.BatchSpanProcessor
|
|
|
61
61
|
class TelemetryManager {
|
|
62
62
|
nodeTracerProvider;
|
|
63
63
|
meterProvider;
|
|
64
|
-
loggerProvider;
|
|
65
|
-
otelLogger;
|
|
66
64
|
initialized;
|
|
67
65
|
configured;
|
|
68
66
|
constructor() {
|
|
69
67
|
this.nodeTracerProvider = null;
|
|
70
68
|
this.meterProvider = null;
|
|
71
|
-
this.loggerProvider = null;
|
|
72
|
-
this.otelLogger = null;
|
|
73
69
|
this.initialized = false;
|
|
74
70
|
this.configured = false;
|
|
75
71
|
}
|
|
@@ -91,7 +87,6 @@ class TelemetryManager {
|
|
|
91
87
|
}
|
|
92
88
|
await (0, core_1.authenticate)();
|
|
93
89
|
this.setExporters();
|
|
94
|
-
this.otelLogger = api_logs_1.logs.getLogger("blaxel");
|
|
95
90
|
core_1.logger.debug("Telemetry ready");
|
|
96
91
|
this.configured = true;
|
|
97
92
|
}
|
|
@@ -121,16 +116,6 @@ class TelemetryManager {
|
|
|
121
116
|
if (this.meterProvider) {
|
|
122
117
|
await this.meterProvider.shutdown();
|
|
123
118
|
}
|
|
124
|
-
if (this.loggerProvider) {
|
|
125
|
-
await this.loggerProvider.shutdown();
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
async getLogger() {
|
|
129
|
-
if (!this.otelLogger) {
|
|
130
|
-
await this.sleep(100);
|
|
131
|
-
return this.getLogger();
|
|
132
|
-
}
|
|
133
|
-
return this.otelLogger;
|
|
134
119
|
}
|
|
135
120
|
setupSignalHandler() {
|
|
136
121
|
const signals = ["SIGINT", "SIGTERM", "uncaughtException", "exit"];
|
|
@@ -183,14 +168,6 @@ class TelemetryManager {
|
|
|
183
168
|
headers: this.authHeaders,
|
|
184
169
|
});
|
|
185
170
|
}
|
|
186
|
-
/**
|
|
187
|
-
* Initialize and return the OTLP Log Exporter.
|
|
188
|
-
*/
|
|
189
|
-
getLogExporter() {
|
|
190
|
-
return new exporter_logs_otlp_http_1.OTLPLogExporter({
|
|
191
|
-
headers: this.authHeaders,
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
171
|
instrumentApp() {
|
|
195
172
|
core_1.telemetryRegistry.registerProvider(new telemetry_provider_1.OtelTelemetryProvider());
|
|
196
173
|
const httpInstrumentation = new instrumentation_http_1.HttpInstrumentation({
|
|
@@ -202,12 +179,13 @@ class TelemetryManager {
|
|
|
202
179
|
}
|
|
203
180
|
setExporters() {
|
|
204
181
|
const resource = new BlaxelResource(this.resourceAttributes);
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
182
|
+
// Configure batch processor options with 1-second delay
|
|
183
|
+
const batchProcessorOptions = {
|
|
184
|
+
scheduledDelayMillis: 1000, // Export every 1 second
|
|
185
|
+
exportTimeoutMillis: 5000, // Timeout for export
|
|
186
|
+
maxExportBatchSize: 512, // Max batch size
|
|
187
|
+
maxQueueSize: 2048 // Max queue size
|
|
188
|
+
};
|
|
211
189
|
const traceExporter = this.getTraceExporter();
|
|
212
190
|
this.nodeTracerProvider = new sdk_trace_node_1.NodeTracerProvider({
|
|
213
191
|
resource,
|
|
@@ -218,8 +196,8 @@ class TelemetryManager {
|
|
|
218
196
|
"workload.type": core_1.settings.type ? core_1.settings.type + "s" : "",
|
|
219
197
|
workspace: core_1.settings.workspace || "",
|
|
220
198
|
}),
|
|
221
|
-
new sdk_trace_node_1.BatchSpanProcessor(traceExporter),
|
|
222
|
-
new HasBeenProcessedSpanProcessor(traceExporter),
|
|
199
|
+
new sdk_trace_node_1.BatchSpanProcessor(traceExporter, batchProcessorOptions),
|
|
200
|
+
new HasBeenProcessedSpanProcessor(traceExporter, batchProcessorOptions),
|
|
223
201
|
],
|
|
224
202
|
});
|
|
225
203
|
this.nodeTracerProvider.register();
|
|
@@ -229,7 +207,7 @@ class TelemetryManager {
|
|
|
229
207
|
readers: [
|
|
230
208
|
new sdk_metrics_1.PeriodicExportingMetricReader({
|
|
231
209
|
exporter: metricExporter,
|
|
232
|
-
exportIntervalMillis: 60000
|
|
210
|
+
exportIntervalMillis: 1000, // Changed from 60000 to 1000 (1 second)
|
|
233
211
|
}),
|
|
234
212
|
],
|
|
235
213
|
});
|
|
@@ -253,11 +231,6 @@ class TelemetryManager {
|
|
|
253
231
|
.shutdown()
|
|
254
232
|
.catch((error) => core_1.logger.debug("Error shutting down meter provider:", error)));
|
|
255
233
|
}
|
|
256
|
-
if (this.loggerProvider) {
|
|
257
|
-
shutdownPromises.push(this.loggerProvider
|
|
258
|
-
.shutdown()
|
|
259
|
-
.catch((error) => core_1.logger.debug("Error shutting down logger provider:", error)));
|
|
260
|
-
}
|
|
261
234
|
// Wait for all providers to shutdown with a timeout
|
|
262
235
|
await Promise.race([
|
|
263
236
|
Promise.all(shutdownPromises),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaxel/telemetry",
|
|
3
|
-
"version": "0.2.23-dev.
|
|
3
|
+
"version": "0.2.23-dev.173",
|
|
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.23-dev.
|
|
74
|
+
"@blaxel/core": "0.2.23-dev.173"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"@eslint/js": "^9.26.0",
|
package/dist/legacy_logger.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare function setLegacyLogger(): void;
|
|
2
|
-
export declare const originalLogger: {
|
|
3
|
-
info: (message?: any, ...optionalParams: any[]) => void;
|
|
4
|
-
error: (message?: any, ...optionalParams: any[]) => void;
|
|
5
|
-
warn: (message?: any, ...optionalParams: any[]) => void;
|
|
6
|
-
debug: (message?: any, ...optionalParams: any[]) => void;
|
|
7
|
-
log: (message?: any, ...optionalParams: any[]) => void;
|
|
8
|
-
};
|
package/dist/legacy_logger.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.originalLogger = void 0;
|
|
4
|
-
exports.setLegacyLogger = setLegacyLogger;
|
|
5
|
-
/* eslint-disable no-console */
|
|
6
|
-
const core_1 = require("@blaxel/core");
|
|
7
|
-
const api_logs_1 = require("@opentelemetry/api-logs");
|
|
8
|
-
const telemetry_1 = require("./telemetry");
|
|
9
|
-
function setLegacyLogger() {
|
|
10
|
-
console.debug = (message, ...args) => {
|
|
11
|
-
const msg = formatLogMessage(message, args);
|
|
12
|
-
exports.originalLogger.log(msg);
|
|
13
|
-
emitLogSync(api_logs_1.SeverityNumber.DEBUG, msg);
|
|
14
|
-
};
|
|
15
|
-
console.log = (message, ...args) => {
|
|
16
|
-
const msg = formatLogMessage(message, args);
|
|
17
|
-
exports.originalLogger.log(msg);
|
|
18
|
-
emitLogSync(api_logs_1.SeverityNumber.INFO, msg);
|
|
19
|
-
};
|
|
20
|
-
console.info = (message, ...args) => {
|
|
21
|
-
const msg = formatLogMessage(message, args);
|
|
22
|
-
exports.originalLogger.log(msg);
|
|
23
|
-
emitLogSync(api_logs_1.SeverityNumber.INFO, msg);
|
|
24
|
-
};
|
|
25
|
-
console.error = (message, ...args) => {
|
|
26
|
-
const msg = formatLogMessage(message, args);
|
|
27
|
-
exports.originalLogger.log(msg);
|
|
28
|
-
emitLogSync(api_logs_1.SeverityNumber.ERROR, msg);
|
|
29
|
-
};
|
|
30
|
-
console.warn = (message, ...args) => {
|
|
31
|
-
const msg = formatLogMessage(message, args);
|
|
32
|
-
exports.originalLogger.log(msg);
|
|
33
|
-
emitLogSync(api_logs_1.SeverityNumber.WARN, msg);
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
exports.originalLogger = {
|
|
37
|
-
info: console.info,
|
|
38
|
-
error: console.error,
|
|
39
|
-
warn: console.warn,
|
|
40
|
-
debug: console.debug,
|
|
41
|
-
log: console.log,
|
|
42
|
-
};
|
|
43
|
-
// Format a log message with appropriate color and prefix
|
|
44
|
-
function formatLogMessage(message, args) {
|
|
45
|
-
const messageStr = typeof message === "string" ? message : (0, core_1.stringify)(message, 2);
|
|
46
|
-
const argsStr = args.map(arg => typeof arg === "string" ? arg : (0, core_1.stringify)(arg, 2)).join(" ");
|
|
47
|
-
return `${messageStr}${argsStr ? " " + argsStr : ""}`;
|
|
48
|
-
}
|
|
49
|
-
async function emitLog(severityNumber, message) {
|
|
50
|
-
const loggerInstance = await telemetry_1.blaxelTelemetry.getLogger();
|
|
51
|
-
loggerInstance.emit({
|
|
52
|
-
severityNumber: severityNumber,
|
|
53
|
-
body: message,
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
function emitLogSync(severityNumber, message) {
|
|
57
|
-
emitLog(severityNumber, message).catch(() => { });
|
|
58
|
-
}
|