# azure/azure-vmware-solution architecture

> Architecture diagram of the GitHub repository azure/azure-vmware-solution, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/azure/azure-vmware-solution
- Repository: https://github.com/azure/azure-vmware-solution

## Overview

This repository is a collection of Azure VMware Solution (AVS) customer tools and reference assets, not one integrated runtime. Its principal executable workflows are periodic AVS/NSX monitoring, Event Hub-to-syslog forwarding, and read-only database access for a Foundry agent; autoscaling runbooks and design templates are separate offerings. Source excerpts confirm monitoring API access, metric-file output and Telegraf control, plus the AI server’s authentication, query and secret-handling behavior. The tree and README identify the other offerings, but their internal wiring is not shown, so those links are intentionally limited.

Main entry points: [`avs-foundry-integration/app/mcp_server.py`](https://github.com/azure/azure-vmware-solution/blob/main/avs-foundry-integration/app/mcp_server.py) (MCP Data Server), [`advanced-monitoring/Worker/main.py`](https://github.com/azure/azure-vmware-solution/blob/main/advanced-monitoring/Worker/main.py) (Monitoring Worker), [`avs-autoscale/code/autoscale-in-runbook.ps1`](https://github.com/azure/azure-vmware-solution/blob/main/avs-autoscale/code/autoscale-in-runbook.ps1) (Scale-In Runbook), [`avs-autoscale/code/autoscale-out-runbook.ps1`](https://github.com/azure/azure-vmware-solution/blob/main/avs-autoscale/code/autoscale-out-runbook.ps1) (Scale-Out Runbook)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_monitoring["Advanced Monitoring"]
  node_monitor_main["Monitoring Worker<br/>[main.py]"]
  node_metrics_files["CSV Metrics"]
  node_telegraf["Telegraf Agent<br/>[telegraf.conf]"]
end

subgraph group_autoscale["Auto-Scale"]
  node_autoscale_in["Scale-In Runbook"]
  node_autoscale_out["Scale-Out Runbook"]
end

subgraph group_syslog["Syslog Forwarding"]
  node_forwarder["Forwarder Function<br/>[index.js]"]
end

subgraph group_data_agent["AI Data Agent"]
  node_mcp_server["MCP Data Server<br/>[mcp_server.py]"]
  node_source_catalog["Source Catalog<br/>[sources.yaml]"]
end

subgraph group_design["Master Diagrams"]
  node_design_templates["Architecture Templates"]
end

node_operator(("AVS Operator"))
node_avs_cloud["AVS Private Cloud"]
node_nsx_manager["NSX Manager"]
node_automation["Azure Automation"]
node_eventhub["Azure Event Hub"]
node_syslog_server["Syslog Server"]
node_foundry_agent(("Foundry Agent"))
node_key_vault["Azure Key Vault"]
node_entra["Microsoft Entra"]
node_sql_sources[("Configured SQL Sources")]
node_diagram_user(("AVS Architect"))

node_monitor_main -->|"gets cloud details"| node_avs_cloud
node_monitor_main -->|"collects statistics"| node_nsx_manager
node_monitor_main -->|"writes CSV metrics"| node_metrics_files
node_monitor_main -->|"controls service"| node_telegraf
node_operator -.->|"configures worker"| node_monitor_main
node_automation -.->|"runs"| node_autoscale_in
node_automation -.->|"runs"| node_autoscale_out
node_autoscale_in -.->|"scales in"| node_avs_cloud
node_autoscale_out -.->|"scales out"| node_avs_cloud
node_eventhub -->|"triggers with messages"| node_forwarder
node_forwarder -->|"forwards records"| node_syslog_server
node_foundry_agent -->|"calls MCP tools"| node_mcp_server
node_mcp_server -->|"validates tokens"| node_entra
node_mcp_server -->|"loads sources"| node_source_catalog
node_mcp_server -->|"gets credentials"| node_key_vault
node_mcp_server -->|"queries read-only"| node_sql_sources
node_diagram_user -->|"uses templates"| node_design_templates

click node_monitor_main "https://github.com/azure/azure-vmware-solution/blob/main/advanced-monitoring/Worker/main.py"
click node_telegraf "https://github.com/azure/azure-vmware-solution/blob/main/advanced-monitoring/Worker/telegraf.conf"
click node_autoscale_in "https://github.com/azure/azure-vmware-solution/blob/main/avs-autoscale/code/autoscale-in-runbook.ps1"
click node_autoscale_out "https://github.com/azure/azure-vmware-solution/blob/main/avs-autoscale/code/autoscale-out-runbook.ps1"
click node_forwarder "https://github.com/azure/azure-vmware-solution/blob/main/syslog-forwarder/code/index.js"
click node_mcp_server "https://github.com/azure/azure-vmware-solution/blob/main/avs-foundry-integration/app/mcp_server.py"
click node_source_catalog "https://github.com/azure/azure-vmware-solution/blob/main/avs-foundry-integration/app/sources.yaml"
click node_design_templates "https://github.com/azure/azure-vmware-solution/tree/main/azure-vmware-master-diagrams"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_monitor_main,node_metrics_files,node_telegraf toneBlue
class node_autoscale_in,node_autoscale_out,node_sql_sources toneAmber
class node_forwarder,node_syslog_server toneMint
class node_mcp_server,node_source_catalog toneRose
class node_design_templates,node_operator,node_avs_cloud,node_nsx_manager,node_automation,node_eventhub,node_foundry_agent,node_key_vault,node_entra,node_diagram_user toneIndigo
```

## Components

### Advanced Monitoring

- [Monitoring Worker](https://github.com/azure/azure-vmware-solution/blob/main/advanced-monitoring/Worker/main.py): `advanced-monitoring/Worker/main.py`
- **CSV Metrics**
- [Telegraf Agent](https://github.com/azure/azure-vmware-solution/blob/main/advanced-monitoring/Worker/telegraf.conf): `advanced-monitoring/Worker/telegraf.conf`

### Auto-Scale

- [Scale-In Runbook](https://github.com/azure/azure-vmware-solution/blob/main/avs-autoscale/code/autoscale-in-runbook.ps1): `avs-autoscale/code/autoscale-in-runbook.ps1`
- [Scale-Out Runbook](https://github.com/azure/azure-vmware-solution/blob/main/avs-autoscale/code/autoscale-out-runbook.ps1): `avs-autoscale/code/autoscale-out-runbook.ps1`

### Syslog Forwarding

- [Forwarder Function](https://github.com/azure/azure-vmware-solution/blob/main/syslog-forwarder/code/index.js): `syslog-forwarder/code/index.js`

### AI Data Agent

- [MCP Data Server](https://github.com/azure/azure-vmware-solution/blob/main/avs-foundry-integration/app/mcp_server.py): `avs-foundry-integration/app/mcp_server.py`
- [Source Catalog](https://github.com/azure/azure-vmware-solution/blob/main/avs-foundry-integration/app/sources.yaml): `avs-foundry-integration/app/sources.yaml`

### Master Diagrams

- [Architecture Templates](https://github.com/azure/azure-vmware-solution/tree/main/azure-vmware-master-diagrams): `azure-vmware-master-diagrams`

### Other components

- **AVS Operator**
- **AVS Private Cloud**
- **NSX Manager**
- **Azure Automation**
- **Azure Event Hub**
- **Syslog Server**
- **Foundry Agent**
- **Azure Key Vault**
- **Microsoft Entra**
- **Configured SQL Sources**
- **AVS Architect**

## Connections

- Monitoring Worker → AVS Private Cloud: gets cloud details
- Monitoring Worker → NSX Manager: collects statistics
- Monitoring Worker → CSV Metrics: writes CSV metrics
- Monitoring Worker → Telegraf Agent: controls service
- AVS Operator → Monitoring Worker: configures worker
- Azure Automation → Scale-In Runbook: runs
- Azure Automation → Scale-Out Runbook: runs
- Scale-In Runbook → AVS Private Cloud: scales in
- Scale-Out Runbook → AVS Private Cloud: scales out
- Azure Event Hub → Forwarder Function: triggers with messages
- Forwarder Function → Syslog Server: forwards records
- Foundry Agent → MCP Data Server: calls MCP tools
- MCP Data Server → Microsoft Entra: validates tokens
- MCP Data Server → Source Catalog: loads sources
- MCP Data Server → Azure Key Vault: gets credentials
- MCP Data Server → Configured SQL Sources: queries read-only
- AVS Architect → Architecture Templates: uses templates
