@blaxel/telemetry 0.2.23-dev.171 → 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 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 === "http") {
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");
@@ -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
- const logExporter = this.getLogExporter();
206
- this.loggerProvider = new sdk_logs_1.LoggerProvider({
207
- resource,
208
- });
209
- this.loggerProvider.addLogRecordProcessor(new sdk_logs_1.BatchLogRecordProcessor(logExporter));
210
- api_logs_1.logs.setGlobalLoggerProvider(this.loggerProvider);
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.171",
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.171"
74
+ "@blaxel/core": "0.2.23-dev.173"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@eslint/js": "^9.26.0",
@@ -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
- };
@@ -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
- }