GitHub Copilot for Azure

repository·main·Indexed 42 days ago

https://github.com/microsoft/github-copilot-for-azure

A plugin for GitHub Copilot that provides specialized skills and tools for Azure. It includes the Azure MCP Server for managing over 40 Azure services via natural language, Azure Local skills for standard and multi-rack deployments, and Azure Kusto Graph skills for graph analysis and IRQL security hunting. The repository also contains a Skill Health Dashboard for monitoring integration test results and token usage.

Tokens
970.5K
Snippets
2.2K
Records
3.7K
Agent score
50%

What's inside GitHub Copilot for Azure

  1. Overview of Azure Event Grid for event-driven architectures

    main

    Azure Event Grid is a serverless event routing service designed for event-driven architectures, reactive programming patterns, and decoupled event routing. It enables near real-time event delivery and supports fan-out patterns to multiple subscribers.

    Event Sources

    • System Topics: Events generated by Azure resources (e.g., Storage, Key Vault).
    • Custom Topics: Events generated by your own applications.
    • Event Domains: Used for multi-tenant event management.

    Event Schemas

    • Event Grid Schema: The Azure native event format.
    • CloudEvents 1.0: The CNCF standard for cross-platform compatibility.
  2. Overview of Azure Storage services

    main

    Azure Storage provides scalable cloud storage for various data types. Use it when you need to manage:

    • Blob storage: For files, images, videos, backups, and logs.
    • File shares: For SMB/NFS access and lift-and-shift scenarios.
    • Queue storage: For simple messaging and decoupling services.
    • Table storage: For NoSQL key-value data.
    • Static website hosting.
  3. Use Foundry IQ Skills for knowledge base workflows

    main

    The foundry-iq skill allows you to manage Azure AI Search (Foundry IQ) knowledge experiences via GitHub Copilot CLI.

    Supported Capabilities

    • Resource Management: Create or reuse Azure AI Search services, and create knowledge sources from local files, Azure Blob Storage, or Azure Data Lake Storage.
    • Knowledge Base Operations: Create knowledge bases, validate content searchability, and query knowledge bases with citations.
    • Agent Integration: Connect existing knowledge bases to agents.
    • Troubleshooting: Diagnose knowledge base failures and unsupported requests.
    • Cleanup: Prepare cleanup plans for resources created during the workflow.

    Limitations

    This skill is specialized for Foundry IQ knowledge-base workflows. It does not support:

    • Classic Azure AI Search application, index, or query development.
    • Generic agent creation.
    • Repository-file search.
  4. Use the Azure Diagnostics skill for troubleshooting

    main

    The azure-diagnostics skill is used to debug and troubleshoot Azure production issues. It provides systematic guidance for diagnosing errors across various Azure services, including App Service, Container Apps, Function Apps, AKS, Compute (VMs), and Messaging (Event Hubs/Service Bus).

    Quick Diagnosis Flow

    1. Identify symptoms: Determine exactly what is failing.
    2. Check resource health: Verify if the Azure resource itself is reporting health issues.
    3. Review logs: Examine application and platform logs.
    4. Analyze metrics: Look for performance patterns or anomalies.
    5. Investigate recent changes: Identify recent deployments or configuration updates that might have caused the issue.
  5. Use the Azure Resource Visualizer skill

    main

    The azure-resource-visualizer skill is designed to analyze Azure resource groups and generate detailed Mermaid architecture diagrams. It is used when you need to:

    • Create architecture diagrams
    • Visualize Azure resources and their relationships
    • Generate Mermaid diagrams from existing infrastructure
    • Map Azure resource topology

    The skill follows a structured workflow: selecting a resource group, discovering and analyzing resources, constructing a Mermaid diagram, and finally creating a comprehensive markdown documentation file.

  6. Use the azure-upgrade skill for Azure workload modernization

    main

    The azure-upgrade skill automates the assessment and upgrade of Azure workloads. It is designed for upgrading hosting plans, tiers, or SKUs within Azure, as well as modernizing source code dependencies.

    Supported Upgrade Scenarios:

    • Azure Functions: Upgrading from Consumption Plan to Flex Consumption Plan.
    • App Service: Migrating App Service to Container Apps.
    • Azure Cache for Redis: Migrating Azure Cache for Redis (ACR/OSS) or Enterprise (ACRE) to Azure Managed Redis (AMR).
    • Java SDK Modernization: Upgrading legacy Java SDKs from com.microsoft.azure.* to the modern com.azure.* namespace.

    Note: This skill is for intra-cloud upgrades. For cross-cloud migrations, use azure-cloud-migrate instead.

  7. Analyze Foundry Agent Traces

    main

    Use the Foundry Agent Trace Analysis skill to analyze production traces for Foundry agents using Application Insights and GenAI OpenTelemetry (OTel) semantic conventions. This skill is specifically designed for querying GenAI telemetry, agent conversations, and evaluation results.

    When to use this skill

    Use this skill instead of azure-monitor or azure-applicationinsights when you need to:

    • Search agent conversations or history.
    • Diagnose agent failures or errors in production.
    • Perform latency analysis or find slow traces.
    • Correlate spans and analyze span trees.
    • Retrieve agent evaluation scores from App Insights.
    • Find specific traces by response ID or conversation ID.

    Key Technical Details

    • Data Source: Application Insights (App Insights).
    • Query Language: KQL (Kusto Query Language).
    • OTel Conventions: Follows GenAI Spans and Agent Spans standards.
    • Preferred Tool: Use monitor_resource_log_query (Azure MCP) to execute KQL queries against the App Insights resource. Do not use the azure-kusto skill for this purpose.
  8. Use the Azure Resource Lookup skill

    main

    The azure-resource-lookup skill is used to list, find, and discover Azure resources across subscriptions and resource groups. It is the primary mechanism for performing cross-subscription queries, finding orphaned resources (like unattached disks), or conducting tag audits.

    When to use this skill

    • Resource Inventory: Answering "what resources do I have?" or listing specific types (VMs, storage accounts, etc.).
    • Cross-Subscription Queries: Searching across multiple subscriptions simultaneously.
    • Orphaned Resource Discovery: Finding unattached disks, unused NICs, or idle IPs.
    • Tag Audits: Finding resources missing required tags.
    • App Services/Web Apps: Since there is no dedicated MCP list command for App Services, you must use this skill for prompts like "list websites" or "list web apps".

    When NOT to use this skill

    • Deploying/Changing Resources: Use azure-deploy instead.
    • Cost Optimization: Use azure-cost instead.
    • Real-time Monitoring: Azure Resource Graph (ARG) has a slight data delay; do not use it for real-time monitoring.
    • Mutations: ARG is read-only; do not attempt to change resources via ARG queries.
  9. Use the Azure Data Explorer (Kusto) Skill

    main

    The azure-kusto skill allows you to query and manage Azure Data Explorer (ADX) resources using Kusto Query Language (KQL). It is designed for high-scale analytics on logs, telemetry, and time-series data.

    Core Workflow

    1. Discover Resources: List available clusters and databases in your subscription.
    2. Explore Schema: Retrieve table structures to understand the data model.
    3. Query Data: Execute KQL queries for analysis, filtering, and aggregation.
    4. Analyze Results: Process query output for insights.

    When to use this skill

    Trigger this skill when you need to:

    • Query a Kusto database or run KQL queries.
    • Analyze logs or telemetry in an ADX cluster.
    • Perform time-series analysis or anomaly detection.
    • Discover schema information (tables, columns, types) in Kusto.