@brizz/sdk 0.1.17 → 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,6 +202,7 @@ 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,
@@ -372,7 +373,7 @@ var import_sdk_logs2 = require("@opentelemetry/sdk-logs");
372
373
 
373
374
  // src/internal/version.ts
374
375
  function getSDKVersion() {
375
- return "0.1.17";
376
+ return "0.1.18";
376
377
  }
377
378
 
378
379
  // src/internal/log/processors/log-processor.ts
@@ -1174,6 +1175,7 @@ var LoggingModule = class _LoggingModule {
1174
1175
  serviceName: config.appName
1175
1176
  });
1176
1177
  const resourceAttributes = {
1178
+ ...config.resourceAttributes,
1177
1179
  "service.name": config.appName,
1178
1180
  [BRIZZ_SDK_VERSION]: getSDKVersion(),
1179
1181
  [BRIZZ_SDK_LANGUAGE]: SDK_LANGUAGE
@@ -1181,6 +1183,9 @@ var LoggingModule = class _LoggingModule {
1181
1183
  if (config.environment) {
1182
1184
  resourceAttributes["deployment.environment"] = config.environment;
1183
1185
  }
1186
+ if (config.appVersion) {
1187
+ resourceAttributes["service.version"] = config.appVersion;
1188
+ }
1184
1189
  const resource = (0, import_resources.resourceFromAttributes)(resourceAttributes);
1185
1190
  logger.debug("Creating logger provider with resource");
1186
1191
  this.loggerProvider = new import_sdk_logs2.LoggerProvider({
@@ -1364,13 +1369,16 @@ function getMetricsReader() {
1364
1369
  var import_exporter_trace_otlp_proto = require("@opentelemetry/exporter-trace-otlp-proto");
1365
1370
 
1366
1371
  // src/internal/trace/exporters/span-exporter.ts
1372
+ var import_core = require("@opentelemetry/core");
1367
1373
  var import_resources2 = require("@opentelemetry/resources");
1368
1374
  var BrizzSpanExporter = class {
1369
1375
  _delegate;
1370
1376
  _brizzResource;
1377
+ _beforeSendSpan;
1371
1378
  constructor(delegate, config) {
1372
1379
  this._delegate = delegate;
1373
1380
  const resourceAttrs = {
1381
+ ...config.resourceAttributes,
1374
1382
  "service.name": config.appName,
1375
1383
  [BRIZZ_SDK_VERSION]: getSDKVersion(),
1376
1384
  [BRIZZ_SDK_LANGUAGE]: SDK_LANGUAGE
@@ -1378,15 +1386,47 @@ var BrizzSpanExporter = class {
1378
1386
  if (config.environment) {
1379
1387
  resourceAttrs["deployment.environment"] = config.environment;
1380
1388
  }
1389
+ if (config.appVersion) {
1390
+ resourceAttrs["service.version"] = config.appVersion;
1391
+ }
1381
1392
  this._brizzResource = (0, import_resources2.resourceFromAttributes)(resourceAttrs);
1393
+ this._beforeSendSpan = config.beforeSendSpan;
1382
1394
  }
1383
1395
  export(spans, resultCallback) {
1396
+ if (spans.length === 0) {
1397
+ resultCallback({ code: import_core.ExportResultCode.SUCCESS });
1398
+ return;
1399
+ }
1384
1400
  const patchedSpans = spans.map((span) => ({
1385
1401
  ...span,
1386
1402
  resource: span.resource.merge(this._brizzResource),
1387
1403
  spanContext: span.spanContext.bind(span)
1388
1404
  }));
1389
- 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
+ });
1390
1430
  }
1391
1431
  async shutdown() {
1392
1432
  return this._delegate.shutdown();
@@ -1672,6 +1712,7 @@ var _Brizz = class __Brizz {
1672
1712
  const registry = InstrumentationRegistry.getInstance();
1673
1713
  const manualInstrumentations = registry.getManualInstrumentations();
1674
1714
  const resourceAttributes = {
1715
+ ...resolvedConfig.resourceAttributes,
1675
1716
  "service.name": resolvedConfig.appName,
1676
1717
  [BRIZZ_SDK_VERSION]: getSDKVersion(),
1677
1718
  [BRIZZ_SDK_LANGUAGE]: SDK_LANGUAGE
@@ -1679,6 +1720,9 @@ var _Brizz = class __Brizz {
1679
1720
  if (resolvedConfig.environment) {
1680
1721
  resourceAttributes["deployment.environment"] = resolvedConfig.environment;
1681
1722
  }
1723
+ if (resolvedConfig.appVersion) {
1724
+ resourceAttributes["service.version"] = resolvedConfig.appVersion;
1725
+ }
1682
1726
  this._sdk = new import_sdk_node.NodeSDK({
1683
1727
  spanProcessors: resolvedConfig.disableSpanExporter ? [] : [getSpanProcessor()],
1684
1728
  metricReader: getMetricsReader(),