@mastra/observability 1.4.0-alpha.0 → 1.4.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # @mastra/observability
2
2
 
3
+ ## 1.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Added `requestContext` field to tracing spans. Each span now automatically captures a snapshot of the active `RequestContext`, making request-scoped values like user IDs, tenant IDs, and feature flags available when viewing traces. ([#14020](https://github.com/mastra-ai/mastra/pull/14020))
8
+
9
+ ### Patch Changes
10
+
11
+ - feat(tracing): implement metadata inheritance for child spans ([#11959](https://github.com/mastra-ai/mastra/pull/11959))
12
+ - Updated the BaseSpan constructor to inherit metadata from parent spans when not explicitly provided, merging values if both exist.
13
+ - Added tests to verify that child spans correctly inherit and can override metadata from their parent spans.
14
+ - Enhanced existing tests to ensure proper metadata propagation in tracing scenarios.
15
+
16
+ - Updated dependencies [[`4f71b43`](https://github.com/mastra-ai/mastra/commit/4f71b436a4a6b8839842d8da47b57b84509af56c), [`a070277`](https://github.com/mastra-ai/mastra/commit/a07027766ce195ba74d0783116d894cbab25d44c), [`b628b91`](https://github.com/mastra-ai/mastra/commit/b628b9128b372c0f54214d902b07279f03443900), [`332c014`](https://github.com/mastra-ai/mastra/commit/332c014e076b81edf7fe45b58205882726415e90), [`6b63153`](https://github.com/mastra-ai/mastra/commit/6b63153878ea841c0f4ce632ba66bb33e57e9c1b), [`4246e34`](https://github.com/mastra-ai/mastra/commit/4246e34cec9c26636d0965942268e6d07c346671), [`b8837ee`](https://github.com/mastra-ai/mastra/commit/b8837ee77e2e84197609762bfabd8b3da326d30c), [`866cc2c`](https://github.com/mastra-ai/mastra/commit/866cc2cb1f0e3b314afab5194f69477fada745d1), [`5d950f7`](https://github.com/mastra-ai/mastra/commit/5d950f7bf426a215a1808f0abef7de5c8336ba1c), [`28c85b1`](https://github.com/mastra-ai/mastra/commit/28c85b184fc32b40f7f160483c982da6d388ecbd), [`e9a08fb`](https://github.com/mastra-ai/mastra/commit/e9a08fbef1ada7e50e961e2f54f55e8c10b4a45c), [`1d0a8a8`](https://github.com/mastra-ai/mastra/commit/1d0a8a8acf33203d5744fc429b090ad8598aa8ed), [`631ffd8`](https://github.com/mastra-ai/mastra/commit/631ffd82fed108648b448b28e6a90e38c5f53bf5), [`6bcbf8a`](https://github.com/mastra-ai/mastra/commit/6bcbf8a6774d5a53b21d61db8a45ce2593ca1616), [`aae2295`](https://github.com/mastra-ai/mastra/commit/aae2295838a2d329ad6640829e87934790ffe5b8), [`aa61f29`](https://github.com/mastra-ai/mastra/commit/aa61f29ff8095ce46a4ae16e46c4d8c79b2b685b), [`7ff3714`](https://github.com/mastra-ai/mastra/commit/7ff37148515439bb3be009a60e02c3e363299760), [`18c3a90`](https://github.com/mastra-ai/mastra/commit/18c3a90c9e48cf69500e308affeb8eba5860b2af), [`41d79a1`](https://github.com/mastra-ai/mastra/commit/41d79a14bd8cb6de1e2565fd0a04786bae2f211b), [`f35487b`](https://github.com/mastra-ai/mastra/commit/f35487bb2d46c636e22aa71d90025613ae38235a), [`6dc2192`](https://github.com/mastra-ai/mastra/commit/6dc21921aef0f0efab15cd0805fa3d18f277a76f), [`eeb3a3f`](https://github.com/mastra-ai/mastra/commit/eeb3a3f43aca10cf49479eed2a84b7d9ecea02ba), [`e673376`](https://github.com/mastra-ai/mastra/commit/e6733763ad1321aa7e5ae15096b9c2104f93b1f3), [`05f8d90`](https://github.com/mastra-ai/mastra/commit/05f8d9009290ce6aa03428b3add635268615db85), [`b2204c9`](https://github.com/mastra-ai/mastra/commit/b2204c98a42848bbfb6f0440f005dc2b6354f1cd), [`a1bf1e3`](https://github.com/mastra-ai/mastra/commit/a1bf1e385ed4c0ef6f11b56c5887442970d127f2), [`b6f647a`](https://github.com/mastra-ai/mastra/commit/b6f647ae2388e091f366581595feb957e37d5b40), [`0c57b8b`](https://github.com/mastra-ai/mastra/commit/0c57b8b0a69a97b5a4ae3f79be6c610f29f3cf7b), [`b081f27`](https://github.com/mastra-ai/mastra/commit/b081f272cf411716e1d6bd72ceac4bcee2657b19), [`4b8da97`](https://github.com/mastra-ai/mastra/commit/4b8da97a5ce306e97869df6c39535d9069e563db), [`0c09eac`](https://github.com/mastra-ai/mastra/commit/0c09eacb1926f64cfdc9ae5c6d63385cf8c9f72c), [`6b9b93d`](https://github.com/mastra-ai/mastra/commit/6b9b93d6f459d1ba6e36f163abf62a085ddb3d64), [`31b6067`](https://github.com/mastra-ai/mastra/commit/31b6067d0cc3ab10e1b29c36147f3b5266bc714a), [`797ac42`](https://github.com/mastra-ai/mastra/commit/797ac4276de231ad2d694d9aeca75980f6cd0419), [`0bc289e`](https://github.com/mastra-ai/mastra/commit/0bc289e2d476bf46c5b91c21969e8d0c6864691c), [`9b75a06`](https://github.com/mastra-ai/mastra/commit/9b75a06e53ebb0b950ba7c1e83a0142047185f46), [`4c3a1b1`](https://github.com/mastra-ai/mastra/commit/4c3a1b122ea083e003d71092f30f3b31680b01c0), [`256df35`](https://github.com/mastra-ai/mastra/commit/256df3571d62beb3ad4971faa432927cc140e603), [`85cc3b3`](https://github.com/mastra-ai/mastra/commit/85cc3b3b6f32ae4b083c26498f50d5b250ba944b), [`97ea28c`](https://github.com/mastra-ai/mastra/commit/97ea28c746e9e4147d56047bbb1c4a92417a3fec), [`d567299`](https://github.com/mastra-ai/mastra/commit/d567299cf81e02bd9d5221d4bc05967d6c224161), [`716ffe6`](https://github.com/mastra-ai/mastra/commit/716ffe68bed81f7c2690bc8581b9e140f7bf1c3d), [`8296332`](https://github.com/mastra-ai/mastra/commit/8296332de21c16e3dfc3d0b2d615720a6dc88f2f), [`4df2116`](https://github.com/mastra-ai/mastra/commit/4df211619dd922c047d396ca41cd7027c8c4c8e7), [`2219c1a`](https://github.com/mastra-ai/mastra/commit/2219c1acbd21da116da877f0036ffb985a9dd5a3), [`17c4145`](https://github.com/mastra-ai/mastra/commit/17c4145166099354545582335b5252bdfdfd908b)]:
17
+ - @mastra/core@1.11.0
18
+
19
+ ## 1.4.0-alpha.1
20
+
21
+ ### Patch Changes
22
+
23
+ - feat(tracing): implement metadata inheritance for child spans ([#11959](https://github.com/mastra-ai/mastra/pull/11959))
24
+ - Updated the BaseSpan constructor to inherit metadata from parent spans when not explicitly provided, merging values if both exist.
25
+ - Added tests to verify that child spans correctly inherit and can override metadata from their parent spans.
26
+ - Enhanced existing tests to ensure proper metadata propagation in tracing scenarios.
27
+
28
+ - Updated dependencies [[`866cc2c`](https://github.com/mastra-ai/mastra/commit/866cc2cb1f0e3b314afab5194f69477fada745d1), [`6bcbf8a`](https://github.com/mastra-ai/mastra/commit/6bcbf8a6774d5a53b21d61db8a45ce2593ca1616), [`18c3a90`](https://github.com/mastra-ai/mastra/commit/18c3a90c9e48cf69500e308affeb8eba5860b2af), [`f35487b`](https://github.com/mastra-ai/mastra/commit/f35487bb2d46c636e22aa71d90025613ae38235a), [`6dc2192`](https://github.com/mastra-ai/mastra/commit/6dc21921aef0f0efab15cd0805fa3d18f277a76f), [`eeb3a3f`](https://github.com/mastra-ai/mastra/commit/eeb3a3f43aca10cf49479eed2a84b7d9ecea02ba), [`05f8d90`](https://github.com/mastra-ai/mastra/commit/05f8d9009290ce6aa03428b3add635268615db85), [`4b8da97`](https://github.com/mastra-ai/mastra/commit/4b8da97a5ce306e97869df6c39535d9069e563db), [`256df35`](https://github.com/mastra-ai/mastra/commit/256df3571d62beb3ad4971faa432927cc140e603)]:
29
+ - @mastra/core@1.11.0-alpha.1
30
+
3
31
  ## 1.4.0-alpha.0
4
32
 
5
33
  ### Minor Changes
package/dist/index.cjs CHANGED
@@ -18289,7 +18289,10 @@ var BaseSpan = class {
18289
18289
  this.name = options.name;
18290
18290
  this.type = options.type;
18291
18291
  this.attributes = deepClean(options.attributes, this.deepCleanOptions) || {};
18292
- this.metadata = deepClean(options.metadata, this.deepCleanOptions);
18292
+ this.metadata = deepClean(
18293
+ options.parent?.metadata || options.metadata ? { ...options.parent?.metadata, ...options.metadata } : void 0,
18294
+ this.deepCleanOptions
18295
+ );
18293
18296
  if (options.requestContext && options.requestContext.size() > 0) {
18294
18297
  this.requestContext = deepClean(options.requestContext.all, this.deepCleanOptions);
18295
18298
  }
@@ -18527,26 +18530,27 @@ var DefaultSpan = class extends BaseSpan {
18527
18530
  });
18528
18531
  }
18529
18532
  };
18530
- function generateSpanId() {
18531
- const bytes = new Uint8Array(8);
18532
- if (typeof crypto !== "undefined" && crypto.getRandomValues) {
18533
- crypto.getRandomValues(bytes);
18534
- } else {
18535
- for (let i = 0; i < 8; i++) {
18536
- bytes[i] = Math.floor(Math.random() * 256);
18533
+ function fillRandomBytes(bytes) {
18534
+ try {
18535
+ const webCrypto = globalThis.crypto;
18536
+ if (webCrypto?.getRandomValues) {
18537
+ webCrypto.getRandomValues.call(webCrypto, bytes);
18538
+ return;
18537
18539
  }
18540
+ } catch {
18538
18541
  }
18542
+ for (let i = 0; i < bytes.length; i++) {
18543
+ bytes[i] = Math.floor(Math.random() * 256);
18544
+ }
18545
+ }
18546
+ function generateSpanId() {
18547
+ const bytes = new Uint8Array(8);
18548
+ fillRandomBytes(bytes);
18539
18549
  return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
18540
18550
  }
18541
18551
  function generateTraceId() {
18542
18552
  const bytes = new Uint8Array(16);
18543
- if (typeof crypto !== "undefined" && crypto.getRandomValues) {
18544
- crypto.getRandomValues(bytes);
18545
- } else {
18546
- for (let i = 0; i < 16; i++) {
18547
- bytes[i] = Math.floor(Math.random() * 256);
18548
- }
18549
- }
18553
+ fillRandomBytes(bytes);
18550
18554
  return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
18551
18555
  }
18552
18556
  function isValidTraceId(traceId) {