azureai-optimizer
Version:
AI-Powered Azure Infrastructure Optimization via Model Context Protocol
132 lines • 4.17 kB
TypeScript
/**
* 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