advisor

package
v0.0.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateActionableReport

func GenerateActionableReport(report AKSAdvisorReport) (string, error)

GenerateActionableReport creates a focused report with actionable items

func GenerateDetailedReport

func GenerateDetailedReport(report AKSAdvisorReport) (string, error)

GenerateDetailedReport creates a detailed report with all recommendation information

func GenerateExecutiveSummary

func GenerateExecutiveSummary(report AKSAdvisorReport) (string, error)

GenerateExecutiveSummary creates an executive summary of AKS recommendations

func GetAdvisorRecommendationHandler

func GetAdvisorRecommendationHandler(cfg *config.ConfigData) tools.ResourceHandler

GetAdvisorRecommendationHandler returns a handler for the az_advisor_recommendation command

func HandleAdvisorRecommendation

func HandleAdvisorRecommendation(params map[string]interface{}, cfg *config.ConfigData) (string, error)

HandleAdvisorRecommendation is the main handler for Azure Advisor recommendation operations

func RegisterAdvisorRecommendationTool

func RegisterAdvisorRecommendationTool() mcp.Tool

RegisterAdvisorRecommendationTool registers the az_advisor_recommendation tool

Types

type AKSActionItem

type AKSActionItem struct {
	Priority         int    `json:"priority"`
	RecommendationID string `json:"recommendation_id"`
	ClusterName      string `json:"cluster_name"`
	Category         string `json:"category"`
	Description      string `json:"description"`
	EstimatedEffort  string `json:"estimated_effort"`
	PotentialImpact  string `json:"potential_impact"`
}

AKSActionItem represents a prioritized action item

type AKSAdvisorReport

type AKSAdvisorReport struct {
	SubscriptionID   string                     `json:"subscription_id"`
	GeneratedAt      time.Time                  `json:"generated_at"`
	Summary          AKSReportSummary           `json:"summary"`
	Recommendations  []AKSRecommendationSummary `json:"recommendations"`
	ActionItems      []AKSActionItem            `json:"action_items"`
	ClusterBreakdown []ClusterRecommendations   `json:"cluster_breakdown"`
}

AKSAdvisorReport represents a comprehensive report of AKS recommendations

type AKSRecommendationDetails

type AKSRecommendationDetails struct {
	ClusterVersion    string   `json:"cluster_version,omitempty"`
	NodePoolNames     []string `json:"node_pool_names,omitempty"`
	WorkloadType      string   `json:"workload_type,omitempty"`
	ConfigurationArea string   `json:"configuration_area,omitempty"` // networking, compute, storage, security
}

AKSRecommendationDetails contains AKS-specific information

type AKSRecommendationSummary

type AKSRecommendationSummary struct {
	ID               string                   `json:"id"`
	Category         string                   `json:"category"`
	Impact           string                   `json:"impact"`
	ClusterName      string                   `json:"cluster_name"`
	ResourceGroup    string                   `json:"resource_group"`
	ResourceID       string                   `json:"resource_id"`
	Description      string                   `json:"description"`
	Severity         string                   `json:"severity"`
	PotentialSavings *CostSavings             `json:"potential_savings,omitempty"`
	LastUpdated      time.Time                `json:"last_updated"`
	Status           string                   `json:"status"`
	AKSSpecific      AKSRecommendationDetails `json:"aks_specific"`
}

AKSRecommendationSummary represents an Azure Advisor recommendation for AKS resources

type AKSReportSummary

type AKSReportSummary struct {
	TotalRecommendations  int            `json:"total_recommendations"`
	ByCategory            map[string]int `json:"by_category"`
	BySeverity            map[string]int `json:"by_severity"`
	TotalPotentialSavings *CostSavings   `json:"total_potential_savings,omitempty"`
	ClustersAffected      int            `json:"clusters_affected"`
}

AKSReportSummary provides high-level statistics

type ActionableItem

type ActionableItem struct {
	RecommendationID string   `json:"recommendation_id"`
	ClusterName      string   `json:"cluster_name"`
	Title            string   `json:"title"`
	Description      string   `json:"description"`
	Steps            []string `json:"steps"`
	ExpectedOutcome  string   `json:"expected_outcome"`
	TimeEstimate     string   `json:"time_estimate"`
}

type ActionableReport

type ActionableReport struct {
	GeneratedAt          time.Time           `json:"generated_at"`
	SubscriptionID       string              `json:"subscription_id"`
	QuickWins            []ActionableItem    `json:"quick_wins"`
	HighImpactItems      []ActionableItem    `json:"high_impact_items"`
	CostOptimization     []ActionableItem    `json:"cost_optimization"`
	SecurityImprovements []ActionableItem    `json:"security_improvements"`
	PerformanceBoosts    []ActionableItem    `json:"performance_boosts"`
	ImplementationGuide  ImplementationGuide `json:"implementation_guide"`
}

