@brizz/sdk 0.1.16 → 0.1.18

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/preload.cjs CHANGED
@@ -202,10 +202,12 @@ function resolveConfig(options) {
202
202
  const resolvedConfig = {
203
203
  ...options,
204
204
  appName: process.env["BRIZZ_APP_NAME"] || options.appName || "unknown-app",
205
+ appVersion: process.env["BRIZZ_APP_VERSION"] || options.appVersion,
205
206
  baseUrl: process.env["BRIZZ_BASE_URL"] || options.baseUrl || "https://telemetry.brizz.dev",
206
207
  headers: { ...options.headers },
207
208
  apiKey: process.env["BRIZZ_API_KEY"] || options.apiKey,
208
209
  disableBatch: process.env["BRIZZ_DISABLE_BATCH"] === "true" || !!options.disableBatch,
210
+ disableSpanExporter: process.env["BRIZZ_DISABLE_SPAN_EXPORTER"] === "true" || !!options.disableSpanExporter,
209
211
  environment: process.env["BRIZZ_ENVIRONMENT"] || options.environment,
210
212
  logLevel: resolvedLogLevel,
211
213
  masking: resolvedMasking
@@ -371,7 +373,7 @@ var import_sdk_logs2 = require("@opentelemetry/sdk-logs");
371
373
 
372
374
  // src/internal/version.ts
373
375
  function getSDKVersion() {
374
- return "0.1.16";
376
+ return "0.1.18";
375
377
  }
376
378
 
377
379
  // src/internal/log/processors/log-processor.ts
@@ -1173,6 +1175,7 @@ var LoggingModule = class _LoggingModule {
1173
1175
  serviceName: config.appName
1174
1176
  });
1175
1177
  const resourceAttributes = {
1178
+ ...config.resourceAttributes,
1176
1179
  "service.name": config.appName,
1177
1180
  [BRIZZ_SDK_VERSION]: getSDKVersion(),
1178
1181
  [BRIZZ_SDK_LANGUAGE]: SDK_LANGUAGE
@@ -1180,6 +1183,9 @@ var LoggingModule = class _LoggingModule {
1180
1183
  if (config.environment) {
1181
1184
  resourceAttributes["deployment.environment"] = config.environment;
1182
1185
  }
1186
+ if (config.appVersion) {
1187
+ resourceAttributes["service.version"] = config.appVersion;
1188
+ }
1183
1189
  const resource = (0, import_resources.resourceFromAttributes)(resourceAttributes);
1184
1190
  logger.debug("Creating logger provider with resource");
1185
1191
  this.loggerProvider = new import_sdk_logs2.LoggerProvider({
@@ -1363,13 +1369,16 @@ function getMetricsReader() {
1363
1369
  var import_exporter_trace_otlp_proto = require("@opentelemetry/exporter-trace-otlp-proto");
1364
1370
 
1365
1371
  // src/internal/trace/exporters/span-exporter.ts
1372
+ var import_core = require("@opentelemetry/core");
1366
1373
  var import_resources2 = require("@opentelemetry/resources");
1367
1374
  var BrizzSpanExporter = class {
1368
1375
  _delegate;
1369
1376
  _brizzResource;
1377
+ _beforeSendSpan;
1370
1378
  constructor(delegate, config) {
1371
1379
  this._delegate = delegate;
1372
1380
  const resourceAttrs = {
1381
+ ...config.resourceAttributes,
1373
1382
  "service.name": config.appName,
1374
1383
  [BRIZZ_SDK_VERSION]: getSDKVersion(),
1375
1384
  [BRIZZ_SDK_LANGUAGE]: SDK_LANGUAGE
@@ -1377,15 +1386,47 @@ var BrizzSpanExporter = class {
1377
1386
  if (config.environment) {
1378
1387
  resourceAttrs["deployment.environment"] = config.environment;
1379
1388
  }
1389
+ if (config.appVersion) {
1390
+ resourceAttrs["service.version"] = config.appVersion;
1391
+ }
1380
1392
  this._brizzResource = (0, import_resources2.resourceFromAttributes)(resourceAttrs);
1393
+ this._beforeSendSpan = config.beforeSendSpan;
1381
1394
  }
1382
1395
  export(spans, resultCallback) {
1396
+ if (spans.length === 0) {
1397
+ resultCallback({ code: import_core.ExportResultCode.SUCCESS });
1398
+ return;
1399
+ }
1383
1400
  const patchedSpans = spans.map((span) => ({
1384
1401
  ...span,
1385
1402
  resource: span.resource.merge(this._brizzResource),
1386
1403
  spanContext: span.spanContext.bind(span)
1387
1404
  }));
1388
- this._delegate.export(patchedSpans, resultCallback);
1405
+ const filter = this._beforeSendSpan;
1406
+ if (!filter) {
1407
+ this._delegate.export(patchedSpans, resultCallback);
1408
+ return;
1409
+ }
1410
+ const verdicts = patchedSpans.map((span) => {
1411
+ try {
1412
+ return Promise.resolve(filter(span));
1413
+ } catch (error) {
1414
+ logger.warn("beforeSendSpan threw; span will be kept", { error });
1415
+ return Promise.resolve(true);
1416
+ }
1417
+ });
1418
+ Promise.all(verdicts).then((keep) => {
1419
+ const filtered = patchedSpans.filter((_, i) => keep[i] !== false);
1420
+ if (filtered.length === 0) {
1421
+ resultCallback({ code: import_core.ExportResultCode.SUCCESS });
1422
+ return;
1423
+ }
1424
+ this._delegate.export(filtered, resultCallback);
1425
+ return;
1426
+ }).catch((error) => {
1427
+ logger.warn("beforeSendSpan rejected; all spans will be kept", { error });
1428
+ this._delegate.export(patchedSpans, resultCallback);
1429
+ });
1389
1430
  }
1390
1431
  async shutdown() {
1391
1432
  return this._delegate.shutdown();
@@ -1505,6 +1546,15 @@ var TracingModule = class _TracingModule {
1505
1546
  */
1506
1547
  setup(config) {
1507
1548
  logger.info("Setting up tracing module");
1549
+ if (config.disableSpanExporter) {
1550
+ logger.info(
1551
+ "Span exporter disabled via disableSpanExporter; skipping exporter and processor setup"
1552
+ );
1553
+ this.spanExporter = null;
1554
+ this.spanProcessor = null;
1555
+ _TracingModule.instance = this;
1556
+ return;
1557
+ }
1508
1558
  this.initSpanExporter(config);
1509
1559
  this.initSpanProcessor(config);
1510
1560
  _TracingModule.instance = this;
@@ -1662,6 +1712,7 @@ var _Brizz = class __Brizz {
1662
1712
  const registry = InstrumentationRegistry.getInstance();
1663
1713
  const manualInstrumentations = registry.getManualInstrumentations();
1664
1714
  const resourceAttributes = {
1715
+ ...resolvedConfig.resourceAttributes,
1665
1716
  "service.name": resolvedConfig.appName,
1666
1717
  [BRIZZ_SDK_VERSION]: getSDKVersion(),
1667
1718
  [BRIZZ_SDK_LANGUAGE]: SDK_LANGUAGE
@@ -1669,8 +1720,11 @@ var _Brizz = class __Brizz {
1669
1720
  if (resolvedConfig.environment) {
1670
1721
  resourceAttributes["deployment.environment"] = resolvedConfig.environment;
1671
1722
  }
1723
+ if (resolvedConfig.appVersion) {
1724
+ resourceAttributes["service.version"] = resolvedConfig.appVersion;
1725
+ }
1672
1726
  this._sdk = new import_sdk_node.NodeSDK({
1673
- spanProcessors: [getSpanProcessor()],
1727
+ spanProcessors: resolvedConfig.disableSpanExporter ? [] : [getSpanProcessor()],
1674
1728
  metricReader: getMetricsReader(),
1675
1729
  resource: (0, import_resources3.resourceFromAttributes)(resourceAttributes),
1676
1730
  instrumentations: manualInstrumentations