awesome-copilot icon indicating copy to clipboard operation
awesome-copilot copied to clipboard

Add azure-resource-visualizer skill

Open tmeschter opened this issue 1 week ago • 1 comments

Pull Request Checklist

  • [x] I have read and followed the CONTRIBUTING.md guidelines.
  • [x] My contribution adds a new instruction, prompt, or chat mode file in the correct directory.
  • [x] The file follows the required naming convention.
  • [x] The content is clearly structured and follows the example format.
  • [x] I have tested my instructions, prompt, or chat mode with GitHub Copilot.
  • [x] I have run npm start and verified that README.md is up to date.

Description

This change adds a skill that can analyze the resources within an Azure resource group, determine the relationships between them, and then generate a Markdown file containing the relevant details. The Markdown file includes a Mermaid diagram showing the relationships.


Type of Contribution

  • [ ] New instruction file.
  • [ ] New prompt file.
  • [ ] New chat mode file.
  • [ ] New collection file.
  • [ ] Update to existing instruction, prompt, chat mode, or collection.
  • [x] Other (please specify): New skill.

Additional Notes

Here is an example diagram showing an MCP server hosted in Azure Functions:

graph TB
    subgraph "Resource Group: rg-joke-mcp"
        subgraph "Compute Layer - East US"
            PLAN[App Service Plan<br/>ASP-rgjokemcp-67ea<br/>Tier: FlexConsumption FC1<br/>Max Instances: 100]
            FUNC[Function App<br/>func-joke-mcp-9426<br/>Runtime: .NET 8 isolated<br/>Memory: 2048 MB<br/>Public Access: Disabled]
            MI[System Assigned<br/>Managed Identity<br/>Principal ID: 85813040...]
        end
        
        subgraph "Storage Layer"
            ST1[Storage Account<br/>stjokemcp6331<br/>East US<br/>Type: Standard LRS<br/>No Public Blob Access<br/>HTTPS Only]
            ST2[Storage Account<br/>stjokemcp2522<br/>West US 2<br/>Type: Standard LRS<br/>No Public Blob Access<br/>HTTPS Only]
            BLOB1[Blob Container<br/>app-package-funcjokemcp9426-*<br/>Function deployment package]
        end
        
        subgraph "Monitoring & Observability"
            AI[Application Insights<br/>func-joke-mcp-9426<br/>Type: LogAnalytics<br/>Retention: 90 days]
            LAW[Log Analytics Workspace<br/>DefaultWorkspace-*-EUS<br/>Centralized logs]
            ALERT[Smart Detector Alert<br/>Failure Anomalies<br/>AI-powered detection]
        end
        
        subgraph "Event-Driven Infrastructure"
            EG1[Event Grid System Topic<br/>stjokemcp6331-*<br/>Storage Events]
            EG2[Event Grid System Topic<br/>stjokemcp2522-*<br/>Storage Events]
        end
    end
    
    %% Compute relationships
    FUNC -->|"Hosted on"| PLAN
    FUNC -->|"Uses identity"| MI
    
    %% Storage relationships
    MI -->|"System Assigned Identity<br/>Blob access for deployment"| ST1
    MI -->|"Potential access"| ST2
    ST1 -->|"Contains"| BLOB1
    BLOB1 -->|"Deployment source"| FUNC
    
    %% Monitoring relationships
    FUNC -->|"Sends telemetry"| AI
    AI -->|"Writes logs to"| LAW
    AI -->|"Triggers"| ALERT
    FUNC -->|"Function logs"| LAW
    
    %% Event Grid relationships
    ST1 -->|"Emits storage events"| EG1
    ST2 -->|"Emits storage events"| EG2
    EG1 -.->|"Can trigger"| FUNC
    EG2 -.->|"Can trigger"| FUNC
    
    %% External access
    USERS[External Users/Clients]
    USERS -->|"HTTPS requests<br/>*.azurewebsites.net"| FUNC

    classDef compute fill:#0078d4,stroke:#004578,color:#fff
    classDef storage fill:#50e6ff,stroke:#0078d4,color:#000
    classDef monitoring fill:#ff9900,stroke:#cc7a00,color:#000
    classDef events fill:#68217a,stroke:#4a1755,color:#fff
    classDef identity fill:#00bcf2,stroke:#008db3,color:#000
    
    class PLAN,FUNC compute
    class ST1,ST2,BLOB1 storage
    class AI,LAW,ALERT monitoring
    class EG1,EG2 events
    class MI identity

By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.

tmeschter avatar Dec 19 '25 19:12 tmeschter

@digitarald I'm not sure what is needed to make the "Validate README.md" check happy. I've rebased my branch onto the latest main, run npm start locally (this generated no changes), and pushed the branch.

tmeschter avatar Dec 20 '25 00:12 tmeschter