diff --git a/web_ui/frontend/app/cache/metrics/layout.tsx b/web_ui/frontend/app/cache/metrics/layout.tsx new file mode 100644 index 000000000..10b6d49e5 --- /dev/null +++ b/web_ui/frontend/app/cache/metrics/layout.tsx @@ -0,0 +1,2 @@ +import MetricLayout from '@/components/layout/MetricLayout'; +export default MetricLayout; diff --git a/web_ui/frontend/app/cache/metrics/page.tsx b/web_ui/frontend/app/cache/metrics/page.tsx new file mode 100644 index 000000000..37d28fd3a --- /dev/null +++ b/web_ui/frontend/app/cache/metrics/page.tsx @@ -0,0 +1,153 @@ +import { Box, Grid, Paper, Typography } from '@mui/material'; +import { green, grey, blue } from '@mui/material/colors'; + +import { + BigMetric, + ProjectTable, + BigBytesMetric, + StorageGraph, + TransferRateGraph, + CPUGraph, + MemoryGraph, +} from '@/components/metrics'; + +const Page = () => { + return ( + + + + {[ + , + , + , + ].map((component, index) => ( + + {component} + + ))} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; + +export default Page; diff --git a/web_ui/frontend/app/director/metrics/layout.tsx b/web_ui/frontend/app/director/metrics/layout.tsx index 331593669..ddb28fc2b 100644 --- a/web_ui/frontend/app/director/metrics/layout.tsx +++ b/web_ui/frontend/app/director/metrics/layout.tsx @@ -1,23 +1,12 @@ import { ReactNode } from 'react'; -import { PaddedContent } from '@/components/layout'; -import dynamic from 'next/dynamic'; - -const GraphProvider = dynamic( - () => import('../../../components/graphs/GraphContext'), - { ssr: !!false } -); -const GraphOverlay = dynamic( - () => import('../../../components/graphs/GraphOverlay'), - { ssr: !!false } -); +import { PaddedContent } from '@/components/layout'; +import MetricLayout from '@/components/layout/MetricLayout'; const Layout = ({ children }: { children: ReactNode }) => { return ( - - {children} - + {children} ); }; diff --git a/web_ui/frontend/app/director/metrics/page.tsx b/web_ui/frontend/app/director/metrics/page.tsx index fafff6fcc..806f181dd 100644 --- a/web_ui/frontend/app/director/metrics/page.tsx +++ b/web_ui/frontend/app/director/metrics/page.tsx @@ -1,8 +1,8 @@ import { Grid, Paper } from '@mui/material'; import { green } from '@mui/material/colors'; -import { ProjectTable } from '@/app/origin/metrics/components'; -import { BigBytesMetric } from '@/app/origin/metrics/components/BigNumber'; +import { ProjectTable, BigBytesMetric } from '@/components/metrics'; + import { BytesMetricBoxPlot, MetricBoxPlot, diff --git a/web_ui/frontend/app/navigation.tsx b/web_ui/frontend/app/navigation.tsx index 2119b3150..db4abd236 100644 --- a/web_ui/frontend/app/navigation.tsx +++ b/web_ui/frontend/app/navigation.tsx @@ -84,6 +84,7 @@ const NavigationConfig: NavigationConfiguration = { ], cache: [ { title: 'Dashboard', href: '/cache/', icon: }, + { title: 'Metrics', href: '/cache/metrics/', icon: }, { title: 'Config', href: '/config/', icon: }, ], shared: [ diff --git a/web_ui/frontend/app/origin/metrics/components/index.ts b/web_ui/frontend/app/origin/metrics/components/index.ts deleted file mode 100644 index 6e2e79643..000000000 --- a/web_ui/frontend/app/origin/metrics/components/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './ProjectsTable'; -export * from './TransferRateGraph'; diff --git a/web_ui/frontend/app/origin/metrics/layout.tsx b/web_ui/frontend/app/origin/metrics/layout.tsx index ce6bf5967..10b6d49e5 100644 --- a/web_ui/frontend/app/origin/metrics/layout.tsx +++ b/web_ui/frontend/app/origin/metrics/layout.tsx @@ -1,22 +1,2 @@ -import { ReactNode } from 'react'; -import dynamic from 'next/dynamic'; - -const GraphProvider = dynamic( - () => import('../../../components/graphs/GraphContext'), - { ssr: !!false } -); - -const GraphOverlay = dynamic( - () => import('../../../components/graphs/GraphOverlay'), - { ssr: !!false } -); - -const Layout = ({ children }: { children: ReactNode }) => { - return ( - - {children} - - ); -}; - -export default Layout; +import MetricLayout from '@/components/layout/MetricLayout'; +export default MetricLayout; diff --git a/web_ui/frontend/app/origin/metrics/page.tsx b/web_ui/frontend/app/origin/metrics/page.tsx index 8810ca95f..54542eb8c 100644 --- a/web_ui/frontend/app/origin/metrics/page.tsx +++ b/web_ui/frontend/app/origin/metrics/page.tsx @@ -2,17 +2,14 @@ import { Box, Grid, Paper, Typography } from '@mui/material'; import { green, grey, blue } from '@mui/material/colors'; import { + BigMetric, ProjectTable, - TransferRateGraph, -} from '@/app/origin/metrics/components'; -import { CPUGraph } from '@/app/origin/metrics/components/CPUGraph'; -import { MemoryGraph } from '@/app/origin/metrics/components/MemoryGraph'; -import { BigBytesMetric, - BigMetric, - BigNumber, -} from '@/app/origin/metrics/components/BigNumber'; -import { StorageGraph } from '@/app/origin/metrics/components/StorageGraph'; + StorageGraph, + TransferRateGraph, + CPUGraph, + MemoryGraph, +} from '@/components/metrics'; const Page = () => { return ( diff --git a/web_ui/frontend/components/layout/MetricLayout.tsx b/web_ui/frontend/components/layout/MetricLayout.tsx new file mode 100644 index 000000000..124f3a5ac --- /dev/null +++ b/web_ui/frontend/components/layout/MetricLayout.tsx @@ -0,0 +1,21 @@ +import { ReactNode } from 'react'; +import dynamic from 'next/dynamic'; + +const GraphProvider = dynamic( + () => import('@/components/graphs/GraphContext'), + { ssr: !!false } +); + +const GraphOverlay = dynamic(() => import('@/components/graphs/GraphOverlay'), { + ssr: !!false, +}); + +const MetricLayout = ({ children }: { children: ReactNode }) => { + return ( + + {children} + + ); +}; + +export default MetricLayout; diff --git a/web_ui/frontend/app/origin/metrics/components/BigNumber.tsx b/web_ui/frontend/components/metrics/BigNumber.tsx similarity index 100% rename from web_ui/frontend/app/origin/metrics/components/BigNumber.tsx rename to web_ui/frontend/components/metrics/BigNumber.tsx diff --git a/web_ui/frontend/app/origin/metrics/components/CPUGraph.tsx b/web_ui/frontend/components/metrics/CPUGraph.tsx similarity index 100% rename from web_ui/frontend/app/origin/metrics/components/CPUGraph.tsx rename to web_ui/frontend/components/metrics/CPUGraph.tsx diff --git a/web_ui/frontend/app/origin/metrics/components/MemoryGraph.tsx b/web_ui/frontend/components/metrics/MemoryGraph.tsx similarity index 100% rename from web_ui/frontend/app/origin/metrics/components/MemoryGraph.tsx rename to web_ui/frontend/components/metrics/MemoryGraph.tsx diff --git a/web_ui/frontend/app/origin/metrics/components/ProjectsTable.tsx b/web_ui/frontend/components/metrics/ProjectsTable.tsx similarity index 97% rename from web_ui/frontend/app/origin/metrics/components/ProjectsTable.tsx rename to web_ui/frontend/components/metrics/ProjectsTable.tsx index 0900488b2..f94511d7d 100644 --- a/web_ui/frontend/app/origin/metrics/components/ProjectsTable.tsx +++ b/web_ui/frontend/components/metrics/ProjectsTable.tsx @@ -27,7 +27,7 @@ interface ProjectData { bytesAccessed: string; } -export const ProjectTable = () => { +const ProjectTable = () => { const { rate, time, range, resolution } = useContext(GraphContext); const { data: projectData, error: projectError } = useSWR( @@ -91,3 +91,5 @@ const getProjectData = async ( return projectData; }; + +export { ProjectTable }; diff --git a/web_ui/frontend/app/origin/metrics/components/StorageGraph.tsx b/web_ui/frontend/components/metrics/StorageGraph.tsx similarity index 100% rename from web_ui/frontend/app/origin/metrics/components/StorageGraph.tsx rename to web_ui/frontend/components/metrics/StorageGraph.tsx diff --git a/web_ui/frontend/app/origin/metrics/components/TransferRateGraph.tsx b/web_ui/frontend/components/metrics/TransferRateGraph.tsx similarity index 100% rename from web_ui/frontend/app/origin/metrics/components/TransferRateGraph.tsx rename to web_ui/frontend/components/metrics/TransferRateGraph.tsx diff --git a/web_ui/frontend/components/metrics/index.ts b/web_ui/frontend/components/metrics/index.ts new file mode 100644 index 000000000..c891931a2 --- /dev/null +++ b/web_ui/frontend/components/metrics/index.ts @@ -0,0 +1,6 @@ +export * from './BigNumber'; +export { CPUGraph } from './CPUGraph'; +export { MemoryGraph } from './MemoryGraph'; +export { StorageGraph } from './StorageGraph'; +export { TransferRateGraph } from './TransferRateGraph'; +export { ProjectTable } from './ProjectsTable';