mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Fix residual typing issues related to metrics
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
d249c4c679
commit
6a359e8ddb
@ -24,7 +24,7 @@ const NonInjectedClusterMetricSwitchers = observer(({
|
|||||||
nodeStore,
|
nodeStore,
|
||||||
}: Dependencies) => {
|
}: Dependencies) => {
|
||||||
const { masterNodes, workerNodes } = nodeStore;
|
const { masterNodes, workerNodes } = nodeStore;
|
||||||
const { cpuUsage, memoryUsage } = clusterOverviewStore.metrics;
|
const { cpuUsage, memoryUsage } = clusterOverviewStore.metrics ?? {};
|
||||||
const hasMasterNodes = masterNodes.length > 0;
|
const hasMasterNodes = masterNodes.length > 0;
|
||||||
const hasWorkerNodes = workerNodes.length > 0;
|
const hasWorkerNodes = workerNodes.length > 0;
|
||||||
const hasCpuMetrics = normalizeMetrics(cpuUsage).data.result[0].values.length > 0;
|
const hasCpuMetrics = normalizeMetrics(cpuUsage).data.result[0].values.length > 0;
|
||||||
|
|||||||
@ -26,8 +26,8 @@ interface Dependencies {
|
|||||||
|
|
||||||
const NonInjectedClusterMetrics = observer(({ clusterOverviewStore: { metricType, metricNodeRole, getMetricsValues, metricsLoaded, metrics }}: Dependencies) => {
|
const NonInjectedClusterMetrics = observer(({ clusterOverviewStore: { metricType, metricNodeRole, getMetricsValues, metricsLoaded, metrics }}: Dependencies) => {
|
||||||
const [plugins] = useState([new ZebraStripesPlugin()]);
|
const [plugins] = useState([new ZebraStripesPlugin()]);
|
||||||
const { memoryCapacity, cpuCapacity } = getMetricLastPoints(metrics);
|
const { memoryCapacity, cpuCapacity } = getMetricLastPoints(metrics ?? {});
|
||||||
const metricValues = getMetricsValues(metrics);
|
const metricValues = getMetricsValues(metrics ?? {});
|
||||||
const colors = { cpu: "#3D90CE", memory: "#C93DCE" };
|
const colors = { cpu: "#3D90CE", memory: "#C93DCE" };
|
||||||
const data = metricValues.map(value => ({
|
const data = metricValues.map(value => ({
|
||||||
x: value[0],
|
x: value[0],
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import clusterApiInjectable from "../../../../common/k8s-api/endpoints/cluster.a
|
|||||||
import storesAndApisCanBeCreatedInjectable from "../../../stores-apis-can-be-created.injectable";
|
import storesAndApisCanBeCreatedInjectable from "../../../stores-apis-can-be-created.injectable";
|
||||||
import assert from "assert";
|
import assert from "assert";
|
||||||
import nodeStoreInjectable from "../../+nodes/store.injectable";
|
import nodeStoreInjectable from "../../+nodes/store.injectable";
|
||||||
|
import requestClusterMetricsByNodeNamesInjectable from "../../../../common/k8s-api/endpoints/metrics.api/get-cluster-metrics-by-node-names.injectable";
|
||||||
|
|
||||||
const clusterOverviewStoreInjectable = getInjectable({
|
const clusterOverviewStoreInjectable = getInjectable({
|
||||||
id: "cluster-overview-store",
|
id: "cluster-overview-store",
|
||||||
@ -30,6 +31,7 @@ const clusterOverviewStoreInjectable = getInjectable({
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
nodeStore: di.inject(nodeStoreInjectable),
|
nodeStore: di.inject(nodeStoreInjectable),
|
||||||
|
requestClusterMetricsByNodeNames: di.inject(requestClusterMetricsByNodeNamesInjectable),
|
||||||
}, clusterApi);
|
}, clusterApi);
|
||||||
},
|
},
|
||||||
injectionToken: kubeObjectStoreInjectionToken,
|
injectionToken: kubeObjectStoreInjectionToken,
|
||||||
|
|||||||
@ -37,6 +37,10 @@ interface ClusterOverviewStoreDependencies {
|
|||||||
export class ClusterOverviewStore extends KubeObjectStore<Cluster, ClusterApi> implements ClusterOverviewStorageState {
|
export class ClusterOverviewStore extends KubeObjectStore<Cluster, ClusterApi> implements ClusterOverviewStorageState {
|
||||||
@observable metrics: ClusterMetricData | undefined = undefined;
|
@observable metrics: ClusterMetricData | undefined = undefined;
|
||||||
|
|
||||||
|
get metricsLoaded() {
|
||||||
|
return !!this.metrics;
|
||||||
|
}
|
||||||
|
|
||||||
get metricType(): MetricType {
|
get metricType(): MetricType {
|
||||||
return this.dependencies.storage.get().metricType;
|
return this.dependencies.storage.get().metricType;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -105,7 +105,7 @@ class NonInjectedPodDetailsContainer extends React.Component<PodDetailsContainer
|
|||||||
<StatusBrick className={cssNames(state, { ready })}/>
|
<StatusBrick className={cssNames(state, { ready })}/>
|
||||||
{name}
|
{name}
|
||||||
</div>
|
</div>
|
||||||
{!isMetricHidden && !isInitContainer && (
|
{(!isMetricHidden && !isInitContainer && metrics) && (
|
||||||
<ResourceMetrics
|
<ResourceMetrics
|
||||||
object={pod}
|
object={pod}
|
||||||
tabs={[
|
tabs={[
|
||||||
|
|||||||
@ -22,7 +22,7 @@ export interface ResourceMetricsProps<Keys extends string> {
|
|||||||
loader?: () => void;
|
loader?: () => void;
|
||||||
interval?: number;
|
interval?: number;
|
||||||
className?: string;
|
className?: string;
|
||||||
metrics: Record<Keys, MetricData> | null | undefined;
|
metrics: Partial<Record<Keys, MetricData>> | null | undefined;
|
||||||
children: React.ReactChild | React.ReactChild[];
|
children: React.ReactChild | React.ReactChild[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user