/* eslint-disable react/display-name */ import React, { useState, useEffect } from 'react'; import { useParams } from 'react-router-dom'; import CardBar from '@src/components/CardBar'; import { healthDataProps } from '.'; import { Tag, Tooltip, Utils } from 'knowdesign'; import api from '@src/api'; import { QuestionCircleOutlined } from '@ant-design/icons'; export default () => { const routeParams = useParams<{ clusterId: string; }>(); const [loading, setLoading] = useState(false); const [cardData, setCardData] = useState([]); const [healthData, setHealthData] = useState({ score: 0, passed: 0, total: 0, alive: 0, }); const cardItems = ['Partitions', 'PartitionsSkew', 'Leaders', 'LeadersSkew', 'LogSize']; const healthItems = ['HealthScore_Brokers', 'HealthCheckPassed_Brokers', 'HealthCheckTotal_Brokers', 'Alive']; useEffect(() => { setLoading(true); // 获取左侧健康度 const brokerMetric = Utils.post(api.getBrokerMetricPoints(Number(routeParams.clusterId)), healthItems).then((data: any) => { const healthResData: any = {}; // healthResData.score = data?.find((item:any) => item.metricName === 'HealthScore_Brokers')?.value || 0; // healthResData.passed = data?.find((item:any) => item.metricName === 'HealthCheckPassed_Brokers')?.value || 0; // healthResData.total = data?.find((item:any) => item.metricName === 'HealthCheckTotal_Brokers')?.value || 0; healthResData.score = data?.metrics?.['HealthScore_Brokers'] || 0; healthResData.passed = data?.metrics?.['HealthCheckPassed_Brokers'] || 0; healthResData.total = data?.metrics?.['HealthCheckTotal_Brokers'] || 0; healthResData.alive = data?.metrics?.['Alive'] || 0; setHealthData(healthResData); }); // 获取右侧状态 const brokersState = Utils.request(api.getBrokersState(routeParams?.clusterId)).then((data) => { const rightData = JSON.parse(JSON.stringify(data)); const cordRightMap = [ { title: 'Brokers', value: () => { return (
{rightData?.brokerCount} {rightData?.brokerVersionList?.map((item: any, key: number) => { return ( {item} ); })}
); }, }, { title: 'Controller', value: () => { return rightData?.kafkaController && rightData?.kafkaControllerAlive ? (
{rightData?.kafkaController.brokerId} {rightData?.kafkaController.brokerHost}
) : ( None ); }, }, { title() { return (
Similar Config
); }, value: () => { return ( <> { {rightData?.configSimilar ? 'YES' : 'NO'} } ); }, }, ]; setCardData(cordRightMap); }); Promise.all([brokerMetric, brokersState]).finally(() => { setLoading(false); }); }, [routeParams.clusterId]); // console.log('cardData', cardData, healthData); return ; };