UNPKG

@mastra/core

Version:

Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack.

201 lines • 11.4 kB
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