From 9ee8819d8923d024a5a1a67a771b384227de1922 Mon Sep 17 00:00:00 2001 From: nihalmohammed18 <129756850+nihalmohammed18@users.noreply.github.com> Date: Fri, 17 May 2024 19:23:05 +0800 Subject: [PATCH] Feature: Multi-Tenancy (#189) * Feature: Multi-Tenancy * Fix: Units --------- Co-authored-by: Prathipati Nithish <92970000+Nithishprem@users.noreply.github.com> --- .../[resourceId]/[resourceInstanceId].js | 1 + .../Metrics/DiskThroughputChart.jsx | 4 +- .../ResourceInstance/Metrics/MetricCard.jsx | 13 +- .../ResourceInstance/Metrics/Metrics.jsx | 115 +++++++++--------- .../Metrics/NetworkThroughputChart.jsx | 4 +- 5 files changed, 67 insertions(+), 70 deletions(-) diff --git a/pages/access/[serviceId]/[environmentId]/[resourceId]/[resourceInstanceId].js b/pages/access/[serviceId]/[environmentId]/[resourceId]/[resourceInstanceId].js index 4e88943f..0ac42f58 100644 --- a/pages/access/[serviceId]/[environmentId]/[resourceId]/[resourceInstanceId].js +++ b/pages/access/[serviceId]/[environmentId]/[resourceId]/[resourceInstanceId].js @@ -367,6 +367,7 @@ function ResourceInstance() { resourceKey={resourceInstanceData?.resourceKey} customMetrics={resourceInstanceData?.customMetrics || []} mainResourceHasCompute={resourceInstanceData?.mainResourceHasCompute} + productTierType={serviceOffering?.productTierType} /> )} {currentTab === tabs.logs && ( diff --git a/src/components/ResourceInstance/Metrics/DiskThroughputChart.jsx b/src/components/ResourceInstance/Metrics/DiskThroughputChart.jsx index d7b298ee..7e0fc9ca 100644 --- a/src/components/ResourceInstance/Metrics/DiskThroughputChart.jsx +++ b/src/components/ResourceInstance/Metrics/DiskThroughputChart.jsx @@ -39,7 +39,7 @@ function DiskThroughputChart(props) { tickLine={false} /> `${value} MB/s`} + tickFormatter={(value) => `${value} MiB/s`} domain={([datamin, datamax]) => [ 0, datamax > 0 ? Math.round(datamax + 1) : 1, @@ -48,7 +48,7 @@ function DiskThroughputChart(props) { /> `${value} MB/s`} + formatter={(value) => `${value} MiB/s`} /> {labels.map((labelName, index) => { diff --git a/src/components/ResourceInstance/Metrics/MetricCard.jsx b/src/components/ResourceInstance/Metrics/MetricCard.jsx index 5d19dec5..42aa757b 100644 --- a/src/components/ResourceInstance/Metrics/MetricCard.jsx +++ b/src/components/ResourceInstance/Metrics/MetricCard.jsx @@ -1,13 +1,12 @@ -import { Box, Stack } from "@mui/material"; -import React from "react"; -import Card from "../../Card/Card"; -import { DisplayText, Text } from "../../Typography/Typography"; +import { Stack } from "@mui/material"; +import Card from "components/Card/Card"; +import { DisplayText, Text } from "components/Typography/Typography"; function MetricCard(props) { const { title = "", value = "", unit = "" } = props; return ( - + {value} - {value ? ( + {value !== undefined && unit && ( {unit} - ) : ( - "" )} diff --git a/src/components/ResourceInstance/Metrics/Metrics.jsx b/src/components/ResourceInstance/Metrics/Metrics.jsx index 0b9e8537..f5dfe5f9 100644 --- a/src/components/ResourceInstance/Metrics/Metrics.jsx +++ b/src/components/ResourceInstance/Metrics/Metrics.jsx @@ -58,6 +58,7 @@ function Metrics(props) { resourceInstanceId, customMetrics = [], mainResourceHasCompute, + productTierType, } = props; let firstNode = null; if (nodes.length > 0) { @@ -95,8 +96,8 @@ function Metrics(props) { data: [], }); - const [totalMemoryGB, setTotalMemoryGB] = useState(null); - const [memoryUsageGB, setMemoryUsageGB] = useState(null); + const [totalMemoryGiB, setTotalMemoryGiB] = useState(null); + const [memoryUsageGiB, setMemoryUsageGiB] = useState(null); const [memoryUsagePercent, setMemoryUsagePercent] = useState(null); const [systemUptimeHours, setSystemUptimeHours] = useState(null); const [diskIOPSReadLabels, setDiskIOPSReadLabels] = useState([]); @@ -215,8 +216,8 @@ function Metrics(props) { setCpuUsageData(initialCpuUsage); setLoadAverage(initialLoadAverage); setMemUsagePercentData(initialMemUsagePercentData); - setTotalMemoryGB(null); - setMemoryUsageGB(null); + setTotalMemoryGiB(null); + setMemoryUsageGiB(null); setMemoryUsagePercent(null); setSystemUptimeHours(null); setDiskIOPSReadLabels([]); @@ -373,7 +374,7 @@ function Metrics(props) { metric.Name === "disk_throughput_bytes_per_sec" && metric.Labels.type === "read" ) { - const value = Number(metric.Value / 1000000).toFixed(2); + const value = Number(metric.Value / Math.pow(1024, 2)).toFixed(2); const label = metric.Labels.disk; setDiskThroughputReadLabels((prev) => { @@ -395,7 +396,7 @@ function Metrics(props) { metric.Name === "disk_throughput_bytes_per_sec" && metric.Labels.type === "write" ) { - const value = Number(metric.Value / 1000000).toFixed(2); + const value = Number(metric.Value / Math.pow(1024, 2)).toFixed(2); const label = metric.Labels.disk; setDiskThroughputWriteLabels((prev) => { @@ -417,7 +418,7 @@ function Metrics(props) { metric.Name === "net_throughput_bytes_per_sec" && metric.Labels.direction === "recv" ) { - const value = Number(metric.Value / 1000000).toFixed(2); + const value = Number(metric.Value / Math.pow(1024, 2)).toFixed(2); const label = metric.Labels.interface; setNetThroughputReceiveLabels((prev) => { @@ -439,7 +440,7 @@ function Metrics(props) { metric.Name === "net_throughput_bytes_per_sec" && metric.Labels.direction === "sent" ) { - const value = Number(metric.Value / 1000000).toFixed(2); + const value = Number(metric.Value / Math.pow(1024, 2)).toFixed(2); const label = metric.Labels.interface; setNetThroughputSendLabels((prev) => { @@ -554,7 +555,7 @@ function Metrics(props) { setCpuUsageData((prev) => { if (prev.data.length === maxDataPoints) { return { - current: value ? value : prev.current, + current: value !== undefined ? value : prev.current, data: [ ...prev.data.slice(1, maxDataPoints), { @@ -565,7 +566,7 @@ function Metrics(props) { }; } else { return { - current: value ? value : prev.current, + current: value !== undefined ? value : prev.current, data: [ ...prev.data, { @@ -585,7 +586,10 @@ function Metrics(props) { setLoadAverage((prev) => { if (prev.data.length === maxDataPoints) { return { - current: loadAverageValue ? loadAverageValue : prev.current, + current: + loadAverageValue !== undefined + ? loadAverageValue + : prev.current, data: [ ...prev.data.slice(1, maxDataPoints), { @@ -596,7 +600,10 @@ function Metrics(props) { }; } else { return { - current: loadAverageValue ? loadAverageValue : prev.current, + current: + loadAverageValue !== undefined + ? loadAverageValue + : prev.current, data: [ ...prev.data, { @@ -611,12 +618,12 @@ function Metrics(props) { //Set memory bytes if (memoryUsageBytes) { const value = memoryUsageBytes.Value; - setMemoryUsageGB(Number(value / 1000000000).toFixed(2)); + setMemoryUsageGiB(Number(value / Math.pow(1024, 3)).toFixed(2)); } if (totalMemoryBytes) { const value = totalMemoryBytes.Value; - setTotalMemoryGB(Number(value / 1000000000).toFixed(2)); + setTotalMemoryGiB(Number(value / Math.pow(1024, 3)).toFixed(2)); } if (memoryUsagePercent) { @@ -760,34 +767,20 @@ function Metrics(props) { - - - - - + + + {productTierType !== "OMNISTRATE_MULTI_TENANCY" && ( - - - - - - - - - - - - - - + )} + + + + + @@ -795,9 +788,11 @@ function Metrics(props) { - - - + {productTierType !== "OMNISTRATE_MULTI_TENANCY" && ( + + + + )} @@ -826,20 +821,24 @@ function Metrics(props) { labels={diskThroughputWriteLabels} /> - - - - - - + {productTierType !== "OMNISTRATE_MULTI_TENANCY" && ( + <> + + + + + + + + )} {customMetrics //show metrics for selected node resource type .filter((metric) => { if (selectedNode) diff --git a/src/components/ResourceInstance/Metrics/NetworkThroughputChart.jsx b/src/components/ResourceInstance/Metrics/NetworkThroughputChart.jsx index ee2fd902..9bc52fda 100644 --- a/src/components/ResourceInstance/Metrics/NetworkThroughputChart.jsx +++ b/src/components/ResourceInstance/Metrics/NetworkThroughputChart.jsx @@ -39,7 +39,7 @@ function NetworkThroughputChart(props) { tickLine={false} /> `${value} MB/s`} + tickFormatter={(value) => `${value} MiB/s`} domain={([datamin, datamax]) => [ 0, datamax > 0 ? Math.round(datamax + 1) : 1, @@ -48,7 +48,7 @@ function NetworkThroughputChart(props) { /> `${value} MB/s`} + formatter={(value) => `${value} MiB/s`} /> {labels.map((labelName, index) => {