Skip to main content

AITracing

DefaultAITracing​

Default implementation of the AITracing interface.

Constructor​

new DefaultAITracing(config: TracingConfig)

Creates a new DefaultAITracing instance with the specified configuration.

Properties​

Inherits all properties and methods from BaseAITracing.

BaseAITracing​

Base class for custom AI tracing implementations.

Methods​

getConfig​

getConfig(): Readonly<Required<TracingConfig>>

Returns the current tracing configuration.

getExporters​

getExporters(): readonly AITracingExporter[]

Returns all configured exporters.

getProcessors​

getProcessors(): readonly AISpanProcessor[]

Returns all configured processors.

getLogger​

getLogger(): IMastraLogger

Returns the logger instance for exporters and other components.

startSpan​

startSpan<TType extends AISpanType>(
options: StartSpanOptions<TType>
): AISpan<TType>

Start a new span of a specific AISpanType. Creates the root span of a trace if no parent is provided.

shutdown​

async shutdown(): Promise<void>

Shuts down all exporters and processors, cleaning up resources.

Custom Implementation​

To create a custom AI tracing implementation, extend BaseAITracing:

class CustomAITracing extends BaseAITracing {
constructor(config: TracingConfig) {
super(config);
// Custom initialization
}

// Override methods as needed
startSpan<TType extends AISpanType>(
options: StartSpanOptions<TType>,
): AISpan<TType> {
// Custom span creation logic
return super.startSpan(options);
}
}

NO-OP Spans​

When tracing is disabled (sampling returns false), NO-OP spans are returned:

NoOpAISpan​

class NoOpAISpan<TType extends AISpanType> extends BaseAISpan<TType>

A span that performs no operations. All methods are no-ops:

  • id returns 'no-op'
  • traceId returns 'no-op-trace'
  • isValid returns false
  • end(), error(), update() do nothing
  • createChildSpan() returns another NO-OP span

See Also​

Documentation​

Examples​

Exporters​