@re-shell/cli
Version:
Full-stack development platform uniting microservices and microfrontends. Build complete applications with .NET (ASP.NET Core Web API, Minimal API), Java (Spring Boot, Quarkus, Micronaut, Vert.x), Rust (Actix-Web, Warp, Rocket, Axum), Python (FastAPI, Dja
165 lines (164 loc) • 3.79 kB
TypeScript
/**
* Resource usage reporting and analytics
*/
import { EventEmitter } from 'events';
interface ResourceSnapshot {
timestamp: number;
memory: {
rss: number;
heapTotal: number;
heapUsed: number;
external: number;
arrayBuffers: number;
};
cpu: {
user: number;
system: number;
};
operations: {
total: number;
pending: number;
running: number;
completed: number;
failed: number;
};
custom?: Record<string, number>;
}
interface ResourceTrend {
metric: string;
direction: 'increasing' | 'decreasing' | 'stable';
rate: number;
confidence: number;
}
interface ResourceAlert {
type: 'memory' | 'cpu' | 'operations' | 'custom';
severity: 'info' | 'warning' | 'critical';
message: string;
value: number;
threshold: number;
timestamp: number;
}
interface ResourceReport {
period: {
start: number;
end: number;
duration: number;
};
summary: {
memory: {
peak: number;
average: number;
current: number;
};
cpu: {
peak: number;
average: number;
current: number;
};
operations: {
total: number;
throughput: number;
successRate: number;
};
};
trends: ResourceTrend[];
alerts: ResourceAlert[];
recommendations: string[];
}
export declare class ResourceAnalytics extends EventEmitter {
private static instance;
private snapshots;
private alerts;
private monitoring;
private interval?;
private reportPath;
private lastCpuUsage;
private readonly MEMORY_WARNING;
private readonly MEMORY_CRITICAL;
private readonly CPU_WARNING;
private readonly CPU_CRITICAL;
private constructor();
static getInstance(): ResourceAnalytics;
/**
* Start resource monitoring
*/
start(intervalMs?: number): void;
/**
* Stop resource monitoring
*/
stop(): void;
/**
* Add custom metric to current snapshot
*/
addCustomMetric(name: string, value: number): void;
/**
* Generate comprehensive resource report
*/
generateReport(periodHours?: number): ResourceReport;
/**
* Get resource trends
*/
getTrends(metric: string, samples?: number): ResourceTrend | null;
/**
* Get current resource usage
*/
getCurrentUsage(): ResourceSnapshot | null;
/**
* Get resource usage history
*/
getHistory(hours?: number): ResourceSnapshot[];
/**
* Export analytics data
*/
exportData(format?: 'json' | 'csv'): string;
/**
* Clear old data
*/
cleanup(retentionHours?: number): void;
/**
* Capture current resource snapshot
*/
private captureSnapshot;
/**
* Check for resource alerts
*/
private checkAlerts;
/**
* Create and emit resource alert
*/
private createAlert;
/**
* Calculate summary statistics
*/
private calculateSummary;
/**
* Calculate trends for metrics
*/
private calculateTrends;
/**
* Calculate trend for a specific metric
*/
private calculateTrend;
/**
* Get metric value from snapshot
*/
private getMetricValue;
/**
* Generate recommendations based on analysis
*/
private generateRecommendations;
/**
* Export data to CSV format
*/
private exportToCsv;
/**
* Load persisted analytics data
*/
private loadPersistedData;
/**
* Persist analytics data
*/
private persistData;
}
export declare const resourceAnalytics: ResourceAnalytics;
export {};