@mastra/observability 1.0.0-beta.9 → 1.1.0-alpha.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.
@@ -4,7 +4,7 @@
4
4
  import { MastraBase } from '@mastra/core/base';
5
5
  import type { RequestContext } from '@mastra/core/di';
6
6
  import type { IMastraLogger } from '@mastra/core/logger';
7
- import type { Span, SpanType, ObservabilityExporter, ObservabilityBridge, SpanOutputProcessor, TracingEvent, AnySpan, StartSpanOptions, CreateSpanOptions, ObservabilityInstance, CustomSamplerOptions, AnyExportedSpan, TraceState, TracingOptions } from '@mastra/core/observability';
7
+ import type { Span, SpanType, ObservabilityExporter, ObservabilityBridge, SpanOutputProcessor, TracingEvent, AnySpan, StartSpanOptions, CreateSpanOptions, ObservabilityInstance, CustomSamplerOptions, ExportedSpan, AnyExportedSpan, TraceState, TracingOptions } from '@mastra/core/observability';
8
8
  import type { ObservabilityInstanceConfig } from '../config.js';
9
9
  /**
10
10
  * Abstract base class for all Observability implementations in Mastra.
@@ -21,8 +21,31 @@ export declare abstract class BaseObservabilityInstance extends MastraBase imple
21
21
  protected get spanOutputProcessors(): SpanOutputProcessor[];
22
22
  /**
23
23
  * Start a new span of a specific SpanType
24
+ *
25
+ * Sampling Decision:
26
+ * - For root spans (no parent): Perform sampling check using the configured strategy
27
+ * - For child spans: Inherit the sampling decision from the parent
28
+ * - If parent is a NoOpSpan (not sampled), child is also a NoOpSpan
29
+ * - If parent is a valid span (sampled), child is also sampled
30
+ *
31
+ * This ensures trace-level sampling: either all spans in a trace are sampled or none are.
32
+ * See: https://github.com/mastra-ai/mastra/issues/11504
24
33
  */
25
34
  startSpan<TType extends SpanType>(options: StartSpanOptions<TType>): Span<TType>;
35
+ /**
36
+ * Rebuild a span from exported data for lifecycle operations.
37
+ * Used by durable execution engines (e.g., Inngest) to end/update spans
38
+ * that were created in a previous durable operation.
39
+ *
40
+ * The rebuilt span:
41
+ * - Does NOT emit SPAN_STARTED (assumes original span already did)
42
+ * - Can have end(), update(), error() called on it
43
+ * - Will emit SPAN_ENDED or SPAN_UPDATED when those methods are called
44
+ *
45
+ * @param cached - The exported span data to rebuild from
46
+ * @returns A span that can have lifecycle methods called on it
47
+ */
48
+ rebuildSpan<TType extends SpanType>(cached: ExportedSpan<TType>): Span<TType>;
26
49
  /**
27
50
  * Create a new span (called after sampling)
28
51
  *
@@ -102,6 +125,15 @@ export declare abstract class BaseObservabilityInstance extends MastraBase imple
102
125
  * Initialize Observability (called by Mastra during component registration)
103
126
  */
104
127
  init(): void;
128
+ /**
129
+ * Force flush any buffered/queued spans from all exporters and the bridge
130
+ * without shutting down the observability instance.
131
+ *
132
+ * This is useful in serverless environments (like Vercel's fluid compute) where
133
+ * you need to ensure all spans are exported before the runtime instance is
134
+ * terminated, while keeping the observability system active for future requests.
135
+ */
136
+ flush(): Promise<void>;
105
137
  /**
106
138
  * Shutdown Observability and clean up resources
107
139
  */
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/instances/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/instances/base.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,12 @@
10
10
  import { SpanType } from '@mastra/core/observability';
11
11
  import type { Span, EndGenerationOptions, ErrorSpanOptions, TracingContext, UpdateSpanOptions } from '@mastra/core/observability';
12
12
  import type { StepStartPayload } from '@mastra/core/stream';
