UNPKG

@mastra/core

Version:

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

144 lines 8.74 kB
import type { InMemoryDB } from '../inmemory-db.js'; import { ObservabilityStorage } 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, GetFeedbackAggregateArgs, GetFeedbackAggregateResponse, GetFeedbackBreakdownArgs, GetFeedbackBreakdownResponse, GetFeedbackPercentilesArgs, GetFeedbackPercentilesResponse, GetFeedbackTimeSeriesArgs, GetFeedbackTimeSeriesResponse, ListFeedbackArgs, ListFeedbackResponse } 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, GetScoreAggregateArgs, GetScoreAggregateResponse, GetScoreBreakdownArgs, GetScoreBreakdownResponse, GetScorePercentilesArgs, GetScorePercentilesResponse, GetScoreTimeSeriesArgs, GetScoreTimeSeriesResponse, ListScoresArgs, ListScoresResponse, ScoreRecord } from './scores.js'; import type { BatchCreateSpansArgs, BatchDeleteTracesArgs, BatchUpdateSpansArgs, CreateSpanArgs, GetRootSpanArgs, GetRootSpanResponse, GetSpanArgs, GetSpanResponse, GetSpansArgs, GetSpansResponse, GetStructureResponse, GetTraceArgs, GetTraceResponse, ListBranchesArgs, ListBranchesResponse, ListTracesArgs, ListTracesLightResponse, ListTracesResponse, SpanRecord, UpdateSpanArgs } from './tracing.js'; import { TraceStatus } from './tracing.js'; /** * Internal structure for storing a trace with computed properties for efficient filtering */ export interface TraceEntry { /** All spans in this trace, keyed by spanId */ spans: Record<string, SpanRecord>; /** Root span for this trace (parentSpanId === null) */ rootSpan: SpanRecord | null; /** Computed trace status based on root span state */ status: TraceStatus; /** True if any span in the trace has an error */ hasChildError: boolean; } /** In-memory implementation of ObservabilityStorage for testing and development. */ export declare class ObservabilityInMemory extends ObservabilityStorage { private db; constructor({ db }: { db: InMemoryDB; }); getFeatures(): readonly ["delta-polling"] | undefined; dangerouslyClearAll(): Promise<void>; private deltaPollingFeatureEnabled; private assertDeltaPollingEnabled; private allocateObservabilityCursorId; /** * Upserts a record into an append-only collection keyed by an id field. * * If an existing record with the same id is found, it is replaced in place * (preserving its cursor id so delta polling does not re-emit it). Otherwise * the record is appended and a fresh cursor id is allocated. */ private upsertByIdField; private encodeDeltaCursor; private decodeDeltaCursor; private pageDeltaCursor; private maxMatchingCursorId; private createBranchCursorKey; private maybeRegisterTraceCursor; private maybeRegisterBranchCursor; private buildDeltaResponse; private listAppendOnlyDelta; private getTraceCursorId; private getMaxTraceCursorId; private getMaxTraceStreamCursorId; private getBranchCursorId; private getMaxBranchCursorId; private getMaxBranchStreamCursorId; createSpan(args: CreateSpanArgs): Promise<void>; batchCreateSpans(args: BatchCreateSpansArgs): Promise<void>; private validateCreateSpan; /** * Inserts or updates a span in the trace and recomputes trace-level properties */ private upsertSpanToTrace; /** * Recomputes derived trace properties from all spans */ private recomputeTraceProperties; getSpan(args: GetSpanArgs): Promise<GetSpanResponse | null>; getSpans(args: GetSpansArgs): Promise<GetSpansResponse>; getRootSpan(args: GetRootSpanArgs): Promise<GetRootSpanResponse | null>; getTrace(args: GetTraceArgs): Promise<GetTraceResponse | null>; getTraceLight(args: GetTraceArgs): Promise<GetStructureResponse | null>; private getMatchingRootSpans; listTraces(args: ListTracesArgs): Promise<ListTracesResponse>; listTracesLight(args: ListTracesArgs): Promise<ListTracesLightResponse>; /** * Check if a trace matches all provided filters */ private traceMatchesFilters; listBranches(args: ListBranchesArgs): Promise<ListBranchesResponse>; /** * Check if a single anchor span matches all provided branch filters. All * predicates apply to the span itself (not the trace root) -- this is the * key difference from {@link traceMatchesFilters}. */ private spanMatchesBranchFilters; updateSpan(args: UpdateSpanArgs): Promise<void>; batchUpdateSpans(args: BatchUpdateSpansArgs): Promise<void>; batchDeleteTraces(args: BatchDeleteTracesArgs): Promise<void>; batchCreateMetrics(args: BatchCreateMetricsArgs): Promise<void>; listMetrics(args: ListMetricsArgs): Promise<ListMetricsResponse>; private filterMetrics; private metricMatchesFilters; private aggregate; private extractDistinctValues; private interpolatePercentile; /** * Cost is returned alongside value-based OLAP results so callers can derive * token and monetary views from the same filtered scan. */ private summarizeCost; getMetricAggregate(args: GetMetricAggregateArgs): Promise<GetMetricAggregateResponse>; getMetricBreakdown(args: GetMetricBreakdownArgs): Promise<GetMetricBreakdownResponse>; getMetricTimeSeries(args: GetMetricTimeSeriesArgs): Promise<GetMetricTimeSeriesResponse>; getMetricPercentiles(args: GetMetricPercentilesArgs): Promise<GetMetricPercentilesResponse>; private intervalToMs; getMetricNames(args: GetMetricNamesArgs): Promise<GetMetricNamesResponse>; getMetricLabelKeys(args: GetMetricLabelKeysArgs): Promise<GetMetricLabelKeysResponse>; getMetricLabelValues(args: GetMetricLabelValuesArgs): Promise<GetMetricLabelValuesResponse>; /** * Iterates every record across spans, logs, and metrics with shared * context fields. Discovery operations need to surface entities and * dimensions emitted on any observability surface, not just spans. */ private iterateObservabilityContextRecords; 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>; batchCreateLogs(args: BatchCreateLogsArgs): Promise<void>; listLogs(args: ListLogsArgs): Promise<ListLogsResponse>; private logMatchesFilters; createScore(args: CreateScoreArgs): Promise<void>; batchCreateScores(args: BatchCreateScoresArgs): Promise<void>; listScores(args: ListScoresArgs): Promise<ListScoresResponse>; getScoreById(scoreId: string): Promise<ScoreRecord | null>; private scoreMatchesFilters; getScoreAggregate(args: GetScoreAggregateArgs): Promise<GetScoreAggregateResponse>; getScoreBreakdown(args: GetScoreBreakdownArgs): Promise<GetScoreBreakdownResponse>; getScoreTimeSeries(args: GetScoreTimeSeriesArgs): Promise<GetScoreTimeSeriesResponse>; getScorePercentiles(args: GetScorePercentilesArgs): Promise<GetScorePercentilesResponse>; private getNumericFeedbackValue; private getComparisonDateRange; createFeedback(args: CreateFeedbackArgs): Promise<void>; batchCreateFeedback(args: BatchCreateFeedbackArgs): Promise<void>; 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>; private feedbackMatchesFilters; } //# sourceMappingURL=inmemory.d.ts.map