import { Area, AreaChart, CartesianGrid, XAxis, YAxis } from "recharts"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, } from "@/components/ui/chart"; import { formatTimestamp } from "@/lib/utils"; interface ContainerMetric { timestamp: string; CPU: number; } interface Props { data: ContainerMetric[]; } const chartConfig = { cpu: { label: "CPU", color: "hsl(var(--chart-1))", }, } satisfies ChartConfig; export const ContainerCPUChart = ({ data }: Props) => { const formattedData = data.map((metric) => ({ timestamp: metric.timestamp, cpu: metric.CPU, })); const latestData = formattedData[formattedData.length - 1] || { timestamp: "", cpu: 0, }; return ( CPU CPU Usage: {latestData.cpu}% formatTimestamp(value)} /> `${value}%`} domain={[0, 100]} /> { if (active && payload && payload.length) { const data = payload?.[0]?.payload; return (
Time {formatTimestamp(label)}
CPU {data.cpu}%
); } return null; }} /> } verticalAlign="bottom" align="center" />
); };