13
+ /**
14
+ * Manages MODEL_STEP and MODEL_CHUNK span tracking for streaming Model responses.
15
+ *
16
+ * Should be instantiated once per MODEL_GENERATION span and shared across
17
+ * all streaming steps (including after tool calls).
18
+ */
13
19
  export declare class ModelSpanTracker {
14
20
  #private;
15
21
  constructor(modelSpan?: Span<SpanType.MODEL_GENERATION>);
@@ -1 +1 @@
1
- {"version":3,"file":"model-tracing.d.ts","sourceRoot":"","sources":["../src/model-tracing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,KAAK,EACV,IAAI,EACJ,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAA2B,gBAAgB,EAAqB,MAAM,qBAAqB,CAAC;AAsBxG,qBAAa,gBAAgB;;gBAaf,SAAS,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAcvD;;;OAGG;IACH,iBAAiB,IAAI,cAAc;IAMnC;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAIjF;;;OAGG;IACH,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAWnD;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAI7E;;;;OAIG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAoB3C;;;OAGG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAwV5C;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS;QAAE,WAAW,EAAE,QAAQ,CAAA;KAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC;CA8G9D"}
1
+ {"version":3,"file":"model-tracing.d.ts","sourceRoot":"","sources":["../src/model-tracing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,KAAK,EACV,IAAI,EACJ,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAa,gBAAgB,EAAqB,MAAM,qBAAqB,CAAC;AAI1F;;;;;GAKG;AACH,qBAAa,gBAAgB;;gBAUf,SAAS,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAcvD;;;OAGG;IACH,iBAAiB,IAAI,cAAc;IAMnC;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAIjF;;;OAGG;IACH,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAWnD;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAI7E;;;;OAIG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAoB3C;;;OAGG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAuS5C;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS;QAAE,WAAW,EAAE,QAAQ,CAAA;KAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC;CA2H9D"}
@@ -1,5 +1,6 @@
1
1
  import type { Span, SpanTypeMap, AnySpan, ChildSpanOptions, ChildEventOptions, EndSpanOptions, ErrorSpanOptions, UpdateSpanOptions, CreateSpanOptions, ObservabilityInstance, ExportedSpan, TraceState, IModelSpanTracker, AIModelGenerationSpan, EntityType } from '@mastra/core/observability';
2
2
  import { SpanType } from '@mastra/core/observability';
3
+ import type { DeepCleanOptions } from './serialization.js';
3
4
  /**
4
5
  * Get the external parent span ID from CreateSpanOptions.
5
6
  *
@@ -60,6 +61,8 @@ export declare abstract class BaseSpan<TType extends SpanType = any> implements
60
61
  entityName?: string;
61
62
  /** Parent span ID (for root spans that are children of external spans) */
62
63
  protected parentSpanId?: string;
64
+ /** Deep clean options for serialization */
65
+ protected deepCleanOptions: DeepCleanOptions;
63
66
  constructor(options: CreateSpanOptions<TType>, observabilityInstance: ObservabilityInstance);
64
67
  /** End the span */
65
68
  abstract end(options?: EndSpanOptions<TType>): void;
@@ -78,6 +81,8 @@ export declare abstract class BaseSpan<TType extends SpanType = any> implements
78
81
  get isRootSpan(): boolean;
79
82
  /** Returns `TRUE` if the span is a valid span (not a NO-OP Span) */
80
83
  abstract get isValid(): boolean;
84
+ /** Get the closest parent span, optionally skipping internal spans */
85
+ getParentSpan(includeInternalSpans?: boolean): AnySpan | undefined;
81
86
  /** Get the closest parent spanId that isn't an internal span */
82
87
  getParentSpanId(includeInternalSpans?: boolean): string | undefined;
83
88
  /** Find the closest parent span of a specific type by walking up the parent chain */
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/spans/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/spans/base.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../src/spans/default.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,qBAAa,WAAW,CAAC,KAAK,SAAS,QAAQ,CAAE,SAAQ,QAAQ,CAAC,KAAK,CAAC;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,qBAAqB,EAAE,qBAAqB;IAqC3F,GAAG,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI;IAiB1C,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI;IAoC7C,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI;IAoB/C,IAAI,OAAO,IAAI,OAAO,CAErB;IAEK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;CAUhC"}
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../src/spans/default.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,qBAAa,WAAW,CAAC,KAAK,SAAS,QAAQ,CAAE,SAAQ,QAAQ,CAAC,KAAK,CAAC;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,qBAAqB,EAAE,qBAAqB;IA+C3F,GAAG,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI;IAiB1C,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI;IAoC7C,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI;IAoB/C,IAAI,OAAO,IAAI,OAAO,CAErB;IAEK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;CAUhC"}
@@ -4,6 +4,26 @@
4
4
  * These utilities prevent memory issues by enforcing strict limits on
5
5
  * string lengths, array sizes, object depths, and total output size.
6
6
  * They are designed to be used across all tracing/telemetry systems.
7
+ *
8
+ * ## Custom Span Serialization
9
+ *
10
+ * Classes can implement a `serializeForSpan()` method to provide a custom
11
+ * representation when serialized for tracing spans. This is useful for:
12
+ * - Excluding internal state and implementation details
13
+ * - Removing functions and circular references
14
+ * - Providing a clean, readable representation for observability
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * class MyClass {
19
+ * private internalState = new Map();
20
+ * public data: string[];
21
+ *
22
+ * serializeForSpan() {
23
+ * return { data: this.data };
24
+ * }
25
+ * }
26
+ * ```
7
27
  */
8
28
  /**
9
29
  * Default keys to strip from objects during deep cleaning.
@@ -18,6 +38,16 @@ export interface DeepCleanOptions {
18
38
  maxObjectKeys: number;
19
39
  }
20
40
  export declare const DEFAULT_DEEP_CLEAN_OPTIONS: DeepCleanOptions;
41
+ /**
42
+ * Merge user-provided serialization options with defaults.
43
+ * Returns a complete DeepCleanOptions object.
44
+ */
45
+ export declare function mergeSerializationOptions(userOptions?: {
46
+ maxStringLength?: number;
47
+ maxDepth?: number;
48
+ maxArrayLength?: number;
49
+ maxObjectKeys?: number;
50
+ }): DeepCleanOptions;
21
51
  /**
22
52
  * Hard-cap any string to prevent unbounded growth.
23
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/spans/serialization.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB,aAMhC,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,0BAA0B,EAAE,gBAMvC,CAAC;AAEH;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,GAAE,gBAA6C,GAAG,GAAG,CA4GjG"}
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/spans/serialization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB,aAQhC,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,0BAA0B,EAAE,gBAMvC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,CAAC,EAAE;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,gBAAgB,CAWnB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMlE;AAgGD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,GAAE,gBAA6C,GAAG,GAAG,CA2HjG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/observability",
3
- "version": "1.0.0-beta.9",
3
+ "version": "1.1.0-alpha.0",
4
4
  "description": "Core observability package for Mastra - includes tracing and scoring features",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -24,22 +24,22 @@
24
24
  },
25
25
  "license": "Apache-2.0",
26
26
  "devDependencies": {
27
- "@types/node": "22.13.17",
27
+ "@types/node": "22.19.7",
28
28
  "@vitest/coverage-v8": "4.0.12",
29
29
  "@vitest/ui": "4.0.12",
30
30
  "eslint": "^9.37.0",
31
- "tsup": "^8.5.0",
32
- "typescript": "^5.8.3",
33
- "vitest": "4.0.12",
31
+ "tsup": "^8.5.1",
32
+ "typescript": "^5.9.3",
33
+ "vitest": "4.0.16",
34
34
  "zod": "^3.25.76",
35
- "@internal/types-builder": "0.0.28",
36
- "@internal/ai-sdk-v5": "0.0.0",
37
- "@mastra/core": "1.0.0-beta.18",
38
- "@internal/ai-sdk-v4": "0.0.0",
39
- "@internal/lint": "0.0.53"
35
+ "@internal/types-builder": "0.0.30",
36
+ "@internal/ai-sdk-v4": "0.0.2",
37
+ "@mastra/core": "1.1.0-alpha.0",
38
+ "@internal/ai-sdk-v5": "0.0.2",
39
+ "@internal/lint": "0.0.55"
40
40
  },
41
41
  "peerDependencies": {
42
- "@mastra/core": ">=1.0.0-0 <2.0.0-0"
42
+ "@mastra/core": ">=1.1.0-0 <2.0.0-0"
43
43
  },
44
44
  "homepage": "https://mastra.ai",
45
45
  "repository": {