@embrace-io/web-sdk
Version:
35 lines • 1.08 kB
TypeScript
//#region src/processors/utils/SignalBuffer.d.ts
interface SignalEntry {
readonly kind: 'span' | 'log';
readonly id: string;
readonly startTime: number;
readonly type?: string;
}
interface SignalBufferArgs {
maxAgeMillis?: number;
maxEntries?: number;
}
interface SignalWindowResult {
spanIds: string[];
spanTypes: string[];
logIds: string[];
logTypes: string[];
}
/**
* A bounded, in-memory rolling buffer of span and log signals. Used to back-fill
* a span with the ids of signals that started within its window, since that
* span is built after its window has already closed.
*/
declare class SignalBuffer {
private readonly _maxAgeMillis;
private readonly _maxEntries;
private readonly _entries;
private _latestStartTime;
constructor({ maxAgeMillis, maxEntries }?: SignalBufferArgs);
record(entry: SignalEntry): void;
collectWindow(startTime: number, endTime: number): SignalWindowResult;
private _evict;
}
//#endregion
export { SignalBuffer, SignalBufferArgs, SignalEntry, SignalWindowResult };
//# sourceMappingURL=SignalBuffer.d.ts.map