import React from 'react'; import { ClusterName } from 'redux/interfaces'; import BytesFormatted from 'components/common/BytesFormatted/BytesFormatted'; import { NavLink } from 'react-router-dom'; import TableHeaderCell from 'components/common/table/TableHeaderCell/TableHeaderCell'; import { Table } from 'components/common/table/Table/Table.styled'; import PageHeading from 'components/common/PageHeading/PageHeading'; import * as Metrics from 'components/common/Metrics'; import useAppParams from 'lib/hooks/useAppParams'; import useBrokers from 'lib/hooks/useBrokers'; import useClusterStats from 'lib/hooks/useClusterStats'; const BrokersList: React.FC = () => { const { clusterName } = useAppParams<{ clusterName: ClusterName }>(); const { data: clusterStats } = useClusterStats(clusterName); const { data: brokers } = useBrokers(clusterName); if (!clusterStats) return null; const { brokerCount, activeControllers, onlinePartitionCount, offlinePartitionCount, inSyncReplicasCount, outOfSyncReplicasCount, underReplicatedPartitionCount, diskUsage, version, } = clusterStats; const replicas = (inSyncReplicasCount ?? 0) + (outOfSyncReplicasCount ?? 0); const areAllInSync = inSyncReplicasCount && replicas === inSyncReplicasCount; const partitionIsOffline = offlinePartitionCount && offlinePartitionCount > 0; return ( <> {brokerCount} {activeControllers} {version} {partitionIsOffline ? ( {onlinePartitionCount} ) : ( onlinePartitionCount )} {' '} of {(onlinePartitionCount || 0) + (offlinePartitionCount || 0)} {!underReplicatedPartitionCount ? ( {underReplicatedPartitionCount} ) : ( {underReplicatedPartitionCount} )} {areAllInSync ? ( replicas ) : ( {inSyncReplicasCount} )} of {replicas} {outOfSyncReplicasCount} {(!diskUsage || diskUsage.length === 0) && ( )} {diskUsage && diskUsage.length !== 0 && diskUsage.map(({ brokerId, segmentSize, segmentCount }) => { const brokerItem = brokers?.find(({ id }) => id === brokerId); return ( ); })}
Disk usage data not available
{brokerId} {segmentCount} {brokerItem?.port} {brokerItem?.host}
); }; export default BrokersList;