import CardWrapper from '@/components/card-wrapper'; import GaugeChart from '@/components/echarts/gauge'; import PageTools from '@/components/page-tools'; import BaseSelect from '@/components/seal-form/base/select'; import { queryClusterList } from '@/pages/cluster-management/apis'; import { useIntl } from '@umijs/max'; import { Col, Row } from 'antd'; import _ from 'lodash'; import { useContext, useEffect, useMemo, useState } from 'react'; import { DashboardContext } from '../config/dashboard-context'; import ResourceUtilization from './resource-utilization'; const smallChartHeight = 190; const largeChartHeight = 400; const resourceChartHeight = 400; const SystemLoad = () => { const intl = useIntl(); const { system_load, fetchData } = useContext(DashboardContext); const [systemLoadData, setSystemLoadData] = useState(system_load || {}); const [clusterList, setClusterList] = useState[]>( [] ); const chartData = useMemo(() => { const data = systemLoadData?.current || {}; return { gpu: { data: _.round(data.gpu || 0, 1) }, vram: { data: _.round(data.vram || 0, 1) }, cpu: { data: _.round(data.cpu || 0, 1) }, ram: { data: _.round(data.ram || 0, 1) } }; }, [systemLoadData?.current]); useEffect(() => { setSystemLoadData(system_load || {}); }, [system_load]); const handleClusterChange = async (value: number) => { try { const res: any = await fetchData({ cluster_id: value }); setSystemLoadData(res.system_load || {}); } catch (error) { setSystemLoadData({}); } }; useEffect(() => { const fetchClusters = async () => { try { const res = await queryClusterList({ page: -1 }); const options = res.items.map((cluster: any) => ({ label: cluster.name, value: cluster.id })); setClusterList(options); } catch (error) { setClusterList([]); } }; fetchClusters(); }, []); return (
{intl.formatMessage({ id: 'dashboard.systemload' })} } right={ } />
); }; export default SystemLoad;