mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
- Add route, clusterRoute, and payloadValidatedClusterRoute helper functions to improve types with backend routes - Turn on the following new lints: - react/jsx-first-prop-new-line - react/jsx-wrap-multilines - react/jsx-one-expression-per-line - react/jsx-max-props-per-line - react/jsx-indent - react/jsx-indent-props Signed-off-by: Sebastian Malton <sebastian@malton.name>
39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
|
|
import React from "react";
|
|
import type { PodMetricData } from "../../../common/k8s-api/endpoints";
|
|
import { getMetricLastPoints } from "../../../common/k8s-api/endpoints/metrics.api";
|
|
import { bytesToUnits } from "../../utils";
|
|
import { Badge } from "../badge";
|
|
import { DrawerItem } from "../drawer";
|
|
|
|
export interface ResourceMetricsTextProps {
|
|
metrics: PodMetricData | null | undefined;
|
|
}
|
|
|
|
export function ResourceMetricsText({ metrics }: ResourceMetricsTextProps) {
|
|
if (!metrics) {
|
|
return null;
|
|
}
|
|
|
|
const { cpuUsage, cpuRequests, cpuLimits, memoryUsage, memoryRequests, memoryLimits } = getMetricLastPoints(metrics);
|
|
|
|
return (
|
|
<>
|
|
<DrawerItem name="CPU" 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="Memory" labelsOnly>
|
|
{memoryUsage > 0 && <Badge label={`Usage: ${bytesToUnits(memoryUsage)}`}/>}
|
|
{memoryRequests > 0 && <Badge label={`Requests: ${bytesToUnits(memoryRequests)}`}/>}
|
|
{memoryLimits > 0 && <Badge label={`Limits: ${bytesToUnits(memoryLimits)}`}/>}
|
|
</DrawerItem>
|
|
</>
|
|
);
|
|
}
|