@gati-framework/runtime
Version:
Gati runtime execution engine for running handler-based applications
59 lines • 1.72 kB
TypeScript
/**
* @module runtime/trace-storage
* @description Storage for request traces with TTL-based expiration
*/
import type { RequestTrace, TraceFilter } from './types/trace.js';
/**
* Trace storage configuration
*/
export interface TraceStorageConfig {
/** Maximum traces to store */
maxTraces: number;
/** Default TTL in milliseconds */
ttlMs: number;
/** Enable compression */
compression: boolean;
}
/**
* Storage interface for traces
*/
export interface TraceStorage {
storeTrace(trace: RequestTrace): Promise<void>;
getTrace(traceId: string): Promise<RequestTrace | null>;
listTraces(filter?: TraceFilter): Promise<RequestTrace[]>;
deleteTrace(traceId: string): Promise<boolean>;
clear(): Promise<void>;
getStats(): {
count: number;
size: number;
};
}
/**
* In-memory trace storage with TTL
*/
export declare class InMemoryTraceStorage implements TraceStorage {
private traces;
private config;
private cleanupInterval?;
constructor(config?: Partial<TraceStorageConfig>);
storeTrace(trace: RequestTrace): Promise<void>;
getTrace(traceId: string): Promise<RequestTrace | null>;
listTraces(filter?: TraceFilter): Promise<RequestTrace[]>;
deleteTrace(traceId: string): Promise<boolean>;
clear(): Promise<void>;
getStats(): {
count: number;
size: number;
};
destroy(): void;
private startCleanup;
private enforceLimit;
private matchesFilter;
private compress;
private decompress;
}
/**
* Create a trace storage instance
*/
export declare function createTraceStorage(config?: Partial<TraceStorageConfig>): TraceStorage;
//# sourceMappingURL=trace-storage.d.ts.map