mirror of
https://github.com/didi/KnowStreaming.git
synced 2026-01-04 11:52:07 +08:00
kafka-manager 2.0
This commit is contained in:
285
kafka-manager-console/src/store/cluster.ts
Normal file
285
kafka-manager-console/src/store/cluster.ts
Normal file
@@ -0,0 +1,285 @@
|
||||
import { observable, action } from 'mobx';
|
||||
import { getClusterMetaTopics, getClusters, getAllClusters, getClusterModes, applyOrder, getClusterComboList, getClusterBasicInfo, getClusterDetailRealTime, getClusterDetailMetrice, getClusterDetailTopics, getClusterDetailBroker, getClusterDetailThrottles } from 'lib/api';
|
||||
import { IClusterData, IConfigInfo, IOrderParams, IBasicInfo, IClusterReal, IClusterMetrics, IOptionType, IClusterTopics, IBrokerData, IThrottles } from 'types/base-type';
|
||||
import { getClusterMetricOption } from 'lib/line-charts-config';
|
||||
import { timestore } from './time';
|
||||
|
||||
class Cluster {
|
||||
@observable
|
||||
public loading: boolean = false;
|
||||
|
||||
@observable
|
||||
public realLoading: boolean = false;
|
||||
|
||||
@observable
|
||||
public filterLoading: boolean = false;
|
||||
|
||||
@observable
|
||||
public clusterData: IClusterData[] = [];
|
||||
|
||||
@observable
|
||||
public selectData: IClusterData[] = [{
|
||||
value: -1,
|
||||
label: '所有集群',
|
||||
} as IClusterData,
|
||||
];
|
||||
|
||||
@observable
|
||||
public allData: IClusterData[] = [];
|
||||
|
||||
@observable
|
||||
public selectAllData: IClusterData[] = [{
|
||||
value: -1,
|
||||
label: '所有集群',
|
||||
} as IClusterData,
|
||||
];
|
||||
|
||||
@observable
|
||||
public clusterComboList: IConfigInfo[] = [];
|
||||
|
||||
@observable
|
||||
public active: number = -1;
|
||||
|
||||
@observable
|
||||
public allActive: number = -1;
|
||||
|
||||
@observable
|
||||
public clusterModes: IConfigInfo[] = [];
|
||||
|
||||
@observable
|
||||
public clusterMode: IConfigInfo[] = [];
|
||||
|
||||
@observable
|
||||
public basicInfo: IBasicInfo = null;
|
||||
|
||||
@observable
|
||||
public clusterRealData: IClusterReal = null;
|
||||
|
||||
@observable
|
||||
public clusterMetrics: IClusterMetrics[] = [];
|
||||
|
||||
@observable
|
||||
public type: IOptionType = 'byteIn/byteOut' ;
|
||||
|
||||
@observable
|
||||
public clusterTopics: IClusterTopics[] = [];
|
||||
|
||||
@observable
|
||||
public clusterBroker: IBrokerData[] = [];
|
||||
|
||||
@observable
|
||||
public clustersThrottles: IThrottles[] = [];
|
||||
|
||||
@observable
|
||||
public clusterMetaTopics: IClusterTopics[] = [];
|
||||
|
||||
@action.bound
|
||||
public setLoading(value: boolean) {
|
||||
this.loading = value;
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public setRealLoading(value: boolean) {
|
||||
this.realLoading = value;
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public setFilterLoading(value: boolean) {
|
||||
this.filterLoading = value;
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public setData(data: IClusterData[]) {
|
||||
data = data.map(item => {
|
||||
return {
|
||||
...item,
|
||||
label: `${item.clusterName}${item.description ? '(' + item.description + ')' : ''}`,
|
||||
value: item.clusterId,
|
||||
};
|
||||
}) || [];
|
||||
this.selectData.push(...data);
|
||||
this.clusterData = data;
|
||||
this.setLoading(false);
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public changeCluster(data: number) {
|
||||
this.active = data;
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public setAllData(data: IClusterData[]) {
|
||||
data = data.map(item => {
|
||||
return {
|
||||
...item,
|
||||
label: `${item.clusterName}${item.description ? '(' + item.description + ')' : ''}`,
|
||||
value: item.clusterId,
|
||||
};
|
||||
}) || [];
|
||||
this.selectAllData.push(...data);
|
||||
this.allData = data;
|
||||
this.setLoading(false);
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public changeAllCluster(data: number) {
|
||||
this.allActive = data;
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public setClusterCombos(data: IConfigInfo[]) {
|
||||
this.clusterComboList = data || [];
|
||||
this.clusterComboList = this.clusterComboList.map(item => {
|
||||
return {
|
||||
...item,
|
||||
label: item.message,
|
||||
value: item.code,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public setClusterModes(data: IConfigInfo[]) {
|
||||
this.clusterModes = data;
|
||||
this.clusterModes = this.clusterModes.map(item => {
|
||||
return {
|
||||
...item,
|
||||
label: item.message,
|
||||
value: item.code,
|
||||
};
|
||||
});
|
||||
this.clusterMode = (this.clusterModes && this.clusterModes.filter(ele => ele.code !== 0) ) || []; // 去除 0 共享集群
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public setClusterBasicInfo(data: IBasicInfo) {
|
||||
this.basicInfo = data;
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public setClusterDetailRealTime(data: IClusterReal) {
|
||||
this.clusterRealData = data;
|
||||
this.setRealLoading(false);
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public changeType(type: IOptionType) {
|
||||
this.type = type;
|
||||
return getClusterMetricOption(type, this.clusterMetrics);
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public setClusterDetailMetrice(data: IClusterMetrics[]) {
|
||||
this.clusterMetrics = data;
|
||||
return this.changeType(this.type);
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public setClusterDetailTopics(data: IClusterTopics[]) {
|
||||
this.clusterTopics = data;
|
||||
this.setLoading(false);
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public setClusterDetailBroker(data: IBrokerData[]) {
|
||||
this.clusterBroker = data ? data.map((item, index) => {
|
||||
item.key = index;
|
||||
return item;
|
||||
}) : [];
|
||||
this.setLoading(false);
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public setClusterDetailThrottles(data: IThrottles[]) {
|
||||
this.clustersThrottles = data ? data.map((item, index) => {
|
||||
item.key = index;
|
||||
return item;
|
||||
}) : [];
|
||||
}
|
||||
|
||||
@action.bound
|
||||
public setClusterTopicsMeta(data: IClusterTopics[]) {
|
||||
this.clusterMetaTopics = data.map((item, index) => {
|
||||
item.key = index;
|
||||
return item;
|
||||
}) || [];
|
||||
const obj = {} as any;
|
||||
this.clusterMetaTopics = this.clusterMetaTopics.reduce((current, next) => {
|
||||
if (!obj[next.topicName]) {
|
||||
obj[next.topicName] = true;
|
||||
current.push(next);
|
||||
}
|
||||
return current;
|
||||
}, []);
|
||||
return this.clusterMetaTopics;
|
||||
}
|
||||
|
||||
public getClusters() {
|
||||
this.setLoading(true);
|
||||
getClusters().then(this.setData);
|
||||
}
|
||||
|
||||
public getAllClusters() {
|
||||
this.setLoading(true);
|
||||
getAllClusters().then(this.setAllData);
|
||||
}
|
||||
|
||||
public getClusterComboList() {
|
||||
getClusterComboList().then(this.setClusterCombos);
|
||||
}
|
||||
|
||||
public getClusterModes() {
|
||||
return getClusterModes().then(this.setClusterModes);
|
||||
}
|
||||
|
||||
public applyCluster(params: IOrderParams) {
|
||||
return applyOrder(params);
|
||||
}
|
||||
|
||||
public applyClusterOffline(params: IOrderParams) {
|
||||
return applyOrder(params).then(() => {
|
||||
this.getClusters();
|
||||
});
|
||||
}
|
||||
|
||||
public applyCpacity(params: IOrderParams) {
|
||||
return applyOrder(params);
|
||||
}
|
||||
|
||||
public getClusterBasicInfo(clusterId: number) {
|
||||
return getClusterBasicInfo(clusterId).then(this.setClusterBasicInfo);
|
||||
}
|
||||
|
||||
public getClusterDetailRealTime(clusterId: number) {
|
||||
this.setRealLoading(true);
|
||||
return getClusterDetailRealTime(clusterId).then(this.setClusterDetailRealTime);
|
||||
}
|
||||
|
||||
public getClusterDetailMetrice(clusterId: number) {
|
||||
return getClusterDetailMetrice(clusterId,
|
||||
timestore.startTime.format('x'),
|
||||
timestore.endTime.format('x')).then(this.setClusterDetailMetrice);
|
||||
}
|
||||
|
||||
public getClusterDetailTopics(clusterId: number) {
|
||||
this.setLoading(true);
|
||||
return getClusterDetailTopics(clusterId).then(this.setClusterDetailTopics);
|
||||
}
|
||||
|
||||
public getClusterDetailBroker(clusterId: number) {
|
||||
this.setLoading(true);
|
||||
return getClusterDetailBroker(clusterId).then(this.setClusterDetailBroker);
|
||||
}
|
||||
|
||||
public getClusterDetailThrottles(clusterId: number) {
|
||||
return getClusterDetailThrottles(clusterId).then(this.setClusterDetailThrottles);
|
||||
}
|
||||
|
||||
public getClusterMetaTopics(clusterId: number) {
|
||||
this.setFilterLoading(true);
|
||||
return getClusterMetaTopics(clusterId).then(this.setClusterTopicsMeta).finally(() => this.setFilterLoading(false));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const cluster = new Cluster();
|
||||
Reference in New Issue
Block a user