datapilot-cli
Version:
Enterprise-grade streaming multi-format data analysis with comprehensive statistical insights and intelligent relationship detection - supports CSV, JSON, Excel, TSV, Parquet - memory-efficient, cross-platform
116 lines • 2.71 kB
TypeScript
/**
* Performance monitoring for DataPilot CLI
* Tracks memory usage, CPU, throughput, and other metrics
*/
export interface PerformanceMetrics {
timestamp: number;
memory: {
heapUsed: number;
heapTotal: number;
external: number;
rss: number;
};
cpu: {
user: number;
system: number;
percent: number;
};
throughput?: {
rowsPerSecond: number;
bytesPerSecond: number;
};
phase?: {
name: string;
metrics: {
duration: number;
memoryDelta: number;
cpuTime: number;
rowsProcessed?: number;
};
};
}
export interface PerformanceReport {
summary: {
totalDuration: number;
peakMemoryMB: number;
avgMemoryMB: number;
avgCpuPercent: number;
totalRowsProcessed: number;
avgThroughput: number;
};
phases: {
[phase: string]: {
duration: number;
memoryDelta: number;
cpuTime: number;
rowsProcessed?: number;
};
};
warnings: string[];
timeline: PerformanceMetrics[];
}
export declare class PerformanceMonitor {
private startTime;
private metrics;
private phaseMarkers;
private monitoringInterval?;
private lastCpuUsage?;
private totalRowsProcessed;
private enabled;
private sampleInterval;
private memoryThreshold;
constructor(options?: {
enabled?: boolean;
sampleInterval?: number;
memoryThreshold?: number;
});
/**
* Start performance monitoring
*/
start(): void;
/**
* Stop performance monitoring
*/
stop(): PerformanceReport;
/**
* Mark the start of a phase
*/
startPhase(phaseName: string): void;
/**
* Mark the end of a phase
*/
endPhase(phaseName: string, rowsProcessed?: number): void;
/**
* Update row processing count
*/
updateRowCount(rows: number): void;
/**
* Collect current performance metrics
*/
private collectMetrics;
/**
* Get current performance metrics
*/
private getCurrentMetrics;
/**
* Calculate CPU usage percentage
*/
private getCpuUsage;
/**
* Calculate current throughput
*/
private calculateThroughput;
/**
* Check performance thresholds and emit warnings
*/
private checkThresholds;
/**
* Generate performance report
*/
private generateReport;
/**
* Format performance report for display
*/
static formatReport(report: PerformanceReport): string;
}
//# sourceMappingURL=performance-monitor.d.ts.map