CRITICAL CHECKPOINT - DO NOT PUSH TO GITHUB Recovery Status: - Successfully recovered brainy.ts from compiled JavaScript - All core v3.0 API methods functional (add, get, update, delete, relate, find, etc.) - Neural subsystem intact (562KB embedded patterns, NLP working) - Augmentation pipeline operational (20+ augmentations) - HNSW clustering system complete - Triple Intelligence compiled (needs constructor fix) - Test suite validates functionality Changes preserved: - 898 files with changes from last 3 days - 144,475 insertions - All augmentation improvements - All test coverage enhancements - Complete v3.0 feature set This is a LOCAL checkpoint only - contains recovered work after corruption incident. Created backup in .backups/brainy-full-20250910-151314.tar.gz Branch: recovery-checkpoint-20250910-151433 Date: Wed Sep 10 03:18:04 PM PDT 2025
92 lines
2.6 KiB
TypeScript
92 lines
2.6 KiB
TypeScript
/**
|
|
* Lightweight statistics collector for Brainy
|
|
* Designed to have minimal performance impact even with millions of entries
|
|
*/
|
|
import { StatisticsData } from '../coreTypes.js';
|
|
export declare class StatisticsCollector {
|
|
private contentTypes;
|
|
private oldestTimestamp;
|
|
private newestTimestamp;
|
|
private updateTimestamps;
|
|
private searchMetrics;
|
|
private verbTypes;
|
|
private storageSizeCache;
|
|
private throttlingMetrics;
|
|
private readonly MAX_TIMESTAMPS;
|
|
private readonly MAX_SEARCH_TERMS;
|
|
private readonly SIZE_UPDATE_INTERVAL;
|
|
/**
|
|
* Track content type (very lightweight)
|
|
*/
|
|
trackContentType(type: string): void;
|
|
/**
|
|
* Track data update timestamp (lightweight)
|
|
*/
|
|
trackUpdate(timestamp?: number): void;
|
|
/**
|
|
* Track search performance (lightweight)
|
|
*/
|
|
trackSearch(searchTerm: string, durationMs: number): void;
|
|
/**
|
|
* Track verb type (lightweight)
|
|
*/
|
|
trackVerbType(type: string): void;
|
|
/**
|
|
* Update storage size estimates (called periodically, not on every operation)
|
|
*/
|
|
updateStorageSizes(sizes: {
|
|
nouns: number;
|
|
verbs: number;
|
|
metadata: number;
|
|
index: number;
|
|
}): void;
|
|
/**
|
|
* Track a throttling event
|
|
*/
|
|
trackThrottlingEvent(reason: string, service?: string): void;
|
|
/**
|
|
* Clear throttling state after successful operations
|
|
*/
|
|
clearThrottlingState(): void;
|
|
/**
|
|
* Track delayed operation
|
|
*/
|
|
trackDelayedOperation(delayMs: number): void;
|
|
/**
|
|
* Track retried operation
|
|
*/
|
|
trackRetriedOperation(): void;
|
|
/**
|
|
* Track operation failed due to throttling
|
|
*/
|
|
trackFailedDueToThrottling(): void;
|
|
/**
|
|
* Update throttling metrics from storage adapter
|
|
*/
|
|
updateThrottlingMetrics(metrics: {
|
|
currentlyThrottled: boolean;
|
|
lastThrottleTime: number;
|
|
consecutiveThrottleEvents: number;
|
|
currentBackoffMs: number;
|
|
totalThrottleEvents: number;
|
|
throttleEventsByHour: number[];
|
|
throttleReasons: Record<string, number>;
|
|
delayedOperations: number;
|
|
retriedOperations: number;
|
|
failedDueToThrottling: number;
|
|
totalDelayMs: number;
|
|
}): void;
|
|
/**
|
|
* Get comprehensive statistics
|
|
*/
|
|
getStatistics(): Partial<StatisticsData>;
|
|
/**
|
|
* Merge statistics from storage (for distributed systems)
|
|
*/
|
|
mergeFromStorage(stored: Partial<StatisticsData>): void;
|
|
/**
|
|
* Reset statistics (for testing)
|
|
*/
|
|
reset(): void;
|
|
private pruneSearchTerms;
|
|
}
|