interface MetricsOverviewProps { summary: { totalRequests: number; totalTokens: number; totalCost: number; avgResponseTime: number; uniqueModels: number; uniqueClients: number; }; } export default function MetricsOverview({ summary }: MetricsOverviewProps) { const metrics = [ { label: 'Total Requests', value: summary.totalRequests.toLocaleString(), icon: '📊', }, { label: 'Total Tokens', value: summary.totalTokens.toLocaleString(), icon: '🔢', }, { label: 'Total Cost', value: `$${summary.totalCost.toFixed(4)}`, icon: '💰', }, { label: 'Avg Response Time', value: `${Math.round(summary.avgResponseTime)}ms`, icon: '⚡', }, { label: 'Unique Models', value: summary.uniqueModels.toString(), icon: '🤖', }, { label: 'Unique Clients', value: summary.uniqueClients.toString(), icon: '👥', }, ]; return (

Overview

{metrics.map((metric) => (
{metric.icon}
{metric.label}
{metric.value}
))}
); } const styles = { container: { marginBottom: '2rem', }, title: { fontSize: '1.5rem', marginBottom: '1.5rem', color: '#2c3e50', }, grid: { display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(250px, 1fr))', gap: '1rem', }, card: { backgroundColor: '#fff', padding: '1.5rem', borderRadius: '8px', boxShadow: '0 2px 4px rgba(0,0,0,0.1)', display: 'flex', gap: '1rem', alignItems: 'center', }, icon: { fontSize: '2rem', }, content: { flex: 1, }, label: { fontSize: '0.9rem', color: '#7f8c8d', marginBottom: '0.25rem', }, value: { fontSize: '1.5rem', fontWeight: 600, color: '#2c3e50', }, };