@mastra/observability 1.17.4 → 1.17.5-alpha.1

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.
Files changed (39) hide show
  1. package/README.md +14 -85
  2. package/dist/bus/base.d.ts.map +1 -1
  3. package/dist/bus/observability-bus.d.ts.map +1 -1
  4. package/dist/config.d.ts +5 -5
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/context/logger.d.ts.map +1 -1
  7. package/dist/context/metrics.d.ts.map +1 -1
  8. package/dist/default.d.ts.map +1 -1
  9. package/dist/exporters/auth-failure-cooldown.d.ts.map +1 -1
  10. package/dist/exporters/base.d.ts.map +1 -1
  11. package/dist/exporters/cloud.d.ts.map +1 -1
  12. package/dist/exporters/console.d.ts.map +1 -1
  13. package/dist/exporters/default.d.ts.map +1 -1
  14. package/dist/exporters/event-buffer.d.ts.map +1 -1
  15. package/dist/exporters/mastra-platform.d.ts.map +1 -1
  16. package/dist/exporters/mastra-storage.d.ts.map +1 -1
  17. package/dist/exporters/test.d.ts.map +1 -1
  18. package/dist/exporters/tracking.d.ts.map +1 -1
  19. package/dist/index.cjs +28 -2
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.js +28 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/instances/base.d.ts.map +1 -1
  24. package/dist/instances/default.d.ts.map +1 -1
  25. package/dist/metrics/cardinality.d.ts.map +1 -1
  26. package/dist/metrics/pricing-model.d.ts.map +1 -1
  27. package/dist/metrics/pricing-registry.d.ts.map +1 -1
  28. package/dist/metrics/types.d.ts +24 -24
  29. package/dist/metrics/types.d.ts.map +1 -1
  30. package/dist/model-tracing.d.ts.map +1 -1
  31. package/dist/registry.d.ts.map +1 -1
  32. package/dist/span_processors/sensitive-data-filter.d.ts.map +1 -1
  33. package/dist/spans/base.d.ts.map +1 -1
  34. package/dist/spans/default.d.ts.map +1 -1
  35. package/dist/spans/metadata.d.ts +8 -0
  36. package/dist/spans/metadata.d.ts.map +1 -1
  37. package/dist/spans/no-op.d.ts.map +1 -1
  38. package/package.json +8 -9
  39. package/CHANGELOG.md +0 -3160
package/dist/index.js CHANGED
@@ -2614,6 +2614,31 @@ function isPlainRecord(value) {
2614
2614
  }
2615
2615
  }
2616
2616
  /**
2617
+ * Returns `metadata` without own data properties whose value is `undefined`,
2618
+ * so callers can merge it without erasing keys another source provides.
2619
+ * Accessor properties are kept without invoking their getters. Non-plain
2620
+ * values are returned as-is; when nothing is stripped (or reflection on the
2621
+ * value throws) the original reference is returned.
2622
+ */
2623
+ function stripUndefined(metadata) {
2624
+ if (!metadata || !isPlainRecord(metadata)) return metadata;
2625
+ try {
2626
+ const result = {};
2627
+ let stripped = false;
2628
+ for (const key of Reflect.ownKeys(metadata)) {
2629
+ const descriptor = Object.getOwnPropertyDescriptor(metadata, key);
2630
+ if ("value" in descriptor && descriptor.value === void 0) {
2631
+ stripped = true;
2632
+ continue;
2633
+ }
2634
+ Object.defineProperty(result, key, descriptor);
2635
+ }
2636
+ return stripped ? result : metadata;
2637
+ } catch {
2638
+ return metadata;
2639
+ }
2640
+ }
2641
+ /**
2617
2642
  * Merges two metadata values while preserving property descriptors (so getters
2618
2643
  * are copied as accessors rather than eagerly invoked). Only plain records are
2619
2644
  * merged; if either side is non-plain the second argument is returned as-is,
@@ -3283,7 +3308,8 @@ var BaseObservabilityInstance = class extends MastraBase {
3283
3308
  let traceState;
3284
3309
  if (options.parent) traceState = options.parent.traceState;
3285
3310
  else traceState = this.computeTraceState(tracingOptions);
3286
- const mergedMetadata = mergeMetadata$1(metadata, !options.parent ? tracingOptions?.metadata : void 0);
3311
+ const tracingMetadata = !options.parent ? tracingOptions?.metadata : void 0;
3312
+ const mergedMetadata = mergeMetadata$1(stripUndefined(metadata), stripUndefined(tracingMetadata));
3287
3313
  const enrichedMetadata = this.extractMetadataFromRequestContext(requestContext, mergedMetadata, traceState);
3288
3314
  const finalMetadata = !options.parent ? injectEnvironmentMetadata(enrichedMetadata, this.#mastraEnvironment) : enrichedMetadata;
3289
3315
  const tags = !options.parent ? tracingOptions?.tags : void 0;
@@ -3551,7 +3577,7 @@ var BaseObservabilityInstance = class extends MastraBase {
3551
3577
  if (!requestContext || !traceState || traceState.requestContextKeys.length === 0) return explicitMetadata;
3552
3578
  const extracted = this.extractKeys(requestContext, traceState.requestContextKeys);
3553
3579
  if (Object.keys(extracted).length === 0 && !explicitMetadata) return;
3554
- return mergeMetadata$1(extracted, explicitMetadata);
3580
+ return mergeMetadata$1(extracted, stripUndefined(explicitMetadata));
3555
3581
  }
3556
3582
  /**
3557
3583
  * Extract specific keys from RequestContext