@dollhousemcp/mcp-server
Version:
DollhouseMCP - A Model Context Protocol (MCP) server that enables dynamic AI persona management from markdown files, allowing Claude and other compatible AI assistants to activate and switch between different behavioral personas.
138 lines • 3.53 kB
TypeScript
/**
* Comprehensive Performance Monitoring System
* Tracks search times, memory usage, cache performance, and system metrics
*/
export interface PerformanceMetrics {
searchTimes: number[];
memoryUsage: MemoryUsage[];
cacheStats: CachePerformance;
systemStats: SystemStats;
timestamp: Date;
}
export interface MemoryUsage {
heapUsed: number;
heapTotal: number;
rss: number;
external: number;
timestamp: Date;
}
export interface CachePerformance {
hitRate: number;
avgHitTime: number;
avgMissTime: number;
totalHits: number;
totalMisses: number;
evictions: number;
}
export interface SystemStats {
cpuUsage: number;
loadAverage: number[];
freeMemory: number;
totalMemory: number;
uptime: number;
}
export interface SearchMetrics {
query: string;
duration: number;
resultCount: number;
sources: string[];
cacheHit: boolean;
memoryBefore: number;
memoryAfter: number;
timestamp: Date;
}
export interface SlowQuery {
query: string;
duration: number;
threshold: number;
sources: string[];
resultCount: number;
memoryUsage: number;
timestamp: Date;
}
export declare class PerformanceMonitor {
private searchMetrics;
private slowQueries;
private memorySnapshots;
private cacheMetrics;
private readonly maxMetricsHistory;
private readonly slowQueryThreshold;
private readonly memorySnapshotInterval;
private readonly maxSlowQueries;
private memoryMonitorInterval?;
private isMonitoring;
private logListener?;
addLogListener(fn: (level: 'debug' | 'info' | 'warn' | 'error', message: string, data?: Record<string, unknown>) => void): () => void;
constructor();
/**
* Start performance monitoring
*/
startMonitoring(): void;
/**
* Stop performance monitoring
*/
stopMonitoring(): void;
/**
* Dispose monitoring state and timers.
*/
dispose(): void;
/**
* Record search performance metrics
*/
recordSearch(metrics: SearchMetrics): void;
/**
* Record cache performance metrics
*/
recordCachePerformance(cacheName: string, stats: CachePerformance): void;
/**
* Get comprehensive performance metrics
*/
getMetrics(): PerformanceMetrics;
/**
* Get search performance statistics
*/
getSearchStats(): {
totalSearches: number;
averageTime: number;
medianTime: number;
p95Time: number;
p99Time: number;
slowQueries: number;
cacheHitRate: number;
};
/**
* Get memory usage statistics
*/
getMemoryStats(): {
currentUsage: MemoryUsage;
peakUsage: MemoryUsage;
averageUsage: MemoryUsage;
growthRate: number;
};
/**
* Get slow queries with analysis
*/
getSlowQueries(limit?: number): SlowQuery[];
/**
* Analyze performance trends
*/
analyzeTrends(): {
performanceTrend: 'improving' | 'degrading' | 'stable';
memoryTrend: 'growing' | 'shrinking' | 'stable';
recommendations: string[];
};
/**
* Reset all performance metrics
*/
reset(): void;
/**
* Export metrics for external analysis
*/
exportMetrics(): string;
private recordSlowQuery;
private startMemoryMonitoring;
private takeMemorySnapshot;
private aggregateCacheStats;
private getSystemStats;
}
//# sourceMappingURL=PerformanceMonitor.d.ts.map