azureai-optimizer
Version:
AI-Powered Azure Infrastructure Optimization via Model Context Protocol
134 lines • 3.93 kB
TypeScript
/**
* Cost Analysis Tool
* AI-powered Azure cost optimization analysis
*/
import { AuthContext } from '../auth/azure-auth.js';
import { Tool, ToolConfig } from './registry.js';
export interface CostAnalysisArgs {
subscription_id: string;
resource_group?: string;
days_back?: number;
include_recommendations?: boolean;
granularity?: 'daily' | 'monthly';
group_by?: string[];
}
export interface CostAnalysisResult {
success: boolean;
data: {
cost_summary: {
total_cost: number;
currency: string;
period: string;
previous_period_cost?: number;
cost_change_percentage?: number;
};
cost_breakdown: {
by_service: Array<{
service: string;
cost: number;
percentage: number;
}>;
by_resource_group?: Array<{
resource_group: string;
cost: number;
percentage: number;
}>;
by_location?: Array<{
location: string;
cost: number;
percentage: number;
}>;
};
trends: {
daily_costs: Array<{
date: string;
cost: number;
}>;
cost_trend: 'increasing' | 'decreasing' | 'stable';
anomalies: Array<{
date: string;
cost: number;
expected_cost: number;
deviation: number;
}>;
};
ai_insights: {
top_optimization_opportunities: Array<{
title: string;
description: string;
potential_savings: number;
savings_percentage: number;
complexity: 'Low' | 'Medium' | 'High';
risk_level: 'Low' | 'Medium' | 'High';
implementation_steps: string[];
}>;
cost_drivers: string[];
recommendations_summary: string;
};
advisor_recommendations?: Array<{
title: string;
description: string;
category: string;
impact: string;
potential_savings?: number;
}>;
};
metadata: {
execution_time?: number;
api_calls: number;
data_freshness: string;
};
}
export declare class CostAnalysisTool implements Tool {
name: string;
description: string;
inputSchema: {
type: string;
properties: {
subscription_id: {
type: string;
description: string;
};
resource_group: {
type: string;
description: string;
};
days_back: {
type: string;
description: string;
default: number;
minimum: number;
maximum: number;
};
include_recommendations: {
type: string;
description: string;
default: boolean;
};
granularity: {
type: string;
enum: string[];
description: string;
default: string;
};
group_by: {
type: string;
items: {
type: string;
enum: string[];
};
description: string;
};
};
required: string[];
};
private aiAnalyzer;
private logger;
constructor(config: ToolConfig);
execute(args: CostAnalysisArgs, _context: AuthContext): Promise<CostAnalysisResult>;
private processCostData;
private analyzeCostTrend;
private detectCostAnomalies;
private calculateCostChange;
}
//# sourceMappingURL=cost-analysis.d.ts.map