diff --git a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/model/InternalClusterMetrics.java b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/model/InternalClusterMetrics.java index 28717dbcd3..66bf2ccaa7 100644 --- a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/model/InternalClusterMetrics.java +++ b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/model/InternalClusterMetrics.java @@ -27,4 +27,5 @@ public class InternalClusterMetrics { private final Map internalBrokerMetrics; private final List metrics; private final int zooKeeperStatus; + private final String version; } diff --git a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/KafkaService.java b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/KafkaService.java index d61f807c15..cc978d7a37 100644 --- a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/KafkaService.java +++ b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/KafkaService.java @@ -159,6 +159,7 @@ public class KafkaService { .onlinePartitionCount(topicsMetrics.getOnlinePartitionCount()) .offlinePartitionCount(topicsMetrics.getOfflinePartitionCount()) .zooKeeperStatus(ClusterUtil.convertToIntServerStatus(zookeeperStatus)) + .version(version) .build(); return currentCluster.toBuilder() diff --git a/kafka-ui-contract/src/main/resources/swagger/kafka-ui-api.yaml b/kafka-ui-contract/src/main/resources/swagger/kafka-ui-api.yaml index 488566c166..2bb431ac6e 100644 --- a/kafka-ui-contract/src/main/resources/swagger/kafka-ui-api.yaml +++ b/kafka-ui-contract/src/main/resources/swagger/kafka-ui-api.yaml @@ -1417,6 +1417,8 @@ components: type: array items: $ref: '#/components/schemas/BrokerDiskUsage' + version: + type: string BrokerDiskUsage: type: object diff --git a/kafka-ui-react-app/src/components/Brokers/Brokers.tsx b/kafka-ui-react-app/src/components/Brokers/Brokers.tsx index 982cda4568..9a14fe1cf2 100644 --- a/kafka-ui-react-app/src/components/Brokers/Brokers.tsx +++ b/kafka-ui-react-app/src/components/Brokers/Brokers.tsx @@ -27,6 +27,7 @@ const Brokers: React.FC = ({ diskUsage, fetchClusterStats, fetchBrokers, + version, }) => { const { clusterName } = useParams<{ clusterName: ClusterName }>(); @@ -56,6 +57,9 @@ const Brokers: React.FC = ({ {zkOnline ? 'Online' : 'Offline'} + + {version} + diff --git a/kafka-ui-react-app/src/components/Brokers/BrokersContainer.ts b/kafka-ui-react-app/src/components/Brokers/BrokersContainer.ts index 9dad90a0ab..d61a049f76 100644 --- a/kafka-ui-react-app/src/components/Brokers/BrokersContainer.ts +++ b/kafka-ui-react-app/src/components/Brokers/BrokersContainer.ts @@ -12,6 +12,7 @@ import { getOutOfSyncReplicasCount, getUnderReplicatedPartitionCount, getDiskUsage, + getVersion, } from 'redux/reducers/brokers/selectors'; import Brokers from 'components/Brokers/Brokers'; @@ -26,6 +27,7 @@ const mapStateToProps = (state: RootState) => ({ outOfSyncReplicasCount: getOutOfSyncReplicasCount(state), underReplicatedPartitionCount: getUnderReplicatedPartitionCount(state), diskUsage: getDiskUsage(state), + version: getVersion(state), }); const mapDispatchToProps = { diff --git a/kafka-ui-react-app/src/components/Brokers/__test__/Brokers.spec.tsx b/kafka-ui-react-app/src/components/Brokers/__test__/Brokers.spec.tsx index 7aab0fc3e5..2ec1b16f0b 100644 --- a/kafka-ui-react-app/src/components/Brokers/__test__/Brokers.spec.tsx +++ b/kafka-ui-react-app/src/components/Brokers/__test__/Brokers.spec.tsx @@ -26,6 +26,7 @@ describe('Brokers Component', () => { inSyncReplicasCount={0} outOfSyncReplicasCount={0} underReplicatedPartitionCount={0} + version="1" fetchClusterStats={jest.fn()} fetchBrokers={jest.fn()} diskUsage={undefined} @@ -61,6 +62,7 @@ describe('Brokers Component', () => { inSyncReplicasCount={64} outOfSyncReplicasCount={0} underReplicatedPartitionCount={0} + version="1" fetchClusterStats={jest.fn()} fetchBrokers={jest.fn()} diskUsage={[ diff --git a/kafka-ui-react-app/src/components/Brokers/__test__/__snapshots__/Brokers.spec.tsx.snap b/kafka-ui-react-app/src/components/Brokers/__test__/__snapshots__/Brokers.spec.tsx.snap index 24cb30bd53..be83a9ba00 100644 --- a/kafka-ui-react-app/src/components/Brokers/__test__/__snapshots__/Brokers.spec.tsx.snap +++ b/kafka-ui-react-app/src/components/Brokers/__test__/__snapshots__/Brokers.spec.tsx.snap @@ -69,6 +69,7 @@ exports[`Brokers Component Brokers Empty matches Brokers Empty snapshot 1`] = ` onlinePartitionCount={0} outOfSyncReplicasCount={0} underReplicatedPartitionCount={0} + version="1" zooKeeperStatus={0} >
+ +
+
+

+ Version +

+

+ 1 +

+
+
+
@@ -400,6 +424,7 @@ exports[`Brokers Component Brokers matches snapshot 1`] = ` onlinePartitionCount={64} outOfSyncReplicasCount={0} underReplicatedPartitionCount={0} + version="1" zooKeeperStatus={1} >
+ +
+
+

+ Version +

+

+ 1 +

+
+
+
diff --git a/kafka-ui-react-app/src/components/Dashboard/ClustersWidget/ClusterWidget.tsx b/kafka-ui-react-app/src/components/Dashboard/ClustersWidget/ClusterWidget.tsx index 43d076ae15..4231e27761 100644 --- a/kafka-ui-react-app/src/components/Dashboard/ClustersWidget/ClusterWidget.tsx +++ b/kafka-ui-react-app/src/components/Dashboard/ClustersWidget/ClusterWidget.tsx @@ -18,6 +18,7 @@ const ClusterWidget: React.FC = ({ bytesOutPerSec, onlinePartitionCount, readOnly, + version, }, }) => (
@@ -38,6 +39,10 @@ const ClusterWidget: React.FC = ({ + + + + + + + + + +
Version{version}
Brokers diff --git a/kafka-ui-react-app/src/components/Dashboard/ClustersWidget/__test__/__snapshots__/ClusterWidget.spec.tsx.snap b/kafka-ui-react-app/src/components/Dashboard/ClustersWidget/__test__/__snapshots__/ClusterWidget.spec.tsx.snap index 8ab8a406d3..8d6b8173f8 100644 --- a/kafka-ui-react-app/src/components/Dashboard/ClustersWidget/__test__/__snapshots__/ClusterWidget.spec.tsx.snap +++ b/kafka-ui-react-app/src/components/Dashboard/ClustersWidget/__test__/__snapshots__/ClusterWidget.spec.tsx.snap @@ -21,6 +21,12 @@ exports[`ClusterWidget when cluster is offline matches snapshot 1`] = ` className="table is-fullwidth" >
+ Version + +
Brokers @@ -100,6 +106,12 @@ exports[`ClusterWidget when cluster is online matches snapshot 1`] = ` className="table is-fullwidth" >
+ Version + +
Brokers diff --git a/kafka-ui-react-app/src/redux/reducers/brokers/selectors.ts b/kafka-ui-react-app/src/redux/reducers/brokers/selectors.ts index 3c6ef947dd..9b841b464b 100644 --- a/kafka-ui-react-app/src/redux/reducers/brokers/selectors.ts +++ b/kafka-ui-react-app/src/redux/reducers/brokers/selectors.ts @@ -48,3 +48,8 @@ export const getDiskUsage = createSelector( brokersState, ({ diskUsage }) => diskUsage ); + +export const getVersion = createSelector( + brokersState, + ({ version }) => version +);