@casoon/auditmysite
Version:
A comprehensive command-line tool for automated accessibility, security, performance, and SEO testing using Playwright and pa11y, based on sitemap URLs
83 lines • 2.27 kB
TypeScript
import { EventEmitter } from 'events';
export interface ResourceMetrics {
memory: {
used: number;
total: number;
percentage: number;
heapUsed: number;
heapTotal: number;
external: number;
};
cpu: {
usage: number;
loadAverage: number[];
uptime: number;
};
network: {
activeConnections: number;
bytesReceived: number;
bytesSent: number;
requestsPerSecond: number;
};
system: {
uptime: number;
platform: string;
arch: string;
nodeVersion: string;
};
}
export interface ResourceLimits {
maxMemoryUsage?: number;
maxCpuUsage?: number;
maxNetworkConnections?: number;
maxRequestsPerSecond?: number;
}
export interface ResourceAlert {
type: 'memory' | 'cpu' | 'network' | 'system';
level: 'warning' | 'critical';
message: string;
value: number;
limit: number;
timestamp: Date;
}
export interface ResourceMonitorOptions {
enabled?: boolean;
interval?: number;
limits?: ResourceLimits;
enableAlerts?: boolean;
enableLogging?: boolean;
enableThrottling?: boolean;
}
export declare class ResourceMonitor extends EventEmitter {
private options;
private isMonitoring;
private intervalId;
private startTime;
private metrics;
private alerts;
private networkStats;
constructor(options?: ResourceMonitorOptions);
start(): Promise<void>;
stop(): void;
private collectMetrics;
private getMemoryMetrics;
private getCpuMetrics;
private getNetworkMetrics;
private getSystemMetrics;
private checkAlerts;
private logMetrics;
recordRequest(): void;
recordRequestComplete(): void;
recordNetworkTraffic(bytesReceived: number, bytesSent: number): void;
shouldThrottle(): boolean;
getMetrics(): ResourceMetrics | null;
getAlerts(): ResourceAlert[];
getCriticalAlerts(): ResourceAlert[];
getWarningAlerts(): ResourceAlert[];
getUptime(): number;
getMonitoringStatus(): boolean;
updateLimits(limits: Partial<ResourceLimits>): void;
updateInterval(interval: number): void;
cleanup(): Promise<void>;
}
//# sourceMappingURL=resource-monitor.d.ts.map