OPEN SOURCE BILLING CONTROLLER
ALPHA

Usage-based billing for AI Clouds running vCluster or vMetal

Auto-discover Tenant Clusters, meter node capacity, GPU SKUs, and egress, then stream usage events to the billing adapter of your choice.

Adapter-agnostic

Ships to your billing backend

vBilling is the pipe, not the billing engine. Meter Tenant Clusters once and route events to whichever billing adapter you run.

vCluster
vMetal
vBilling
Lago
Metronome
COMING SOON
Stripe
COMING SOON
Custom Adapter
COMING SOON
How it works

Three steps to tenant billing

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.

1
Choose Billing Platform

Pick the billing backend you already run — Lago, Stripe Meters, Metronome, or your own. vBilling ships as an adapter, not a replacement.

2
Configure Pricing & Packaging

Define metrics, plans, and per-unit rates in your billing platform. vBilling never decides what anything costs — your platform team owns the price sheet.

3
Connect vBilling Adapter

Deploy vBilling and point it at your adapter. Tenant Clusters are auto-discovered; usage events start streaming in minutes.

Features

Everything you need to bill tenants

vBilling meters dedicated-node consumption across Kubernetes and streams usage events to the billing adapter you choose.

Node capacity tracking

Meter full dedicated node capacity — CPU, memory, and GPU SKUs — when tenants own bare-metal nodes.

GPU type-aware

Detects GPU models (H100, A100, T4) from node labels. Price each SKU differently in your billing platform.

DCGM integration

Query NVIDIA DCGM via Prometheus for real GPU utilization metrics, not just allocation counts.

Network egress

Meter outbound network traffic per tenant through Prometheus or CNI metrics for bandwidth-based billing.

Pluggable adapters

Ship usage events to Lago today; Metronome, Stripe Meters, OpenMeter, and custom adapters are on the way.

LoadBalancer tracking

Track LoadBalancer service hours per Tenant Cluster for infrastructure-level billing.

Spot / on-demand

Detect spot instance nodes and apply configurable discounts for accurate cost attribution.

Auto-discovery

Watches for Tenant Cluster StatefulSets and Platform API resources. Customers are created in your billing adapter automatically.

Architecture

How the pieces fit together

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.

Control Plane Cluster
Tenant Cluster team-alpha · private · 4x A100
Tenant Cluster team-beta · private · 2x L40S
Tenant Cluster team-gpu · private · 8x H100
 
vBilling Controller
Go binary · Deployment in Control Plane Cluster
Choose → Configure → Connect
 
↓ Usage events (HTTP) ↓
 
Billing Adapter
Lago · Stripe · Metronome · Custom
Plans & pricing · Subscriptions · Invoices
Quick start

Up and running in 3 steps

Pick your billing adapter. Each tab walks through deploy, install, and pricing for that platform.
What you’ll need.

vBilling works with open-source vCluster out of the box. Platform API discovery and other advanced capabilities require a vCluster Free account (free for small teams) or vCluster Enterprise.

1
Deploy Lago

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
2
Install vBilling

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
3
Configure pricing

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
Metronome adapter coming soon

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.

Build your own adapter

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

Default events, zero manual tagging

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

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

  • Detects dedicated H100, A100, L40S nodes per tenant
  • Meters full node capacity — CPU, memory, and GPUs
  • GPU SKU-specific events, priced in your billing platform
  • DCGM integration for real utilization tracking
  • Adapter-agnostic — keep your existing billing backend
AI Cloud billing flow
Customer signs up

Platform provisions Tenant Cluster + private nodes (8x H100)

vBilling auto-discovers detects dedicated nodes

Streams events every 60s: 8 GPU-hours (H100) 96 CPU-hours 1 TB memory-hours

Billing adapter aggregates generates invoice

Webhook → payments → Paid $
Ready to take vBilling for a spin?

Try it out for free today.