Cost Dashboard / Chargeback
FinOps tab that turns the cluster's resource usage into € / $ - per VM, per tenant, per cluster - so you can hand a number to finance, do internal chargeback, or spot the runaway test-VM somebody forgot to shut down.
Inputs (Settings → Cost & Billing)
- Currency (EUR, USD, GBP, CHF, …) and locale.
- Price book: CPU per vCPU/h, RAM per GiB/h, Disk per GiB/month (per storage class), Backup per GiB/month (PBS), Public IP per month, fixed license fees.
- Tenant tag prefix (e.g.
tenant:) - VMs taggedtenant:acmeroll up to that tenant. - Idle threshold (CPU% over N days) for the rightsizing recommendations.
What you get
Per-VM Cost
Sortable table - VM, tenant, cluster, CPU/RAM/disk/backup contributions, total €/month, trend arrow vs last month.
Top-N Cost Centers
Tenant rollup with stacked bars (CPU/RAM/Disk/Backup/IP), monthly trend chart.
Recommendations
Idle VMs (low CPU + low IO over N days) with potential savings, oversized VMs (vCPU/RAM far above 95-percentile), unattached disks, orphaned snapshots.
Exports
PDF (jsPDF + autoTable, WinAnsi-sanitized) and CSV for finance import. Filter scope is preserved in the export.
Scope
Every user sees costs only for what they may see: a tenant sees its own clusters, and from 1.3 a user limited to pools or single guests sees only the cost rows of those guests in the tenant chargeback.
API
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/clusters/<id>/costs/summary?days=30 |
Monthly total + CPU/Mem/Storage breakdown, by-node, top-10 |
GET |
/api/clusters/<id>/costs/per-vm?days=30 |
Full per-VM cost table (sorted by total) |
GET |
/api/tenants/<id>/chargeback?days=30&format=csv |
Per-tenant chargeback across the tenant's clusters (needs admin.tenants) |
GET PUT DELETE |
/api/cost/rates[/<id>] |
List / read / update / delete cost rates (PUT/DELETE admin-only; use __default__ for global) |
Window is days 1–30 (metrics retention).