@mastra/observability 1.12.0 → 1.13.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.
- package/CHANGELOG.md +15 -0
- package/dist/features.d.ts.map +1 -1
- package/dist/index.cjs +114 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +114 -2
- package/dist/index.js.map +1 -1
- package/dist/instances/base.d.ts +35 -1
- package/dist/instances/base.d.ts.map +1 -1
- package/dist/metrics/auto-extract.d.ts +11 -1
- package/dist/metrics/auto-extract.d.ts.map +1 -1
- package/dist/usage.d.ts +7 -0
- package/dist/usage.d.ts.map +1 -1
- package/package.json +6 -6
package/dist/instances/base.d.ts
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
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
|
|
7
|
+
import { SpanType } from '@mastra/core/observability';
|
|
8
|
+
import type { Span, ObservabilityExporter, ObservabilityBridge, SpanOutputProcessor, TracingEvent, AnySpan, StartSpanOptions, CreateSpanOptions, ObservabilityInstance, CustomSamplerOptions, ExportedSpan, AnyExportedSpan, TraceState, TracingOptions, LoggerContext, MetricsContext, ObservabilityEvent } from '@mastra/core/observability';
|
|
8
9
|
import { ObservabilityBus } from '../bus/index.js';
|
|
9
10
|
import type { ObservabilityInstanceConfig } from '../config.js';
|
|
10
11
|
import { CardinalityFilter } from '../metrics/cardinality.js';
|
|
@@ -178,6 +179,39 @@ export declare abstract class BaseObservabilityInstance extends MastraBase imple
|
|
|
178
179
|
* Routes through the ObservabilityBus so exporters receive it via onTracingEvent.
|
|
179
180
|
*/
|
|
180
181
|
protected emitSpanUpdated(span: AnySpan): void;
|
|
182
|
+
/**
|
|
183
|
+
* When an internal MODEL_GENERATION span ends, capture the rollup payload
|
|
184
|
+
* (usage, provider, model, target ancestor) needed to attribute its cost
|
|
185
|
+
* to the closest exported ancestor span. Returns undefined when no rollup
|
|
186
|
+
* applies — non-MODEL_GENERATION spans, spans that will be exported, or
|
|
187
|
+
* spans whose usage isn't available at end time.
|
|
188
|
+
*/
|
|
189
|
+
private captureModelUsageRollup;
|
|
190
|
+
/**
|
|
191
|
+
* Accumulate usage onto the ancestor's `internalUsage` attribute (for trace
|
|
192
|
+
* UI visibility) and emit auto-extracted token metrics now, using the
|
|
193
|
+
* ancestor's metrics context so cost / token labels point at the visible
|
|
194
|
+
* span instead of the hidden agent that incurred them.
|
|
195
|
+
*/
|
|
196
|
+
private applyUsageRollup;
|
|
197
|
+
/**
|
|
198
|
+
* Walk up the parent chain to find the closest ancestor that will actually
|
|
199
|
+
* reach exporters. Skips both internal-filtered ancestors and ancestors
|
|
200
|
+
* whose type matches `excludeSpanTypes`, so the rollup target is one whose
|
|
201
|
+
* mutated `internalUsage` attribute is visible in exported traces.
|
|
202
|
+
*
|
|
203
|
+
* Note: this does not preemptively run `spanFilter` — that filter can be
|
|
204
|
+
* async and have side effects, so the rare case of a `spanFilter`-dropped
|
|
205
|
+
* ancestor falls through.
|
|
206
|
+
*/
|
|
207
|
+
private findExportedAncestor;
|
|
208
|
+
/**
|
|
209
|
+
* Returns true when a span would be dropped by `getSpanForExport` for a
|
|
210
|
+
* reason cheap to check up-front (internal-span filtering or
|
|
211
|
+
* `excludeSpanTypes`). Used by `findExportedAncestor` to skip rollup
|
|
212
|
+
* targets that would silently lose their `internalUsage` attribute.
|
|
213
|
+
*/
|
|
214
|
+
private isFilteredFromExport;
|
|
181
215
|
/**
|
|
182
216
|
* Emit a tracing event through the bus.
|
|
183
217
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/instances/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/instances/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Emits metrics derived from live spans.
|
|
3
3
|
*/
|
|
4
|
-
import type { AnySpan, MetricsContext } from '@mastra/core/observability';
|
|
4
|
+
import type { AnySpan, MetricsContext, UsageStats } from '@mastra/core/observability';
|
|
5
5
|
/** Emit duration metrics for a live span. */
|
|
6
6
|
export declare function emitDurationMetrics(span: AnySpan, metrics: MetricsContext): void;
|
|
7
7
|
/** Emit token usage metrics for a model-generation span. */
|
|
8
8
|
export declare function emitTokenMetrics(span: AnySpan, metrics: MetricsContext): void;
|
|
9
|
+
/**
|
|
10
|
+
* Emit token usage metrics from an explicit usage payload, using the supplied
|
|
11
|
+
* metrics context (which carries entity / parent / root labels) and the
|
|
12
|
+
* supplied provider+model for cost lookup.
|
|
13
|
+
*
|
|
14
|
+
* Used when an internal MODEL_GENERATION's usage is rolled up to a visible
|
|
15
|
+
* ancestor span: the metric labels come from the ancestor's context, the
|
|
16
|
+
* cost calculation still uses the original model that incurred the tokens.
|
|
17
|
+
*/
|
|
18
|
+
export declare function emitTokenMetricsForUsage(usage: UsageStats, provider: string | undefined, model: string | undefined, metrics: MetricsContext): void;
|
|
9
19
|
/** Emit all auto-extracted metrics for a live span end. */
|
|
10
20
|
export declare function emitAutoExtractedMetrics(span: AnySpan, metrics: MetricsContext): void;
|
|
11
21
|
//# sourceMappingURL=auto-extract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-extract.d.ts","sourceRoot":"","sources":["../../src/metrics/auto-extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"auto-extract.d.ts","sourceRoot":"","sources":["../../src/metrics/auto-extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,OAAO,EAEP,cAAc,EAEd,UAAU,EACX,MAAM,4BAA4B,CAAC;AAKpC,6CAA6C;AAC7C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAUhF;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAW7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,cAAc,GACtB,IAAI,CAEN;AAED,2DAA2D;AAC3D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAGrF"}
|
package/dist/usage.d.ts
CHANGED
|
@@ -24,4 +24,11 @@ import type { LanguageModelUsage, ProviderMetadata } from '@mastra/core/stream';
|
|
|
24
24
|
* @returns UsageStats with inputDetails and outputDetails
|
|
25
25
|
*/
|
|
26
26
|
export declare function extractUsageMetrics(usage?: LanguageModelUsage, providerMetadata?: ProviderMetadata): UsageStats;
|
|
27
|
+
/**
|
|
28
|
+
* Sum two UsageStats into a new one. Treats undefined fields as zero when
|
|
29
|
+
* the other side has a value, and preserves undefined when both are absent.
|
|
30
|
+
* Used to roll up internal model-generation usage onto a visible ancestor
|
|
31
|
+
* span so cost / token attribution survives internal-span filtering.
|
|
32
|
+
*/
|
|
33
|
+
export declare function addUsageStats(a: UsageStats | undefined, b: UsageStats): UsageStats;
|
|
27
34
|
//# sourceMappingURL=usage.d.ts.map
|
package/dist/usage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAyC,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAmDhF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,UAAU,CA0G/G"}
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAyC,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAmDhF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,UAAU,CA0G/G;AAwCD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAclF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/observability",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.13.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",
|
|
@@ -32,11 +32,11 @@
|
|
|
32
32
|
"typescript": "^6.0.3",
|
|
33
33
|
"vitest": "4.1.5",
|
|
34
34
|
"zod": "^4.3.6",
|
|
35
|
-
"@internal/ai-sdk-v4": "0.0.
|
|
36
|
-
"@internal/
|
|
37
|
-
"@internal/
|
|
38
|
-
"@internal/
|
|
39
|
-
"@mastra/core": "1.
|
|
35
|
+
"@internal/ai-sdk-v4": "0.0.43",
|
|
36
|
+
"@internal/ai-sdk-v5": "0.0.43",
|
|
37
|
+
"@internal/lint": "0.0.96",
|
|
38
|
+
"@internal/types-builder": "0.0.71",
|
|
39
|
+
"@mastra/core": "1.36.0-alpha.1"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@mastra/core": ">=1.16.0-0 <2.0.0-0"
|