Skip to main content
Mastra v1 is coming in January 2026. Get ahead by starting new projects with the beta or upgrade your existing project today.

DefaultExporter

Persists traces to Mastra's configured storage with automatic batching and retry logic.

ConstructorDirect link to Constructor

new DefaultExporter(config?: BatchingConfig, logger?: IMastraLogger)

BatchingConfigDirect link to BatchingConfig

interface BatchingConfig {
/** Maximum number of spans per batch. Default: 1000 */
maxBatchSize?: number;

/** Maximum total buffer size before emergency flush. Default: 10000 */
maxBufferSize?: number;

/** Maximum time to wait before flushing batch in milliseconds. Default: 5000 */
maxBatchWaitMs?: number;

/** Maximum number of retry attempts. Default: 4 */
maxRetries?: number;

/** Base retry delay in milliseconds (uses exponential backoff). Default: 500 */
retryDelayMs?: number;

/** Tracing strategy or 'auto' for automatic selection. Default: 'auto' */
strategy?: TracingStrategy | "auto";
}

TracingStrategyDirect link to TracingStrategy

type TracingStrategy = "realtime" | "batch-with-updates" | "insert-only";

Strategy BehaviorsDirect link to Strategy Behaviors

  • realtime: Immediately persists each event to storage
  • batch-with-updates: Batches creates and updates separately, applies in order
  • insert-only: Only processes SPAN_ENDED events, ignores updates

PropertiesDirect link to Properties

readonly name = 'tracing-default-exporter';

MethodsDirect link to Methods

__registerMastraDirect link to __registerMastra

__registerMastra(mastra: Mastra): void

Registers the Mastra instance. Called automatically after Mastra construction.

initDirect link to init

init(): void

Initializes the exporter after dependencies are ready. Resolves tracing strategy based on storage capabilities.

exportEventDirect link to exportEvent

async exportEvent(event: AITracingEvent): Promise<void>

Processes a tracing event according to the resolved strategy.

shutdownDirect link to shutdown

async shutdown(): Promise<void>

Flushes remaining buffered events and performs cleanup.

Automatic Strategy SelectionDirect link to Automatic Strategy Selection

When strategy: 'auto' (default), the exporter queries the storage adapter for its capabilities:

interface AITracingStrategy {
/** Strategies supported by this adapter */
supported: TracingStrategy[];

/** Preferred strategy for optimal performance */
preferred: TracingStrategy;
}

The exporter will:

  1. Use the storage adapter's preferred strategy if available
  2. Fall back to the first supported strategy if preferred isn't available
  3. Log a warning if a user-specified strategy isn't supported

Batching BehaviorDirect link to Batching Behavior

Flush TriggersDirect link to Flush Triggers

The buffer flushes when any of these conditions are met:

  • Buffer size reaches maxBatchSize
  • Time since first buffered event exceeds maxBatchWaitMs
  • Buffer size reaches maxBufferSize (emergency flush)
  • shutdown() is called

Retry LogicDirect link to Retry Logic

Failed flushes are retried with exponential backoff:

  • Retry delay: retryDelayMs * 2^attempt
  • Maximum attempts: maxRetries
  • Batch is dropped after all retries fail

Out-of-Order HandlingDirect link to Out-of-Order Handling

For batch-with-updates strategy:

  • Tracks which spans have been created
  • Rejects updates/ends for spans not yet created
  • Logs warnings for out-of-order events
  • Maintains sequence numbers for ordered updates

UsageDirect link to Usage

import { DefaultExporter } from "@mastra/core/ai-tracing";

// Default configuration
const exporter = new DefaultExporter();

// Custom batching configuration
const customExporter = new DefaultExporter({
maxBatchSize: 500,
maxBatchWaitMs: 2000,
strategy: "batch-with-updates",
});

See AlsoDirect link to See Also

DocumentationDirect link to Documentation

Other ExportersDirect link to Other Exporters

ReferenceDirect link to Reference