AI ยท VCOMMUNITY

vCommunity Observability | Dashboards and Local AI for VMware

vCommunity Observability | Dashboards and Local AI for VMware

vCommunity Observability: Custom vSphere Dashboards, an API for MP Builder, and a Local AI Chat ๐Ÿš€

I kept getting asked for the same kind of thing. A dashboard that shows one specific view of vCenter data. An inventory export on a schedule. A way to get that data back into VCF Operations with Management Pack Builder. And more and more, "can I just ask a question about my environment?"

Some of the customers I work with run dark sites, so the answer can't depend on the internet or a cloud service. I wanted one open-source project that covers all of that and runs in a container on a laptop or a server. So I started building vCommunity Observability.


What It Is:

Two containers that share the same look:

ContainerPortWhat it does
vCommunity Observability8080Collects vCenter data on a schedule, stores it in SQLite, and shows it in dashboards. Every dataset is also a REST endpoint for VCF Operations Management Pack Builder.
vCommunity Ask8081A chat prompt answered by your local Ollama, only from the knowledge sources you choose.

The design goals were simple:

  • Cross-platform. One container image for amd64 and arm64 (Apple Silicon works fine), or run it with Python 3.11+ on Windows, macOS or Linux.
  • No Grafana. The dashboards are rendered by the app itself, styled after VCF Operations, with a light and dark theme.
  • Works offline. No CDN links and no runtime downloads. A PowerShell script saves both images as tarballs for dark sites.
  • Open source. FastAPI, SQLite, pyVmomi, PowerShell 7. PowerCLI is the one exception.
  • Easy to patch. Locked dependencies, and each module is a folder you can replace on its own.

How It Works:

The core stays small. Every feature is an add-on module, and a module can be written in Python or PowerShell. I didn't want to force one language. A collector is just a script: the core passes it the connection details, the script prints one JSON object, and the core stores it.

vCenter / VCF Operations / any REST source
        โ”‚  (pyVmomi, PowerCLI, REST)
        โ–ผ
Scheduler โ†’ module collectors (.py or .ps1) โ†’ JSON โ†’ SQLite
FastAPI   โ†’ dashboards, REST for MP Builder, exports, Swagger docs

Modules can be switched on or off and reordered from the Modules page. One or many vCenters can be configured on the Settings page.

Modules (Screen Shot):

Image

Modules Included:

ModuleLanguageWhat it shows
DBH InsightsPythonThe DBH Insights inventory: 27 sheets plus Cluster Capacity, with XLSX and CSV export
DBH TopologyPythonHosts by cluster, datastores, and every mount between them
DBH ImpactPythonWhat stops if one host or datastore fails, and whether HA could restart it
vSphere InventoryPythonClusters, hosts and VMs in a vCenter-style tree with object pages
Host HealthPowerShell (PowerCLI)Host status, alarms, CPU and memory, uptime, version
Datastore CapacityPythonCapacity and free space with history for a runway estimate
GitHub StatusPythonAn example module that reads any Statuspage site

Scheduled exports can write any module's data to XLSX or CSV daily, weekly or monthly.

DBH Insights (Screen Shot):

Image

Host Health (Screen Shot):

Image

vSphere Inventory (Screen Shot):

Image

DBH Topology (Screen Shot):

Image

DBH Impact (Screen Shot):

Image

An API for MP Builder:

Every module's data is also a REST endpoint, for example /api/host-health/hosts/unhealthy or /api/dbh-impact/critical. The API requires a token. That makes it easy to point VCF Operations Management Pack Builder at the container and pull the data back into VCF Operations. The full API is documented in an offline Swagger page.

API Docs (Screen Shot):

Image

vCommunity Ask ๐Ÿค“:

The second container is a chat prompt in the same VCF Operations look. You ask a question and your local Ollama answers it only from the knowledge sources you pick. The model isn't trained or fine-tuned. Ask uses retrieval: it searches your sources by meaning and by keyword, sends the best matches to the model, and the answer comes back with numbered citations.

Knowledge sources are plug-ins too:

  • Markdown repository. A GitHub repo or a local folder of markdown files.
  • Web site. The posts of a blog or site, optionally only a date range.
  • PDF documents. Scanned ones too, with OCR.
  • Spreadsheets. RVTools or the DBH Insights export. Ask can answer counting and totals questions with a read-only SQL query that it shows you.

Ask Chat (Screen Shot):

Image

Knowledge Sources (Screen Shot):

Image

A few things I've added along the way:

  • Charts, reports and dashboards. Ask for a pie or bar chart and it draws one from the query result. Say "report" or "dashboard" and it saves an HTML report that previews right in the chat.
  • Your own MCP tools. Ask can call tools from my PowerShell MCP server on the Mac. Write tools ask before they run.
  • Optional web search. Ollama web search, Brave search, or both, with a fixed order. Your own sources are always searched first. Leave it off at a dark site.
  • No sources mode. Just the model, for rephrasing text or checking grammar.
  • Pick the model from the header. Switch the Ollama chat model without leaving the chat.

Ask Chart (Screen Shot):

Image

HTML Report in the Chat (Screen Shot):

Image

No Sources Mode (Screen Shot):

Image

Model Menu (Screen Shot):

Image

Performance ๐Ÿ“Š:

One Performance dashboard covers both containers. It shows the host, Ollama and the models loaded, answer speed in tokens per second, and both containers' CPU, memory, network and disk. When web search is on, it also counts this month's searches and estimates the cost.

Performance (Screen Shot):

Image

Web Search Usage (Screen Shot):

Image

Thank You:

Ask is only as good as the sources behind it, and the vCommunity writes great ones. I use the blogs of Brock Peterson and William Lam as Ask sources, and the isvara-2 knowledge base was the first source I tested with. Thank you for sharing your work.


What's Next:

  • New features based on input from the vCommunity

Wrap Up:

This started as a few dashboards and turned into a small framework. It's a simple design, but it does what I needed: vCenter data in one place, an API for MP Builder, and a local AI that only answers from sources I trust. It all runs offline. Think of it as a starting point, then add a module of your own in Python or PowerShell.

I always appreciate feedback. Let me know what you like, and what you would add next. See you in the vCommunity!

If you found this Blog article useful and it helped you, Buy me a coffee to start my day.