UNPKG

azureai-optimizer

Version:

AI-Powered Azure Infrastructure Optimization via Model Context Protocol

132 lines 4.17 kB
/** * Right-Sizing Tool * AI-powered Azure resource optimization recommendations */ import { AuthContext } from '../auth/azure-auth.js'; import { Tool, ToolConfig } from './registry.js'; export interface RightSizingArgs { subscription_id: string; resource_group?: string; resource_types?: ('VirtualMachines' | 'SqlDatabases' | 'AppServicePlans' | 'Storage')[]; utilization_threshold?: number; analysis_days?: number; } export interface RightSizingResult { success: boolean; data: { summary: { total_resources_analyzed: number; optimization_opportunities: number; potential_monthly_savings: number; total_savings_percentage: number; }; vm_recommendations: Array<{ resource_id: string; resource_name: string; current_sku: string; recommended_sku: string; current_cost: number; projected_cost: number; monthly_savings: number; savings_percentage: number; utilization_metrics: { cpu_average: number; memory_average: number; network_average: number; }; confidence_level: 'High' | 'Medium' | 'Low'; implementation_complexity: 'Low' | 'Medium' | 'High'; risk_assessment: string; }>; database_recommendations: Array<{ resource_id: string; resource_name: string; current_tier: string; recommended_tier: string; current_cost: number; projected_cost: number; monthly_savings: number; performance_metrics: { dtu_average: number; storage_usage: number; connection_count: number; }; recommendation_reason: string; }>; storage_recommendations: Array<{ resource_id: string; resource_name: string; current_tier: string; recommended_tier: string; monthly_savings: number; access_patterns: { hot_access_percentage: number; cool_access_percentage: number; archive_eligible_percentage: number; }; }>; }; metadata: { execution_time?: number; api_calls: number; analysis_period: string; confidence_threshold: number; }; } export declare class RightSizingTool implements Tool { name: string; description: string; inputSchema: { type: string; properties: { subscription_id: { type: string; description: string; }; resource_group: { type: string; description: string; }; resource_types: { type: string; items: { type: string; enum: string[]; }; description: string; }; utilization_threshold: { type: string; description: string; default: number; minimum: number; maximum: number; }; analysis_days: { type: string; description: string; default: number; minimum: number; maximum: number; }; }; required: string[]; }; private logger; constructor(_config: ToolConfig); execute(args: RightSizingArgs, _context: AuthContext): Promise<RightSizingResult>; private analyzeVirtualMachines; private getVMMetrics; private processMetrics; private analyzeVMUtilization; private getRecommendedVMSku; private getVMCost; private getConfidenceLevel; private getImplementationComplexity; private getSkuTier; private getRiskAssessment; private analyzeSqlDatabases; private analyzeStorageAccounts; private calculateSummary; } //# sourceMappingURL=right-sizing.d.ts.map