1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/dashboard/client/components/resource-metrics/resource-metrics-text.tsx
Sebastian Malton b1ff34879a cleanup Lens repo with tighter linting
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
2020-07-09 17:00:23 -04:00

33 lines
1.3 KiB
TypeScript

import React from "react";
import { Trans } from "@lingui/macro";
import { PodMetricsData } from "../../api/endpoints";
import { getMetricLastPoints, Metrics } from "../../api/endpoints/metrics.api";
import { bytesToUnits } from "../../utils";
import { Badge } from "../badge";
import { DrawerItem } from "../drawer";
interface Props {
metrics: PodMetricsData<Metrics>;
}
export function ResourceMetricsText(props: Props): JSX.Element {
if (!props.metrics) {
return null;
}
const metrics = getMetricLastPoints(props.metrics);
const { cpuUsage, cpuRequests, cpuLimits, memoryUsage, memoryRequests, memoryLimits } = metrics;
return (
<>
<DrawerItem name={<Trans>CPU</Trans>} labelsOnly>
{cpuUsage > 0 && <Badge label={`Usage: ${cpuUsage.toPrecision(2)}`}/>}
{cpuRequests > 0 && <Badge label={`Requests: ${cpuRequests.toPrecision(2)}`}/>}
{cpuLimits > 0 && <Badge label={`Limits: ${cpuLimits.toPrecision(2)}`}/>}
</DrawerItem>
<DrawerItem name={<Trans>Memory</Trans>} labelsOnly>
{memoryUsage > 0 && <Badge label={`Usage: ${bytesToUnits(memoryUsage)}`}/>}
{memoryRequests > 0 && <Badge label={`Requests: ${bytesToUnits(memoryRequests)}`}/>}
{memoryLimits > 0 && <Badge label={`Limits: ${bytesToUnits(memoryLimits)}`}/>}
</DrawerItem>
</>
);
}