"use client"; import React from "react"; import { BarChart3, Cpu, Clock, DollarSign, Users, Zap } from "lucide-react"; import { Card, CardBody, CardHeader, CardTitle } from "@/components/ui/Card"; import { Badge } from "@/components/ui/Badge"; import { MetricCard } from "@/components/ui/MetricCard"; const MONTHS = ["Jul", "Aug", "Sep", "Oct", "Nov"]; const SERIES = [ { label: "AI tokens (M)", data: [0.1, 0.8, 1.4, 2.9, 4.2], tone: "bg-violet-400" }, { label: "Jobs executed", data: [120, 280, 412, 688, 904], tone: "bg-brand-400" }, ]; function Bar({ label, values, tone }: { label: string; values: number[]; tone: string }) { const max = Math.max(...values, 1); return (
{label}
{values.map((v, i) => (
{MONTHS[i]}
))}
); } const ROWS = [ { name: "Tenant default", projects: 6, users: 14, jobs_7d: 412, tokens_7d: 2.1, cost_7d: 128.4 }, { name: "Tenant acme-corp", projects: 2, users: 6, jobs_7d: 88, tokens_7d: 0.6, cost_7d: 24.1 }, { name: "Tenant contoso-labs", projects: 3, users: 9, jobs_7d: 180, tokens_7d: 1.1, cost_7d: 52.7 }, ]; export default function UsagePage() { return (

Usage

Tenant-level metering: AI tokens, background jobs, projects, seats and estimated cost.

Monthly view
} /> } /> } delta={12.4} /> } delta={18.7} /> } delta={9.2} />
Trend · AI tokensmillions Trend · Jobs executedcount
Per-tenant breakdown {ROWS.length} tenants {ROWS.map((r) => ( ))}
Tenant Projects Users Jobs (7d) Tokens (7d, M) Cost (7d)
{r.name} {r.projects} {r.users} {r.jobs_7d} {r.tokens_7d.toFixed(2)} ${r.cost_7d.toFixed(2)}
GPU-s metered Cost tables configurable per-tenant
); }