1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-21 14:29:40 +02:00

chore(react): Convert cluster details to react CE (#466)

This commit is contained in:
James Player 2025-02-26 14:13:50 +13:00 committed by GitHub
parent dd98097897
commit 7759d762ab
24 changed files with 829 additions and 345 deletions

View file

@ -0,0 +1,46 @@
import { useQuery } from '@tanstack/react-query';
import { Node } from 'kubernetes-types/core/v1';
import { EnvironmentId } from '@/react/portainer/environments/types';
import { getMetricsForAllNodes } from '@/react/kubernetes/metrics/metrics';
import KubernetesResourceReservationHelper from '@/kubernetes/helpers/resourceReservationHelper';
import { withGlobalError } from '@/react-tools/react-query';
import { NodeMetrics } from '@/react/kubernetes/metrics/types';
export function useClusterResourceUsageQuery(
environmentId: EnvironmentId,
serverMetricsEnabled: boolean,
authorized: boolean,
nodes: Node[]
) {
return useQuery(
[environmentId, 'clusterResourceUsage'],
() => getMetricsForAllNodes(environmentId),
{
enabled:
authorized &&
serverMetricsEnabled &&
!!environmentId &&
nodes.length > 0,
select: aggregateResourceUsage,
...withGlobalError('Unable to retrieve resource usage data.', 'Failure'),
}
);
}
function aggregateResourceUsage(data: NodeMetrics) {
return data.items.reduce(
(total, item) => ({
cpu:
total.cpu +
KubernetesResourceReservationHelper.parseCPU(item.usage.cpu),
memory:
total.memory +
KubernetesResourceReservationHelper.megaBytesValue(item.usage.memory),
}),
{
cpu: 0,
memory: 0,
}
);
}