// 主机监控 — 基础监控 Tab (CPU/IO等待/内存/可用内存/Swap/负载)
import { Cpu, Clock, Server, HardDrive, Activity } from 'lucide-react';
import type { AggType, BucketPoint, HostRecord, RefLine } from '../types';
import { MetricChartCard } from '../MetricChartCard';
import i18n from '@/i18n';
export interface BasicTabProps {
metrics: {
cpu: BucketPoint[]; iowait: BucketPoint[]; mem: BucketPoint[];
memAvail: BucketPoint[]; swap: BucketPoint[]; load1: BucketPoint[];
};
latest: HostRecord;
currentVal: (key: string, fallback?: string) => string;
aggType: AggType;
pctRefLines: RefLine[];
}
export function BasicTab({ metrics, latest, currentVal, aggType, pctRefLines }: BasicTabProps) {
return (
} iconTone="blue"
data={metrics.cpu} color="#3b82f6" unit="%" domain={[0, 100]} aggType={aggType} referenceLines={pctRefLines} />
} iconTone="orange"
data={metrics.iowait} color="#f97316" unit="%" domain={[0, 100]} aggType={aggType} referenceLines={pctRefLines} />
} iconTone="green"
data={metrics.mem} color="#10b981" unit="%" domain={[0, 100]} aggType={aggType} referenceLines={pctRefLines} />
} iconTone="green"
data={metrics.memAvail} color="#34d399" unit="GB" domain={[0, 'auto']} aggType={aggType} />
} iconTone="red"
data={metrics.swap} color="#ef4444" unit="%" domain={[0, 100]} aggType={aggType} />
} iconTone="purple"
data={metrics.load1} color="#8b5cf6" unit="" domain={[0, 'auto']} aggType={aggType} />
);
}