type CLIRecommendation

type CLIRecommendation struct {
	ID               string `json:"id"`
	Name             string `json:"name"`
	Category         string `json:"category"`
	Impact           string `json:"impact"`
	ImpactedValue    string `json:"impactedValue"`
	LastUpdated      string `json:"lastUpdated"`
	ShortDescription struct {
		Problem  string `json:"problem"`
		Solution string `json:"solution"`
	} `json:"shortDescription"`
}

CLIRecommendation represents the raw Azure CLI recommendation structure

type CategoryBreakdown

type CategoryBreakdown struct {
	Category        string                     `json:"category"`
	Count           int                        `json:"count"`
	Recommendations []AKSRecommendationSummary `json:"recommendations"`
	Impact          string                     `json:"impact"`
}

type CategoryCount

type CategoryCount struct {
	Category string `json:"category"`
	Count    int    `json:"count"`
}

type ClusterAnalysis

type ClusterAnalysis struct {
	ClusterName         string   `json:"cluster_name"`
	ResourceGroup       string   `json:"resource_group"`
	RecommendationCount int      `json:"recommendation_count"`
	HighPriorityCount   int      `json:"high_priority_count"`
	PrimaryCategories   []string `json:"primary_categories"`
	OverallRisk         string   `json:"overall_risk"`
}

type ClusterRecommendations

type ClusterRecommendations struct {
	ClusterName     string                     `json:"cluster_name"`
	ResourceGroup   string                     `json:"resource_group"`
	Recommendations []AKSRecommendationSummary `json:"recommendations"`
	TotalSavings    *CostSavings               `json:"total_savings,omitempty"`
}

ClusterRecommendations groups recommendations by cluster

type CostSavings

type CostSavings struct {
	Currency       string  `json:"currency"`
	AnnualSavings  float64 `json:"annual_savings"`
	MonthlySavings float64 `json:"monthly_savings"`
}

CostSavings represents potential cost savings information

type DetailedReport

type DetailedReport struct {
	ExecutiveSummary       ExecutiveSummary           `json:"executive_summary"`
	CategoryBreakdown      []CategoryBreakdown        `json:"category_breakdown"`
	ClusterAnalysis        []ClusterAnalysis          `json:"cluster_analysis"`
	PriorityMatrix         []PriorityMatrixItem       `json:"priority_matrix"`
	ImplementationTimeline []TimelineItem             `json:"implementation_timeline"`
	AllRecommendations     []AKSRecommendationSummary `json:"all_recommendations"`
}

type ExecutiveSummary

type ExecutiveSummary struct {
	GeneratedAt          time.Time       `json:"generated_at"`
	SubscriptionID       string          `json:"subscription_id"`
	TotalClusters        int             `json:"total_clusters"`
	TotalRecommendations int             `json:"total_recommendations"`
	HighPriorityCount    int             `json:"high_priority_count"`
	MediumPriorityCount  int             `json:"medium_priority_count"`
	LowPriorityCount     int             `json:"low_priority_count"`
	TopCategories        []CategoryCount `json:"top_categories"`
	KeyFindings          []string        `json:"key_findings"`
	NextSteps            []string        `json:"next_steps"`
}

Report structure types

type ImplementationGuide

type ImplementationGuide struct {
	Phase1 ImplementationPhase `json:"phase_1"`
	Phase2 ImplementationPhase `json:"phase_2"`
	Phase3 ImplementationPhase `json:"phase_3"`
}

type ImplementationPhase

type ImplementationPhase struct {
	Name           string           `json:"name"`
	Duration       string           `json:"duration"`
	Focus          string           `json:"focus"`
	Actions        []ActionableItem `json:"actions"`
	Prerequisites  []string         `json:"prerequisites"`
	SuccessMetrics []string         `json:"success_metrics"`
}

type PriorityMatrixItem

type PriorityMatrixItem struct {
	RecommendationID string `json:"recommendation_id"`
	ClusterName      string `json:"cluster_name"`
	Category         string `json:"category"`
	Impact           string `json:"impact"`
	Effort           string `json:"effort"`
	Priority         int    `json:"priority"`
}

type TimelineItem

type TimelineItem struct {
	Week              int      `json:"week"`
	RecommendationIDs []string `json:"recommendation_ids"`
	Focus             string   `json:"focus"`
	EstimatedHours    int      `json:"estimated_hours"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL