'use client'; import {Activity, Cpu, Gauge, Server, Users} from 'lucide-react'; import {Card, CardContent, CardHeader} from '@/components/ui/card'; import {Progress} from '@/components/ui/progress'; import type {DashboardCapacity, DashboardSummary, DashboardTraffic,} from '@/lib/services/openflare'; import {formatCompactNumber, formatPercent} from './dashboard-utils'; export function DashboardStatCards({ summary, traffic, capacity, }: { summary: DashboardSummary; traffic: DashboardTraffic; capacity: DashboardCapacity; }) { const onlineRate = summary.total_nodes > 0 ? (summary.online_nodes / summary.total_nodes) * 100 : 0; return (
24h 请求量
{formatCompactNumber(traffic.request_count)}

独立访客 {formatCompactNumber(traffic.unique_visitors)} · 错误{' '} {formatCompactNumber(traffic.error_count)} · 估算 QPS{' '} {traffic.estimated_qps.toFixed(2)}

集群容量
{formatPercent(capacity.average_cpu_usage_percent)} CPU

平均内存 {formatPercent(capacity.average_memory_usage_percent)} · 高负载节点 CPU{' '} {capacity.high_cpu_nodes} / 内存 {capacity.high_memory_nodes} / 存储{' '} {capacity.high_storage_nodes}

节点概览
{summary.online_nodes} {' '} / {summary.total_nodes} 在线

待接入 {summary.pending_nodes} 异常 {summary.unhealthy_nodes} · 离线 {summary.offline_nodes}

); }