diff --git a/site/src/components/charts/container-cpu-chart.tsx b/site/src/components/charts/container-cpu-chart.tsx index f5428c8..92d3734 100644 --- a/site/src/components/charts/container-cpu-chart.tsx +++ b/site/src/components/charts/container-cpu-chart.tsx @@ -11,13 +11,7 @@ import { useMemo } from 'react' import { formatShortDate, formatShortTime } from '@/lib/utils' import Spinner from '../spinner' -export default function ({ - chartData, - max, -}: { - chartData: Record[] - max: number -}) { +export default function ({ chartData }: { chartData: Record[] }) { const chartConfig = useMemo(() => { let config = {} as Record< string, @@ -65,8 +59,7 @@ export default function ({ margin={{ top: 10, }} - - // reverseStackOrder={true} + reverseStackOrder={true} > { - // console.log('itemSorter', item) - // return -item.value - // }} + // @ts-ignore + itemSorter={(a, b) => b.value - a.value} content={} /> {Object.keys(chartConfig).map((key) => ( @@ -100,7 +91,7 @@ export default function ({ // isAnimationActive={false} animateNewValues={false} dataKey={key} - type="bump" + type="monotone" fill={chartConfig[key].color} fillOpacity={0.4} stroke={chartConfig[key].color} diff --git a/site/src/components/charts/container-mem-chart.tsx b/site/src/components/charts/container-mem-chart.tsx index d98d23b..ede30f8 100644 --- a/site/src/components/charts/container-mem-chart.tsx +++ b/site/src/components/charts/container-mem-chart.tsx @@ -11,14 +11,7 @@ import { useMemo } from 'react' import { formatShortDate, formatShortTime } from '@/lib/utils' import Spinner from '../spinner' -export default function ({ - chartData, - max, -}: { - chartData: Record[] - max: number -}) { - console.log('max', max) +export default function ({ chartData }: { chartData: Record[] }) { const chartConfig = useMemo(() => { let config = {} as Record< string, @@ -63,6 +56,7 @@ export default function ({ Math.ceil(max)]} + // tickCount={9} allowDecimals={false} tickLine={false} axisLine={false} - tickFormatter={(v) => `${Math.ceil(v / 1024)} GiB`} + unit={' GiB'} + tickFormatter={(x) => { + x = x / 1024 + return x % 1 === 0 ? x : x.toFixed(1) + }} /> { - // console.log('itemSorter', item) - // return -item.value - // }} + // @ts-ignore + itemSorter={(a, b) => b.value - a.value} content={} /> {Object.keys(chartConfig).map((key) => ( @@ -101,7 +97,7 @@ export default function ({ // isAnimationActive={false} animateNewValues={false} dataKey={key} - type="natural" + type="monotone" fill={chartConfig[key].color} fillOpacity={0.4} stroke={chartConfig[key].color} diff --git a/site/src/components/charts/cpu-chart.tsx b/site/src/components/charts/cpu-chart.tsx index ff7eb16..05da3bf 100644 --- a/site/src/components/charts/cpu-chart.tsx +++ b/site/src/components/charts/cpu-chart.tsx @@ -19,13 +19,7 @@ const chartConfig = { }, } satisfies ChartConfig -export default function ({ - chartData, - max, -}: { - chartData: { time: string; cpu: number }[] - max: number -}) { +export default function ({ chartData }: { chartData: { time: string; cpu: number }[] }) { if (!chartData?.length) { return } @@ -35,7 +29,7 @@ export default function ({ Math.ceil(max)]} width={47} // tickCount={5} tickLine={false} diff --git a/site/src/components/charts/disk-chart.tsx b/site/src/components/charts/disk-chart.tsx index 909e6ce..736e0fa 100644 --- a/site/src/components/charts/disk-chart.tsx +++ b/site/src/components/charts/disk-chart.tsx @@ -82,7 +82,7 @@ export default function ({ /> + } /> [] @@ -51,7 +49,7 @@ export default function ServerDetail({ name }: { name: string }) { document.title = name return () => { setContainerCpuChartData([]) - setCpuChartData({} as { max: number; data: { time: string; cpu: number }[] }) + setCpuChartData([]) setMemChartData([]) setDiskChartData([]) } @@ -70,7 +68,7 @@ export default function ServerDetail({ name }: { name: string }) { sort: '-created', }) .then((records) => { - console.log('stats', records) + // console.log('sctats', records) setServerStats(records.items) }) }, [server]) @@ -80,35 +78,32 @@ export default function ServerDetail({ name }: { name: string }) { if (!serverStats.length) { return } - let maxCpu = 0 + // let maxCpu = 0 const cpuData = [] as { time: string; cpu: number }[] const memData = [] as { time: string; mem: number; memUsed: number }[] const diskData = [] as { time: string; disk: number; diskUsed: number }[] for (let { created, stats } of serverStats) { cpuData.push({ time: created, cpu: stats.c }) - maxCpu = Math.max(maxCpu, stats.c) + // maxCpu = Math.max(maxCpu, stats.c) memData.push({ time: created, mem: stats.m, memUsed: stats.mu }) diskData.push({ time: created, disk: stats.d, diskUsed: stats.du }) } - setCpuChartData({ - max: Math.ceil(maxCpu), - data: cpuData.reverse(), - }) + setCpuChartData(cpuData.reverse()) setMemChartData(memData.reverse()) setDiskChartData(diskData.reverse()) }, [serverStats]) useEffect(() => { if ($servers.get().length === 0) { - console.log('skipping') + // console.log('skipping') return } - console.log('running') + // console.log('running') const matchingServer = servers.find((s) => s.name === name) as SystemRecord setServer(matchingServer) - console.log('matchingServer', matchingServer) + console.log('found server', matchingServer) // pb.collection('systems') // .getOne(serverId) // .then((record) => { @@ -129,7 +124,7 @@ export default function ServerDetail({ name }: { name: string }) { // container stats for charts useEffect(() => { - console.log('containers', containers) + // console.log('containers', containers) const containerCpuData = [] as Record[] const containerMemData = [] as Record[] @@ -153,7 +148,7 @@ export default function ServerDetail({ name }: { name: string }) { - CPU Usage + Total CPU Usage @@ -162,7 +157,7 @@ export default function ServerDetail({ name }: { name: string }) { }> - + @@ -177,15 +172,15 @@ export default function ServerDetail({ name }: { name: string }) { }> - + )} - Memory Usage - Precise usage at the recorded time + Total Memory Usage + Precise utilization at the recorded time }> @@ -204,12 +199,7 @@ export default function ServerDetail({ name }: { name: string }) { }> - {server?.stats?.m && ( - - )} + {server?.stats?.m && } diff --git a/site/src/components/ui/chart.tsx b/site/src/components/ui/chart.tsx index 87e8af6..c216d66 100644 --- a/site/src/components/ui/chart.tsx +++ b/site/src/components/ui/chart.tsx @@ -118,11 +118,21 @@ const ChartTooltipContent = React.forwardRef< nameKey, labelKey, unit, + itemSorter, }, ref ) => { const { config } = useChart() + payload = React.useMemo(() => { + if (itemSorter) { + return payload.sort(itemSorter) + } + return payload + }, [itemSorter, payload]) + + // console.log('iiiiii', itemSorter) + const tooltipLabel = React.useMemo(() => { if (hideLabel || !payload?.length) { return null