@mastra/core
Version:
Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack.
201 lines • 11.4 kB
TypeScript
import { StorageDomain } from '../base.js';
import type { GetEntityTypesArgs, GetEntityTypesResponse, GetEntityNamesArgs, GetEntityNamesResponse, GetServiceNamesArgs, GetServiceNamesResponse, GetEnvironmentsArgs, GetEnvironmentsResponse, GetTagsArgs, GetTagsResponse, GetMetricNamesArgs, GetMetricNamesResponse, GetMetricLabelKeysArgs, GetMetricLabelKeysResponse, GetMetricLabelValuesArgs, GetMetricLabelValuesResponse } from './discovery.js';
import type { BatchCreateFeedbackArgs, CreateFeedbackArgs, ListFeedbackArgs, ListFeedbackResponse, GetFeedbackAggregateArgs, GetFeedbackAggregateResponse, GetFeedbackBreakdownArgs, GetFeedbackBreakdownResponse, GetFeedbackTimeSeriesArgs, GetFeedbackTimeSeriesResponse, GetFeedbackPercentilesArgs, GetFeedbackPercentilesResponse } from './feedback.js';
import type { BatchCreateLogsArgs, ListLogsArgs, ListLogsResponse } from './logs.js';
import type { BatchCreateMetricsArgs, ListMetricsArgs, ListMetricsResponse, GetMetricAggregateArgs, GetMetricAggregateResponse, GetMetricBreakdownArgs, GetMetricBreakdownResponse, GetMetricTimeSeriesArgs, GetMetricTimeSeriesResponse, GetMetricPercentilesArgs, GetMetricPercentilesResponse } from './metrics.js';
import type { BatchCreateScoresArgs, CreateScoreArgs, ListScoresArgs, ListScoresResponse, ScoreRecord, GetScoreAggregateArgs, GetScoreAggregateResponse, GetScoreBreakdownArgs, GetScoreBreakdownResponse, GetScoreTimeSeriesArgs, GetScoreTimeSeriesResponse, GetScorePercentilesArgs, GetScorePercentilesResponse } from './scores.js';
import type { BatchCreateSpansArgs, BatchDeleteTracesArgs, BatchUpdateSpansArgs, CreateSpanArgs, GetBranchArgs, GetBranchResponse, GetRootSpanArgs, GetRootSpanResponse, GetSpanArgs, GetSpanResponse, GetSpansArgs, GetSpansResponse, GetStructureResponse, GetTraceArgs, GetTraceResponse, GetTraceLightResponse, ListBranchesArgs, ListBranchesResponse, ListTracesArgs, ListTracesLightResponse, ListTracesResponse, UpdateSpanArgs } from './tracing.js';
import type { ObservabilityStorageStrategy, TracingStorageStrategy } from './types.js';
export type ObservabilityStorageFeature = 'delta-polling';
/**
* Base storage class for observability data (traces, metrics, logs, scores, feedback).
* Not abstract -- provides default implementations that throw "not implemented" errors.
* Storage adapters override only the methods they support.
*/
export declare class ObservabilityStorage extends StorageDomain {
constructor();
dangerouslyClearAll(): Promise<void>;
/**
* Provides hints for tracing strategy selection by the MastraStorageExporter.
* Storage adapters can override this to specify their preferred and supported strategies.
*/
get observabilityStrategy(): {
preferred: ObservabilityStorageStrategy;
supported: ObservabilityStorageStrategy[];
};
/**
* Provides hints for tracing strategy selection by the MastraStorageExporter.
* Storage adapters can override this to specify their preferred and supported strategies.
* @deprecated Use {@link observabilityStrategy} instead.
* @see {@link observabilityStrategy} for the replacement property.
*/
get tracingStrategy(): {
preferred: TracingStorageStrategy;
supported: TracingStorageStrategy[];
};
/**
* Reports the tracing strategy currently in effect for this attached observability store.
*
* Single-strategy stores can rely on the default implementation. Multi-strategy stores
* should override this getter only when they can determine the actual configured mode
* from storage-owned configuration, not exporter state.
*/
get runtimeTracingStrategy(): TracingStorageStrategy | undefined;
/**
* Optional feature list for observability storage APIs.
* Stores that implement delta polling should override this and opt in explicitly.
* Older stores and older package versions will simply omit it, which keeps page mode working.
*/
getFeatures(): readonly ObservabilityStorageFeature[] | undefined;
/**
* Creates a single Span record in the storage provider.
*/
createSpan(_args: CreateSpanArgs): Promise<void>;
/**
* Updates a single Span with partial data. Primarily used for realtime trace creation.
*
* @deprecated This method only works with stores that support span updates,
* It will be removed in the future. Instead try to add all data to a span before
* ending it.
*/
updateSpan(_args: UpdateSpanArgs): Promise<void>;
/**
* Retrieves a single span.
*/
getSpan(_args: GetSpanArgs): Promise<GetSpanResponse | null>;
/**
* Retrieves a single root span.
*/
getRootSpan(_args: GetRootSpanArgs): Promise<GetRootSpanResponse | null>;
/**
* Retrieves a single trace with all its associated spans.
*/
getTrace(_args: GetTraceArgs): Promise<GetTraceResponse | null>;
/**
* Retrieves the structural skeleton of a trace -- parent/child links, span
* type, timing, and status -- with heavy fields (input, output, attributes,
* metadata, tags, links) excluded. Intended for waterfall/timeline rendering
* where the full payload would be wasteful.
*
* Default implementation forwards to {@link getTraceLight} (the legacy
* override surface). Backends should override either method -- the response
* shape is identical, and the unimplemented one delegates to the
* implemented one. The cycle guard is what makes that safe.
*/
getStructure(args: GetTraceArgs): Promise<GetStructureResponse | null>;
/**
* @deprecated Use {@link getStructure} instead. Default implementation
* forwards to {@link getStructure} so backends that only override the
* canonical name still work for legacy callers.
*/
getTraceLight(args: GetTraceArgs): Promise<GetTraceLightResponse | null>;
/**
* Retrieves the subtree of spans rooted at a given span, optionally bounded
* to `depth` levels of descendants.
*
* Default implementation prefers a two-step path: fetch the lightweight
* structure to determine which spans belong to the branch, then batch-fetch
* only those with full data. This avoids pulling the entire trace when the
* branch is a small slice of a large trace. Backends that don't yet
* implement {@link getStructure} or {@link getSpans} fall back to fetching
* the full trace and walking it in memory.
*/
getBranch(args: GetBranchArgs): Promise<GetBranchResponse | null>;
/**
* Batch-fetches spans by spanId within a single trace. Used by the
* optimized {@link getBranch} path to fetch only the spans that belong to
* the requested branch (after walking the lightweight structure to identify
* them) instead of pulling the entire trace.
*/
getSpans(_args: GetSpansArgs): Promise<GetSpansResponse>;
/**
* Retrieves a list of traces with optional filtering.
*/
listTraces(_args: ListTracesArgs): Promise<ListTracesResponse>;
/**
* Retrieves a lightweight list of traces with optional filtering.
*/
listTracesLight(_args: ListTracesArgs): Promise<ListTracesLightResponse>;
/**
* Lists trace branches across all traces. Unlike {@link listTraces} (which
* returns one row per root-rooted trace), each row here is a single branch
* anchor span, including ones nested under a different root entity -- useful
* for "show me every run of agent X" regardless of caller. Pairs with
* {@link getBranch} to expand a single branch into its subtree.
*/
listBranches(_args: ListBranchesArgs): Promise<ListBranchesResponse>;
/**
* Creates multiple Spans in a single batch.
*/
batchCreateSpans(_args: BatchCreateSpansArgs): Promise<void>;
/**
* Updates multiple Spans in a single batch.
*/
batchUpdateSpans(_args: BatchUpdateSpansArgs): Promise<void>;
/**
* Deletes multiple traces and all their associated spans in a single batch operation.
*/
batchDeleteTraces(_args: BatchDeleteTracesArgs): Promise<void>;
/**
* Creates multiple log records in a single batch.
*/
batchCreateLogs(_args: BatchCreateLogsArgs): Promise<void>;
/**
* Retrieves a list of logs with optional filtering.
*/
listLogs(_args: ListLogsArgs): Promise<ListLogsResponse>;
/**
* Creates multiple metric observations in a single batch.
*/
batchCreateMetrics(_args: BatchCreateMetricsArgs): Promise<void>;
listMetrics(_args: ListMetricsArgs): Promise<ListMetricsResponse>;
getMetricAggregate(_args: GetMetricAggregateArgs): Promise<GetMetricAggregateResponse>;
getMetricBreakdown(_args: GetMetricBreakdownArgs): Promise<GetMetricBreakdownResponse>;
getMetricTimeSeries(_args: GetMetricTimeSeriesArgs): Promise<GetMetricTimeSeriesResponse>;
getMetricPercentiles(_args: GetMetricPercentilesArgs): Promise<GetMetricPercentilesResponse>;
getMetricNames(_args: GetMetricNamesArgs): Promise<GetMetricNamesResponse>;
getMetricLabelKeys(_args: GetMetricLabelKeysArgs): Promise<GetMetricLabelKeysResponse>;
getMetricLabelValues(_args: GetMetricLabelValuesArgs): Promise<GetMetricLabelValuesResponse>;
getEntityTypes(_args: GetEntityTypesArgs): Promise<GetEntityTypesResponse>;
getEntityNames(_args: GetEntityNamesArgs): Promise<GetEntityNamesResponse>;
getServiceNames(_args: GetServiceNamesArgs): Promise<GetServiceNamesResponse>;
getEnvironments(_args: GetEnvironmentsArgs): Promise<GetEnvironmentsResponse>;
getTags(_args: GetTagsArgs): Promise<GetTagsResponse>;
/**
* Creates a single score record.
*/
createScore(_args: CreateScoreArgs): Promise<void>;
/**
* Creates multiple score observations in a single batch.
*/
batchCreateScores(_args: BatchCreateScoresArgs): Promise<void>;
/**
* Retrieves a list of scores with optional filtering.
*/
listScores(_args: ListScoresArgs): Promise<ListScoresResponse>;
/**
* Retrieves a single score by its score ID.
*/
getScoreById(_scoreId: string): Promise<ScoreRecord | null>;
getScoreAggregate(_args: GetScoreAggregateArgs): Promise<GetScoreAggregateResponse>;
getScoreBreakdown(_args: GetScoreBreakdownArgs): Promise<GetScoreBreakdownResponse>;
getScoreTimeSeries(_args: GetScoreTimeSeriesArgs): Promise<GetScoreTimeSeriesResponse>;
getScorePercentiles(_args: GetScorePercentilesArgs): Promise<GetScorePercentilesResponse>;
/**
* Creates a single feedback record.
*/
createFeedback(_args: CreateFeedbackArgs): Promise<void>;
/**
* Creates multiple feedback observations in a single batch.
*/
batchCreateFeedback(_args: BatchCreateFeedbackArgs): Promise<void>;
/**
* Retrieves a list of feedback with optional filtering.
*/
listFeedback(_args: ListFeedbackArgs): Promise<ListFeedbackResponse>;
getFeedbackAggregate(_args: GetFeedbackAggregateArgs): Promise<GetFeedbackAggregateResponse>;
getFeedbackBreakdown(_args: GetFeedbackBreakdownArgs): Promise<GetFeedbackBreakdownResponse>;
getFeedbackTimeSeries(_args: GetFeedbackTimeSeriesArgs): Promise<GetFeedbackTimeSeriesResponse>;
getFeedbackPercentiles(_args: GetFeedbackPercentilesArgs): Promise<GetFeedbackPercentilesResponse>;
}
//# sourceMappingURL=base.d.ts.map