fabricmulti-tenantopen sourceself-hosted

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

1

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.

2

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.

3

Automatic collection

FastAPI app collects capacity metrics every 15 minutes using read-only APIs. Stores in PostgreSQL. Handles auth refresh, retries, and error logging.

4

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.

Tech stack:PythonFastAPIPostgreSQLAzure BicepDocker
View architecture docs

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.
Learn more about security

Starter vs Enterprise

Starter
Enterprise
Compute
Scale-to-zero Container App
Always-on with replicas
Database
Flexible PostgreSQL (burstable)
HA with read replicas
Availability
Single-region
Multi-region, geo-redundant
Networking
VNET integration
Private endpoints everywhere
Azure costs*
~€15-30/month
~€200-400/month
Best for
5-20 customers, low frequency checks
100+ customers, high frequency, SLAs

* 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.