Auto-discover Tenant Clusters, meter node capacity, GPU SKUs, and egress, then stream usage events to the billing adapter of your choice.
Adapter-agnostic
vBilling is the pipe, not the billing engine. Meter Tenant Clusters once and route events to whichever billing adapter you run.
How it works
vBilling collects usage and ships it to your billing adapter. Your adapter handles pricing, plans, and invoicing. You stay in control of what anything costs.
01 · Choose
Pick the billing backend you already run: Lago, Stripe Meters, Metronome, or your own. vBilling ships as an adapter, not as a replacement.
02 · Configure
Define metrics, plans, and per-unit rates in your billing platform. vBilling never decides what anything costs. Your platform team owns the price sheet.
03 · Connect
Deploy vBilling and point it at your adapter. Tenant Clusters are auto-discovered; usage events start streaming in minutes.
Features
vBilling meters dedicated-node consumption across Kubernetes and streams usage events to the billing adapter you choose.
Meter full dedicated node capacity (CPU, memory, and GPU SKUs) when tenants own bare-metal nodes.
Detects GPU models (H100, A100, T4) from node labels. Price each SKU differently in your billing platform.
Query NVIDIA DCGM via Prometheus for real GPU utilization metrics, not just allocation counts.
Meter outbound network traffic per tenant through Prometheus or CNI metrics for bandwidth-based billing.
Ship usage events to Lago today; Metronome, Stripe Meters, OpenMeter, and custom adapters are on the way.
Track LoadBalancer service hours per Tenant Cluster for infrastructure-level billing.
Detect spot instance nodes and apply configurable discounts for accurate cost attribution.
Watches for Tenant Cluster StatefulSets and Platform API resources. Customers are created in your billing adapter automatically.
Architecture
vBilling runs as a controller in your Control Plane Cluster. It watches Tenant Clusters, collects capacity and usage metrics, and streams events to the billing adapter you choose.
Quick start
Pick your billing adapter below. Each tab walks through deploy, install, and pricing for that platform.
Spin up the open-source billing engine with Docker Compose. UI at :8080, API at :3000.
# Clone vBilling and start Lago
git clone https://github.com/vClusterLabs-Experiments/vbilling.git
cd vbilling/deploy/lago
openssl genrsa 2048 > lago_rsa.key
echo "LAGO_RSA_PRIVATE_KEY=$(base64 -i lago_rsa.key | tr -d '\n')" > .env
docker compose --env-file .env up -d
Deploy the controller via Helm. Point it at your Lago instance with your API key.
helm upgrade --install vbilling deploy/helm/vbilling \
--namespace vbilling-system --create-namespace \
--set adapter=lago \
--set lago.apiURL=http://lago-api:3000 \
--set lago.apiKey=YOUR_LAGO_API_KEY
vBilling creates a skeleton plan with $0 pricing. Set your rates in the Lago UI or API.
# In Lago UI → Plans → vCluster Standard
# Set prices per metric:
CPU Core-Hours $0.065
Memory GB-Hours $0.009
GPU Hours (H100) $4.50
Storage GB-Hours $0.0002
Network Egress GB $0.09
Node Hours $25.00
LoadBalancer Hours $0.025
Native Metronome adapter is on the near-term roadmap. Same three setup steps: provision Metronome, configure rate cards, point vBilling at it.
Want early access or to help shape the interface? Open an issue on GitHub.
vBilling is structured so any HTTP billing API can plug in. Implement the Destination interface in a small Go package, rebuild the image, and point vBilling at your endpoint.
Stripe Meters, OpenMeter, and homegrown backends all fit this shape. Full interface reference lands with the next release.
Metrics
Collected automatically from the Kubernetes API, metrics-server, and Prometheus. Custom sources and transforms extend the defaults without forking vBilling.
| Metric | Source | Granularity |
|---|---|---|
| Node hours | Node watch | Per dedicated node |
| CPU core-hours | Node capacity | Full node capacity |
| Memory GB-hours | Node capacity | Full node capacity |
| GPU hours (by SKU) H100 / A100 / T4 | Node labels | Per GPU SKU |
| GPU utilization | DCGM via Prometheus | Per GPU % |
| Storage GB-hours | PVC sizes | Per PVC |
| Network egress GB | CNI / Prometheus | Per tenant |
| LoadBalancer hours | Service count | Per LB service |
| Control plane hours | Tenant Cluster watch | 1 per cluster |
For AI Clouds
If you run an AI cloud on Kubernetes, vBilling gives you the billing pipe, without forcing a billing backend on you.
AI Clouds give each customer a Tenant Cluster with dedicated GPU nodes. vBilling detects the hardware, meters node capacity by GPU SKU, and streams events into whichever billing adapter you run.