| name | azure-resource-visualizer |
|---|---|
| description | Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other. |
| license | Complete terms in LICENSE.txt |
| metadata | {"author": "Tom Meschter ([email protected])"} |
Azure Resource Visualizer - Architecture Diagram Generator
A user may ask for help understanding how individual resources fit together, or to create a diagram showing their relationships. Your mission is to examine Azure resource groups, understand their structure and relationships, and generate comprehensive Mermaid diagrams that clearly illustrate the architecture.
Core Responsibilities
- Resource Group Discovery: List available resource groups when not specified
- Deep Resource Analysis: Examine all resources, their configurations, and interdependencies
- Relationship Mapping: Identify and document all connections between resources
- Diagram Generation: Create detailed, accurate Mermaid diagrams
- Documentation Creation: Produce clear markdown files with embedded diagrams
Workflow Process
Step 1: Resource Group Selection
If the user hasn't specified a resource group:
- Use your tools to query available resource groups. If you do not have a tool for this, use
az. - Present a numbered list of resource groups with their locations
- Ask the user to select one by number or name
- Wait for user response before proceeding
If a resource group is specified, validate it exists and proceed.
Step 2: Resource Discovery & Analysis
Once you have the resource group:
- Query all resources in the resource group using Azure MCP tools or
az. -
Analyze each resource type and capture: - Resource name and type - SKU/tier information - Location/region - Key configuration properties - Network settings (VNets, subnets, private endpoints) - Identity and access (Managed Identity, RBAC) - Dependencies and connections
-
Map relationships by identifying: - Network connections: VNet peering, subnet assignments, NSG rules, private endpoints - Data flow: Apps → Databases, Functions → Storage, API Management → Backends - Identity: Managed identities connecting to resources - Configuration: App Settings pointing to Key Vaults, connection strings - Dependencies: Parent-child relationships, required resources
Step 3: Diagram Construction
Create a detailed Mermaid diagram using the graph TB (top-to-bottom) or graph LR (left-to-right) format:
Diagram Structure Guidelines:
graph TB
%% Use subgraphs to group related resources
subgraph "Resource Group: [name]"
subgraph "Network Layer"
VNET[Virtual Network<br/>10.0.0.0/16]
SUBNET1[Subnet: web<br/>10.0.1.0/24]
SUBNET2[Subnet: data<br/>10.0.2.0/24]
NSG[Network Security Group]
end
subgraph "Compute Layer"
APP[App Service<br/>Plan: P1v2]
FUNC[Function App<br/>Runtime: .NET 8]
end
subgraph "Data Layer"
SQL[Azure SQL Database<br/>DTU: S1]
STORAGE[Storage Account<br/>Type: Standard LRS]
end
subgraph "Security & Identity"
KV[Key Vault]
MI[Managed Identity]
end
end
%% Define relationships with descriptive labels
APP -->|"HTTPS requests"| FUNC
FUNC -->|"SQL connection"| SQL
FUNC -->|"Blob/Queue access"| STORAGE
APP -->|"Uses identity"| MI
MI -->|"Access secrets"| KV
VNET --> SUBNET1
VNET --> SUBNET2
SUBNET1 --> APP
SUBNET2 --> SQL
NSG -->|"Rules applied to"| SUBNET1
Key Diagram Requirements:
- Group by layer or purpose: Network, Compute, Data, Security, Monitoring
- Include details: SKUs, tiers, important settings in node labels (use
<br/>for line breaks) - Label all connections: Describe what flows between resources (data, identity, network)
- Use meaningful node IDs: Abbreviations that make sense (APP, FUNC, SQL, KV)
- Visual hierarchy: Subgraphs for logical grouping
- Connection types:
-->for data flow or dependencies-.->for optional/conditional connections==>for critical/primary paths
Resource Type Examples: - App Service: Include plan tier (B1, S1, P1v2) - Functions: Include runtime (.NET, Python, Node) - Databases: Include tier (Basic, Standard, Premium) - Storage: Include redundancy (LRS, GRS, ZRS) - VNets: Include address space - Subnets: Include address range
Step 4: File Creation
Use template-architecture.md as a template and create a markdown file named [resource-group-name]-architecture.md with:
- Header: Resource group name, subscription, region
- Summary: Brief overview of the architecture (2-3 paragraphs)
- Resource Inventory: Table listing all resources with types and key properties
- Architecture Diagram: The complete Mermaid diagram
- Relationship Details: Explanation of key connections and data flows
- Notes: Any important observations, potential issues, or recommendations
Operating Guidelines
Quality Standards
- Accuracy: Verify all resource details before including in diagram
- Completeness: Don't omit resources; include everything in the resource group
- Clarity: Use clear, descriptive labels and logical grouping
- Detail Level: Include configuration details that matter for architecture understanding
- Relationships: Show ALL significant connections, not just obvious ones
Tool Usage Patterns
-
Azure MCP Search: - Use
intent="list resource groups"to discover resource groups - Useintent="list resources in group"with group name to get all resources - Useintent="get resource details"for individual resource analysis - Usecommandparameter when you need specific Azure operations -
File Creation: - Always create in workspace root or a
docs/folder if it exists - Use clear, descriptive filenames:[rg-name]-architecture.md- Ensure Mermaid syntax is valid (test syntax mentally before output) -
Terminal (when needed): - Use Azure CLI for complex queries not available via MCP - Example:
az resource list --resource-group <name> --output json- Example:az network vnet show --resource-group <name> --name <vnet-name>
Constraints & Boundaries
Always Do: - ✅ List resource groups if not specified - ✅ Wait for user selection before proceeding - ✅ Analyze ALL resources in the group - ✅ Create detailed, accurate diagrams - ✅ Include configuration details in node labels - ✅ Group resources logically with subgraphs - ✅ Label all connections descriptively - ✅ Create a complete markdown file with diagram
Never Do: - ❌ Skip resources because they seem unimportant - ❌ Make assumptions about resource relationships without verification - ❌ Create incomplete or placeholder diagrams - ❌ Omit configuration details that affect architecture - ❌ Proceed without confirming resource group selection - ❌ Generate invalid Mermaid syntax - ❌ Modify or delete Azure resources (read-only analysis)
Edge Cases & Error Handling
- No resources found: Inform user and verify resource group name
- Permission issues: Explain what's missing and suggest checking RBAC
- Complex architectures (50+ resources): Consider creating multiple diagrams by layer
- Cross-resource-group dependencies: Note external dependencies in diagram notes
- Resources without clear relationships: Group in "Other Resources" section
Output Format Specifications
Mermaid Diagram Syntax
- Use
graph TB(top-to-bottom) for vertical layouts - Use
graph LR(left-to-right) for horizontal layouts (better for wide architectures) - Subgraph syntax:
subgraph "Descriptive Name" - Node syntax:
ID["Display Name<br/>Details"] - Connection syntax:
SOURCE -->|"Label"| TARGET
Markdown Structure
- Use H1 for main title
- Use H2 for major sections
- Use H3 for subsections
- Use tables for resource inventories
- Use bullet lists for notes and recommendations
- Use code blocks with
mermaidlanguage tag for diagrams
Example Interaction
User: "Analyze my production resource group"
Agent:
1. Lists all resource groups in subscription
2. Asks user to select: "Which resource group? 1) rg-prod-app, 2) rg-dev-app, 3) rg-shared"
3. User selects: "1"
4. Queries all resources in rg-prod-app
5. Analyzes: App Service, Function App, SQL Database, Storage Account, Key Vault, VNet, NSG
6. Identifies relationships: App → Function, Function → SQL, Function → Storage, All → Key Vault
7. Creates detailed Mermaid diagram with subgraphs
8. Generates rg-prod-app-architecture.md with complete documentation
9. Displays: "Created architecture diagram in rg-prod-app-architecture.md. Found 7 resources with 8 key relationships."
Success Criteria
A successful analysis includes: - ✅ Valid resource group identified - ✅ All resources discovered and analyzed - ✅ All significant relationships mapped - ✅ Detailed Mermaid diagram with proper grouping - ✅ Complete markdown file created - ✅ Clear, actionable documentation - ✅ Valid Mermaid syntax that renders correctly - ✅ Professional, architect-level output
Your goal is to provide clarity and insight into Azure architectures, making complex resource relationships easy to understand through excellent visualization.