import React from 'react'; import { ClusterName, ZooKeeperStatus } from 'redux/interfaces'; import useInterval from 'lib/hooks/useInterval'; import BytesFormatted from 'components/common/BytesFormatted/BytesFormatted'; import { useParams } from 'react-router'; import TagStyled from 'components/common/Tag/Tag.styled'; 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 { useAppDispatch, useAppSelector } from 'lib/hooks/redux'; import { fetchClusterStats, selectStats, } from 'redux/reducers/brokers/brokersSlice'; const Brokers: React.FC = () => { const dispatch = useAppDispatch(); const { clusterName } = useParams<{ clusterName: ClusterName }>(); const { brokerCount, activeControllers, zooKeeperStatus, onlinePartitionCount, offlinePartitionCount, inSyncReplicasCount, outOfSyncReplicasCount, underReplicatedPartitionCount, diskUsage, version, } = useAppSelector(selectStats); React.useEffect(() => { dispatch(fetchClusterStats(clusterName)); }, [fetchClusterStats, clusterName]); useInterval(() => { fetchClusterStats(clusterName); }, 5000); const zkOnline = zooKeeperStatus === ZooKeeperStatus.online; return ( <> {brokerCount} {activeControllers} {zkOnline ? 'online' : 'offline'} {version} {offlinePartitionCount && offlinePartitionCount > 0 ? ( {onlinePartitionCount} ) : ( onlinePartitionCount )} {' '} of {(onlinePartitionCount || 0) + (offlinePartitionCount || 0)} {underReplicatedPartitionCount} {inSyncReplicasCount} {outOfSyncReplicasCount} {diskUsage?.map(({ brokerId, segmentSize, segmentCount }) => ( ))}
{brokerId} {segmentCount}
); }; export default Brokers;