ng-upgrade-orchestrator
Version:
Enterprise-grade Angular Multi-Version Upgrade Orchestrator with automatic npm installation, comprehensive dependency management, and seamless integration of all 9 official Angular migrations. Safely migrate Angular applications across multiple major vers
253 lines • 7.24 kB
TypeScript
import { EventEmitter } from 'events';
import { ProgressReporter } from '../utils/ProgressReporter';
/**
* Enterprise-grade monitoring and alerting system for Angular upgrades
* Provides real-time monitoring, automated alerting, and comprehensive dashboards
*/
export declare class EnterpriseMonitoringSystem extends EventEmitter {
private config;
private progressReporter;
private metrics;
private alerts;
private dashboards;
constructor(config: MonitoringConfig, progressReporter?: ProgressReporter);
/**
* Setup comprehensive monitoring for an upgrade process
*/
setupUpgradeMonitoring(upgradeId: string, config: UpgradeMonitoringConfig): Promise<MonitoringSession>;
/**
* Monitor upgrade health with real-time metrics
*/
monitorUpgradeHealth(upgradeId: string): Promise<HealthStatus>;
/**
* Setup automated alerting with enterprise integrations
*/
setupEnterpriseAlerting(config: AlertingConfig): Promise<void>;
/**
* Create comprehensive monitoring dashboard
*/
createUpgradeDashboard(session: MonitoringSession): Promise<Dashboard>;
/**
* Monitor performance metrics with SLA validation
*/
monitorPerformanceMetrics(upgradeId: string): Promise<PerformanceMetrics>;
/**
* Monitor user experience metrics
*/
monitorUserExperience(upgradeId: string): Promise<UserExperienceMetrics>;
/**
* Setup automated incident response
*/
setupAutomatedIncidentResponse(config: IncidentResponseConfig): Promise<void>;
/**
* Generate comprehensive monitoring report
*/
generateMonitoringReport(upgradeId: string, timeRange: TimeRange): Promise<MonitoringReport>;
private initializeMonitoring;
private initializeMetricsCollection;
private setupAlertRules;
private startRealTimeMonitoring;
private measureResponseTime;
private measureThroughput;
private measureErrorRate;
private measureCPUUsage;
private measureMemoryUsage;
private measureDiskIO;
private measureNetworkIO;
private measurePageLoadTime;
private measureBundleSize;
private measureFCP;
private measureLCP;
private measureCLS;
private measureFID;
private measureClickThroughRate;
private measureBounceRate;
private measureSessionDuration;
private measurePageViews;
private trackJavaScriptErrors;
private trackConsoleErrors;
private trackNetworkErrors;
private calculateUserSatisfactionScore;
private calculateOverallHealth;
private assessPerformanceHealth;
private detectErrorPatterns;
private assessUserExperience;
private assessInfrastructureHealth;
private assessBusinessMetrics;
private generateHealthRecommendations;
private getMonitoringSession;
private collectCurrentMetrics;
private checkCriticalAlerts;
private setupSlackAlerting;
private setupTeamsAlerting;
private setupPagerDutyAlerting;
private setupServiceNowAlerting;
private setupEmailAlerting;
private createOverviewSection;
private createPerformanceSection;
private createErrorSection;
private createUserExperienceSection;
private createInfrastructureSection;
private createBusinessMetricsSection;
private validateSLAs;
private checkPerformanceAlerts;
private checkUserExperienceAlerts;
private setupMetricsCollectors;
private setupAlertProcessors;
private setupDashboardEngine;
private setupPerformanceMetrics;
private setupErrorMetrics;
private setupUserExperienceMetrics;
private setupBusinessMetrics;
private setupPerformanceAlerts;
private setupErrorAlerts;
private setupUXAlerts;
private defineIncidentTriggers;
private setupAutomatedRollback;
private setupEscalationProcedures;
private setupAutomatedRemediation;
private generateExecutiveSummary;
private generatePerformanceAnalysis;
private generateErrorAnalysis;
private generateUserExperienceAnalysis;
private generateSLAComplianceReport;
private generateIncidentSummary;
private generateRecommendations;
private generateMetricsTrends;
}
export interface MonitoringConfig {
realTimeMetrics: boolean;
alertingEnabled: boolean;
dashboardEnabled: boolean;
retentionPeriod: number;
}
export interface UpgradeMonitoringConfig {
metrics: {
performance?: {
enabled: boolean;
};
errors?: {
enabled: boolean;
};
userExperience?: {
enabled: boolean;
};
business?: {
enabled: boolean;
};
};
alerting: {
performance?: {
enabled: boolean;
};
errors?: {
enabled: boolean;
};
userExperience?: {
enabled: boolean;
};
};
monitoringInterval?: number;
}
export interface MonitoringSession {
upgradeId: string;
startTime: Date;
config: UpgradeMonitoringConfig;
metrics: Map<string, any>;
alerts: Alert[];
status: 'active' | 'paused' | 'stopped';
monitoringInterval?: NodeJS.Timeout;
}
export interface HealthStatus {
overall: HealthScore;
performance: HealthScore;
errors: ErrorPattern[];
userExperience: HealthScore;
infrastructure: HealthScore;
businessMetrics: HealthScore;
timestamp: Date;
recommendations: string[];
}
export interface PerformanceMetrics {
responseTime: number;
requestsPerSecond: number;
errorRate: number;
cpuUsage: number;
memoryUsage: number;
diskIO: number;
networkIO: number;
pageLoadTime: number;
bundleSize: number;
firstContentfulPaint: number;
largestContentfulPaint: number;
cumulativeLayoutShift: number;
timestamp: Date;
slaCompliance?: SLAValidation;
}
export interface UserExperienceMetrics {
coreWebVitals: {
lcp: number;
fid: number;
cls: number;
};
clickThroughRate: number;
bounceRate: number;
sessionDuration: number;
pageViews: number;
javascriptErrors: number;
consoleErrors: number;
networkErrors: number;
userSatisfactionScore: number;
timestamp: Date;
}
interface AlertingConfig {
slack?: any;
teams?: any;
pagerDuty?: any;
serviceNow?: any;
email?: any;
}
interface IncidentResponseConfig {
autoRollback?: any;
escalation: any;
autoRemediation?: any;
}
interface TimeRange {
start: Date;
end: Date;
}
interface MonitoringReport {
upgradeId: string;
timeRange: TimeRange;
generatedAt: Date;
executiveSummary: any;
performanceAnalysis: any;
errorAnalysis: any;
userExperienceAnalysis: any;
slaComplianceReport: any;
incidentSummary: any;
recommendations: any;
metricsTrends: any;
}
interface Dashboard {
id: string;
title: string;
sections: DashboardSection[];
refreshInterval: number;
created: Date;
}
interface DashboardSection {
}
interface Alert {
}
interface HealthScore {
score: number;
status: string;
}
interface ErrorPattern {
}
interface SLAValidation {
compliant: boolean;
}
export {};
//# sourceMappingURL=EnterpriseMonitoringSystem.d.ts.map