Cost control plane
Estate burn, per-resource accountability, budgets, forecast, and agent tools — hosted on Cloudflare by default, never always-on paid Databricks.
Fabric Radar's cost plane answers the questions a postmortem Teams thread should not have to:
- What is burning money right now, by resource?
- Who owns it (product first, person second)?
- Are we on plan vs declared budgets?
- What should an agent do when reality deviates?
Hosting (family standard)
| Surface | Placement |
|---|---|
| Cost docs + public agent API | Cloudflare public-edge |
| Console cost UI (seeded demo) | Local pnpm console:dev or customer install |
Live system.billing ingest | Not the paid TechFabric workspace by default — Free Edition (fabric-free) or the customer's workspace only |
Follow the cost-control runbook in the TechFabric vault:
FABRIC_DATABRICKS_COST_CONTROL_AND_FREE_EDITION_RUNBOOK.md and
FABRIC_FAMILY_HOSTING_STANDARD.md.
Do not deploy Radar Apps, warehouses, or cert resources to fabric-harness (paid)
while GTM Brain is the only production workload.
Capabilities
- Estate KPIs — MTD, today, run-rate $/day, forecast EOM, unattributed share
- Charts — burn over time, spend by product
- Resources table — kind, owner, product, state, MTD, recommended action (
stop_warehouse,stop_app, …) - Accountability — by product and by owner; unattributed queue
- Budgets — daily/monthly plans with warn/critical thresholds
- Agent tools — read-only JSON tools; mutations stay on governed Platform interventions
Agent API
Local console:
curl -s http://localhost:3105/api/cost/tools | jq '.tools[].name'
curl -s -X POST http://localhost:3105/api/cost/tools \
-H 'content-type: application/json' \
-d '{"tool":"radar_cost_summary"}' | jq '.data.summary.mtdUsd'Public edge on radar.fabric.pro (same Cloudflare worker as docs):
curl -s https://radar.fabric.pro/v1/health
curl -s https://radar.fabric.pro/v1/tools
curl -s -X POST https://radar.fabric.pro/v1/tools \
-H 'content-type: application/json' \
-d '{"tool":"radar_cost_by_resource","runningOnly":true}'Tool catalog
| Tool | Purpose |
|---|---|
radar_cost_summary | Estate summary + budget health |
radar_cost_by_resource | Per-resource MTD / last day / recommended action |
radar_cost_by_dimension | Group by owner, product, kind, env, lifecycle |
radar_cost_unattributed | Low-confidence ownership queue |
radar_budget_list / radar_budget_status | Plan vs actual |
radar_cost_forecast | EOM + series for charts |
radar_resource_inventory | Control-plane inventory with remediation hints |
radar_cost_plan_status | On-plan check vs monthly budget |
Agents propose interventions via radar.intervention_request (non-prod). They do
not approve or execute. Prod remains human-gated.
Control loop (P0)
- Governed budgets —
radar.budget_declare/update/retire(state: active ↔ paused → retired). - Cost control sweep — worker activity
runCostControlSweepevaluates budgets against the cost estate and raisesradar.anomaly_raisewithsloName: budget:<id>on the Workspace Cost Estate monitor (dev env). - Remediation interventions —
stop_warehouse,stop_app,pause_job(plus existing cancel/pause/quarantine). Effector stubs work offline; live Databricks stop uses Free Edition profile only. - Cost-triage agent plan —
planCostTriageAgent/planCostTriageRemediationspropose non-prod stops when budgets are critical; never auto-stopsfabric-gtm-brain-prod.
Dogfood residual checklist
From the repo root (Cloudflare-first; never starts paid compute):
pnpm cost:dogfoodWhat it checks:
- Guards — paid profile cannot enable live ingest without emergency override; paid deploy override off
- Agent API —
radar.fabric.pro/v1summary + ingest status + running resources - Optional paid inventory — if
databricksCLI is authed asfabric-harness, lists Apps/warehouses and fails on non-GTM active residual - Prints the operator checklist (+24h bill lag, Free Edition drill rules)
pnpm cost:dogfood:offline # guards only
RADAR_DOGFOOD_SKIP_DBX=1 pnpm cost:dogfood # API only
RADAR_COST_API_BASE=http://localhost:3105 pnpm cost:dogfoodConsole routes
| Path | View |
|---|---|
/[org]/cost | Estate KPIs + charts + budget cards |
/[org]/cost/resources | Full resource table |
/[org]/cost/accountability | Product / owner / unattributed |
/[org]/budgets | Budget detail |
pnpm console:dev
# open http://localhost:3105/acme-data/costWhy not only Databricks usage dashboards?
Native charts show totals. Radar adds ownership, lifecycle, budgets, agent contracts, and governed response — the gap that turned a July warehouse into a $3k surprise.
Architecture
The concepts behind TechFabric Radar — monitors and SLOs, the anomaly lifecycle, and governed interventions — and the loop that connects them.
Customer cost-plane install
Install Radar cost control without always-on paid Databricks — Cloudflare edge, Free Edition certification, customer workspace ingest.