Multi-tenant monitoring for Microsoft Fabric capacities
Managing Fabric for multiple customers means opening each capacity's metrics app separately to check utilization and health. Built this to replace that with a single dashboard.
Open source, MIT licensed. Deploy to your own Azure subscription. No vendor lock-in, no monthly subscriptions.
The problem
If you're managing fabric for multiple customers, you know these pain points.
Dashboard hopping
Checking capacity health means opening each customer's Fabric capacity metrics app one by one. Every morning. Slow to load, no way to compare, and it takes forever to see who's overloaded.
No centralized view
No way to see all customer capacities in one place. You can't compare CU utilization across tenants, spot patterns in overload events, or get a single pane of glass view.
14-day data retention
Fabric's capacity metrics only keep 14 days of history. Can't track long-term trends, can't do capacity planning, can't show customers how their usage changed over months.
Zero alerting
No built-in notifications when a customer's capacity is throttled, paused, or hitting limits. You find out when they call you saying their Power BI reports are slow.
How it works
Deploy to your Azure subscription
One-click deploy via Azure portal or use the Bicep templates. Takes 15 minutes. Everything runs in your own subscription - no third-party services.
Onboard customers
Customer creates a service principal with simple reader permissions (least privilege, not full admin access). They control the credentials and can revoke anytime. You store it securely in Key Vault.
Automatic collection
FastAPI app collects capacity metrics every 15 minutes using read-only APIs. Stores in PostgreSQL. Handles auth refresh, retries, and error logging.
Visualize and alert
Connect Power BI to the database for dashboards. Set up alerts in Azure Monitor. Query the API for custom integrations. All the data is yours.
Features
Multi-tenant collection
Collect from unlimited customer tenants. Each tenant has isolated credentials in Key Vault. Uses least privilege service principals with simple reader permissions, not full Fabric Admin API access.
Two deployment tiers
Starter tier uses scale-to-zero Container Apps and flexible PostgreSQL (Azure costs ~€15/month). Enterprise tier adds HA, geo-redundancy, and private endpoints (Azure costs ~€200-400/month).
Private by default
Database inside a VNET with no public access. All secrets in Key Vault. Container App uses managed identity. No passwords in config files.
Flexible onboarding
Simple portal links for smaller clients to implement themselves. PowerShell scripts for bulk onboarding. Full Bicep IaC templates for enterprise customers who need auditable infrastructure. Pick what fits your customer.
CU metrics retention
Store capacity utilization beyond Fabric's 14-day limit. Track long-term trends, do capacity planning, show customers historical usage patterns.
Power BI ready
Pre-built Power BI template connects directly to PostgreSQL. Shows capacity health, overload events, cost estimates. Customize it however you want.
Architecture
Built on Azure Container Apps (runs the monitoring app), PostgreSQL Flexible Server (stores metrics), Key Vault (customer credentials), and VNET (network isolation). Written in Python with FastAPI. All infrastructure defined as Bicep templates so you can deploy with one command.
Security
Handling customer credentials is serious. Here's how the system keeps things locked down.
- Managed identity for all Azure resources. No service principal passwords.
- VNET isolation for database. No public endpoints in production.
- Key Vault for all customer credentials. Access via managed identity only.
- Customer controls their service principal with least privilege reader permissions. Can revoke access instantly.
- All API calls logged in customer's Azure Activity Log. Full audit trail. Easy to audit for enterprise compliance.
Starter vs Enterprise
* Azure infrastructure costs in your own subscription for running the monitoring app. Not a subscription fee. Costs can be fine-tuned based on your deployment configuration.
Related blog posts
frequently asked questions
Start monitoring your fabric capacities today
Deploy to your Azure subscription in 15 minutes. Open source, MIT licensed, fully auditable. You control the infrastructure and costs.