# What changed in @mastra/observability

> 14 changes in @mastra/observability 1 from its official release notes, upgrade guides and advisories: 3 new APIs and options. Each one cited. Sources checked 2026-10-21. HTML: https://unstale.sh/npm/@mastra/observability/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @mastra/observability 1

### New APIs and options

- Model tracing records completionStartTime on the first response chunk and copies it to the model step, model generation, and agent run span, enabling time-to-first-chunk calculations at every level. (1.21.0) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1210)
- Controls price refresh behavior: refresh is on by default under mastra dev and off by default in other environments. (1.20.0) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1200)
- Disables price refresh everywhere, regardless of the MASTRA_AUTO_REFRESH_PRICING setting. (1.20.0) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1200)

### Behavior and default changes

- Classifier token usage now contributes to token and cost metrics and appears in Studio traces, with estimated costs when the model has a known price. (1.21.0) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1210)
- Bundled model pricing was updated with the latest prices from models.dev, affecting estimated costs for models with known prices. (1.20.1) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1210), [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1201)
- The model label on cost metrics now uses the models.dev model ID for some models, so charts grouped by model can show them under a new name. (1.20.0) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1200)
- Cost estimates use model prices from models.dev; models no longer listed there retain token metrics but no longer receive cost estimates. (1.20.0) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1200)
- Custom gateways can return pricing from fetchProviders() to provide cost estimates for models that models.dev doesn't price. (1.20.0) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1200)

### Fixes and other changes

- Suspended or approval-waiting tool calls now report token usage and end model step and inference spans as suspended; later approval requests from the same step no longer create empty spans. (1.21.0) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1210)
- Cost estimates for inference profiles with the `in.` prefix no longer report `no_matching_model`. (1.20.1) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1201)
- Tracking exporters wait for in-progress trace-cap evictions in `flush()` and `shutdown()`, ensuring aborted spans are sent instead of queued after flushing or aborted twice. (1.20.1) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1201)
- MastraStorageExporter and DefaultExporter flush() now wait for storage writes already started by a batch timer or size trigger, preventing spans from being lost when a process exits. (1.20.0) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1200)
- Spans keep and export links they were started with and links set before they end; links with invalid W3C trace or span IDs are ignored. (1.20.0) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1200)
- MastraStorageExporter and DefaultExporter shutdown() now wait for storage writes already started by a batch timer or size trigger, preventing spans from being lost when a process exits. (1.20.0) — [release notes](https://github.com/mastra-ai/mastra/blob/4c22623ea342a0ce611e15f89f4ab8b377bf7ee8/observability/mastra/CHANGELOG.md#1200)
