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 (
<>
{brokerId} |
|
{segmentCount} |