NEW Introducing vMetal: turn your GPU racks into a cloud platform
Alpha Open source billing controller

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.

Invoice preview
team-gpu-prod
April 2026 · 8x H100 dedicated
$34,582.50
GPU hours · H100 7,680
CPU core-hours 92.1k
Memory GB-hrs 368k
Storage GB-hrs 14.4k
Network egress 842 GB

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 Custom Adapter

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.

01 · Choose

Choose Billing Platform

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

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.

03 · Connect

Connect vBilling Adapter

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

Everything you need to bill tenants

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

admin_panel_settings

Node capacity tracking

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

memory_alt

GPU type-aware

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

data_usage

DCGM integration

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

chart_data

Network egress

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

swap_horiz

Pluggable adapters

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

tune

LoadBalancer tracking

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

desktop_cloud

Spot / on-demand

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

autorenew

Auto-discovery

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

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
 
─────────────────────────────────────────────

Up and running in 3 steps

Pick your billing adapter below. 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

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 hoursNode watchPer dedicated node
CPU core-hoursNode capacityFull node capacity
Memory GB-hoursNode capacityFull node capacity
GPU hours (by SKU) H100 / A100 / T4Node labelsPer GPU SKU
GPU utilizationDCGM via PrometheusPer GPU %
Storage GB-hoursPVC sizesPer PVC
Network egress GBCNI / PrometheusPer tenant
LoadBalancer hoursService countPer LB service
Control plane hoursTenant Cluster watch1 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
Get started View on GitHub
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 $