├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ ├── detail_optimizing.md │ ├── feature_request.md │ └── question.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── ci_build.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── Releases_Notes.md ├── bin ├── init_es_template.sh ├── shutdown.sh └── startup.sh ├── docs ├── contribute_guide │ ├── assets │ │ ├── 分支管理.drawio │ │ ├── 分支管理.png │ │ ├── 环境初始化.jpg │ │ ├── 申请合并.jpg │ │ └── 问题认领.jpg │ ├── 代码规范.md │ ├── 贡献名单.md │ └── 贡献指南.md ├── dev_guide │ ├── MYSQL密码加密手册.md │ ├── Task模块简介.md │ ├── assets │ │ └── support_kerberos_zk │ │ │ ├── need_modify_code.png │ │ │ ├── success_1.png │ │ │ ├── success_2.png │ │ │ └── watch_user_acl.png │ ├── 多版本兼容方案.md │ ├── 指标说明.md │ ├── 接入ZK带认证Kafka集群.md │ ├── 本地源码启动手册.md │ ├── 登录系统对接.md │ ├── 解决连接JMX失败.md │ └── 页面无数据排查手册.md ├── install_guide │ ├── 单机部署手册.md │ ├── 源码编译打包手册.md │ └── 版本升级手册.md └── user_guide │ ├── faq.md │ ├── 新旧对比手册.md │ └── 用户使用手册.md ├── km-biz ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── xiaojukeji │ └── know │ └── streaming │ └── km │ └── biz │ ├── broker │ ├── BrokerConfigManager.java │ ├── BrokerManager.java │ └── impl │ │ ├── BrokerConfigManagerImpl.java │ │ └── BrokerManagerImpl.java │ ├── cluster │ ├── ClusterBrokersManager.java │ ├── ClusterConnectorsManager.java │ ├── ClusterTopicsManager.java │ ├── ClusterZookeepersManager.java │ ├── MultiClusterPhyManager.java │ └── impl │ │ ├── ClusterBrokersManagerImpl.java │ │ ├── ClusterConnectorsManagerImpl.java │ │ ├── ClusterTopicsManagerImpl.java │ │ ├── ClusterZookeepersManagerImpl.java │ │ └── MultiClusterPhyManagerImpl.java │ ├── connect │ ├── connector │ │ ├── ConnectorManager.java │ │ ├── WorkerConnectorManager.java │ │ └── impl │ │ │ ├── ConnectorManagerImpl.java │ │ │ └── WorkerConnectorManageImpl.java │ └── mm2 │ │ ├── MirrorMakerManager.java │ │ └── impl │ │ └── MirrorMakerManagerImpl.java │ ├── group │ ├── GroupManager.java │ └── impl │ │ └── GroupManagerImpl.java │ ├── kafkaacl │ ├── KafkaAclManager.java │ └── impl │ │ └── KafkaAclManagerImpl.java │ ├── kafkauser │ ├── KafkaUserManager.java │ └── impl │ │ └── KafkaUserManagerImpl.java │ ├── reassign │ ├── ReassignManager.java │ └── impl │ │ └── ReassignManagerImpl.java │ ├── self │ ├── SelfManager.java │ └── impl │ │ └── SelfManagerImpl.java │ ├── topic │ ├── OpTopicManager.java │ ├── TopicConfigManager.java │ ├── TopicStateManager.java │ └── impl │ │ ├── OpTopicManagerImpl.java │ │ ├── TopicConfigManagerImpl.java │ │ └── TopicStateManagerImpl.java │ └── version │ ├── VersionControlManager.java │ └── impl │ └── VersionControlManagerImpl.java ├── km-collector ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── xiaojukeji │ └── know │ └── streaming │ └── km │ └── collector │ ├── metric │ ├── AbstractMetricCollector.java │ ├── connect │ │ ├── AbstractConnectMetricCollector.java │ │ ├── ConnectClusterMetricCollector.java │ │ ├── ConnectConnectorMetricCollector.java │ │ └── mm2 │ │ │ └── MirrorMakerMetricCollector.java │ └── kafka │ │ ├── AbstractKafkaMetricCollector.java │ │ ├── BrokerMetricCollector.java │ │ ├── ClusterMetricCollector.java │ │ ├── GroupMetricCollector.java │ │ ├── PartitionMetricCollector.java │ │ ├── TopicMetricCollector.java │ │ └── ZookeeperMetricCollector.java │ ├── service │ └── CollectThreadPoolService.java │ └── sink │ ├── AbstractMetricESSender.java │ ├── connect │ ├── ConnectClusterMetricESSender.java │ └── ConnectorMetricESSender.java │ ├── kafka │ ├── BrokerMetricESSender.java │ ├── ClusterMetricESSender.java │ ├── GroupMetricESSender.java │ ├── PartitionMetricESSender.java │ ├── TopicMetricESSender.java │ └── ZookeeperMetricESSender.java │ └── mm2 │ └── MirrorMakerMetricESSender.java ├── km-common ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── xiaojukeji │ └── know │ └── streaming │ └── km │ └── common │ ├── annotations │ ├── KafkaSource.java │ └── enterprise │ │ ├── EnterpriseLicense.java │ │ ├── EnterpriseLoadReBalance.java │ │ └── EnterpriseTesting.java │ ├── bean │ ├── dto │ │ ├── BaseDTO.java │ │ ├── acl │ │ │ └── AclAtomDTO.java │ │ ├── cluster │ │ │ ├── ClusterBrokersOverviewDTO.java │ │ │ ├── ClusterConnectorsOverviewDTO.java │ │ │ ├── ClusterGroupSummaryDTO.java │ │ │ ├── ClusterMirrorMakersOverviewDTO.java │ │ │ ├── ClusterPhyAddDTO.java │ │ │ ├── ClusterPhyBaseDTO.java │ │ │ ├── ClusterPhyModifyDTO.java │ │ │ ├── ClusterTopicsOverviewDTO.java │ │ │ ├── ClusterZookeepersOverviewDTO.java │ │ │ └── MultiClusterDashboardDTO.java │ │ ├── config │ │ │ ├── KafkaConfigDTO.java │ │ │ ├── KafkaConfigModifyBrokerDTO.java │ │ │ ├── KafkaConfigModifyTopicDTO.java │ │ │ └── platform │ │ │ │ └── PlatformClusterConfigDTO.java │ │ ├── connect │ │ │ ├── ClusterConnectorDTO.java │ │ │ ├── cluster │ │ │ │ └── ConnectClusterDTO.java │ │ │ ├── connector │ │ │ │ ├── ConnectorActionDTO.java │ │ │ │ ├── ConnectorCreateDTO.java │ │ │ │ └── ConnectorDeleteDTO.java │ │ │ ├── mm2 │ │ │ │ ├── MirrorMaker2ActionDTO.java │ │ │ │ ├── MirrorMaker2DeleteDTO.java │ │ │ │ └── MirrorMakerCreateDTO.java │ │ │ └── task │ │ │ │ └── TaskActionDTO.java │ │ ├── group │ │ │ ├── GroupOffsetDeleteDTO.java │ │ │ ├── GroupOffsetResetDTO.java │ │ │ └── GroupTopicConsumedDTO.java │ │ ├── ha │ │ │ └── mirror │ │ │ │ ├── MirrorTopicCreateDTO.java │ │ │ │ └── MirrorTopicDeleteDTO.java │ │ ├── job │ │ │ ├── JobDTO.java │ │ │ └── JobPaginationDTO.java │ │ ├── kafkauser │ │ │ ├── ClusterKafkaUserDTO.java │ │ │ └── ClusterKafkaUserTokenDTO.java │ │ ├── metrices │ │ │ ├── MetricDTO.java │ │ │ ├── MetricDetailDTO.java │ │ │ ├── MetricGroupPartitionDTO.java │ │ │ ├── MetricGroupTopicDTO.java │ │ │ ├── MetricRealTimeDTO.java │ │ │ ├── MetricsBrokerDTO.java │ │ │ ├── MetricsClusterPhyDTO.java │ │ │ ├── MetricsTopicDTO.java │ │ │ ├── UserMetricConfigDTO.java │ │ │ ├── connect │ │ │ │ ├── MetricsConnectClustersDTO.java │ │ │ │ └── MetricsConnectorsDTO.java │ │ │ └── mm2 │ │ │ │ └── MetricsMirrorMakersDTO.java │ │ ├── oprecord │ │ │ └── OperateRecordDTO.java │ │ ├── pagination │ │ │ ├── PaginationBaseDTO.java │ │ │ ├── PaginationGeneralDTO.java │ │ │ ├── PaginationMulFuzzySearchDTO.java │ │ │ ├── PaginationMulPreciseFilterDTO.java │ │ │ ├── PaginationMulRangeFilterDTO.java │ │ │ ├── PaginationPreciseAndFuzzySearchDTO.java │ │ │ ├── PaginationSortDTO.java │ │ │ └── field │ │ │ │ ├── PaginationFuzzySearchFieldDTO.java │ │ │ │ ├── PaginationPreciseFilterFieldDTO.java │ │ │ │ └── PaginationRangeFilterFieldDTO.java │ │ ├── partition │ │ │ └── PartitionOffsetDTO.java │ │ ├── reassign │ │ │ ├── ReassignTopicOverviewDTO.java │ │ │ ├── change │ │ │ │ └── CreateChangeReplicasPlanDTO.java │ │ │ ├── move │ │ │ │ └── CreateMoveReplicaPlanDTO.java │ │ │ └── plan │ │ │ │ ├── ReassignPartitionPlanDTO.java │ │ │ │ └── ReassignTopicPlanDTO.java │ │ ├── topic │ │ │ ├── ClusterTopicDTO.java │ │ │ ├── TopicCreateDTO.java │ │ │ ├── TopicExpansionDTO.java │ │ │ └── TopicRecordDTO.java │ │ └── util │ │ │ ├── ValidateKafkaBSDTO.java │ │ │ ├── ValidateKafkaDTO.java │ │ │ └── ValidateKafkaZKDTO.java │ ├── entity │ │ ├── BaseEntity.java │ │ ├── EntityIdInterface.java │ │ ├── assign │ │ │ └── TopicAssignedCount.java │ │ ├── broker │ │ │ ├── Broker.java │ │ │ └── BrokerSpec.java │ │ ├── cluster │ │ │ ├── ClusterPhy.java │ │ │ ├── ClusterPhysHealthState.java │ │ │ └── ClusterPhysState.java │ │ ├── common │ │ │ ├── FutureTaskDelayQueueData.java │ │ │ └── IpPortData.java │ │ ├── config │ │ │ ├── BaseClusterConfigValue.java │ │ │ ├── JmxAuthConfig.java │ │ │ ├── JmxConfig.java │ │ │ ├── ZKConfig.java │ │ │ ├── healthcheck │ │ │ │ ├── BaseClusterHealthConfig.java │ │ │ │ ├── HealthAmountRatioConfig.java │ │ │ │ ├── HealthCompareValueConfig.java │ │ │ │ └── HealthDetectedInLatestMinutesConfig.java │ │ │ ├── kafkaconfig │ │ │ │ ├── KafkaConfigDetail.java │ │ │ │ └── KafkaTopicDefaultConfig.java │ │ │ └── metric │ │ │ │ └── UserMetricConfig.java │ │ ├── connect │ │ │ ├── ConnectCluster.java │ │ │ ├── ConnectClusterMetadata.java │ │ │ ├── ConnectWorker.java │ │ │ ├── WorkerConnector.java │ │ │ ├── config │ │ │ │ ├── ConnectConfigInfo.java │ │ │ │ ├── ConnectConfigInfos.java │ │ │ │ ├── ConnectConfigKeyInfo.java │ │ │ │ └── ConnectConfigValueInfo.java │ │ │ ├── connector │ │ │ │ ├── KSAbstractConnectState.java │ │ │ │ ├── KSConnector.java │ │ │ │ ├── KSConnectorInfo.java │ │ │ │ ├── KSConnectorState.java │ │ │ │ ├── KSConnectorStateInfo.java │ │ │ │ └── KSTaskState.java │ │ │ ├── mm2 │ │ │ │ └── MirrorMakerTopic.java │ │ │ └── plugin │ │ │ │ └── ConnectPluginBasic.java │ │ ├── group │ │ │ ├── Group.java │ │ │ ├── GroupTopic.java │ │ │ ├── GroupTopicMember.java │ │ │ └── GroupTopicPartition.java │ │ ├── ha │ │ │ └── HaActiveStandbyRelation.java │ │ ├── health │ │ │ ├── HealthCheckAggResult.java │ │ │ ├── HealthCheckResult.java │ │ │ └── HealthScoreResult.java │ │ ├── jmx │ │ │ └── ServerIdJmxPort.java │ │ ├── job │ │ │ ├── Job.java │ │ │ ├── JobStatus.java │ │ │ ├── content │ │ │ │ ├── BaseJobCreateContent.java │ │ │ │ └── JobCommunityReassignContent.java │ │ │ └── detail │ │ │ │ ├── JobDetail.java │ │ │ │ ├── JobModifyDetail.java │ │ │ │ ├── SubBrokerJobDetail.java │ │ │ │ ├── SubJobDetail.java │ │ │ │ ├── SubJobPartitionDetail.java │ │ │ │ ├── SubJobReplicaMoveDetail.java │ │ │ │ └── SubJobReplicaScalaDetail.java │ │ ├── kafka │ │ │ ├── KSDescribeGroupsResult.java │ │ │ ├── KSGroupDescription.java │ │ │ ├── KSListGroupsResult.java │ │ │ ├── KSMemberBaseAssignment.java │ │ │ ├── KSMemberConnectAssignment.java │ │ │ ├── KSMemberConsumerAssignment.java │ │ │ └── KSMemberDescription.java │ │ ├── kafkacontroller │ │ │ └── KafkaController.java │ │ ├── kafkauser │ │ │ └── KafkaUser.java │ │ ├── metrics │ │ │ ├── BaseMetrics.java │ │ │ ├── BrokerMetrics.java │ │ │ ├── ClusterMetrics.java │ │ │ ├── ClusterPagingMetrics.java │ │ │ ├── GroupMetrics.java │ │ │ ├── PartitionMetrics.java │ │ │ ├── ReplicationMetrics.java │ │ │ ├── TopicMetrics.java │ │ │ ├── TopicPagingMetrics.java │ │ │ ├── ZookeeperMetrics.java │ │ │ ├── connect │ │ │ │ ├── ConnectClusterMetrics.java │ │ │ │ ├── ConnectWorkerMetrics.java │ │ │ │ ├── ConnectorMetrics.java │ │ │ │ └── ConnectorTaskMetrics.java │ │ │ └── mm2 │ │ │ │ ├── MirrorMakerMetrics.java │ │ │ │ └── MirrorMakerTopicPartitionMetrics.java │ │ ├── offset │ │ │ └── KSOffsetSpec.java │ │ ├── pagination │ │ │ ├── Pagination.java │ │ │ └── PaginationData.java │ │ ├── param │ │ │ ├── VersionItemParam.java │ │ │ ├── acl │ │ │ │ ├── ACLAtomParam.java │ │ │ │ └── ACLDelByResParam.java │ │ │ ├── broker │ │ │ │ └── BrokerParam.java │ │ │ ├── cluster │ │ │ │ ├── ClusterParam.java │ │ │ │ ├── ClusterPhyParam.java │ │ │ │ └── ConnectClusterParam.java │ │ │ ├── config │ │ │ │ ├── KafkaBrokerConfigModifyParam.java │ │ │ │ └── KafkaTopicConfigParam.java │ │ │ ├── connect │ │ │ │ ├── ConnectorParam.java │ │ │ │ └── mm2 │ │ │ │ │ └── MirrorMakerParam.java │ │ │ ├── group │ │ │ │ ├── DeleteGroupParam.java │ │ │ │ ├── DeleteGroupTopicParam.java │ │ │ │ ├── DeleteGroupTopicPartitionParam.java │ │ │ │ └── GroupParam.java │ │ │ ├── kafkauser │ │ │ │ ├── KafkaUserParam.java │ │ │ │ └── KafkaUserReplaceParam.java │ │ │ ├── metric │ │ │ │ ├── BrokerMetricParam.java │ │ │ │ ├── ClusterMetricParam.java │ │ │ │ ├── GroupMetricParam.java │ │ │ │ ├── GroupTopicMetricParam.java │ │ │ │ ├── MetricParam.java │ │ │ │ ├── PartitionMetricParam.java │ │ │ │ ├── ReplicationMetricParam.java │ │ │ │ ├── TopicMetricParam.java │ │ │ │ ├── ZookeeperMetricParam.java │ │ │ │ └── connect │ │ │ │ │ ├── ConnectClusterMetricParam.java │ │ │ │ │ ├── ConnectorMetricParam.java │ │ │ │ │ └── mm2 │ │ │ │ │ └── MirrorMakerMetricParam.java │ │ │ ├── partition │ │ │ │ ├── BatchPartitionParam.java │ │ │ │ └── PartitionOffsetParam.java │ │ │ ├── reassign │ │ │ │ └── ExecuteReassignParam.java │ │ │ ├── topic │ │ │ │ ├── TopicCreateParam.java │ │ │ │ ├── TopicParam.java │ │ │ │ ├── TopicPartitionExpandParam.java │ │ │ │ └── TopicTruncateParam.java │ │ │ └── zookeeper │ │ │ │ └── ZookeeperParam.java │ │ ├── partition │ │ │ └── Partition.java │ │ ├── reassign │ │ │ ├── ReassignPlan.java │ │ │ ├── ReassignResult.java │ │ │ ├── ReassignState.java │ │ │ ├── job │ │ │ │ ├── ReassignJobDetail.java │ │ │ │ ├── ReassignSubJobExtendData.java │ │ │ │ ├── ReplaceReassignJob.java │ │ │ │ ├── ReplaceReassignSubJob.java │ │ │ │ └── detail │ │ │ │ │ ├── AbstractReassignJobDetailData.java │ │ │ │ │ ├── ReassignJobDetailDataGroupByPartition.java │ │ │ │ │ └── ReassignJobDetailDataGroupByTopic.java │ │ │ └── strategy │ │ │ │ ├── ReassignExecutionStrategy.java │ │ │ │ ├── ReassignTask.java │ │ │ │ └── ReplaceReassignSub.java │ │ ├── record │ │ │ └── RecordHeaderKS.java │ │ ├── result │ │ │ ├── BaseResult.java │ │ │ ├── PaginationResult.java │ │ │ ├── Result.java │ │ │ └── ResultStatus.java │ │ ├── search │ │ │ ├── SearchFuzzy.java │ │ │ ├── SearchPage.java │ │ │ ├── SearchQuery.java │ │ │ ├── SearchRange.java │ │ │ ├── SearchShould.java │ │ │ ├── SearchSort.java │ │ │ └── SearchTerm.java │ │ ├── topic │ │ │ ├── Topic.java │ │ │ ├── TopicConfig.java │ │ │ └── TopicPartitionKS.java │ │ ├── util │ │ │ └── KafkaValidate.java │ │ ├── version │ │ │ ├── VersionConnectJmxInfo.java │ │ │ ├── VersionControlItem.java │ │ │ ├── VersionJmxInfo.java │ │ │ ├── VersionMethodInfo.java │ │ │ └── VersionMetricControlItem.java │ │ └── zookeeper │ │ │ ├── Znode.java │ │ │ ├── ZookeeperInfo.java │ │ │ └── fourletterword │ │ │ ├── BaseFourLetterWordCmdData.java │ │ │ ├── ConfigCmdData.java │ │ │ ├── MonitorCmdData.java │ │ │ ├── ServerCmdData.java │ │ │ └── parser │ │ │ ├── ConfigCmdDataParser.java │ │ │ ├── FourLetterWordDataParser.java │ │ │ ├── MonitorCmdDataParser.java │ │ │ └── ServerCmdDataParser.java │ ├── event │ │ ├── cluster │ │ │ ├── ClusterPhyAddedEvent.java │ │ │ ├── ClusterPhyBaseEvent.java │ │ │ ├── ClusterPhyLoadChangedEvent.java │ │ │ └── connect │ │ │ │ ├── ClusterPhyDeletedEvent.java │ │ │ │ └── ConnectClusterLoadChangedEvent.java │ │ └── metric │ │ │ ├── BaseMetricEvent.java │ │ │ ├── BrokerMetricEvent.java │ │ │ ├── ClusterMetricEvent.java │ │ │ ├── GroupMetricEvent.java │ │ │ ├── PartitionMetricEvent.java │ │ │ ├── TopicMetricEvent.java │ │ │ ├── ZookeeperMetricEvent.java │ │ │ ├── connect │ │ │ ├── ConnectClusterMetricEvent.java │ │ │ └── ConnectorMetricEvent.java │ │ │ └── mm2 │ │ │ └── MirrorMakerMetricEvent.java │ ├── po │ │ ├── BaseESPO.java │ │ ├── BasePO.java │ │ ├── ControllerChangeLogPO.java │ │ ├── KafkaAclPO.java │ │ ├── KafkaUserPO.java │ │ ├── VersionControlItemPO.java │ │ ├── broker │ │ │ ├── BrokerConfigPO.java │ │ │ └── BrokerPO.java │ │ ├── changerecord │ │ │ └── KafkaChangeRecordPO.java │ │ ├── cluster │ │ │ └── ClusterPhyPO.java │ │ ├── config │ │ │ └── PlatformClusterConfigPO.java │ │ ├── connect │ │ │ ├── ConnectClusterPO.java │ │ │ ├── ConnectWorkerPO.java │ │ │ ├── ConnectorPO.java │ │ │ └── WorkerConnectorPO.java │ │ ├── group │ │ │ ├── GroupMemberPO.java │ │ │ └── GroupPO.java │ │ ├── ha │ │ │ └── HaActiveStandbyRelationPO.java │ │ ├── health │ │ │ └── HealthCheckResultPO.java │ │ ├── job │ │ │ └── JobPO.java │ │ ├── kafkacontrollr │ │ │ └── KafkaControllerPO.java │ │ ├── km │ │ │ └── KmNodePO.java │ │ ├── metrice │ │ │ ├── BaseMetricESPO.java │ │ │ ├── BrokerMetricPO.java │ │ │ ├── ClusterMetricPO.java │ │ │ ├── GroupMetricPO.java │ │ │ ├── PartitionMetricPO.java │ │ │ ├── ReplicationMetricPO.java │ │ │ ├── TopicMetricPO.java │ │ │ ├── ZookeeperMetricPO.java │ │ │ ├── connect │ │ │ │ ├── ConnectClusterMetricPO.java │ │ │ │ └── ConnectorMetricPO.java │ │ │ └── mm2 │ │ │ │ └── MirrorMakerMetricPO.java │ │ ├── partition │ │ │ └── PartitionPO.java │ │ ├── reassign │ │ │ ├── ReassignJobPO.java │ │ │ └── ReassignSubJobPO.java │ │ ├── topic │ │ │ └── TopicPO.java │ │ └── zookeeper │ │ │ └── ZookeeperInfoPO.java │ └── vo │ │ ├── BaseTimeVO.java │ │ ├── BaseVO.java │ │ ├── acl │ │ └── AclBindingVO.java │ │ ├── broker │ │ ├── BrokerBasicVO.java │ │ └── BrokerReplicaSummaryVO.java │ │ ├── changerecord │ │ └── KafkaChangeRecordVO.java │ │ ├── cluster │ │ ├── ClusterPhyBaseCombineExistVO.java │ │ ├── ClusterPhyBaseVO.java │ │ ├── ClusterPhyDashboardVO.java │ │ ├── ClusterPhysHealthStateVO.java │ │ ├── ClusterPhysStateVO.java │ │ ├── connect │ │ │ ├── ConnectClusterBasicCombineExistVO.java │ │ │ ├── ConnectClusterBasicVO.java │ │ │ └── ConnectStateVO.java │ │ ├── connector │ │ │ ├── ClusterConnectorOverviewVO.java │ │ │ ├── ClusterWorkerOverviewVO.java │ │ │ ├── ConnectorBasicCombineExistVO.java │ │ │ └── ConnectorBasicVO.java │ │ ├── mm2 │ │ │ ├── ClusterMirrorMakerOverviewVO.java │ │ │ ├── MirrorMakerBaseStateVO.java │ │ │ ├── MirrorMakerBasicVO.java │ │ │ └── MirrorMakerStateVO.java │ │ └── res │ │ │ ├── ClusterACLsStateVO.java │ │ │ ├── ClusterBrokersOverviewVO.java │ │ │ ├── ClusterBrokersStateVO.java │ │ │ ├── ClusterGroupsStateVO.java │ │ │ ├── ClusterPhyTopicsOverviewVO.java │ │ │ ├── ClusterTopicsStateVO.java │ │ │ └── ControllerChangeLogVO.java │ │ ├── config │ │ ├── kafka │ │ │ ├── KafkaBrokerConfigVO.java │ │ │ ├── KafkaInZKConfigChangedVO.java │ │ │ ├── KafkaTopicConfigVO.java │ │ │ └── KafkaTopicDefaultConfigVO.java │ │ ├── metric │ │ │ └── UserMetricConfigVO.java │ │ └── platform │ │ │ └── PlatformClusterConfigVO.java │ │ ├── connect │ │ ├── connector │ │ │ └── ConnectorStateVO.java │ │ ├── plugin │ │ │ ├── ConnectConfigInfoVO.java │ │ │ ├── ConnectConfigInfosVO.java │ │ │ ├── ConnectConfigKeyInfoVO.java │ │ │ ├── ConnectConfigValueInfoVO.java │ │ │ └── ConnectPluginBasicVO.java │ │ └── task │ │ │ └── KCTaskOverviewVO.java │ │ ├── group │ │ ├── GroupOverviewVO.java │ │ ├── GroupTopicBasicVO.java │ │ ├── GroupTopicConsumedDetailVO.java │ │ └── GroupTopicOverviewVO.java │ │ ├── ha │ │ └── mirror │ │ │ └── TopicMirrorInfoVO.java │ │ ├── health │ │ ├── HealthCheckConfigVO.java │ │ ├── HealthScoreBaseResultVO.java │ │ └── HealthScoreResultDetailVO.java │ │ ├── job │ │ ├── JobDetailVO.java │ │ ├── JobModifyDetailVO.java │ │ ├── JobOverViewVO.java │ │ ├── JobStateVO.java │ │ ├── JobTrafficBrokerVO.java │ │ ├── JobTypeVO.java │ │ └── sub │ │ │ ├── SubBrokerJobVO.java │ │ │ ├── SubJobClusterBalanceReplicaMoveVO.java │ │ │ ├── SubJobPartitionDetailVO.java │ │ │ ├── SubJobReplicaMoveVO.java │ │ │ ├── SubJobReplicaScalaVO.java │ │ │ └── SubJobVO.java │ │ ├── kafkacontroller │ │ └── KafkaControllerVO.java │ │ ├── kafkauser │ │ ├── KafkaUserTokenVO.java │ │ └── KafkaUserVO.java │ │ ├── log │ │ └── LogDirVO.java │ │ ├── metadata │ │ ├── BrokerMetadataCombineExistVO.java │ │ ├── BrokerMetadataVO.java │ │ ├── GroupMetadataCombineExistVO.java │ │ ├── TopicMetadataCombineExistVO.java │ │ └── TopicMetadataVO.java │ │ ├── metrics │ │ ├── line │ │ │ ├── MetricLineVO.java │ │ │ ├── MetricMultiLinesVO.java │ │ │ └── MetricMultiValuePointVO.java │ │ └── point │ │ │ └── MetricPointVO.java │ │ ├── reassign │ │ ├── ReassignTopicOverviewVO.java │ │ ├── job │ │ │ ├── RawReassignJobOverviewVO.java │ │ │ ├── RawReassignJobStatVO.java │ │ │ └── RawReassignJobTaskOverviewVO.java │ │ └── plan │ │ │ ├── ReassignPartitionPlanVO.java │ │ │ ├── ReassignPlanVO.java │ │ │ └── ReassignTopicPlanVO.java │ │ ├── self │ │ └── SelfMetricsVO.java │ │ ├── topic │ │ ├── TopicBrokersPartitionsSummaryVO.java │ │ ├── TopicRecordVO.java │ │ ├── TopicStateVO.java │ │ ├── broker │ │ │ ├── TopicBrokerAllVO.java │ │ │ └── TopicBrokerSingleVO.java │ │ └── partition │ │ │ └── TopicPartitionVO.java │ │ ├── util │ │ ├── KafkaBSValidateVO.java │ │ └── KafkaZKValidateVO.java │ │ ├── version │ │ ├── KmVersionVO.java │ │ └── VersionItemVO.java │ │ └── zookeeper │ │ ├── ClusterZookeepersOverviewVO.java │ │ ├── ClusterZookeepersStateVO.java │ │ ├── ZnodeStatVO.java │ │ └── ZnodeVO.java │ ├── component │ ├── BaseExtendFactory.java │ ├── BaseHandle.java │ ├── HandleFactory.java │ ├── RestTemplateConfig.java │ ├── RestTool.java │ └── SpringTool.java │ ├── constant │ ├── ApiPrefix.java │ ├── Constant.java │ ├── ESConstant.java │ ├── JobConstant.java │ ├── KafkaConstant.java │ ├── LoginConstant.java │ ├── MsgConstant.java │ ├── PaginationConstant.java │ ├── connect │ │ └── KafkaConnectConstant.java │ └── kafka │ │ ├── AbstractTopicConfig.java │ │ ├── TopicConfig0100.java │ │ ├── TopicConfig0101.java │ │ ├── TopicConfig0102.java │ │ ├── TopicConfig0110.java │ │ ├── TopicConfig1000.java │ │ ├── TopicConfig1100.java │ │ ├── TopicConfig2000.java │ │ └── TopicConfig2500.java │ ├── converter │ ├── ChangeRecordVOConverter.java │ ├── ClusterConverter.java │ ├── ClusterVOConverter.java │ ├── ConnectConverter.java │ ├── GroupConverter.java │ ├── HealthScoreVOConverter.java │ ├── KafkaAclConverter.java │ ├── KafkaConfigConverter.java │ ├── KafkaUserVOConverter.java │ ├── PartitionConverter.java │ ├── ReassignConverter.java │ ├── ReassignVOConverter.java │ ├── TopicConverter.java │ ├── TopicVOConverter.java │ └── ZnodeConverter.java │ ├── enums │ ├── AggTypeEnum.java │ ├── KafkaConfigTypeEnum.java │ ├── OffsetTypeEnum.java │ ├── SortTypeEnum.java │ ├── cluster │ │ ├── ClusterAuthTypeEnum.java │ │ └── ClusterRunStateEnum.java │ ├── config │ │ ├── ConfigDiffTypeEnum.java │ │ ├── ConfigGroupEnum.java │ │ └── ConfigStatusEnum.java │ ├── connect │ │ ├── ConnectActionEnum.java │ │ ├── ConnectStatusEnum.java │ │ └── ConnectorTypeEnum.java │ ├── group │ │ ├── DeleteGroupTypeEnum.java │ │ ├── GroupStateEnum.java │ │ └── GroupTypeEnum.java │ ├── ha │ │ └── HaResTypeEnum.java │ ├── health │ │ ├── HealthCheckDimensionEnum.java │ │ ├── HealthCheckNameEnum.java │ │ └── HealthStateEnum.java │ ├── jmx │ │ └── JmxEnum.java │ ├── job │ │ ├── JobActionEnum.java │ │ ├── JobHandleEnum.java │ │ ├── JobStatusEnum.java │ │ └── JobTypeEnum.java │ ├── operaterecord │ │ ├── ModuleEnum.java │ │ ├── OperationEnum.java │ │ └── RecordResultEnum.java │ ├── topic │ │ └── TopicTypeEnum.java │ ├── valid │ │ └── ValidateKafkaAddressErrorEnum.java │ ├── version │ │ ├── VersionEnum.java │ │ └── VersionItemTypeEnum.java │ └── zookeeper │ │ └── ZKRoleEnum.java │ ├── exception │ ├── AdminOperateException.java │ ├── AdminRunTimeException.java │ ├── AdminTaskCodeException.java │ ├── AdminTaskException.java │ ├── BaseException.java │ ├── ConfigException.java │ ├── DuplicateException.java │ ├── ESOperateException.java │ ├── ESRunTimeException.java │ ├── NotExistException.java │ ├── NotFindSubclassException.java │ ├── OperateForbiddenException.java │ ├── ParamErrorException.java │ ├── ThirdPartRemoteException.java │ └── VCHandlerNotExistException.java │ ├── jmx │ ├── JmxAttribute.java │ ├── JmxConnectorWrap.java │ └── JmxName.java │ └── utils │ ├── AESUtils.java │ ├── BackoffUtils.java │ ├── BeanUtil.java │ ├── CommonUtils.java │ ├── ConvertUtil.java │ ├── DateUtils.java │ ├── EnvUtil.java │ ├── FutureNoWaitUtil.java │ ├── FutureUtil.java │ ├── FutureWaitUtil.java │ ├── GitPropUtil.java │ ├── IndexNameUtils.java │ ├── KafkaConsumerFactory.java │ ├── LoggerUtil.java │ ├── MetricsUtils.java │ ├── MirrorMakerUtil.java │ ├── NamedThreadFactory.java │ ├── NetUtils.java │ ├── PaginationMetricsUtil.java │ ├── PaginationUtil.java │ ├── RetryExecutor.java │ ├── Triple.java │ ├── Tuple.java │ ├── ValidateUtils.java │ ├── VersionUtil.java │ ├── kafka │ ├── KSPartialKafkaAdminClient.java │ ├── KafkaReassignUtil.java │ └── KafkaReplicaAssignUtil.java │ └── zookeeper │ ├── FourLetterWordUtil.java │ └── ZookeeperUtils.java ├── km-console ├── .env ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .prettierrc.js ├── CHANGELOG.md ├── README.md ├── commitlint.config.js ├── d1.js ├── d1.json ├── lerna.json ├── package-lock.json ├── package.json ├── packages │ ├── config-manager-fe │ │ ├── .eslintignore │ │ ├── .gitignore │ │ ├── README.md │ │ ├── config │ │ │ ├── theme.js │ │ │ ├── webpack.common.js │ │ │ ├── webpack.dev.js │ │ │ └── webpack.prod.js │ │ ├── d1.js │ │ ├── d1.json │ │ ├── mock.json │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── src │ │ │ ├── @types │ │ │ │ └── index.d.ts │ │ │ ├── api │ │ │ │ └── index.ts │ │ │ ├── app.tsx │ │ │ ├── components │ │ │ │ ├── CardBar │ │ │ │ │ ├── index.less │ │ │ │ │ └── index.tsx │ │ │ │ ├── Message │ │ │ │ │ └── index.tsx │ │ │ │ ├── Notification │ │ │ │ │ └── index.tsx │ │ │ │ ├── TagsWithHide │ │ │ │ │ ├── index.less │ │ │ │ │ └── index.tsx │ │ │ │ └── TypicalListCard │ │ │ │ │ ├── index.less │ │ │ │ │ └── index.tsx │ │ │ ├── constants │ │ │ │ ├── axiosConfig.ts │ │ │ │ ├── common.ts │ │ │ │ └── menu.ts │ │ │ ├── index.html │ │ │ ├── index.less │ │ │ ├── index.tsx │ │ │ ├── locales │ │ │ │ ├── en.tsx │ │ │ │ └── zh.tsx │ │ │ └── pages │ │ │ │ ├── CommonConfig.tsx │ │ │ │ ├── ConfigManage │ │ │ │ ├── config.ts │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ │ ├── HomePage.tsx │ │ │ │ ├── OperationLog │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ │ ├── UserManage │ │ │ │ ├── CheckboxGroupContainer.tsx │ │ │ │ ├── RoleTabContent.tsx │ │ │ │ ├── UserTabContent.tsx │ │ │ │ ├── config.ts │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ └── webpack.config.js │ └── layout-clusters-fe │ │ ├── .eslintignore │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config │ │ ├── CountComponentWebpackPlugin.js │ │ ├── CoverHtmlWebpackPlugin.js │ │ ├── registerApps.js │ │ ├── systemsConfig.js │ │ ├── theme.js │ │ ├── webpack.common.js │ │ ├── webpack.dev.js │ │ └── webpack.prod.js │ │ ├── d1.js │ │ ├── d1.json │ │ ├── favicon.ico │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── src │ │ ├── @types │ │ │ └── index.d.ts │ │ ├── api │ │ │ └── index.ts │ │ ├── app.tsx │ │ ├── assets │ │ │ ├── DIDIFD-Black.otf │ │ │ ├── DIDIFD-Black.woff2 │ │ │ ├── DIDIFD-Medium.otf │ │ │ ├── DIDIFD-Medium.woff2 │ │ │ ├── DIDIFD-Regular.otf │ │ │ ├── DIDIFD-Regular.woff2 │ │ │ ├── arrowLarge.svg │ │ │ ├── arrowSmall.svg │ │ │ ├── beta-tag.png │ │ │ ├── chart.png │ │ │ ├── clusters-down-bg.png │ │ │ ├── clusters-live-bg.png │ │ │ ├── dashborad.png │ │ │ ├── empty.png │ │ │ ├── health-down-emoji.png │ │ │ ├── health-down.png │ │ │ ├── health-good-emoji.png │ │ │ ├── health-good.png │ │ │ ├── health-medium-emoji.png │ │ │ ├── health-medium.png │ │ │ ├── health-poor-emoji.png │ │ │ ├── health-poor.png │ │ │ ├── health-unknown.png │ │ │ ├── ks-logo.png │ │ │ ├── ks-logo.svg │ │ │ ├── leftTop.png │ │ │ ├── loading.gif │ │ │ ├── no-data.png │ │ │ ├── page-no-license.png │ │ │ ├── page403.png │ │ │ ├── page404.png │ │ │ ├── rightBottom.png │ │ │ └── state.png │ │ ├── components │ │ │ ├── CardBar │ │ │ │ ├── ACLsCardBar.tsx │ │ │ │ ├── BrokerDetailHealthCheck.tsx │ │ │ │ ├── BrokerHealthCheck.tsx │ │ │ │ ├── ConnectCard.tsx │ │ │ │ ├── ConnectDetailCard.tsx │ │ │ │ ├── ConsumerGroupHealthCheck.tsx │ │ │ │ ├── JobsCheck.tsx │ │ │ │ ├── LoadRebalanceCardBar.tsx │ │ │ │ ├── MirrorMakerCard.tsx │ │ │ │ ├── MirrorMakerDetailCard.tsx │ │ │ │ ├── StateChart.tsx │ │ │ │ ├── TopicDetailHealthCheck.tsx │ │ │ │ ├── TopicHealthCheck.tsx │ │ │ │ ├── ZookeeperCard.tsx │ │ │ │ ├── const.ts │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── ChartOperateBar │ │ │ │ ├── MetricSelect.tsx │ │ │ │ ├── NodeSelect.tsx │ │ │ │ ├── image │ │ │ │ │ └── empty.png │ │ │ │ ├── index.tsx │ │ │ │ └── style │ │ │ │ │ ├── index.less │ │ │ │ │ ├── indicator-drawer.less │ │ │ │ │ ├── node-scope.less │ │ │ │ │ └── query-module.less │ │ │ ├── CodeMirrorFormItem │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── CopyContent │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── DDSearchInput │ │ │ │ ├── index.tsx │ │ │ │ └── style │ │ │ │ │ └── index.less │ │ │ ├── DragGroup │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── DraggableCharts │ │ │ │ ├── ChartList.tsx │ │ │ │ ├── Detail.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── HealthState │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── Message │ │ │ │ └── index.tsx │ │ │ ├── Notification │ │ │ │ └── index.tsx │ │ │ ├── RenderEmpty │ │ │ │ └── index.tsx │ │ │ ├── SmallChart │ │ │ │ └── index.tsx │ │ │ ├── SwitchTab │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── TagsWithHide │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── TopicJob │ │ │ │ ├── PreviewTaskPlan.tsx │ │ │ │ ├── ReplicaChange.tsx │ │ │ │ ├── ReplicaMove.tsx │ │ │ │ ├── TopicMirror.tsx │ │ │ │ └── index.less │ │ │ ├── TourGuide │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ └── steps.ts │ │ │ └── utils.ts │ │ ├── constants │ │ │ ├── axiosConfig.ts │ │ │ ├── chartConfig.ts │ │ │ ├── common.ts │ │ │ ├── menu.tsx │ │ │ └── reg.ts │ │ ├── index.html │ │ ├── index.less │ │ ├── index.tsx │ │ ├── locales │ │ │ ├── en.tsx │ │ │ └── zh.tsx │ │ ├── pages │ │ │ ├── BrokerControllerChangeLog │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── BrokerDashboard │ │ │ │ └── index.tsx │ │ │ ├── BrokerDetail │ │ │ │ ├── Configuration.tsx │ │ │ │ ├── ConfigurationEdit.tsx │ │ │ │ ├── DataLogs.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── BrokerList │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── CommonConfig.tsx │ │ │ ├── CommonRoute.tsx │ │ │ ├── Connect │ │ │ │ ├── AddConnector.tsx │ │ │ │ ├── AddConnectorUseJSON.tsx │ │ │ │ ├── Delete.tsx │ │ │ │ ├── Detail.tsx │ │ │ │ ├── HasConnector.tsx │ │ │ │ ├── Workers.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── ConnectDashboard │ │ │ │ ├── MetricSelect.tsx │ │ │ │ ├── MetricsFilter.tsx │ │ │ │ ├── SelectContent.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── ConsumerGroup │ │ │ │ ├── Delete.tsx │ │ │ │ ├── Detail.tsx │ │ │ │ ├── ExpandedRow.tsx │ │ │ │ ├── ResetOffsetDrawer.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── Consumers │ │ │ │ ├── ConsumerGroupDetail.tsx │ │ │ │ ├── ResetOffsetDrawer.tsx │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ └── interface.ts │ │ │ ├── ErrorPages │ │ │ │ ├── NoLicense.tsx │ │ │ │ ├── Page403.tsx │ │ │ │ ├── Page404.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── GroupList │ │ │ │ ├── config.tsx │ │ │ │ └── index.tsx │ │ │ ├── Jobs │ │ │ │ ├── ExpandedRow.tsx │ │ │ │ ├── NodeTraffic.tsx │ │ │ │ ├── PopoverBroker.tsx │ │ │ │ ├── RebalancePlan.tsx │ │ │ │ ├── TeskDetails.tsx │ │ │ │ ├── ViewJobsProgress.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── LoadRebalance │ │ │ │ ├── BalanceDrawer.tsx │ │ │ │ ├── BalanceEditTable.tsx │ │ │ │ ├── BalanceFilter.tsx │ │ │ │ ├── ClusterNorms.tsx │ │ │ │ ├── CronInput.tsx │ │ │ │ ├── HistoryDrawer.tsx │ │ │ │ ├── PlanDrawer.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ └── style │ │ │ │ │ ├── BalanceDrawer.less │ │ │ │ │ └── CronInput.less │ │ │ ├── Login │ │ │ │ ├── config.tsx │ │ │ │ ├── img │ │ │ │ │ ├── eg1-content.png │ │ │ │ │ ├── eg1-title.png │ │ │ │ │ ├── eg2-content.png │ │ │ │ │ ├── login-bg-1.png │ │ │ │ │ └── login-bg.png │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ └── login.tsx │ │ │ ├── MirrorMaker2 │ │ │ │ ├── AddMM2.tsx │ │ │ │ ├── AddMM2JSON.tsx │ │ │ │ ├── Delete.tsx │ │ │ │ ├── Detail.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── MirrorMakerDashBoard │ │ │ │ ├── HasConnector.tsx │ │ │ │ └── index.tsx │ │ │ ├── MutliClusterPage │ │ │ │ ├── AccessCluster.tsx │ │ │ │ ├── AccessClusterConfig.tsx │ │ │ │ ├── CustomCheckGroup.tsx │ │ │ │ ├── HomePage.tsx │ │ │ │ ├── List.tsx │ │ │ │ ├── config.ts │ │ │ │ └── index.less │ │ │ ├── SecurityACLs │ │ │ │ ├── EditDrawer.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── SecurityUsers │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── SingleClusterDetail │ │ │ │ ├── ChangeLog.tsx │ │ │ │ ├── CheckDetail.tsx │ │ │ │ ├── DetailChart │ │ │ │ │ ├── config.tsx │ │ │ │ │ ├── index.less │ │ │ │ │ └── index.tsx │ │ │ │ ├── HealthySetting.tsx │ │ │ │ ├── LeftSider.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── TestingConsumer │ │ │ │ ├── Consume.tsx │ │ │ │ ├── component │ │ │ │ │ ├── ConfigForm.tsx │ │ │ │ │ ├── Result.tsx │ │ │ │ │ ├── TaskTabs.tsx │ │ │ │ │ └── style │ │ │ │ │ │ ├── form.less │ │ │ │ │ │ ├── result.less │ │ │ │ │ │ └── tabs.less │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── TestingProduce │ │ │ │ ├── Produce.tsx │ │ │ │ ├── component │ │ │ │ │ ├── ConfigFrom.tsx │ │ │ │ │ ├── CustomTextArea.tsx │ │ │ │ │ ├── EditTable.tsx │ │ │ │ │ └── style │ │ │ │ │ │ ├── edit-table.less │ │ │ │ │ │ └── form.less │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── TopicDashboard │ │ │ │ └── index.tsx │ │ │ ├── TopicDetail │ │ │ │ ├── ACLs.tsx │ │ │ │ ├── BrokersDetail.tsx │ │ │ │ ├── Configuration.tsx │ │ │ │ ├── ConfigurationEdit.tsx │ │ │ │ ├── ConsumerGroupDetail.tsx │ │ │ │ ├── ConsumerGroups.tsx │ │ │ │ ├── Messages.tsx │ │ │ │ ├── Replicator.tsx │ │ │ │ ├── ResetOffsetDrawer.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── TopicList │ │ │ │ ├── Create.tsx │ │ │ │ ├── Delete.tsx │ │ │ │ ├── ExpandPartition.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ └── interface.ts │ │ │ ├── Zookeeper │ │ │ │ ├── Data.tsx │ │ │ │ ├── Detail.tsx │ │ │ │ ├── Info.tsx │ │ │ │ ├── Sider.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── ZookeeperDashboard │ │ │ │ └── index.tsx │ │ │ ├── index.tsx │ │ │ └── pageRoutes.ts │ │ └── style-addition.less │ │ ├── static │ │ └── js │ │ │ ├── amd.js │ │ │ ├── antd.min.js │ │ │ ├── echarts.min.js │ │ │ ├── fetch-polyfill.min.js │ │ │ ├── history.production.min.js │ │ │ ├── ksl.min.js │ │ │ ├── lodash.min.js │ │ │ ├── moment.min.js │ │ │ ├── named-exports.min.js │ │ │ ├── promise-polyfill.min.js │ │ │ ├── react-dom.production.min.js │ │ │ ├── react-router-dom.min.js │ │ │ ├── react-router.min.js │ │ │ ├── react.production.min.js │ │ │ ├── single-spa-react.js │ │ │ ├── single-spa.min.js │ │ │ ├── system.min.js │ │ │ └── use-default.min.js │ │ ├── tsconfig.json │ │ └── webpack.config.js └── pom.xml ├── km-core ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── xiaojukeji │ │ └── know │ │ └── streaming │ │ └── km │ │ └── core │ │ ├── cache │ │ ├── CollectedMetricsLocalCache.java │ │ └── ZookeeperLocalCache.java │ │ ├── flusher │ │ ├── DatabaseDataFlusher.java │ │ ├── JmxClientLegalFlusher.java │ │ ├── ZKWatcherManager.java │ │ └── zk │ │ │ ├── AbstractZKWatcher.java │ │ │ ├── BrokersNodeWatcher.java │ │ │ ├── ConfigChangeNodeWatcher.java │ │ │ ├── ControllerNodeWatcher.java │ │ │ ├── TopicsNodeWatcher.java │ │ │ └── handler │ │ │ ├── AbstractZKHandler.java │ │ │ ├── BrokersNodeChangeHandler.java │ │ │ ├── ConfigNotificationNodeChangeHandler.java │ │ │ ├── ControllerNodeChangeHandler.java │ │ │ └── TopicsNodeChangeHandler.java │ │ ├── service │ │ ├── acl │ │ │ ├── KafkaAclService.java │ │ │ ├── OpKafkaAclService.java │ │ │ └── impl │ │ │ │ ├── KafkaAclServiceImpl.java │ │ │ │ └── OpKafkaAclServiceImpl.java │ │ ├── broker │ │ │ ├── BrokerConfigService.java │ │ │ ├── BrokerMetricService.java │ │ │ ├── BrokerService.java │ │ │ ├── BrokerSpecService.java │ │ │ └── impl │ │ │ │ ├── BrokerConfigServiceImpl.java │ │ │ │ ├── BrokerMetricServiceImpl.java │ │ │ │ ├── BrokerServiceImpl.java │ │ │ │ └── BrokerSpecServiceImpl.java │ │ ├── change │ │ │ └── record │ │ │ │ ├── KafkaChangeRecordService.java │ │ │ │ └── impl │ │ │ │ └── KafkaChangeRecordServiceImpl.java │ │ ├── cluster │ │ │ ├── ClusterMetricService.java │ │ │ ├── ClusterPhyService.java │ │ │ ├── ClusterValidateService.java │ │ │ ├── ControllerChangeLogService.java │ │ │ └── impl │ │ │ │ ├── ClusterMetricServiceImpl.java │ │ │ │ ├── ClusterPhyServiceImpl.java │ │ │ │ ├── ClusterValidateServiceImpl.java │ │ │ │ └── ControllerChangeLogServiceImpl.java │ │ ├── config │ │ │ ├── KSConfigUtils.java │ │ │ ├── PlatformClusterConfigService.java │ │ │ └── impl │ │ │ │ └── PlatformClusterConfigServiceImpl.java │ │ ├── connect │ │ │ ├── cluster │ │ │ │ ├── ConnectClusterMetricService.java │ │ │ │ ├── ConnectClusterService.java │ │ │ │ └── impl │ │ │ │ │ ├── ConnectClusterMetricServiceImpl.java │ │ │ │ │ └── ConnectClusterServiceImpl.java │ │ │ ├── connector │ │ │ │ ├── ConnectorMetricService.java │ │ │ │ ├── ConnectorService.java │ │ │ │ ├── OpConnectorService.java │ │ │ │ └── impl │ │ │ │ │ ├── ConnectorMetricServiceImpl.java │ │ │ │ │ ├── ConnectorServiceImpl.java │ │ │ │ │ └── OpConnectorServiceImpl.java │ │ │ ├── mm2 │ │ │ │ ├── MirrorMakerMetricService.java │ │ │ │ ├── MirrorMakerService.java │ │ │ │ └── impl │ │ │ │ │ ├── MirrorMakerMetricServiceImpl.java │ │ │ │ │ └── MirrorMakerServiceImpl.java │ │ │ ├── plugin │ │ │ │ ├── PluginService.java │ │ │ │ └── impl │ │ │ │ │ └── PluginServiceImpl.java │ │ │ └── worker │ │ │ │ ├── WorkerConnectorService.java │ │ │ │ ├── WorkerService.java │ │ │ │ └── impl │ │ │ │ ├── WorkerConnectorServiceImpl.java │ │ │ │ └── WorkerServiceImpl.java │ │ ├── group │ │ │ ├── GroupMetricService.java │ │ │ ├── GroupService.java │ │ │ ├── OpGroupService.java │ │ │ └── impl │ │ │ │ ├── GroupMetricServiceImpl.java │ │ │ │ ├── GroupServiceImpl.java │ │ │ │ └── OpGroupServiceImpl.java │ │ ├── ha │ │ │ ├── HaActiveStandbyRelationService.java │ │ │ └── impl │ │ │ │ └── HaActiveStandbyRelationServiceImpl.java │ │ ├── health │ │ │ ├── checker │ │ │ │ ├── AbstractHealthCheckService.java │ │ │ │ ├── broker │ │ │ │ │ └── HealthCheckBrokerService.java │ │ │ │ ├── cluster │ │ │ │ │ └── HealthCheckClusterService.java │ │ │ │ ├── connect │ │ │ │ │ ├── HealthCheckConnectClusterService.java │ │ │ │ │ ├── HealthCheckConnectorService.java │ │ │ │ │ └── mm2 │ │ │ │ │ │ └── HealthCheckMirrorMakerService.java │ │ │ │ ├── group │ │ │ │ │ └── HealthCheckGroupService.java │ │ │ │ ├── topic │ │ │ │ │ └── HealthCheckTopicService.java │ │ │ │ └── zookeeper │ │ │ │ │ └── HealthCheckZookeeperService.java │ │ │ ├── checkresult │ │ │ │ ├── HealthCheckResultService.java │ │ │ │ └── impl │ │ │ │ │ └── HealthCheckResultServiceImpl.java │ │ │ └── state │ │ │ │ ├── HealthStateService.java │ │ │ │ └── impl │ │ │ │ └── HealthStateServiceImpl.java │ │ ├── job │ │ │ ├── JobHandler.java │ │ │ ├── JobService.java │ │ │ ├── handler │ │ │ │ ├── AbstractReassignJobHandler.java │ │ │ │ ├── TopicReplicaMoveJobHandler.java │ │ │ │ └── TopicReplicaScalaJobHandler.java │ │ │ └── impl │ │ │ │ └── JobServiceImpl.java │ │ ├── kafkacontroller │ │ │ ├── KafkaControllerService.java │ │ │ └── impl │ │ │ │ └── KafkaControllerServiceImpl.java │ │ ├── kafkauser │ │ │ ├── KafkaUserService.java │ │ │ └── impl │ │ │ │ └── KafkaUserServiceImpl.java │ │ ├── km │ │ │ ├── KmNodeService.java │ │ │ └── impl │ │ │ │ └── KmNodeServiceImpl.java │ │ ├── meta │ │ │ └── MetaDataService.java │ │ ├── oprecord │ │ │ ├── OpLogWrapService.java │ │ │ └── impl │ │ │ │ └── OpLogWrapServiceImpl.java │ │ ├── partition │ │ │ ├── OpPartitionService.java │ │ │ ├── PartitionMetricService.java │ │ │ ├── PartitionService.java │ │ │ └── impl │ │ │ │ ├── OpPartitionServiceImpl.java │ │ │ │ ├── PartitionMetricServiceImpl.java │ │ │ │ └── PartitionServiceImpl.java │ │ ├── reassign │ │ │ ├── ReassignJobService.java │ │ │ ├── ReassignService.java │ │ │ ├── ReassignStrategyService.java │ │ │ └── impl │ │ │ │ ├── ReassignJobServiceImpl.java │ │ │ │ ├── ReassignServiceImpl.java │ │ │ │ └── ReassignStrategyServiceImpl.java │ │ ├── replica │ │ │ ├── ReplicaMetricService.java │ │ │ └── impl │ │ │ │ └── ReplicaMetricServiceImpl.java │ │ ├── topic │ │ │ ├── OpTopicService.java │ │ │ ├── TopicConfigService.java │ │ │ ├── TopicMetricService.java │ │ │ ├── TopicService.java │ │ │ └── impl │ │ │ │ ├── OpTopicServiceImpl.java │ │ │ │ ├── TopicConfigServiceImpl.java │ │ │ │ ├── TopicMetricServiceImpl.java │ │ │ │ └── TopicServiceImpl.java │ │ ├── version │ │ │ ├── BaseConnectMetricService.java │ │ │ ├── BaseConnectVersionControlService.java │ │ │ ├── BaseKafkaVersionControlService.java │ │ │ ├── BaseMetricService.java │ │ │ ├── BaseVersionControlService.java │ │ │ ├── VersionControlMetricService.java │ │ │ ├── VersionControlService.java │ │ │ ├── fe │ │ │ │ └── FrontEndControlVersionItems.java │ │ │ ├── impl │ │ │ │ └── VersionControlServiceImpl.java │ │ │ └── metrics │ │ │ │ ├── BaseMetricVersionMetric.java │ │ │ │ ├── connect │ │ │ │ ├── ConnectClusterMetricVersionItems.java │ │ │ │ ├── ConnectorMetricVersionItems.java │ │ │ │ └── MirrorMakerMetricVersionItems.java │ │ │ │ └── kafka │ │ │ │ ├── BrokerMetricVersionItems.java │ │ │ │ ├── ClusterMetricVersionItems.java │ │ │ │ ├── GroupMetricVersionItems.java │ │ │ │ ├── PartitionMetricVersionItems.java │ │ │ │ ├── ReplicaMetricVersionItems.java │ │ │ │ ├── TopicMetricVersionItems.java │ │ │ │ └── ZookeeperMetricVersionItems.java │ │ └── zookeeper │ │ │ ├── ZnodeService.java │ │ │ ├── ZookeeperMetricService.java │ │ │ ├── ZookeeperService.java │ │ │ └── impl │ │ │ ├── ZnodeServiceImpl.java │ │ │ ├── ZookeeperMetricServiceImpl.java │ │ │ └── ZookeeperServiceImpl.java │ │ └── utils │ │ └── ApiCallThreadPoolService.java │ └── test │ └── java │ └── META-INF │ └── MANIFEST.MF ├── km-dist ├── README.md ├── ReleaseKnowStreaming.xml ├── docker │ ├── docker-compose.yml │ ├── manager │ │ ├── application.yml │ │ ├── dockerfile │ │ ├── es_template_create.sh │ │ ├── ks-start.sh │ │ └── logback-spring.xml │ ├── mysql │ │ ├── dockerfile │ │ ├── init.sh │ │ ├── initsql │ │ └── my.cnf │ └── ui │ │ ├── dockerfile │ │ └── knowstreaming.conf ├── helm │ ├── .helmignore │ ├── Chart.yaml │ ├── README.md │ ├── charts │ │ ├── elasticsearch │ │ │ ├── Chart.yaml │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── examples │ │ │ │ ├── config │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── test │ │ │ │ │ │ └── goss.yaml │ │ │ │ │ ├── values.yaml │ │ │ │ │ └── watcher_encryption_key │ │ │ │ ├── default │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── rolling_upgrade.sh │ │ │ │ │ └── test │ │ │ │ │ │ └── goss.yaml │ │ │ │ ├── docker-for-mac │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── README.md │ │ │ │ │ └── values.yaml │ │ │ │ ├── kubernetes-kind │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── values-local-path.yaml │ │ │ │ │ └── values.yaml │ │ │ │ ├── microk8s │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── README.md │ │ │ │ │ └── values.yaml │ │ │ │ ├── migration │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── client.yaml │ │ │ │ │ ├── data.yaml │ │ │ │ │ └── master.yaml │ │ │ │ ├── minikube │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── README.md │ │ │ │ │ └── values.yaml │ │ │ │ ├── multi │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── client.yaml │ │ │ │ │ ├── data.yaml │ │ │ │ │ ├── master.yaml │ │ │ │ │ └── test │ │ │ │ │ │ └── goss.yaml │ │ │ │ ├── networkpolicy │ │ │ │ │ ├── Makefile │ │ │ │ │ └── values.yaml │ │ │ │ ├── openshift │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── test │ │ │ │ │ │ └── goss.yaml │ │ │ │ │ └── values.yaml │ │ │ │ ├── security │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── test │ │ │ │ │ │ └── goss.yaml │ │ │ │ │ └── values.yaml │ │ │ │ └── upgrade │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── test │ │ │ │ │ └── goss.yaml │ │ │ │ │ └── values.yaml │ │ │ ├── templates │ │ │ │ ├── NOTES.txt │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── configmap.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── networkpolicy.yaml │ │ │ │ ├── poddisruptionbudget.yaml │ │ │ │ ├── podsecuritypolicy.yaml │ │ │ │ ├── role.yaml │ │ │ │ ├── rolebinding.yaml │ │ │ │ ├── secret-cert.yaml │ │ │ │ ├── secret.yaml │ │ │ │ ├── service.yaml │ │ │ │ ├── serviceaccount.yaml │ │ │ │ ├── statefulset.yaml │ │ │ │ └── test │ │ │ │ │ └── test-elasticsearch-health.yaml │ │ │ ├── tests │ │ │ │ └── elasticsearch_test.py │ │ │ └── values.yaml │ │ ├── knowstreaming-web │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── NOTES.txt │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── configMap.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ ├── hpa.yaml │ │ │ │ ├── service.yaml │ │ │ │ └── tests │ │ │ │ │ └── test-connection.yaml │ │ │ └── values.yaml │ │ └── ksmysql │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ ├── NOTES.txt │ │ │ ├── _helpers.tpl │ │ │ ├── configmap.yaml │ │ │ ├── secret.yaml │ │ │ ├── service.yaml │ │ │ └── statefulset.yaml │ │ │ └── values.yaml │ ├── templates │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ ├── configmap.yaml │ │ ├── deployment.yaml │ │ ├── hpa.yaml │ │ ├── service.yaml │ │ ├── servicemonitors.yaml │ │ └── tests │ │ │ └── test-connection.yaml │ └── values.yaml └── pom.xml ├── km-enterprise └── km-ha │ ├── pom.xml │ └── src │ └── main │ └── java │ └── com │ └── xiaojukeji │ └── know │ └── streaming │ └── km │ └── ha │ └── mirror │ └── service │ ├── MirrorTopicService.java │ └── impl │ └── MirrorTopicServiceImpl.java ├── km-extends ├── km-account │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── xiaojukeji │ │ └── know │ │ └── streaming │ │ └── km │ │ └── account │ │ ├── KmAccountConfig.java │ │ ├── common │ │ ├── bizenum │ │ │ └── LoginServiceNameEnum.java │ │ ├── constant │ │ │ └── TrickJumpLoginConstant.java │ │ └── ldap │ │ │ ├── LdapPrincipal.java │ │ │ └── exception │ │ │ └── LdapException.java │ │ └── login │ │ ├── ldap │ │ ├── LdapLoginServiceImpl.java │ │ └── remote │ │ │ └── LdapAuthentication.java │ │ └── trick │ │ ├── TrickJumpLoginService.java │ │ └── impl │ │ └── TrickJumpLoginServiceImpl.java └── km-monitor │ ├── pom.xml │ └── src │ └── main │ └── java │ └── com │ └── xiaojukeji │ └── know │ └── streaming │ └── km │ └── monitor │ ├── common │ ├── MetricSinkPoint.java │ └── MonitorSinkTagEnum.java │ └── component │ ├── AbstractMonitorSinkService.java │ └── prometheus │ └── PrometheusService.java ├── km-persistence ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── xiaojukeji │ │ └── know │ │ └── streaming │ │ └── km │ │ └── persistence │ │ ├── AbstractClusterLoadedChangedHandler.java │ │ ├── cache │ │ ├── DataBaseDataLocalCache.java │ │ └── LoadedClusterPhyCache.java │ │ ├── connect │ │ ├── AbstractConnectClusterChangeHandler.java │ │ ├── ConnectJMXClient.java │ │ ├── cache │ │ │ └── LoadedConnectClusterCache.java │ │ └── schedule │ │ │ └── ScheduleFlushConnectClusterTask.java │ │ ├── es │ │ ├── BaseESDAO.java │ │ ├── ESFileLoader.java │ │ ├── ESOpClient.java │ │ ├── ESOpTimeoutRetry.java │ │ ├── ESTPService.java │ │ ├── dao │ │ │ ├── BaseMetricESDAO.java │ │ │ ├── BrokerMetricESDAO.java │ │ │ ├── ClusterMetricESDAO.java │ │ │ ├── GroupMetricESDAO.java │ │ │ ├── PartitionMetricESDAO.java │ │ │ ├── TopicMetricESDAO.java │ │ │ ├── ZookeeperMetricESDAO.java │ │ │ └── connect │ │ │ │ ├── BaseConnectorMetricESDAO.java │ │ │ │ ├── cluster │ │ │ │ └── ConnectClusterMetricESDAO.java │ │ │ │ ├── connector │ │ │ │ └── ConnectorMetricESDAO.java │ │ │ │ └── mm2 │ │ │ │ └── MirrorMakerMetricESDAO.java │ │ ├── dsls │ │ │ ├── DslConstant.java │ │ │ └── DslLoaderUtil.java │ │ └── template │ │ │ ├── TemplateConstant.java │ │ │ └── TemplateLoaderUtil.java │ │ ├── jmx │ │ ├── JmxDAO.java │ │ └── impl │ │ │ └── JmxDAOImpl.java │ │ ├── kafka │ │ ├── KafkaAdminClient.java │ │ ├── KafkaAdminZKClient.java │ │ ├── KafkaClient.java │ │ ├── KafkaConsumerClient.java │ │ ├── KafkaJMXClient.java │ │ └── zookeeper │ │ │ ├── package-info.java │ │ │ ├── service │ │ │ ├── KafkaZKDAO.java │ │ │ └── impl │ │ │ │ └── KafkaZKDAOImpl.java │ │ │ └── znode │ │ │ ├── ControllerData.java │ │ │ ├── brokers │ │ │ ├── BrokerMetadata.java │ │ │ ├── PartitionMap.java │ │ │ ├── PartitionState.java │ │ │ └── TopicMetadata.java │ │ │ └── config │ │ │ ├── ConfigChangeNotificationBaseData.java │ │ │ ├── ConfigChangeNotificationDataV1.java │ │ │ ├── ConfigChangeNotificationDataV2.java │ │ │ └── ConfigNodeData.java │ │ ├── mysql │ │ ├── ControllerChangeLogDAO.java │ │ ├── KafkaAclDAO.java │ │ ├── KafkaUserDAO.java │ │ ├── broker │ │ │ ├── BrokerConfigDAO.java │ │ │ └── BrokerDAO.java │ │ ├── changerecord │ │ │ └── KafkaChangeRecordDAO.java │ │ ├── cluster │ │ │ └── ClusterPhyDAO.java │ │ ├── config │ │ │ └── PlatformClusterConfigDAO.java │ │ ├── connect │ │ │ ├── ConnectClusterDAO.java │ │ │ ├── ConnectWorkerDAO.java │ │ │ ├── ConnectorDAO.java │ │ │ └── WorkerConnectorDAO.java │ │ ├── group │ │ │ ├── GroupDAO.java │ │ │ └── GroupMemberDAO.java │ │ ├── ha │ │ │ └── HaActiveStandbyRelationDAO.java │ │ ├── health │ │ │ └── HealthCheckResultDAO.java │ │ ├── job │ │ │ └── JobDAO.java │ │ ├── kafkacontroller │ │ │ └── KafkaControllerDAO.java │ │ ├── km │ │ │ └── KmNodeDAO.java │ │ ├── partition │ │ │ └── PartitionDAO.java │ │ ├── reassign │ │ │ ├── ReassignJobDAO.java │ │ │ └── ReassignSubJobDAO.java │ │ ├── topic │ │ │ └── TopicDAO.java │ │ └── zookeeper │ │ │ └── ZookeeperDAO.java │ │ ├── schedule │ │ └── ScheduleFlushClusterTask.java │ │ └── utils │ │ └── LoadSQLUtil.java │ └── resources │ ├── es │ ├── dsl │ │ ├── BaseMetricESDAO │ │ │ └── getLatestMetricTime │ │ ├── BrokerMetricESDAO │ │ │ ├── getAggListBrokerMetrics │ │ │ ├── getAggSingleBrokerMetrics │ │ │ ├── getAggTopMetricsBrokers │ │ │ └── getBrokerLatestMetrics │ │ ├── ClusterMetricESDAO │ │ │ ├── getAggListClusterMetrics │ │ │ ├── getAggSingleClusterMetrics │ │ │ ├── getClusterLatestMetrics │ │ │ └── listClusterWithLatestMetrics │ │ ├── ConnectClusterMetricESDAO │ │ │ ├── getAggListConnectClusterMetrics │ │ │ └── getAggTopMetricsConnectClusters │ │ ├── ConnectorMetricESDAO │ │ │ ├── getConnectorAggListMetric │ │ │ ├── getConnectorAggTopMetric │ │ │ └── getConnectorLatestMetric │ │ ├── GroupMetricESDAO │ │ │ ├── countGroupMetricValue │ │ │ ├── countGroupNotMetricValue │ │ │ ├── getTopicPartitionOfGroup │ │ │ ├── listGroupMetrics │ │ │ ├── listLatestMetricsAggByGroupTopic │ │ │ └── listPartitionLatestMetrics │ │ ├── PartitionMetricESDAO │ │ │ ├── getPartitionLatestMetrics │ │ │ └── listPartitionLatestMetricsByTopic │ │ ├── TopicMetricESDAO │ │ │ ├── countTopicMetricValue │ │ │ ├── countTopicNotMetricValue │ │ │ ├── getAggListMetrics │ │ │ ├── getAggSingleMetrics │ │ │ ├── getAggTopMetricsTopics │ │ │ ├── getMaxOrMinSingleMetric │ │ │ ├── getTopicLatestMetric │ │ │ ├── getTopicLatestMetricByBrokerId │ │ │ └── listTopicWithLatestMetrics │ │ └── ZookeeperMetricESDAO │ │ │ └── getAggListZookeeperMetrics │ └── template │ │ ├── ks_kafka_broker_metric │ │ ├── ks_kafka_cluster_metric │ │ ├── ks_kafka_connect_cluster_metric │ │ ├── ks_kafka_connect_connector_metric │ │ ├── ks_kafka_connect_mirror_maker_metric │ │ ├── ks_kafka_group_metric │ │ ├── ks_kafka_partition_metric │ │ ├── ks_kafka_topic_metric │ │ └── ks_kafka_zookeeper_metric │ ├── mybatis │ ├── BrokerConfigMapper.xml │ ├── BrokerMapper.xml │ ├── ClusterPhyMapper.xml │ ├── GroupMemberMapper.xml │ ├── HealthCheckResultMapper.xml │ ├── KafkaAclMapper.xml │ ├── KafkaControllerMapper.xml │ ├── KafkaUserDAO.xml │ ├── KmJobMapper.xml │ ├── PartitionMapper.xml │ ├── PlatformClusterConfigMapper.xml │ ├── ReassignJob.xml │ └── TopicMapper.xml │ └── sql │ ├── ddl-ks-km.sql │ ├── ddl-logi-job.sql │ ├── ddl-logi-security.sql │ ├── dml-ks-km.sql │ └── dml-logi.sql ├── km-rest ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xiaojukeji │ │ │ └── know │ │ │ └── streaming │ │ │ └── km │ │ │ └── rest │ │ │ ├── KnowStreaming.java │ │ │ ├── api │ │ │ └── v3 │ │ │ │ ├── acl │ │ │ │ └── AclController.java │ │ │ │ ├── broker │ │ │ │ ├── BrokerController.java │ │ │ │ └── BrokerMetricController.java │ │ │ │ ├── changerecord │ │ │ │ └── KafkaChangeRecordController.java │ │ │ │ ├── cluster │ │ │ │ ├── ClusterBrokersController.java │ │ │ │ ├── ClusterConnectsController.java │ │ │ │ ├── ClusterGroupsController.java │ │ │ │ ├── ClusterMetricsController.java │ │ │ │ ├── ClusterMirrorMakersController.java │ │ │ │ ├── ClusterPhyController.java │ │ │ │ ├── ClusterSecuritiesController.java │ │ │ │ ├── ClusterTopicsController.java │ │ │ │ ├── ClusterZookeepersController.java │ │ │ │ └── MultiClusterPhyController.java │ │ │ │ ├── config │ │ │ │ ├── KafkaConfigController.java │ │ │ │ ├── KafkaInZKConfigController.java │ │ │ │ └── PlatformClusterConfigController.java │ │ │ │ ├── connect │ │ │ │ ├── KafkaConnectClusterController.java │ │ │ │ ├── KafkaConnectPluginController.java │ │ │ │ ├── KafkaConnectorController.java │ │ │ │ ├── KafkaConnectorStateController.java │ │ │ │ ├── KafkaTaskController.java │ │ │ │ └── mm2 │ │ │ │ │ ├── KafkaMirrorMakerController.java │ │ │ │ │ └── KafkaMirrorMakerStateController.java │ │ │ │ ├── enterprise │ │ │ │ └── mirror │ │ │ │ │ ├── MirrorClusterController.java │ │ │ │ │ └── MirrorTopicController.java │ │ │ │ ├── group │ │ │ │ └── GroupController.java │ │ │ │ ├── health │ │ │ │ └── KafkaHealthController.java │ │ │ │ ├── job │ │ │ │ └── KSJobController.java │ │ │ │ ├── kafkacontroller │ │ │ │ └── KafkaController.java │ │ │ │ ├── kafkauser │ │ │ │ └── KafkaUserController.java │ │ │ │ ├── open │ │ │ │ └── HealthController.java │ │ │ │ ├── reassign │ │ │ │ └── CommunityReassignController.java │ │ │ │ ├── replica │ │ │ │ └── ReplicaMetricsController.java │ │ │ │ ├── self │ │ │ │ └── SelfController.java │ │ │ │ ├── topic │ │ │ │ ├── TopicController.java │ │ │ │ └── TopicStateController.java │ │ │ │ ├── util │ │ │ │ └── UtilsController.java │ │ │ │ ├── version │ │ │ │ └── VersionController.java │ │ │ │ └── zk │ │ │ │ └── ZookeeperMetricsController.java │ │ │ ├── config │ │ │ ├── DataSourceConfig.java │ │ │ ├── LogiSecurityDataSourceConfig.java │ │ │ ├── ScheduledTaskConfig.java │ │ │ └── WebConfig.java │ │ │ ├── handler │ │ │ └── CustomGlobalExceptionHandler.java │ │ │ └── interceptor │ │ │ └── PermissionInterceptor.java │ └── resources │ │ ├── application.yml │ │ └── logback-spring.xml │ └── test │ └── java │ └── com │ └── xiaojukeji │ └── know │ └── streaming │ ├── km │ ├── KnowStreamApplicationTest.java │ ├── core │ │ ├── TopicMetricServiceTest.java │ │ └── service │ │ │ └── cluster │ │ │ └── ClusterPhyServiceTest.java │ └── persistence │ │ └── es │ │ ├── BrokerMetricESDAOTest.java │ │ ├── ClusterMetricESDAOTest.java │ │ ├── GroupMetricESDAOTest.java │ │ ├── PartitionMetricESDAOTest.java │ │ └── TopicMetricESDAOTest.java │ └── test │ ├── KMTestEnvService.java │ └── container │ ├── BaseTestContainer.java │ ├── es │ └── ESTestContainer.java │ ├── kafka │ └── KafkaTestContainer.java │ └── mysql │ ├── KSMySQLContainer.java │ └── MySQLTestContainer.java ├── km-task ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── xiaojukeji │ └── know │ └── streaming │ └── km │ └── task │ ├── AbstractDispatchTask.java │ ├── connect │ ├── AbstractConnectClusterDispatchTask.java │ ├── health │ │ ├── AbstractHealthCheckTask.java │ │ ├── ConnectClusterHealthCheckTask.java │ │ └── ConnectorHealthCheckTask.java │ ├── metadata │ │ ├── AbstractAsyncMetadataDispatchTask.java │ │ ├── SyncConnectorTask.java │ │ └── SyncWorkerConnectorTask.java │ ├── metrics │ │ ├── AbstractAsyncMetricsDispatchTask.java │ │ ├── ConnectClusterMetricCollectorTask.java │ │ └── ConnectorMetricCollectorTask.java │ └── mm2 │ │ ├── health │ │ └── MirrorMakerHealthCheckTask.java │ │ └── metrics │ │ └── MirrorMakerCollectorTask.java │ ├── kafka │ ├── AbstractAsyncCommonDispatchTask.java │ ├── AbstractClusterPhyDispatchTask.java │ ├── health │ │ ├── AbstractHealthCheckTask.java │ │ ├── BrokerHealthCheckTask.java │ │ ├── ClusterHealthCheckTask.java │ │ ├── GroupHealthCheckTask.java │ │ ├── TopicHealthCheckTask.java │ │ └── ZookeeperHealthCheckTask.java │ ├── job │ │ ├── CommunityReassignJobTask.java │ │ └── KMJobTask.java │ ├── metadata │ │ ├── AbstractAsyncMetadataDispatchTask.java │ │ ├── SyncBrokerConfigDiffTask.java │ │ ├── SyncBrokerTask.java │ │ ├── SyncConnectClusterAndWorkerTask.java │ │ ├── SyncControllerTask.java │ │ ├── SyncKafkaAclTask.java │ │ ├── SyncKafkaGroupTask.java │ │ ├── SyncKafkaUserTask.java │ │ ├── SyncPartitionTask.java │ │ ├── SyncTopicConfigTask.java │ │ ├── SyncTopicTask.java │ │ └── SyncZookeeperTask.java │ └── metrics │ │ ├── AbstractAsyncMetricsDispatchTask.java │ │ ├── BrokerMetricCollectorTask.java │ │ ├── ClusterMetricCollectorTask.java │ │ ├── GroupMetricCollectorTask.java │ │ ├── PartitionMetricCollectorTask.java │ │ ├── TopicMetricCollectorTask.java │ │ └── ZookeeperMetricCollectorTask.java │ └── service │ ├── TaskThreadPoolService.java │ └── listener │ ├── TaskClusterAddedListener.java │ └── TaskClusterDeletedListener.java └── pom.xml /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: true 2 | contact_links: 3 | - name: 讨论问题 4 | url: https://github.com/didi/KnowStreaming/discussions/new 5 | about: 发起问题、讨论 等等 6 | - name: KnowStreaming官网 7 | url: https://knowstreaming.com/ 8 | about: KnowStreaming website 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/detail_optimizing.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 优化建议 3 | about: 相关功能优化建议 4 | title: '' 5 | labels: Optimization Suggestions 6 | assignees: '' 7 | 8 | --- 9 | 10 | - [ ] 我已经在 [issues](https://github.com/didi/KnowStreaming/issues) 搜索过相关问题了,并没有重复的。 11 | 12 | 你是否希望来认领这个优化建议。 13 | 14 | 「 Y / N 」 15 | 16 | ### 环境信息 17 | 18 | * KnowStreaming version : xxx 19 | * Operating System version : xxx 20 | * Java version : xxx 21 | 22 | ### 需要优化的功能点 23 | 24 | 25 | ### 建议如何优化 26 | 27 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 提议新功能/需求 3 | about: 给KnowStreaming提一个功能需求 4 | title: '' 5 | labels: feature 6 | assignees: '' 7 | 8 | --- 9 | 10 | - [ ] 我在 [issues](https://github.com/didi/KnowStreaming/issues) 中并未搜索到与此相关的功能需求。 11 | - [ ] 我在 [release note](https://github.com/didi/KnowStreaming/releases) 已经发布的版本中并没有搜到相关功能. 12 | 13 | 你是否希望来认领这个Feature。 14 | 15 | 「 Y / N 」 16 | 17 | 18 | ## 这里描述需求 19 | 20 | 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 提个问题 3 | about: 问KnowStreaming相关问题 4 | title: '' 5 | labels: question 6 | assignees: '' 7 | 8 | --- 9 | 10 | - [ ] 我已经在 [issues](https://github.com/didi/KnowStreaming/issues) 搜索过相关问题了,并没有重复的。 11 | 12 | ## 在这里提出你的问题 13 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 请不要在没有先创建Issue的情况下创建Pull Request。 2 | 3 | ## 变更的目的是什么 4 | 5 | XXXXX 6 | 7 | ## 简短的更新日志 8 | 9 | XX 10 | 11 | ## 验证这一变化 12 | 13 | XXXX 14 | 15 | 请遵循此清单,以帮助我们快速轻松地整合您的贡献: 16 | 17 | * [ ] 一个 PR(Pull Request的简写)只解决一个问题,禁止一个 PR 解决多个问题; 18 | * [ ] 确保 PR 有对应的 Issue(通常在您开始处理之前创建),除非是书写错误之类的琐碎更改不需要 Issue ; 19 | * [ ] 格式化 PR 及 Commit-Log 的标题及内容,例如 #861 。PS:Commit-Log 需要在 Git Commit 代码时进行填写,在 GitHub 上修改不了; 20 | * [ ] 编写足够详细的 PR 描述,以了解 PR 的作用、方式和原因; 21 | * [ ] 编写必要的单元测试来验证您的逻辑更正。如果提交了新功能或重大更改,请记住在 test 模块中添加 integration-test; 22 | * [ ] 确保编译通过,集成测试通过; 23 | 24 | -------------------------------------------------------------------------------- /bin/shutdown.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd `dirname $0`/../libs 4 | target_dir=`pwd` 5 | 6 | pid=`ps ax | grep -i 'ks-km' | grep ${target_dir} | grep java | grep -v grep | awk '{print $1}'` 7 | if [ -z "$pid" ] ; then 8 | echo "No ks-km running." 9 | exit -1; 10 | fi 11 | 12 | echo "The ks-km (${pid}) is running..." 13 | 14 | kill ${pid} 15 | 16 | echo "Send shutdown request to ks-km (${pid}) OK" 17 | -------------------------------------------------------------------------------- /docs/contribute_guide/assets/分支管理.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/docs/contribute_guide/assets/分支管理.png -------------------------------------------------------------------------------- /docs/contribute_guide/assets/环境初始化.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/docs/contribute_guide/assets/环境初始化.jpg -------------------------------------------------------------------------------- /docs/contribute_guide/assets/申请合并.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/docs/contribute_guide/assets/申请合并.jpg -------------------------------------------------------------------------------- /docs/contribute_guide/assets/问题认领.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/docs/contribute_guide/assets/问题认领.jpg -------------------------------------------------------------------------------- /docs/contribute_guide/代码规范.md: -------------------------------------------------------------------------------- 1 | TODO. -------------------------------------------------------------------------------- /docs/dev_guide/assets/support_kerberos_zk/need_modify_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/docs/dev_guide/assets/support_kerberos_zk/need_modify_code.png -------------------------------------------------------------------------------- /docs/dev_guide/assets/support_kerberos_zk/success_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/docs/dev_guide/assets/support_kerberos_zk/success_1.png -------------------------------------------------------------------------------- /docs/dev_guide/assets/support_kerberos_zk/success_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/docs/dev_guide/assets/support_kerberos_zk/success_2.png -------------------------------------------------------------------------------- /docs/dev_guide/assets/support_kerberos_zk/watch_user_acl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/docs/dev_guide/assets/support_kerberos_zk/watch_user_acl.png -------------------------------------------------------------------------------- /km-biz/src/main/java/com/xiaojukeji/know/streaming/km/biz/cluster/ClusterTopicsManager.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.biz.cluster; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.dto.cluster.ClusterTopicsOverviewDTO; 4 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.PaginationResult; 5 | import com.xiaojukeji.know.streaming.km.common.bean.vo.cluster.res.ClusterPhyTopicsOverviewVO; 6 | 7 | /** 8 | * 多集群总体状态 9 | */ 10 | public interface ClusterTopicsManager { 11 | PaginationResult getClusterPhyTopicsOverview(Long clusterPhyId, ClusterTopicsOverviewDTO dto); 12 | } 13 | -------------------------------------------------------------------------------- /km-biz/src/main/java/com/xiaojukeji/know/streaming/km/biz/connect/connector/WorkerConnectorManager.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.biz.connect.connector; 2 | 3 | 4 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result; 5 | import com.xiaojukeji.know.streaming.km.common.bean.vo.connect.task.KCTaskOverviewVO; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author wyb 11 | * @date 2022/11/14 12 | */ 13 | public interface WorkerConnectorManager { 14 | Result> getTaskOverview(Long connectClusterId, String connectorName); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /km-biz/src/main/java/com/xiaojukeji/know/streaming/km/biz/kafkaacl/KafkaAclManager.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.biz.kafkaacl; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.dto.acl.AclAtomDTO; 4 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * 10 | */ 11 | public interface KafkaAclManager { 12 | Result batchCreateKafkaAcl(List dtoList, String operator); 13 | } 14 | -------------------------------------------------------------------------------- /km-biz/src/main/java/com/xiaojukeji/know/streaming/km/biz/self/SelfManager.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.biz.self; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result; 4 | import com.xiaojukeji.know.streaming.km.common.bean.vo.self.SelfMetricsVO; 5 | 6 | import java.util.Properties; 7 | 8 | public interface SelfManager { 9 | Result metrics(); 10 | 11 | Result version(); 12 | } 13 | -------------------------------------------------------------------------------- /km-biz/src/main/java/com/xiaojukeji/know/streaming/km/biz/topic/TopicConfigManager.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.biz.topic; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.config.kafkaconfig.KafkaTopicDefaultConfig; 4 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result; 5 | 6 | import java.util.List; 7 | 8 | public interface TopicConfigManager { 9 | /** 10 | * 获取Topic默认配置 11 | * @param clusterPhyId 物理集群ID 12 | * @return 13 | */ 14 | Result> getDefaultTopicConfig(Long clusterPhyId); 15 | } 16 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/annotations/KafkaSource.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.annotations; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.Target; 7 | 8 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 9 | 10 | /** 11 | * Kafka源码 12 | * @author zengqiao 13 | * @date 2020-07-20 14 | */ 15 | @Target({ElementType.TYPE, ElementType.LOCAL_VARIABLE}) 16 | @Retention(RUNTIME) 17 | @Documented 18 | public @interface KafkaSource { 19 | int modified() default 0; 20 | 21 | String modifyDesc() default ""; 22 | } 23 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/annotations/enterprise/EnterpriseLicense.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.annotations.enterprise; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.Target; 7 | 8 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 9 | 10 | /** 11 | * License 12 | */ 13 | @Target({ElementType.PACKAGE, ElementType.TYPE, ElementType.METHOD, ElementType.FIELD}) 14 | @Retention(RUNTIME) 15 | @Documented 16 | public @interface EnterpriseLicense { 17 | boolean all() default true; // 是否所有代码都是,默认是都是 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/annotations/enterprise/EnterpriseLoadReBalance.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.annotations.enterprise; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.Target; 7 | 8 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 9 | 10 | /** 11 | * Load-reBalance能力 12 | */ 13 | @Target({ElementType.PACKAGE, ElementType.TYPE, ElementType.METHOD, ElementType.FIELD}) 14 | @Retention(RUNTIME) 15 | @Documented 16 | public @interface EnterpriseLoadReBalance { 17 | boolean all() default true; // 是否所有代码都是,默认是都是 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/annotations/enterprise/EnterpriseTesting.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.annotations.enterprise; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.Target; 7 | 8 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 9 | 10 | /** 11 | * Testing 12 | */ 13 | @Target({ElementType.PACKAGE, ElementType.TYPE, ElementType.METHOD, ElementType.FIELD}) 14 | @Retention(RUNTIME) 15 | @Documented 16 | public @interface EnterpriseTesting { 17 | boolean all() default true; // 是否所有代码都是,默认是都是 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/BaseDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * 7 | * 8 | * @author d06679 9 | * @date 2019/3/13 10 | */ 11 | public class BaseDTO implements Serializable { 12 | private static final long serialVersionUID = 7861489615519826338L; 13 | } 14 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/cluster/ClusterBrokersOverviewDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.cluster; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.dto.pagination.PaginationSortDTO; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import javax.validation.constraints.NotNull; 8 | import java.util.List; 9 | 10 | 11 | /** 12 | * @author zengqiao 13 | * @date 22/02/24 14 | */ 15 | @Data 16 | public class ClusterBrokersOverviewDTO extends PaginationSortDTO { 17 | @NotNull(message = "latestMetricNames不允许为空") 18 | @ApiModelProperty("需要指标点的信息") 19 | private List latestMetricNames; 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/cluster/ClusterGroupSummaryDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.cluster; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.dto.pagination.PaginationBaseDTO; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author wyb 9 | * @date 2022/10/17 10 | */ 11 | @Data 12 | public class ClusterGroupSummaryDTO extends PaginationBaseDTO { 13 | @ApiModelProperty("查找该Topic") 14 | private String searchTopicName; 15 | 16 | @ApiModelProperty("查找该Group") 17 | private String searchGroupName; 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/cluster/ClusterMirrorMakersOverviewDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.cluster; 2 | 3 | import lombok.Data; 4 | 5 | 6 | /** 7 | * @author zengqiao 8 | * @date 22/12/12 9 | */ 10 | @Data 11 | public class ClusterMirrorMakersOverviewDTO extends ClusterConnectorsOverviewDTO { 12 | } 13 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/cluster/ClusterPhyModifyDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.cluster; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import io.swagger.annotations.ApiModel; 5 | import io.swagger.annotations.ApiModelProperty; 6 | import lombok.Data; 7 | 8 | import javax.validation.constraints.Min; 9 | 10 | /** 11 | * @author zengqiao 12 | * @date 20/4/23 13 | */ 14 | @Data 15 | @ApiModel(description = "集群信息修改") 16 | @JsonIgnoreProperties(ignoreUnknown = true) 17 | public class ClusterPhyModifyDTO extends ClusterPhyAddDTO { 18 | @Min(value = 0, message = "id不允许小于0") 19 | @ApiModelProperty(value="集群Id", example = "1") 20 | private Long id; 21 | } 22 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/cluster/ClusterZookeepersOverviewDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.cluster; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.dto.pagination.PaginationBaseDTO; 4 | import lombok.Data; 5 | 6 | /** 7 | * @author wyc 8 | * @date 2022/9/23 9 | */ 10 | @Data 11 | public class ClusterZookeepersOverviewDTO extends PaginationBaseDTO { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/config/KafkaConfigModifyTopicDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.config; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import javax.validation.constraints.NotBlank; 8 | 9 | /** 10 | * @author zengqiao 11 | * @date 22/02/28 12 | */ 13 | @Data 14 | @ApiModel(description = "Kafka配置信息") 15 | public class KafkaConfigModifyTopicDTO extends KafkaConfigDTO { 16 | @NotBlank(message = "topicName不允许为空") 17 | @ApiModelProperty(value = "配置名称", example = "know-streaming") 18 | private String topicName; 19 | } 20 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/connect/connector/ConnectorDeleteDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.connect.connector; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.dto.connect.ClusterConnectorDTO; 4 | import io.swagger.annotations.ApiModel; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author zengqiao 9 | * @date 2022-10-17 10 | */ 11 | @Data 12 | @ApiModel(description = "删除Connector") 13 | public class ConnectorDeleteDTO extends ClusterConnectorDTO { 14 | } 15 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/connect/mm2/MirrorMaker2ActionDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.connect.mm2; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.dto.connect.connector.ConnectorActionDTO; 4 | import io.swagger.annotations.ApiModel; 5 | import lombok.Data; 6 | 7 | 8 | /** 9 | * @author zengqiao 10 | * @date 2022-12-12 11 | */ 12 | @Data 13 | @ApiModel(description = "操作MM2") 14 | public class MirrorMaker2ActionDTO extends ConnectorActionDTO { 15 | } 16 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/connect/mm2/MirrorMaker2DeleteDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.connect.mm2; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.dto.connect.connector.ConnectorDeleteDTO; 4 | import io.swagger.annotations.ApiModel; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author zengqiao 9 | * @date 2022-12-12 10 | */ 11 | @Data 12 | @ApiModel(description = "删除MM2") 13 | public class MirrorMaker2DeleteDTO extends ConnectorDeleteDTO { 14 | } 15 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/connect/task/TaskActionDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.connect.task; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.dto.connect.connector.ConnectorActionDTO; 4 | import io.swagger.annotations.ApiModel; 5 | import io.swagger.annotations.ApiModelProperty; 6 | import lombok.Data; 7 | 8 | import javax.validation.constraints.NotNull; 9 | 10 | /** 11 | * @author zengqiao 12 | * @date 2022-10-17 13 | */ 14 | @Data 15 | @ApiModel(description = "操作Task") 16 | public class TaskActionDTO extends ConnectorActionDTO { 17 | @NotNull(message = "taskId不允许为NULL") 18 | @ApiModelProperty(value = "taskId", example = "123") 19 | private Long taskId; 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/group/GroupTopicConsumedDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.group; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.dto.pagination.PaginationSortDTO; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | 10 | /** 11 | * @author zengqiao 12 | * @date 22/02/24 13 | */ 14 | @Data 15 | public class GroupTopicConsumedDTO extends PaginationSortDTO { 16 | @ApiModelProperty("需要指标点的信息") 17 | private List latestMetricNames; 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/metrices/MetricGroupTopicDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.metrices; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | /** 10 | * @author didi 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | @ApiModel(description = "Group&Topic指标查询信息") 16 | public class MetricGroupTopicDTO extends MetricDTO { 17 | @ApiModelProperty("Group名称") 18 | private String group; 19 | 20 | @ApiModelProperty("Topic名称") 21 | private String topic; 22 | } 23 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/metrices/MetricRealTimeDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.metrices; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.dto.BaseDTO; 4 | import io.swagger.annotations.ApiModel; 5 | import io.swagger.annotations.ApiModelProperty; 6 | import lombok.AllArgsConstructor; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | /** 11 | * @author didi 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | @AllArgsConstructor 16 | @ApiModel(description = "指标查询基础信息") 17 | public class MetricRealTimeDTO extends BaseDTO { 18 | @ApiModelProperty("指标类型") 19 | private Integer metricType; 20 | 21 | @ApiModelProperty("指标名称") 22 | private String metricName; 23 | } 24 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/metrices/MetricsBrokerDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.metrices; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @author didi 13 | */ 14 | @Data 15 | @NoArgsConstructor 16 | @AllArgsConstructor 17 | @ApiModel(description = "topic指标查询信息") 18 | public class MetricsBrokerDTO extends MetricDTO { 19 | 20 | @ApiModelProperty("brokerId列表") 21 | private List brokerIds; 22 | } 23 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/metrices/MetricsClusterPhyDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.metrices; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @author didi 13 | */ 14 | @Data 15 | @NoArgsConstructor 16 | @AllArgsConstructor 17 | @ApiModel(description = "物理集群指标查询信息") 18 | public class MetricsClusterPhyDTO extends MetricDTO { 19 | 20 | @ApiModelProperty("物理集群Id列表") 21 | private List clusterPhyIds; 22 | } 23 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/metrices/MetricsTopicDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.metrices; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @author didi 13 | */ 14 | @Data 15 | @NoArgsConstructor 16 | @AllArgsConstructor 17 | @ApiModel(description = "topic指标查询信息") 18 | public class MetricsTopicDTO extends MetricDTO { 19 | 20 | @ApiModelProperty("topic名称") 21 | private List topics; 22 | } 23 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/util/ValidateKafkaZKDTO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.dto.util; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import javax.validation.constraints.NotBlank; 8 | 9 | /** 10 | * @author zengqiao 11 | * @date 20/4/23 12 | */ 13 | @Data 14 | @ApiModel(description="Kafka-ZK信息") 15 | public class ValidateKafkaZKDTO { 16 | @NotBlank(message = "zookeeper不允许为空") 17 | @ApiModelProperty(value = "zk地址", example = "127.0.0.1:2181") 18 | private String zookeeper; 19 | } 20 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/BaseEntity.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.Date; 7 | 8 | /** 9 | * @author d06679 10 | * @date 2019/3/22 11 | */ 12 | @Data 13 | public class BaseEntity implements Serializable { 14 | protected Date createTime; 15 | 16 | protected Date updateTime; 17 | } 18 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/EntityIdInterface.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity; 2 | 3 | /** 4 | * @author didi 5 | */ 6 | public interface EntityIdInterface { 7 | /** 8 | * 获取id 9 | * @return 10 | */ 11 | Long getId(); 12 | } 13 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/broker/BrokerSpec.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.broker; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class BrokerSpec { 11 | 12 | private Integer brokerId; 13 | 14 | private Double cpu; 15 | 16 | private Double disk; 17 | 18 | private Double flow; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/cluster/ClusterPhysState.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.cluster; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | 8 | /** 9 | * 集群状态信息 10 | * @author zengqiao 11 | * @date 22/02/24 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | @AllArgsConstructor 16 | public class ClusterPhysState { 17 | private Integer liveCount; 18 | 19 | private Integer downCount; 20 | 21 | private Integer unknownCount; 22 | 23 | private Integer total; 24 | } 25 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/common/IpPortData.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.common; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class IpPortData implements Serializable { 13 | private static final long serialVersionUID = -428897032994630685L; 14 | 15 | private String ip; 16 | 17 | private String port; 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/config/BaseClusterConfigValue.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.config; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class BaseClusterConfigValue implements Serializable { 9 | /** 10 | * 物理集群ID 11 | */ 12 | protected Long clusterPhyId; 13 | } 14 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/config/healthcheck/BaseClusterHealthConfig.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.config.healthcheck; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.config.BaseClusterConfigValue; 4 | import com.xiaojukeji.know.streaming.km.common.enums.health.HealthCheckNameEnum; 5 | import lombok.Data; 6 | 7 | /** 8 | * 单集群的配置 9 | */ 10 | @Data 11 | public class BaseClusterHealthConfig extends BaseClusterConfigValue { 12 | /** 13 | * 健康检查名称 14 | */ 15 | protected HealthCheckNameEnum checkNameEnum; 16 | } 17 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/config/healthcheck/HealthAmountRatioConfig.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.config.healthcheck; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author wyb 7 | * @date 2022/10/26 8 | */ 9 | @Data 10 | public class HealthAmountRatioConfig extends BaseClusterHealthConfig { 11 | /** 12 | * 总数 13 | */ 14 | private Integer amount; 15 | /** 16 | * 比例 17 | */ 18 | private Double ratio; 19 | } 20 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/config/healthcheck/HealthCompareValueConfig.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.config.healthcheck; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * 单集群配置,比较大小 7 | */ 8 | @Data 9 | public class HealthCompareValueConfig extends BaseClusterHealthConfig { 10 | /** 11 | * 比较值 12 | */ 13 | private Double value = 10.0; 14 | } 15 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/config/healthcheck/HealthDetectedInLatestMinutesConfig.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.config.healthcheck; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * 最近N分钟被检测到M次 7 | */ 8 | @Data 9 | public class HealthDetectedInLatestMinutesConfig extends BaseClusterHealthConfig { 10 | /** 11 | * 最近多少时间 12 | */ 13 | private Integer latestMinutes = 10; 14 | 15 | /** 16 | * 被检测到的次数 17 | */ 18 | private Integer detectedTimes = 8; 19 | } 20 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/connect/config/ConnectConfigInfo.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.connect.config; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import org.apache.kafka.connect.runtime.rest.entities.ConfigInfo; 7 | 8 | 9 | /** 10 | * @see ConfigInfo 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class ConnectConfigInfo { 16 | private ConnectConfigKeyInfo definition; 17 | 18 | private ConnectConfigValueInfo value; 19 | } 20 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/connect/config/ConnectConfigValueInfo.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.connect.config; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.apache.kafka.connect.runtime.rest.entities.ConfigValueInfo; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @see ConfigValueInfo 13 | */ 14 | @Data 15 | @NoArgsConstructor 16 | @AllArgsConstructor 17 | public class ConnectConfigValueInfo { 18 | private String name; 19 | 20 | private String value; 21 | 22 | private List recommendedValues; 23 | 24 | private List errors; 25 | 26 | private boolean visible; 27 | } 28 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/connect/connector/KSAbstractConnectState.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.connect.connector; 2 | 3 | import com.alibaba.fastjson.annotation.JSONField; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import lombok.Data; 6 | import org.apache.kafka.connect.runtime.rest.entities.ConnectorStateInfo; 7 | 8 | /** 9 | * @see ConnectorStateInfo.AbstractState 10 | */ 11 | @Data 12 | public abstract class KSAbstractConnectState { 13 | private String state; 14 | 15 | private String trace; 16 | 17 | @JSONField(name="worker_id") 18 | @JsonProperty("worker_id") 19 | private String workerId; 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/connect/connector/KSConnectorState.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.connect.connector; 2 | 3 | import lombok.Data; 4 | import org.apache.kafka.connect.runtime.rest.entities.ConnectorStateInfo; 5 | 6 | /** 7 | * @see ConnectorStateInfo.ConnectorState 8 | */ 9 | @Data 10 | public class KSConnectorState extends KSAbstractConnectState { 11 | } 12 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/connect/connector/KSConnectorStateInfo.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.connect.connector; 2 | 3 | import lombok.Data; 4 | import org.apache.kafka.connect.runtime.rest.entities.ConnectorStateInfo; 5 | import org.apache.kafka.connect.runtime.rest.entities.ConnectorType; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @see ConnectorStateInfo 11 | */ 12 | @Data 13 | public class KSConnectorStateInfo { 14 | private String name; 15 | 16 | private KSConnectorState connector; 17 | 18 | private List tasks; 19 | 20 | private ConnectorType type; 21 | } 22 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/connect/connector/KSTaskState.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.connect.connector; 2 | 3 | import lombok.Data; 4 | import org.apache.kafka.connect.runtime.rest.entities.ConnectorStateInfo; 5 | 6 | /** 7 | * @see ConnectorStateInfo.TaskState 8 | */ 9 | @Data 10 | public class KSTaskState extends KSAbstractConnectState { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/group/GroupTopic.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.group; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * @author zengqiao 11 | * @date 19/5/14 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | @AllArgsConstructor 16 | public class GroupTopic implements Serializable { 17 | private String groupName; 18 | 19 | private String topicName; 20 | } -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/group/GroupTopicMember.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.group; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | 6 | /** 7 | * @author wyb 8 | * @date 2022/10/10 9 | */ 10 | @Data 11 | @NoArgsConstructor 12 | public class GroupTopicMember { 13 | /** 14 | * Topic名称 15 | */ 16 | private String topicName; 17 | 18 | /** 19 | * 消费此Topic的成员数量 20 | */ 21 | private Integer memberCount; 22 | 23 | public GroupTopicMember(String topicName, Integer memberCount) { 24 | this.topicName = topicName; 25 | this.memberCount = memberCount; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/ha/HaActiveStandbyRelation.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.ha; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.po.BasePO; 4 | import com.xiaojukeji.know.streaming.km.common.enums.ha.HaResTypeEnum; 5 | import lombok.Data; 6 | 7 | @Data 8 | public class HaActiveStandbyRelation extends BasePO { 9 | private Long activeClusterPhyId; 10 | 11 | private Long standbyClusterPhyId; 12 | 13 | /** 14 | * 资源名称 15 | */ 16 | private String resName; 17 | 18 | /** 19 | * 资源类型,0:集群,1:镜像Topic,2:主备Topic 20 | * @see HaResTypeEnum 21 | */ 22 | private Integer resType; 23 | } 24 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/jmx/ServerIdJmxPort.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.jmx; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * @author didi 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class ServerIdJmxPort implements Serializable { 16 | /** 17 | * serverID 18 | */ 19 | private String serverId; 20 | 21 | /** 22 | * JMX端口 23 | */ 24 | private Integer jmxPort; 25 | } 26 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/job/content/BaseJobCreateContent.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.job.content; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class BaseJobCreateContent { 7 | protected int type; 8 | } 9 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/job/detail/SubBrokerJobDetail.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.job.detail; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | @Data 8 | public abstract class SubBrokerJobDetail extends SubJobDetail{ 9 | /** 10 | * 源brokerId列表 11 | */ 12 | private List sourceBrokers; 13 | 14 | /** 15 | * 目的brokerId列表 16 | */ 17 | private List desBrokers; 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/job/detail/SubJobDetail.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.job.detail; 2 | 3 | public abstract class SubJobDetail { 4 | } 5 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/kafka/KSMemberBaseAssignment.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.kafka; 2 | 3 | public class KSMemberBaseAssignment { 4 | } 5 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/metrics/ClusterPagingMetrics.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.metrics; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.util.Map; 8 | 9 | /** 10 | * @author didi 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class ClusterPagingMetrics { 16 | private Long clusterId; 17 | private Float sortValue; 18 | private Map metricValues; 19 | } 20 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/metrics/TopicPagingMetrics.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.metrics; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.util.Map; 8 | 9 | /** 10 | * @author didi 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class TopicPagingMetrics { 16 | private String topic; 17 | private Float sortValue; 18 | private Map metricValues; 19 | } 20 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/pagination/PaginationData.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.pagination; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @ApiModel(description = "分页数据") 11 | public class PaginationData { 12 | @ApiModelProperty(value = "业务数据") 13 | private List bizData; 14 | 15 | @ApiModelProperty(value = "分页信息") 16 | private Pagination pagination; 17 | } 18 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/VersionItemParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param; 2 | 3 | public class VersionItemParam { 4 | } 5 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/broker/BrokerParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.broker; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.param.cluster.ClusterPhyParam; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | public class BrokerParam extends ClusterPhyParam { 12 | protected Integer brokerId; 13 | 14 | public BrokerParam(Long clusterPhyId, Integer brokerId) { 15 | super(clusterPhyId); 16 | this.brokerId = brokerId; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/cluster/ClusterParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.cluster; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.param.VersionItemParam; 4 | 5 | /** 6 | * @author wyc 7 | * @date 2022/11/9 8 | */ 9 | public class ClusterParam extends VersionItemParam { 10 | } 11 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/cluster/ClusterPhyParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.cluster; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class ClusterPhyParam extends ClusterParam { 11 | protected Long clusterPhyId; 12 | } 13 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/cluster/ConnectClusterParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.cluster; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * @author wyb 9 | * @date 2022/11/9 10 | */ 11 | @Data 12 | @NoArgsConstructor 13 | @AllArgsConstructor 14 | public class ConnectClusterParam extends ClusterParam{ 15 | protected Long connectClusterId; 16 | } 17 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/group/DeleteGroupParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.group; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.enums.group.DeleteGroupTypeEnum; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | public class DeleteGroupParam extends GroupParam { 10 | protected DeleteGroupTypeEnum deleteGroupTypeEnum; 11 | 12 | public DeleteGroupParam(Long clusterPhyId, String groupName, DeleteGroupTypeEnum deleteGroupTypeEnum) { 13 | super(clusterPhyId, groupName); 14 | this.deleteGroupTypeEnum = deleteGroupTypeEnum; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/group/DeleteGroupTopicParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.group; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.enums.group.DeleteGroupTypeEnum; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | public class DeleteGroupTopicParam extends DeleteGroupParam { 10 | protected String topicName; 11 | 12 | public DeleteGroupTopicParam(Long clusterPhyId, String groupName, DeleteGroupTypeEnum deleteGroupTypeEnum, String topicName) { 13 | super(clusterPhyId, groupName, deleteGroupTypeEnum); 14 | this.topicName = topicName; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/group/GroupParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.group; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.param.cluster.ClusterPhyParam; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | public class GroupParam extends ClusterPhyParam { 10 | protected String groupName; 11 | 12 | public GroupParam(Long clusterPhyId, String groupName) { 13 | super(clusterPhyId); 14 | this.groupName = groupName; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/kafkauser/KafkaUserParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.kafkauser; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.param.cluster.ClusterPhyParam; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | public class KafkaUserParam extends ClusterPhyParam { 12 | protected String kafkaUserName; 13 | 14 | public KafkaUserParam(Long clusterPhyId, String kafkaUserName) { 15 | super(clusterPhyId); 16 | this.kafkaUserName = kafkaUserName; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/kafkauser/KafkaUserReplaceParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.kafkauser; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class KafkaUserReplaceParam extends KafkaUserParam { 11 | private String kafkaUserToken; 12 | 13 | public KafkaUserReplaceParam(Long clusterPhyId, String kafkaUserName, String kafkaUserToken) { 14 | super(clusterPhyId, kafkaUserName); 15 | this.kafkaUserToken = kafkaUserToken; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/metric/BrokerMetricParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.metric; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * @author didi 9 | */ 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class BrokerMetricParam extends MetricParam { 14 | 15 | private Long clusterId; 16 | 17 | private Integer brokerId; 18 | 19 | private String metric; 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/metric/ClusterMetricParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.metric; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * @author didi 9 | */ 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class ClusterMetricParam extends MetricParam { 14 | 15 | private Long clusterId; 16 | 17 | private String metric; 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/metric/GroupTopicMetricParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.metric; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * @author didi 9 | */ 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class GroupTopicMetricParam extends GroupMetricParam { 14 | 15 | private String topicName; 16 | 17 | private Long partitionId; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/metric/MetricParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.metric; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.param.VersionItemParam; 4 | 5 | public class MetricParam extends VersionItemParam { 6 | } 7 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/metric/PartitionMetricParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.metric; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * @author didi 9 | */ 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class PartitionMetricParam extends MetricParam { 14 | 15 | private Long clusterPhyId; 16 | private String topic; 17 | private Integer brokerId; 18 | private Integer partitionId; 19 | private String metric; 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/metric/ReplicationMetricParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.metric; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * @author didi 9 | */ 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class ReplicationMetricParam extends MetricParam { 14 | 15 | private Long clusterPhyId; 16 | private String topic; 17 | private Integer brokerId; 18 | private Integer partitionId; 19 | private String metric; 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/metric/TopicMetricParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.metric; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * @author didi 9 | */ 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class TopicMetricParam extends MetricParam { 14 | 15 | private Long clusterId; 16 | private String topic; 17 | private String metric; 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/metric/connect/ConnectClusterMetricParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.metric.connect; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.param.metric.MetricParam; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author wyb 10 | * @date 2022/11/1 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class ConnectClusterMetricParam extends MetricParam { 16 | 17 | private Long connectClusterId; 18 | 19 | private String metric; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/param/partition/BatchPartitionParam.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.param.partition; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.param.cluster.ClusterPhyParam; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import org.apache.kafka.common.TopicPartition; 7 | 8 | import java.util.List; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | public class BatchPartitionParam extends ClusterPhyParam { 13 | private List tpList; 14 | 15 | public BatchPartitionParam(Long clusterPhyId, List tpList) { 16 | super(clusterPhyId); 17 | this.tpList = tpList; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/reassign/ReassignResult.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.reassign; 2 | 3 | import lombok.Data; 4 | import org.apache.kafka.common.TopicPartition; 5 | 6 | import java.util.Map; 7 | 8 | @Data 9 | public class ReassignResult { 10 | private Map reassignStateMap; 11 | 12 | private boolean partsOngoing; 13 | 14 | public boolean checkPartitionFinished(String topicName, Integer partitionId) { 15 | ReassignState state = reassignStateMap.get(new TopicPartition(topicName, partitionId)); 16 | if (state == null) { 17 | return true; 18 | } 19 | 20 | return state.isDone(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/reassign/ReassignState.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.reassign; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | @Data 8 | public class ReassignState { 9 | private List currentReplicas; 10 | 11 | private List targetReplicas; 12 | 13 | private boolean done; 14 | } 15 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/reassign/job/ReplaceReassignJob.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.reassign.job; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.dto.BaseDTO; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | @Data 9 | public class ReplaceReassignJob extends BaseDTO { 10 | /** 11 | * 物理集群ID 12 | */ 13 | private Long clusterPhyId; 14 | 15 | /** 16 | * 限流值 17 | */ 18 | private Long throttleUnitB; 19 | 20 | /** 21 | * 备注 22 | */ 23 | private String description; 24 | 25 | /** 26 | * 子任务列表 27 | */ 28 | private List subJobList; 29 | } 30 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/reassign/job/detail/ReassignJobDetailDataGroupByPartition.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.reassign.job.detail; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author zengqiao 7 | * @date 22/05/06 8 | */ 9 | @Data 10 | public class ReassignJobDetailDataGroupByPartition extends AbstractReassignJobDetailData { 11 | /** 12 | * 分区ID 13 | */ 14 | private Integer partitionId; 15 | } 16 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/reassign/job/detail/ReassignJobDetailDataGroupByTopic.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.reassign.job.detail; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | 8 | /** 9 | * @author zengqiao 10 | * @date 22/05/06 11 | */ 12 | @Data 13 | public class ReassignJobDetailDataGroupByTopic extends AbstractReassignJobDetailData { 14 | /** 15 | * 分区ID列表 16 | */ 17 | private List partitionIdList; 18 | 19 | private List reassignPartitionDetailsList; 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/reassign/strategy/ReassignTask.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.reassign.strategy; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author zengqiao 11 | * @date 22/05/06 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | public class ReassignTask { 17 | /** 18 | * topic名称 19 | */ 20 | private String topic; 21 | 22 | /** 23 | * 分区id 24 | */ 25 | private int partition; 26 | 27 | /** 28 | * 目标副本 29 | */ 30 | private List replicas; 31 | 32 | } 33 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/record/RecordHeaderKS.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.record; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class RecordHeaderKS { 11 | private String key; 12 | 13 | private String value; 14 | } 15 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/search/SearchPage.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.search; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class SearchPage { 11 | private int pageNo = 1; 12 | private int pageSize = 10; 13 | 14 | public int from(){ 15 | return pageNo * pageSize; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/search/SearchRange.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.search; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class SearchRange extends SearchQuery{ 11 | private float min; 12 | private float max; 13 | 14 | public SearchRange(String fieldName, float min, float max){ 15 | super(fieldName); 16 | this.min = min; 17 | this.max = max; 18 | } 19 | 20 | @Override 21 | public boolean valid(){ 22 | return validSuper() && (max > min); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/topic/TopicPartitionKS.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.topic; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class TopicPartitionKS implements Serializable { 13 | private static final long serialVersionUID = 19459887202113667L; 14 | private String topic; 15 | 16 | private Integer partition; 17 | } 18 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/version/VersionConnectJmxInfo.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.version; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.enums.connect.ConnectorTypeEnum; 4 | import lombok.Data; 5 | 6 | /** 7 | * @author wyb 8 | * @date 2022/11/24 9 | */ 10 | @Data 11 | public class VersionConnectJmxInfo extends VersionJmxInfo{ 12 | private ConnectorTypeEnum type; 13 | } 14 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/version/VersionMethodInfo.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.version; 2 | 3 | import com.alibaba.fastjson.JSON; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | public class VersionMethodInfo { 12 | 13 | private String methodName; 14 | 15 | private boolean jmx = false; 16 | 17 | public VersionMethodInfo methodName(String methodName){ 18 | this.methodName = methodName; 19 | return this; 20 | } 21 | 22 | @Override 23 | public String toString(){ 24 | return JSON.toJSONString(this); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/zookeeper/Znode.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.zookeeper; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | import org.apache.zookeeper.data.Stat; 6 | 7 | @Data 8 | public class Znode { 9 | @ApiModelProperty(value = "节点名称", example = "broker") 10 | private String name; 11 | 12 | @ApiModelProperty(value = "节点数据", example = "saassad") 13 | private String data; 14 | 15 | @ApiModelProperty(value = "节点属性", example = "") 16 | private Stat stat; 17 | 18 | @ApiModelProperty(value = "节点路径", example = "") 19 | private String namespace; 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/zookeeper/fourletterword/BaseFourLetterWordCmdData.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.zookeeper.fourletterword; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * 四字命令结果数据的基础类 7 | */ 8 | public class BaseFourLetterWordCmdData implements Serializable { 9 | } 10 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/zookeeper/fourletterword/parser/FourLetterWordDataParser.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.entity.zookeeper.fourletterword.parser; 2 | 3 | /** 4 | * 四字命令结果解析类 5 | */ 6 | public interface FourLetterWordDataParser { 7 | String getCmd(); 8 | 9 | T parseAndInitData(Long clusterPhyId, String host, int port, String cmdData); 10 | } 11 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/event/cluster/ClusterPhyAddedEvent.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.event.cluster; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * 集群新增事件 7 | * @author zengqiao 8 | * @date 22/02/25 9 | */ 10 | @Getter 11 | public class ClusterPhyAddedEvent extends ClusterPhyBaseEvent { 12 | public ClusterPhyAddedEvent(Object source, Long clusterPhyId) { 13 | super(source, clusterPhyId); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/event/cluster/ClusterPhyBaseEvent.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.event.cluster; 2 | 3 | import lombok.Getter; 4 | import org.springframework.context.ApplicationEvent; 5 | 6 | /** 7 | * 集群事件基础类 8 | * @author zengqiao 9 | * @date 21/9/11 10 | */ 11 | @Getter 12 | public class ClusterPhyBaseEvent extends ApplicationEvent { 13 | protected final Long clusterPhyId; 14 | 15 | public ClusterPhyBaseEvent(Object source, Long clusterPhyId) { 16 | super(source); 17 | this.clusterPhyId = clusterPhyId; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/event/cluster/connect/ClusterPhyDeletedEvent.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.event.cluster.connect; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.event.cluster.ClusterPhyBaseEvent; 4 | import lombok.Getter; 5 | 6 | /** 7 | * 集群删除事件 8 | * @author zengqiao 9 | * @date 23/08/15 10 | */ 11 | @Getter 12 | public class ClusterPhyDeletedEvent extends ClusterPhyBaseEvent { 13 | public ClusterPhyDeletedEvent(Object source, Long clusterPhyId) { 14 | super(source, clusterPhyId); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/event/metric/BaseMetricEvent.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.event.metric; 2 | 3 | import lombok.Getter; 4 | import org.springframework.context.ApplicationEvent; 5 | 6 | /** 7 | * @author didi 8 | */ 9 | @Getter 10 | public class BaseMetricEvent extends ApplicationEvent { 11 | public BaseMetricEvent(Object source) { 12 | super( source ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/event/metric/BrokerMetricEvent.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.event.metric; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.metrics.BrokerMetrics; 4 | import lombok.Getter; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @author didi 10 | */ 11 | @Getter 12 | public class BrokerMetricEvent extends BaseMetricEvent{ 13 | 14 | private final List brokerMetrics; 15 | 16 | public BrokerMetricEvent(Object source, List brokerMetrics) { 17 | super( source ); 18 | this.brokerMetrics = brokerMetrics; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/event/metric/ClusterMetricEvent.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.event.metric; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.metrics.ClusterMetrics; 4 | import lombok.Getter; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @author didi 10 | */ 11 | @Getter 12 | public class ClusterMetricEvent extends BaseMetricEvent{ 13 | 14 | private final List clusterMetrics; 15 | 16 | public ClusterMetricEvent(Object source, List clusterMetrics) { 17 | super( source ); 18 | this.clusterMetrics = clusterMetrics; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/event/metric/GroupMetricEvent.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.event.metric; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.metrics.GroupMetrics; 4 | import lombok.Getter; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @author didi 10 | */ 11 | @Getter 12 | public class GroupMetricEvent extends BaseMetricEvent{ 13 | 14 | private final List groupMetrics; 15 | 16 | public GroupMetricEvent(Object source, List groupMetrics) { 17 | super( source ); 18 | this.groupMetrics = groupMetrics; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/event/metric/PartitionMetricEvent.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.event.metric; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.metrics.PartitionMetrics; 4 | import lombok.Getter; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @author didi 10 | */ 11 | @Getter 12 | public class PartitionMetricEvent extends BaseMetricEvent{ 13 | 14 | private final List partitionMetrics; 15 | 16 | public PartitionMetricEvent(Object source, List partitionMetrics) { 17 | super( source ); 18 | this.partitionMetrics = partitionMetrics; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/event/metric/TopicMetricEvent.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.event.metric; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.metrics.TopicMetrics; 4 | import lombok.Getter; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @author didi 10 | */ 11 | @Getter 12 | public class TopicMetricEvent extends BaseMetricEvent{ 13 | 14 | private final List topicMetrics; 15 | 16 | public TopicMetricEvent(Object source, List topicMetrics) { 17 | super( source ); 18 | this.topicMetrics = topicMetrics; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/event/metric/ZookeeperMetricEvent.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.event.metric; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.metrics.ZookeeperMetrics; 4 | import lombok.Getter; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @author didi 10 | */ 11 | @Getter 12 | public class ZookeeperMetricEvent extends BaseMetricEvent { 13 | 14 | private final List zookeeperMetrics; 15 | 16 | public ZookeeperMetricEvent(Object source, List zookeeperMetrics) { 17 | super( source ); 18 | this.zookeeperMetrics = zookeeperMetrics; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/po/BaseESPO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.po; 2 | 3 | public abstract class BaseESPO { 4 | /** 5 | * 获取ES文档的主键key 6 | * 7 | * @return 8 | */ 9 | public abstract String getKey(); 10 | 11 | /** 12 | * 获取routing值 13 | * @return 14 | */ 15 | public abstract String getRoutingValue(); 16 | } 17 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/po/BasePO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.po; 2 | 3 | import com.baomidou.mybatisplus.annotation.IdType; 4 | import com.baomidou.mybatisplus.annotation.TableId; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | import java.util.Date; 9 | 10 | @Data 11 | public class BasePO implements Serializable { 12 | /** 13 | * 主键 14 | */ 15 | @TableId(type = IdType.AUTO) 16 | protected Long id; 17 | 18 | /** 19 | * 创建时间 20 | */ 21 | protected Date createTime; 22 | 23 | /** 24 | * 更新时间 25 | */ 26 | protected Date updateTime; 27 | } 28 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/po/kafkacontrollr/KafkaControllerPO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.po.kafkacontrollr; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.BasePO; 5 | import com.xiaojukeji.know.streaming.km.common.constant.Constant; 6 | import lombok.Data; 7 | 8 | @Data 9 | @TableName(Constant.MYSQL_TABLE_NAME_PREFIX + "kafka_controller") 10 | public class KafkaControllerPO extends BasePO { 11 | private Long clusterPhyId; 12 | 13 | private Integer brokerId; 14 | 15 | private String brokerHost; 16 | 17 | private String brokerRack; 18 | 19 | private Long timestamp; 20 | } -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/BaseTimeVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | import lombok.ToString; 6 | 7 | import java.util.Date; 8 | 9 | /** 10 | * @author d06679 11 | * @date 2019/3/13 12 | */ 13 | @ToString 14 | @Data 15 | public class BaseTimeVO extends BaseVO { 16 | @ApiModelProperty(value = "创建时间(ms)", example = "1645608135717") 17 | private Date createTime; 18 | 19 | @ApiModelProperty(value = "更新时间(ms)", example = "1645608135717") 20 | private Date updateTime; 21 | } 22 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/BaseVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo; 2 | 3 | import lombok.ToString; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * @author d06679 9 | * @date 2019/3/13 10 | */ 11 | @ToString 12 | public class BaseVO implements Serializable { 13 | } 14 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/cluster/ClusterPhyBaseCombineExistVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.cluster; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | 8 | /** 9 | * @author zengqiao 10 | * @date 22/02/24 11 | */ 12 | @Data 13 | @ApiModel(description = "集群信息") 14 | public class ClusterPhyBaseCombineExistVO extends ClusterPhyBaseVO { 15 | @ApiModelProperty(value="是否存在", example = "true") 16 | protected Boolean exist; 17 | } 18 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/cluster/connect/ConnectClusterBasicCombineExistVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.cluster.connect; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | 8 | /** 9 | * 集群的Connect集群信息 10 | * @author zengqiao 11 | * @date 22/02/23 12 | */ 13 | @Data 14 | @ApiModel(description = "Connect集群基本信息") 15 | public class ConnectClusterBasicCombineExistVO extends ConnectClusterBasicVO { 16 | @ApiModelProperty(value="是否存在", example = "true") 17 | protected Boolean exist; 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/cluster/connector/ConnectorBasicCombineExistVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.cluster.connector; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | 8 | /** 9 | * 集群Connector信息 10 | * @author zengqiao 11 | * @date 22/02/23 12 | */ 13 | @Data 14 | @ApiModel(description = "Connector基本信息") 15 | public class ConnectorBasicCombineExistVO extends ConnectorBasicVO { 16 | @ApiModelProperty(value="是否存在", example = "true") 17 | protected Boolean exist; 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/cluster/mm2/MirrorMakerBasicVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.cluster.mm2; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.vo.cluster.connector.ConnectorBasicVO; 4 | import io.swagger.annotations.ApiModel; 5 | import lombok.Data; 6 | 7 | 8 | /** 9 | * 集群MM2信息 10 | * @author zengqiao 11 | * @date 22/02/23 12 | */ 13 | @Data 14 | @ApiModel(description = "MM2基本信息") 15 | public class MirrorMakerBasicVO extends ConnectorBasicVO { 16 | } 17 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/cluster/res/ClusterACLsStateVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.cluster.res; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | /** 8 | * 集群Topic信息 9 | * @author zengqiao 10 | * @date 22/02/23 11 | */ 12 | @Data 13 | @ApiModel(description = "集群ACL状态信息") 14 | public class ClusterACLsStateVO { 15 | @ApiModelProperty(value = "开启ACL", example = "false") 16 | private Boolean openAcl; 17 | } 18 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/config/kafka/KafkaInZKConfigChangedVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.config.kafka; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.vo.BaseTimeVO; 4 | import io.swagger.annotations.ApiModel; 5 | import io.swagger.annotations.ApiModelProperty; 6 | import lombok.Data; 7 | 8 | /** 9 | * @author zengqiao 10 | * @date 22/02/28 11 | */ 12 | @Data 13 | @ApiModel(description = "KafkaInZK配置信息") 14 | public class KafkaInZKConfigChangedVO extends BaseTimeVO { 15 | @ApiModelProperty(value = "配置变更信息", example = "broker-1001配置修改") 16 | private String changedMessage; 17 | } 18 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/connect/plugin/ConnectConfigInfoVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.connect.plugin; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import org.apache.kafka.connect.runtime.rest.entities.ConfigInfo; 7 | 8 | 9 | /** 10 | * @see ConfigInfo 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class ConnectConfigInfoVO { 16 | private ConnectConfigKeyInfoVO definition; 17 | 18 | private ConnectConfigValueInfoVO value; 19 | } 20 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/connect/plugin/ConnectConfigInfosVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.connect.plugin; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.apache.kafka.connect.runtime.rest.entities.ConfigInfos; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @see ConfigInfos 13 | */ 14 | @Data 15 | @NoArgsConstructor 16 | @AllArgsConstructor 17 | public class ConnectConfigInfosVO { 18 | private String name; 19 | 20 | private int errorCount; 21 | 22 | private List groups; 23 | 24 | private List configs; 25 | } 26 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/connect/plugin/ConnectConfigValueInfoVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.connect.plugin; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.apache.kafka.connect.runtime.rest.entities.ConfigValueInfo; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @see ConfigValueInfo 13 | */ 14 | @Data 15 | @NoArgsConstructor 16 | @AllArgsConstructor 17 | public class ConnectConfigValueInfoVO { 18 | private String name; 19 | 20 | private String value; 21 | 22 | private List recommendedValues; 23 | 24 | private List errors; 25 | 26 | private boolean visible; 27 | } 28 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/group/GroupTopicOverviewVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.group; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author zengqiao 9 | * @date 22/02/22 10 | */ 11 | @Data 12 | @ApiModel(value = "GroupTopic信息") 13 | public class GroupTopicOverviewVO extends GroupTopicBasicVO { 14 | @ApiModelProperty(value = "最大Lag", example = "12345678") 15 | private Long maxLag; 16 | } 17 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/health/HealthScoreResultDetailVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.health; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author zengqiao 11 | * @date 22/03/01 12 | */ 13 | @Data 14 | @ApiModel(description = "健康检查结果信息") 15 | public class HealthScoreResultDetailVO extends HealthScoreBaseResultVO { 16 | @ApiModelProperty(value="未通过的资源列表", example = "") 17 | private List notPassedResNameList; 18 | } 19 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/job/JobTypeVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.job; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.vo.BaseTimeVO; 4 | import io.swagger.annotations.ApiModel; 5 | import io.swagger.annotations.ApiModelProperty; 6 | import lombok.Data; 7 | 8 | @Data 9 | @ApiModel(description = "job类型") 10 | public class JobTypeVO extends BaseTimeVO { 11 | @ApiModelProperty(value = "任务类型") 12 | private Integer type; 13 | 14 | @ApiModelProperty(value = "描述信息") 15 | private String message; 16 | 17 | public JobTypeVO(Integer type, String message) { 18 | this.type = type; 19 | this.message = message; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/job/sub/SubBrokerJobVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.job.sub; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | @Data 9 | public abstract class SubBrokerJobVO extends SubJobVO { 10 | @ApiModelProperty(value = "源BrokerId列表") 11 | protected List sourceBrokers; 12 | 13 | @ApiModelProperty(value = "目标BrokerId列表") 14 | protected List desBrokers; 15 | } 16 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/job/sub/SubJobVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.job.sub; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | 5 | @ApiModel(description = "Job-子任务详情") 6 | public abstract class SubJobVO { 7 | } 8 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/kafkauser/KafkaUserTokenVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.kafkauser; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | @Data 7 | public class KafkaUserTokenVO extends KafkaUserVO { 8 | @ApiModelProperty(value = "密钥", example = "1235") 9 | protected String token; 10 | 11 | @ApiModelProperty(value = "是否解密", example = "true") 12 | private Boolean decrypt; 13 | } 14 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/metadata/BrokerMetadataVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.metadata; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author zengqiao 10 | * @date 19/7/12 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class BrokerMetadataVO { 16 | @ApiModelProperty(value="id") 17 | private Integer brokerId; 18 | 19 | @ApiModelProperty(value="主机") 20 | private String host; 21 | } 22 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/metadata/TopicMetadataCombineExistVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.metadata; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author zengqiao 9 | * @date 20/4/29 10 | */ 11 | @Data 12 | @ApiModel(description="Topic是否存在及元信息") 13 | public class TopicMetadataCombineExistVO extends TopicMetadataVO { 14 | @ApiModelProperty(value="是否存在,true:是 , false:否") 15 | private Boolean exist; 16 | } 17 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/reassign/job/RawReassignJobStatVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.reassign.job; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @Data 8 | @ApiModel(description = "迁移任务stat信息") 9 | public class RawReassignJobStatVO { 10 | @ApiModelProperty(value="总数", example = "10") 11 | private Integer totalSize; 12 | 13 | @ApiModelProperty(value="成功", example = "10") 14 | private Integer success; 15 | 16 | @ApiModelProperty(value="失败", example = "10") 17 | private Integer failed; 18 | 19 | @ApiModelProperty(value="运行中", example = "10") 20 | private Integer doing; 21 | } 22 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/reassign/plan/ReassignPlanVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.reassign.plan; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @author zengqiao 13 | * @date 22/05/06 14 | */ 15 | @Data 16 | @NoArgsConstructor 17 | @AllArgsConstructor 18 | @ApiModel(description = "迁移计划") 19 | public class ReassignPlanVO { 20 | @ApiModelProperty(value="迁移计划列表") 21 | private List topicPlanList; 22 | } 23 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/util/KafkaBSValidateVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.util; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author zengqiao 9 | * @date 22/02/24 10 | */ 11 | @Data 12 | @ApiModel(description = "Kafka-BS检查结果") 13 | public class KafkaBSValidateVO extends KafkaZKValidateVO { 14 | @ApiModelProperty(value = "ZK地址", example = "127.0.0.1:2181") 15 | private String zookeeper; 16 | } 17 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/version/KmVersionVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.version; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import lombok.Data; 5 | 6 | /** 7 | * @author zengqiao 8 | * @date 22/03/04 9 | */ 10 | @Data 11 | @ApiModel(description = "Km版本信息") 12 | public class KmVersionVO { 13 | private String kmVersion; 14 | } 15 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/zookeeper/ZnodeVO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.bean.vo.zookeeper; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | /** 7 | * @author wyc 8 | * @date 2022/9/23 9 | */ 10 | @Data 11 | public class ZnodeVO { 12 | 13 | @ApiModelProperty(value = "节点名称", example = "broker") 14 | private String name; 15 | 16 | @ApiModelProperty(value = "节点数据", example = "saassad") 17 | private String data; 18 | 19 | @ApiModelProperty(value = "节点属性", example = "") 20 | private ZnodeStatVO stat; 21 | 22 | @ApiModelProperty(value = "节点路径", example = "/cluster") 23 | private String namespace; 24 | 25 | } 26 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/component/BaseHandle.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.component; 2 | 3 | /** 4 | * 基础handle标识, 搭配 BaseExtendFactory 使用 5 | * 6 | * @author linyunan 7 | * @date 2021-04-25 8 | */ 9 | public interface BaseHandle { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/constant/JobConstant.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.constant; 2 | 3 | public class JobConstant { 4 | private JobConstant() { 5 | } 6 | 7 | public static final String TOPIC_REPLICA_MOVE = "topicReplicaMoveJobHandler"; 8 | 9 | public static final String TOPIC_REPLICA_SCALA = "topicReplicaScalaJobHandler"; 10 | 11 | public static final String CLUSTER_BALANCE = "clusterBalanceJobHandler"; 12 | } 13 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/enums/AggTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.enums; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * 聚合方式 7 | */ 8 | @Getter 9 | public enum AggTypeEnum { 10 | AVG("avg"), 11 | 12 | MAX("max"), 13 | 14 | MIN("min"), 15 | 16 | SUM("sum"), 17 | 18 | ; 19 | 20 | private final String aggType; 21 | 22 | AggTypeEnum(String aggType) { 23 | this.aggType = aggType; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/enums/OffsetTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.enums; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * offset类型 7 | * @author zengqiao 8 | * @date 19/4/8 9 | */ 10 | @Getter 11 | public enum OffsetTypeEnum { 12 | LATEST(0, "最新"), 13 | 14 | EARLIEST(1, "最旧"), 15 | 16 | PRECISE_TIMESTAMP(2, "指定时间"), 17 | 18 | PRECISE_OFFSET(3, "指定位置"), 19 | 20 | ; 21 | 22 | private final int resetType; 23 | 24 | private final String message; 25 | 26 | OffsetTypeEnum(int resetType, String message) { 27 | this.resetType = resetType; 28 | this.message = message; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/enums/cluster/ClusterRunStateEnum.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.enums.cluster; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * 集群运行状态 7 | * @author zengqiao 8 | * @date 22/03/08 9 | */ 10 | @Getter 11 | public enum ClusterRunStateEnum { 12 | DEAD(0, "未监控"), 13 | 14 | RUN_ZK(1, "ZK模式"), 15 | 16 | RUN_ZK_BUT_IGNORE_ZK(11, "ZK模式,但忽略ZK"), 17 | 18 | RUN_RAFT(2, "Raft模式") 19 | ; 20 | 21 | private final int runState; 22 | 23 | private final String message; 24 | 25 | ClusterRunStateEnum(int runState, String message) { 26 | this.runState = runState; 27 | this.message = message; 28 | } 29 | } -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/enums/connect/ConnectActionEnum.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.enums.connect; 2 | 3 | public enum ConnectActionEnum { 4 | /** 5 | * 6 | */ 7 | 8 | STOP(2, "stop"), 9 | 10 | RESUME(3,"resume"), 11 | 12 | RESTART(4,"restart"), 13 | 14 | UNKNOWN(-1, "unknown"); 15 | 16 | ConnectActionEnum(int status, String value) { 17 | this.status = status; 18 | this.value = value; 19 | } 20 | 21 | private final int status; 22 | 23 | private final String value; 24 | 25 | public int getStatus() { 26 | return status; 27 | } 28 | 29 | public String getValue() { 30 | return value; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/enums/group/DeleteGroupTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.enums.group; 2 | 3 | import lombok.Getter; 4 | 5 | 6 | /** 7 | * @author wyb 8 | * @date 2022/10/11 9 | */ 10 | @Getter 11 | public enum DeleteGroupTypeEnum { 12 | UNKNOWN(-1, "Unknown"), 13 | 14 | GROUP(0, "Group纬度"), 15 | 16 | GROUP_TOPIC(1, "GroupTopic纬度"), 17 | 18 | GROUP_TOPIC_PARTITION(2, "GroupTopicPartition纬度"); 19 | 20 | private final Integer code; 21 | 22 | private final String msg; 23 | 24 | DeleteGroupTypeEnum(Integer code, String msg) { 25 | this.code = code; 26 | this.msg = msg; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/enums/ha/HaResTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.enums.ha; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * @author zengqiao 7 | * @date 20/7/28 8 | */ 9 | @Getter 10 | public enum HaResTypeEnum { 11 | CLUSTER(0, "Cluster"), 12 | 13 | MIRROR_TOPIC(1, "镜像Topic"), 14 | 15 | ; 16 | 17 | private final int code; 18 | 19 | private final String msg; 20 | 21 | HaResTypeEnum(int code, String msg) { 22 | this.code = code; 23 | this.msg = msg; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/enums/health/HealthStateEnum.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.enums.health; 2 | 3 | import lombok.Getter; 4 | 5 | 6 | /** 7 | * 健康状态 8 | */ 9 | @Getter 10 | public enum HealthStateEnum { 11 | UNKNOWN(-1, "未知"), 12 | 13 | GOOD(0, "好"), 14 | 15 | MEDIUM(1, "中"), 16 | 17 | POOR(2, "差"), 18 | 19 | DEAD(3, "Down"), 20 | 21 | ; 22 | 23 | private final int dimension; 24 | 25 | private final String message; 26 | 27 | HealthStateEnum(int dimension, String message) { 28 | this.dimension = dimension; 29 | this.message = message; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/enums/jmx/JmxEnum.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.enums.jmx; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public enum JmxEnum { 7 | NOT_OPEN(-1, "未开启JMX端口"), 8 | 9 | UNKNOWN(-2, "JMX端口未知"), 10 | 11 | ; 12 | 13 | private final Integer port; 14 | private final String message; 15 | 16 | JmxEnum(Integer port, String message) { 17 | this.port = port; 18 | this.message = message; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/enums/zookeeper/ZKRoleEnum.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.enums.zookeeper; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public enum ZKRoleEnum { 7 | LEADER("leader"), 8 | 9 | FOLLOWER("follower"), 10 | 11 | OBSERVER("observer"), 12 | 13 | STANDALONE("standalone"), 14 | 15 | UNKNOWN("unknown"), 16 | 17 | ; 18 | 19 | private final String role; 20 | 21 | ZKRoleEnum(String role) { 22 | this.role = role; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/exception/AdminTaskCodeException.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.exception; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.ResultStatus; 4 | 5 | /** 6 | * 7 | * 8 | * @author d06679 9 | * @date 2019/2/21 10 | */ 11 | public class AdminTaskCodeException extends AdminRunTimeException { 12 | 13 | public AdminTaskCodeException(String message) { 14 | super(message, ResultStatus.FAIL); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/exception/AdminTaskException.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.exception; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.ResultStatus; 4 | 5 | /** 6 | * 7 | * 8 | * @author d06679 9 | * @date 2019/2/21 10 | */ 11 | public class AdminTaskException extends AdminRunTimeException { 12 | 13 | public AdminTaskException(String message) { 14 | super(message, ResultStatus.ADMIN_TASK_ERROR); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/exception/ConfigException.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.exception; 2 | 3 | /** 4 | * @author limeng 5 | * @date 2017/12/22 6 | */ 7 | public class ConfigException extends Exception { 8 | 9 | private static final long serialVersionUID = -3670649722021947735L; 10 | 11 | public ConfigException(Throwable cause) { 12 | super(cause); 13 | } 14 | 15 | public ConfigException(String message, Throwable cause) { 16 | super(message, cause); 17 | } 18 | 19 | public ConfigException(String message) { 20 | super(message); 21 | } 22 | 23 | public ConfigException() { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/exception/DuplicateException.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.exception; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.ResultStatus; 4 | 5 | /** 6 | * 已存在异常 7 | * @author d06679 8 | */ 9 | public class DuplicateException extends BaseException { 10 | 11 | public DuplicateException(String message) { 12 | super(message, ResultStatus.DUPLICATION); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/exception/ESOperateException.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.exception; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.ResultStatus; 4 | 5 | /** 6 | * 7 | * 8 | * @author d06679 9 | * @date 2019/2/21 10 | */ 11 | public class ESOperateException extends AdminOperateException { 12 | 13 | public ESOperateException(String message, Throwable cause) { 14 | super(message, cause, ResultStatus.ES_OPERATE_ERROR); 15 | } 16 | 17 | public ESOperateException(String message) { 18 | super(message, ResultStatus.ES_OPERATE_ERROR); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/exception/NotExistException.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.exception; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.ResultStatus; 4 | 5 | /** 6 | * 不存在异常 7 | * @author d06679 8 | */ 9 | public class NotExistException extends BaseException { 10 | public NotExistException(String message) { 11 | super(message, ResultStatus.NOT_EXIST); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/exception/NotFindSubclassException.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.exception; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.ResultStatus; 4 | 5 | /** 6 | * @author linyunan 7 | * @date 2021-04-25 8 | */ 9 | public class NotFindSubclassException extends AdminRunTimeException { 10 | 11 | public NotFindSubclassException(String message) { 12 | super(message, ResultStatus.NO_FIND_SUB_CLASS); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/exception/OperateForbiddenException.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.exception; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.ResultStatus; 4 | 5 | /** 6 | * 7 | * 8 | * @author d06679 9 | * @date 2019/2/21 10 | */ 11 | public class OperateForbiddenException extends AdminRunTimeException { 12 | 13 | public OperateForbiddenException(String message) { 14 | super(message, ResultStatus.OPERATION_FORBIDDEN); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/exception/ParamErrorException.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.exception; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.ResultStatus; 4 | 5 | /** 6 | * 不存在异常 7 | * @author d06679 8 | */ 9 | public class ParamErrorException extends BaseException { 10 | public ParamErrorException(String message) { 11 | super(message, ResultStatus.PARAM_ILLEGAL); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/exception/ThirdPartRemoteException.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.exception; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.ResultStatus; 4 | 5 | /** 6 | * @author d06679 7 | * @date 2019/3/18 8 | */ 9 | public class ThirdPartRemoteException extends AdminRunTimeException { 10 | 11 | public ThirdPartRemoteException(String message, Throwable cause, ResultStatus resultType) { 12 | super(message, cause, resultType); 13 | } 14 | 15 | public ThirdPartRemoteException(String message, ResultStatus resultType) { 16 | super(message, resultType); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/exception/VCHandlerNotExistException.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.exception; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.ResultStatus; 4 | 5 | /** 6 | * 7 | * 8 | * @author d06679 9 | * @date 2019/2/21 10 | */ 11 | public class VCHandlerNotExistException extends AdminOperateException { 12 | 13 | public VCHandlerNotExistException(String message, Throwable cause) { 14 | super(message, cause, ResultStatus.NO_FIND_METHOD); 15 | } 16 | 17 | public VCHandlerNotExistException(String message) { 18 | super(message, ResultStatus.NO_FIND_METHOD); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/utils/BackoffUtils.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.utils; 2 | 3 | public class BackoffUtils { 4 | private BackoffUtils() { 5 | } 6 | 7 | public static void backoff(long timeUnitMs) { 8 | if (timeUnitMs <= 0) { 9 | return; 10 | } 11 | 12 | try { 13 | Thread.sleep(timeUnitMs); 14 | } catch (InterruptedException e) { 15 | Thread.currentThread().interrupt(); 16 | } catch (Exception e) { 17 | // ignore 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/utils/LoggerUtil.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.utils; 2 | 3 | import com.didiglobal.logi.log.ILog; 4 | import com.didiglobal.logi.log.LogFactory; 5 | 6 | public class LoggerUtil { 7 | private static final ILog MetricCollectedLogger = LogFactory.getLog("METRIC_COLLECTED_LOGGER"); 8 | 9 | private static final ILog ESLogger = LogFactory.getLog("ES_LOGGER"); 10 | 11 | public static ILog getMetricCollectedLogger() { 12 | return MetricCollectedLogger; 13 | } 14 | 15 | public static ILog getESLogger() { 16 | return ESLogger; 17 | } 18 | 19 | private LoggerUtil() { 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/utils/MirrorMakerUtil.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.common.utils; 2 | 3 | public class MirrorMakerUtil { 4 | public static String genCheckpointName(String sourceName) { 5 | return sourceName == null? "-checkpoint": sourceName + "-checkpoint"; 6 | } 7 | 8 | public static String genHeartbeatName(String sourceName) { 9 | return sourceName == null? "-heartbeat": sourceName + "-heartbeat"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /km-console/.env: -------------------------------------------------------------------------------- 1 | BUSINESS_VERSION='false' 2 | PUBLIC_PATH='' 3 | -------------------------------------------------------------------------------- /km-console/.eslintignore: -------------------------------------------------------------------------------- 1 | test/ 2 | scripts/ 3 | build/ 4 | public/ 5 | types/ -------------------------------------------------------------------------------- /km-console/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist/ 3 | pub/ 4 | build/ 5 | .sass-cache/ 6 | .DS_Store 7 | .idea/ 8 | .vscode/ 9 | coverage 10 | versions/ 11 | debug.log 12 | yarn.lock 13 | target -------------------------------------------------------------------------------- /km-console/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "printWidth": 140, // 指定代码长度,超出换行 3 | "tabWidth": 2, // tab 键的宽度 4 | "semi": true, // 结尾加上分号 5 | "trailingComma": "es5", // 确保对象的最后一个属性后有逗号 6 | singleQuote: true, 7 | "bracketSpacing": true, // 大括号有空格 { name: 'rose' } 8 | "insertPragma": false, // 是否在格式化的文件顶部插入Pragma标记,以表明该文件被prettier格式化过了 9 | "htmlWhitespaceSensitivity": "ignore", // html文件的空格敏感度,控制空格是否影响布局 10 | } -------------------------------------------------------------------------------- /km-console/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /km-console/commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = {extends: ['@commitlint/config-conventional']} 2 | -------------------------------------------------------------------------------- /km-console/d1.js: -------------------------------------------------------------------------------- 1 | const d1Config = require('./d1.json'); 2 | d1Config.appConfig.webpackChain = function (config) { 3 | // config.devServer.port(10000); 4 | }; 5 | module.exports = d1Config; 6 | -------------------------------------------------------------------------------- /km-console/d1.json: -------------------------------------------------------------------------------- 1 | { 2 | "appConfig": { 3 | "appName": "KnowStreaming-FE", 4 | "ident": "", 5 | "port": "8000", 6 | "webpackCustom": "", 7 | "webpackChain": "", 8 | "entry": [ 9 | { 10 | "title": "", 11 | "name": "", 12 | "src": "" 13 | } 14 | ], 15 | "layout": "layout-clusters-fe", 16 | "packages": [ 17 | "config-manager-fe", 18 | "layout-clusters-fe" 19 | ] 20 | }, 21 | "entrust": true, 22 | "localBuilderVersion": true, 23 | "extensions": [], 24 | "preset": "@didi/d1-preset-opensource", 25 | "builderType": "lerna", 26 | "generatorType": "", 27 | "mockDir": "mock" 28 | } -------------------------------------------------------------------------------- /km-console/lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages": [ 3 | "packages/*" 4 | ], 5 | "version": "0.0.0" 6 | } -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/.eslintignore: -------------------------------------------------------------------------------- 1 | test/ 2 | scripts/ 3 | build/ 4 | public/ 5 | types/ -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist/ 3 | pub/ 4 | build/ 5 | .sass-cache/ 6 | .DS_Store 7 | .idea/ 8 | .vscode/ 9 | coverage 10 | versions/ 11 | debug.log 12 | yarn.lock -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/config/theme.js: -------------------------------------------------------------------------------- 1 | const themeConfig = { 2 | primaryColor: '#5664FF', 3 | theme: { 4 | 'primary-color': '#5664FF', 5 | 'border-radius-base': '2px', 6 | 'border-radius-sm': '2px', 7 | 'font-size-base': '12px', 8 | 'font-family': 'Helvetica Neue, Helvetica, Arial, PingFang SC, Heiti SC, Hiragino Sans GB, Microsoft YaHei, sans-serif', 9 | 'font-family-bold': 10 | 'HelveticaNeue-Medium, Helvetica Medium, PingFangSC-Medium, STHeitiSC-Medium, Microsoft YaHei Bold, Arial, sans-serif', 11 | }, 12 | }; 13 | 14 | module.exports = { 15 | 'prefix-cls': 'layout', 16 | ...themeConfig.theme, 17 | }; 18 | -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/d1.js: -------------------------------------------------------------------------------- 1 | const d1Config = require('./d1.json'); 2 | d1Config.appConfig.webpackChain = function (config) { 3 | // config.devServer.port(10000); 4 | }; 5 | module.exports = d1Config; 6 | -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/mock.json: -------------------------------------------------------------------------------- 1 | { 2 | "/api/v1/:id": { 3 | "data": { 4 | "list|5-10": [ 5 | { 6 | "name": "@cname()", 7 | "address": "@cname()", 8 | "age|18-50": 100 9 | } 10 | ] 11 | }, 12 | "code|0-500": 200 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/src/@types/index.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/config-manager-fe/src/@types/index.d.ts -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/src/components/CardBar/index.less: -------------------------------------------------------------------------------- 1 | .card-bar-container{ 2 | padding:16px 24px; 3 | width: 100%; 4 | .card-bar-content{ 5 | height: 88px; 6 | width: 100%; 7 | display: flex; 8 | justify-content: space-around; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/src/components/TypicalListCard/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import './index.less'; 3 | 4 | export default ({ title, children }) => { 5 | return ( 6 |
7 |
8 |
{title}
9 | {children} 10 |
11 |
12 | ); 13 | }; 14 | -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/src/index.less: -------------------------------------------------------------------------------- 1 | #ks-layout-container { 2 | height: calc(100% - 48px); 3 | #sub-system { 4 | height: 100%; 5 | .config-system { 6 | display: flex; 7 | height: 100%; 8 | .dcloud-layout-content { 9 | padding: 0; 10 | } 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/src/locales/en.tsx: -------------------------------------------------------------------------------- 1 | import { systemKey } from '../constants/menu'; 2 | 3 | export default { 4 | [`menu.${systemKey}.setting`]: 'setting', 5 | [`menu.${systemKey}.user`]: 'userManagement', 6 | [`menu.${systemKey}.operationLog`]: 'operationLog', 7 | 8 | 'sider.footer.hide': 'hide', 9 | 'sider.footer.expand': 'expand', 10 | }; 11 | -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/src/locales/zh.tsx: -------------------------------------------------------------------------------- 1 | import { systemKey } from '../constants/menu'; 2 | /** 3 | * 用于左侧菜单与顶部路由导航中文展示,key值与各页面路径对应,比如dashboard页,路由:/cluster/dashbord,key值:menu.cluster.dashborad 4 | */ 5 | export default { 6 | [`menu.${systemKey}.setting`]: '配置管理', 7 | [`menu.${systemKey}.user`]: '用户管理', 8 | [`menu.${systemKey}.operationLog`]: '审计日志', 9 | 10 | 'sider.footer.hide': '收起', 11 | 'sider.footer.expand': '展开', 12 | }; 13 | -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/src/pages/ConfigManage/config.ts: -------------------------------------------------------------------------------- 1 | export enum ConfigOperate { 2 | Add, 3 | Edit, 4 | } 5 | 6 | export type ConfigProps = { 7 | id?: number; 8 | valueGroup?: string; 9 | valueName?: string; 10 | value?: string; 11 | status?: 0 | 1; 12 | operator?: string; 13 | memo?: string; 14 | }; 15 | 16 | export type AddConfigProps = Omit; 17 | export type EditConfigProps = Omit; 18 | -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/src/pages/HomePage.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Redirect } from 'react-router-dom'; 3 | const HomePage = () => { 4 | return ; 5 | }; 6 | 7 | export default HomePage; 8 | -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/src/pages/OperationLog/index.less: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/config-manager-fe/src/pages/OperationLog/index.less -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "*": [ 6 | "src/*" 7 | ], 8 | "@src/*":["src/*"] 9 | }, 10 | "outDir": "./dist/", 11 | "sourceMap": true, 12 | "noImplicitAny": false, 13 | "esModuleInterop": true, 14 | "experimentalDecorators": true, 15 | "allowJs": true, 16 | "moduleResolution": "node", 17 | "module": "es2015", 18 | "target": "es2015", 19 | "downlevelIteration": true, 20 | "allowSyntheticDefaultImports": true, 21 | "jsx": "react", 22 | }, 23 | "include": [ 24 | "src/**/*" 25 | ], 26 | "exclude": [ 27 | "node_modules", 28 | "pub/*", 29 | ], 30 | } -------------------------------------------------------------------------------- /km-console/packages/config-manager-fe/webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | require('dotenv').config({ path: path.resolve(process.cwd(), '../../.env') }); 3 | const merge = require('webpack-merge'); 4 | const devMode = process.env.NODE_ENV === 'development'; 5 | const commonConfig = require('./config/webpack.common'); 6 | const devConfig = require('./config/webpack.dev'); 7 | const prodConfig = require('./config/webpack.prod'); 8 | 9 | module.exports = merge(commonConfig, devMode ? devConfig : prodConfig); 10 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/.eslintignore: -------------------------------------------------------------------------------- 1 | test/ 2 | scripts/ 3 | build/ 4 | public/ 5 | types/ -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist/ 3 | pub/ 4 | build/ 5 | .sass-cache/ 6 | .DS_Store 7 | .idea/ 8 | .vscode/ 9 | coverage 10 | versions/ 11 | debug.log 12 | yarn.lock 13 | .d1-workspace.json 14 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/CHANGELOG.md -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/config/systemsConfig.js: -------------------------------------------------------------------------------- 1 | const feSystemsConfig = { 2 | systemsConfig: [ 3 | { 4 | ident: 'config', 5 | development: { 6 | publicPath: 'http://localhost:8001/config/', 7 | index: 'http://localhost:8001/config/manifest.json', 8 | }, 9 | production: { publicPath: `${process.env.PUBLIC_PATH}/config/`, index: `${process.env.PUBLIC_PATH}/config/manifest.json` }, 10 | }, 11 | ], 12 | feConfig: { 13 | title: 'Know Streaming', 14 | header: { 15 | mode: 'complicated', 16 | logo: '/static/logo-white.png', 17 | subTitle: '管理平台', 18 | theme: '', 19 | right_links: [], 20 | }, 21 | }, 22 | }; 23 | export default feSystemsConfig; 24 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/config/theme.js: -------------------------------------------------------------------------------- 1 | const themeConfig = { 2 | primaryColor: '#5664FF', 3 | theme: { 4 | 'primary-color': '#5664FF', 5 | 'border-radius-base': '2px', 6 | 'border-radius-sm': '2px', 7 | 'font-size-base': '12px', 8 | 'font-family': 'Helvetica Neue, Helvetica, Arial, PingFang SC, Heiti SC, Hiragino Sans GB, Microsoft YaHei, sans-serif', 9 | 'font-family-bold': 10 | 'HelveticaNeue-Medium, Helvetica Medium, PingFangSC-Medium, STHeitiSC-Medium, Microsoft YaHei Bold, Arial, sans-serif', 11 | }, 12 | }; 13 | 14 | module.exports = { 15 | 'prefix-cls': 'layout', 16 | ...themeConfig.theme, 17 | }; 18 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/d1.js: -------------------------------------------------------------------------------- 1 | const d1Config = require('./d1.json'); 2 | d1Config.appConfig.webpackChain = function (config) { 3 | // config.devServer.port(10000); 4 | }; 5 | module.exports = d1Config; 6 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/favicon.ico -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/@types/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.png' { 2 | const value: any; 3 | export default value; 4 | } 5 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/DIDIFD-Black.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/DIDIFD-Black.otf -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/DIDIFD-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/DIDIFD-Black.woff2 -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/DIDIFD-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/DIDIFD-Medium.otf -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/DIDIFD-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/DIDIFD-Medium.woff2 -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/DIDIFD-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/DIDIFD-Regular.otf -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/DIDIFD-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/DIDIFD-Regular.woff2 -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/beta-tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/beta-tag.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/chart.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/clusters-down-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/clusters-down-bg.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/clusters-live-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/clusters-live-bg.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/dashborad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/dashborad.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/empty.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/health-down-emoji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/health-down-emoji.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/health-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/health-down.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/health-good-emoji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/health-good-emoji.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/health-good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/health-good.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/health-medium-emoji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/health-medium-emoji.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/health-medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/health-medium.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/health-poor-emoji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/health-poor-emoji.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/health-poor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/health-poor.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/health-unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/health-unknown.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/ks-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/ks-logo.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/leftTop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/leftTop.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/loading.gif -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/no-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/no-data.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/page-no-license.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/page-no-license.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/page403.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/page403.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/page404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/page404.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/rightBottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/rightBottom.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/assets/state.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/assets/state.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/components/CardBar/const.ts: -------------------------------------------------------------------------------- 1 | export const healthScoreCondition = () => { 2 | const n = Date.now() 3 | return { 4 | startTime: n - 5 * 60 * 1000, 5 | endTime: n, 6 | aggType: 'avg' 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/components/ChartOperateBar/image/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/components/ChartOperateBar/image/empty.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/components/ChartOperateBar/style/indicator-drawer.less: -------------------------------------------------------------------------------- 1 | .indicator-drawer { 2 | .dcloud-drawer-body { 3 | padding-top: 2px !important; 4 | } 5 | .dcloud-table-cell.dcloud-table-selection-column { 6 | padding: 11px 0; 7 | } 8 | .dcloud-table .dcloud-table-tbody .dcloud-table-cell:nth-child(1) { 9 | padding-right: 8px; 10 | } 11 | .dcloud-table-expanded-row { 12 | > td { 13 | padding: 0 0 0 56px !important; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/components/ChartOperateBar/style/query-module.less: -------------------------------------------------------------------------------- 1 | @root-entry-name: 'default'; 2 | @import '~knowdesign/es/basic/style/themes/index'; 3 | @import '~knowdesign/es/basic/style/mixins/index'; 4 | 5 | .query-select { 6 | .horizontal { 7 | .@{ant-prefix}-col { 8 | display: flex; 9 | .@{ant-prefix}-select { 10 | flex: 1; 11 | } 12 | } 13 | } 14 | .label-name { 15 | height: 34px; 16 | line-height: 34px; 17 | font-size: 13px; 18 | color: #495057; 19 | display: inline-block; 20 | } 21 | .@{ant-prefix}-row { 22 | .@{ant-prefix}-select { 23 | display: block; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/components/DDSearchInput/style/index.less: -------------------------------------------------------------------------------- 1 | .dcloud-clustom-input-serach{ 2 | 3 | .dcloud-input-affix-wrapper{ 4 | border-radius: 2px !important; 5 | } 6 | 7 | .dcloud-input-group-addon{ 8 | display: none !important; 9 | } 10 | 11 | } -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/components/DragGroup/index.less: -------------------------------------------------------------------------------- 1 | .drag-container { 2 | } 3 | .drag-sort-item { 4 | position: relative; 5 | z-index: 2; 6 | .drag-handle-icon { 7 | position: absolute; 8 | top: 18px; 9 | right: 18px; 10 | color: #adb5bc; 11 | font-size: 16px; 12 | z-index: 1000; 13 | cursor: move; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/components/HealthState/index.less: -------------------------------------------------------------------------------- 1 | .health-state { 2 | img { 3 | width: 100%; 4 | height: 100%; 5 | } 6 | } -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/components/RenderEmpty/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const RenderEmpty = (props: { height?: string | number; message: string }) => { 4 | const { height = 200, message } = props; 5 | return ( 6 | <> 7 |
8 |
9 |
{message}
10 |
11 | 12 | ); 13 | }; 14 | 15 | export default RenderEmpty; 16 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/components/utils.ts: -------------------------------------------------------------------------------- 1 | import { useCallback, useState } from 'react'; 2 | 3 | export function useForceRefresh() { 4 | const [refreshKey, setRefresh] = useState(0); 5 | const forceRefresh: () => void = useCallback(() => { 6 | setRefresh((x) => x + 1); 7 | }, []); 8 | 9 | return [refreshKey, forceRefresh]; 10 | } 11 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/index.html -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/locales/en.tsx: -------------------------------------------------------------------------------- 1 | export default { 2 | yes: 'yes', 3 | no: 'no', 4 | login: 'Login', 5 | logout: 'Logout', 6 | register: 'Register', 7 | 'login.title': 'Login', 8 | 'login.ldap': 'Use LDAP', 9 | }; 10 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/BrokerControllerChangeLog/index.less: -------------------------------------------------------------------------------- 1 | .controllerList{ 2 | .d-table-box-header{ 3 | padding: 0 0 12px 0 ; 4 | } 5 | } -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/BrokerList/index.less: -------------------------------------------------------------------------------- 1 | .brokerList{ 2 | .d-table-box-header{ 3 | padding: 0 0 12px 0; 4 | } 5 | .tag-success,.tag-error{ 6 | padding: 2px 8px; 7 | border-radius: 4px; 8 | margin-left: 4px; 9 | } 10 | .tag-success{ 11 | background: #F1FAF2; 12 | color: #73d380; 13 | } 14 | .tag-error{ 15 | background: #FFF0EF; 16 | color: #ff7066; 17 | } 18 | } -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/ConnectDashboard/index.less: -------------------------------------------------------------------------------- 1 | .dcloud-tree.connect-dashboard-option-tree { 2 | background: transparent; 3 | height: 198px; 4 | padding: 0 10px; 5 | overflow: auto; 6 | .site-tree-search-value { 7 | color: #f50; 8 | } 9 | } 10 | 11 | .dd-node-scope-module .flx_con .flx_r .custom-scope.dashboard-custom-scope { 12 | height: 292px; 13 | } 14 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/ErrorPages/NoLicense.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import pageNoLicense from '@src/assets/page-no-license.png'; 3 | 4 | export default () => { 5 | return ( 6 |
7 | 8 |
license 限制
9 |
10 | ); 11 | }; 12 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/ErrorPages/Page403.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import page403 from '@src/assets/page403.png'; 3 | 4 | export default () => { 5 | return ( 6 |
7 | 8 |
抱歉,您没有权限访问该页面~
9 | 10 | 返回首页 11 | 12 |
13 | ); 14 | }; 15 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/ErrorPages/Page404.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import page404 from '@src/assets/page404.png'; 3 | 4 | export default () => { 5 | return ( 6 |
7 | 8 |
很抱歉,页面走丢了~
9 |
请检查页面地址是否正确或刷新页面
10 | 11 | 返回首页 12 | 13 |
14 | ); 15 | }; 16 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/ErrorPages/index.less: -------------------------------------------------------------------------------- 1 | .error-page { 2 | display: flex; 3 | flex-direction: column; 4 | align-items: center; 5 | height: calc(100% - 48px); 6 | > img { 7 | margin-top: 165px; 8 | } 9 | .title { 10 | margin: 16px 0; 11 | font-family: @font-family-bold; 12 | font-size: 18px; 13 | color: #495057; 14 | line-height: 25px; 15 | } 16 | .desc { 17 | margin-bottom: 12px; 18 | font-size: 13px; 19 | color: #74788d; 20 | font-weight: 400; 21 | } 22 | .link { 23 | font-size: 15px; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/ErrorPages/index.tsx: -------------------------------------------------------------------------------- 1 | import './index.less'; 2 | export { default as Page403 } from './Page403'; 3 | export { default as Page404 } from './Page404'; 4 | export { default as NoLicense } from './NoLicense'; 5 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/LoadRebalance/config.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ 2 | import React from 'react'; 3 | import { timeFormat, getSizeAndUnit } from '../../constants/common'; 4 | import moment from 'moment'; 5 | import { Tooltip } from 'knowdesign'; 6 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/LoadRebalance/style/BalanceDrawer.less: -------------------------------------------------------------------------------- 1 | .balance-drawer { 2 | .form-title { 3 | font-size: 16px; 4 | color: #212529; 5 | letter-spacing: 0; 6 | line-height: 25px; 7 | margin: 16px 0; 8 | } 9 | .schedule-cron { 10 | .dcloud-select { 11 | margin-right: 10px; 12 | } 13 | } 14 | 15 | .dcloud-drawer-body{ 16 | padding: 0 20px 14px !important; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/Login/img/eg1-content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/pages/Login/img/eg1-content.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/Login/img/eg1-title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/pages/Login/img/eg1-title.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/Login/img/eg2-content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/pages/Login/img/eg2-content.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/Login/img/login-bg-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/pages/Login/img/login-bg-1.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/Login/img/login-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowStreaming/4c10b4ce9cce71951e777eaf01fcc4610b6bba19/km-console/packages/layout-clusters-fe/src/pages/Login/img/login-bg.png -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/MutliClusterPage/AccessClusterConfig.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import { message } from 'knowdesign'; 3 | import { HeartTwoTone } from '@ant-design/icons'; 4 | 5 | const AccessClusterConfig = () => { 6 | const [count, setCount] = useState(1); 7 | 8 | const setErgeModal = () => { 9 | if (count >= 50) { 10 | message.success({ 11 | content: 'Erge', 12 | icon: , 13 | }); 14 | setCount(1); 15 | } else { 16 | setCount(count + 1); 17 | } 18 | }; 19 | 20 | return
; 21 | }; 22 | 23 | export default AccessClusterConfig; 24 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/SecurityACLs/index.less: -------------------------------------------------------------------------------- 1 | .security-acls-page { 2 | .card-bar { 3 | margin: 12px 0; 4 | } 5 | &-list { 6 | width: 100%; 7 | height: fit-content; 8 | padding: 16px 24px; 9 | background: #ffffff; 10 | box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.01), 0 3px 6px 3px rgba(0, 0, 0, 0.01), 0 2px 6px 0 rgba(0, 0, 0, 0.03); 11 | // border-radius: 12px; 12 | } 13 | } 14 | 15 | .acls-edit-drawer { 16 | .form-item-group { 17 | padding: 16px 20px 0 20px; 18 | margin-bottom: 16px; 19 | background: #f8f9fa; 20 | border-radius: 8px; 21 | } 22 | .dcloud-form-item-control-input { 23 | min-height: 0; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/TestingConsumer/index.less: -------------------------------------------------------------------------------- 1 | .client-test-panel { 2 | display: flex; 3 | // padding: 12px 20px 0px 20px; 4 | // height: calc(100vh - 68px) 5 | } -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/src/pages/TopicList/interface.ts: -------------------------------------------------------------------------------- 1 | export interface getTopicListParams { 2 | clusterPhyId: number; 3 | dto: { 4 | metricLines: { 5 | aggType?: string; 6 | startTime: number; 7 | endTime: number; 8 | metricsNames: Array; 9 | topNu: number; 10 | }, 11 | metricPoints: { 12 | aggType?: string; 13 | startTime: number; 14 | endTime: number; 15 | metricsNames: Array; 16 | topNu: number; 17 | }, 18 | pageNo: number; 19 | pageSize: number; 20 | searchKeywords: string; 21 | showInternalTopics: boolean; 22 | sortField: string; 23 | sortType: string; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/static/js/named-exports.min.js: -------------------------------------------------------------------------------- 1 | !function(){const t=System.constructor.prototype;let e;const n=t.register;t.register=function(t,c){e=c,n.call(this,t,c)};const c=t.getRegister;t.getRegister=function(){const t=c.call(this);if(!t||t[1]===e||0===t[1].length)return t;const n=t[1];return t[1]=function(t,e){let c;const o=n.call(this,function(e,n){"default"===e&&(c=n),"__useDefault"!==e&&t(e,n)},e),s=o.execute;return s&&(o.execute=function(){s.call(this),"object"==typeof c&&t(c)}),o},t}}(); -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/static/js/use-default.min.js: -------------------------------------------------------------------------------- 1 | !function(t){var e=t.System.constructor.prototype,n=e.import;e.import=function(){return n.apply(this,arguments).then((function(t){return t.__useDefault?t.default:t}))}}("undefined"!=typeof self?self:global);//# sourceMappingURL=use-default.min.js.map -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": true, 4 | "noFallthroughCasesInSwitch": true, 5 | "noImplicitReturns": true, 6 | "moduleResolution": "node", 7 | "esModuleInterop": true, 8 | "noImplicitAny": true, 9 | "target": "es2015", 10 | "module": "esnext", 11 | "jsx": "react", 12 | "allowJs": true, 13 | "noEmit": false, 14 | "baseUrl": ".", 15 | "paths": { 16 | "@src/*":["src/*"] 17 | }, 18 | }, 19 | "include": [ 20 | "src/**/*" 21 | ], 22 | "exclude": [ 23 | "node_modules/**", 24 | "dist/*", 25 | "examples/*", 26 | "src/packages/*" 27 | ], 28 | } -------------------------------------------------------------------------------- /km-console/packages/layout-clusters-fe/webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | require('dotenv').config({ path: path.resolve(process.cwd(), '../../.env') }); 3 | const merge = require('webpack-merge'); 4 | const devMode = process.env.NODE_ENV === 'development'; 5 | const commonConfig = require('./config/webpack.common'); 6 | const devConfig = require('./config/webpack.dev'); 7 | const prodConfig = require('./config/webpack.prod'); 8 | 9 | module.exports = merge(commonConfig, devMode ? devConfig : prodConfig); 10 | -------------------------------------------------------------------------------- /km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/acl/OpKafkaAclService.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.core.service.acl; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.param.acl.ACLAtomParam; 4 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result; 5 | import com.xiaojukeji.know.streaming.km.common.bean.po.KafkaAclPO; 6 | 7 | public interface OpKafkaAclService { 8 | /** 9 | * 创建ACL 10 | */ 11 | Result createKafkaAcl(ACLAtomParam aclAtomParam, String operator); 12 | 13 | /** 14 | * 删除ACL 15 | */ 16 | Result deleteKafkaAcl(ACLAtomParam aclAtomParam, String operator); 17 | 18 | Result insertAndIgnoreDuplicate(KafkaAclPO kafkaAclPO); 19 | } 20 | -------------------------------------------------------------------------------- /km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/broker/BrokerSpecService.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.core.service.broker; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.broker.BrokerSpec; 4 | 5 | import java.util.Map; 6 | 7 | public interface BrokerSpecService { 8 | 9 | /** 10 | * 11 | * @param clusterPhyId 12 | * @return 13 | */ 14 | Map getBrokerSpecMap(Long clusterPhyId); 15 | } 16 | -------------------------------------------------------------------------------- /km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/change/record/KafkaChangeRecordService.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.core.service.change.record; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import com.xiaojukeji.know.streaming.km.common.bean.dto.pagination.PaginationBaseDTO; 5 | import com.xiaojukeji.know.streaming.km.common.bean.po.changerecord.KafkaChangeRecordPO; 6 | 7 | 8 | public interface KafkaChangeRecordService { 9 | int insertAndIgnoreDuplicate(KafkaChangeRecordPO recordPO); 10 | 11 | IPage pagingByCluster(Long clusterPhyId, PaginationBaseDTO dto); 12 | } 13 | -------------------------------------------------------------------------------- /km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/cluster/ClusterValidateService.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.core.service.cluster; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result; 4 | import com.xiaojukeji.know.streaming.km.common.bean.entity.util.KafkaValidate; 5 | 6 | import java.util.Properties; 7 | 8 | /** 9 | * @author zengqiao 10 | * @date 22/02/28 11 | */ 12 | public interface ClusterValidateService { 13 | Result checkKafkaLegal(String bootstrapServers, Properties clientProps, String zookeeper); 14 | } 15 | -------------------------------------------------------------------------------- /km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/config/KSConfigUtils.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.core.service.config; 2 | 3 | import lombok.Getter; 4 | import org.springframework.beans.factory.annotation.Value; 5 | import org.springframework.stereotype.Service; 6 | 7 | 8 | /** 9 | * @author zengqiao 10 | * @date 22/6/14 11 | */ 12 | @Getter 13 | @Service 14 | public class KSConfigUtils { 15 | private KSConfigUtils() { 16 | } 17 | 18 | @Value(value = "${request.api-call.timeout-unit-ms:8000}") 19 | private Integer apiCallTimeoutUnitMs; 20 | 21 | public Integer getApiCallLeftTimeUnitMs(Long costedUnitMs) { 22 | return Math.max(1000, (int)(apiCallTimeoutUnitMs - costedUnitMs)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/job/handler/TopicReplicaMoveJobHandler.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.core.service.job.handler; 2 | 3 | 4 | import com.xiaojukeji.know.streaming.km.common.constant.JobConstant; 5 | import com.xiaojukeji.know.streaming.km.common.enums.job.JobTypeEnum; 6 | import org.springframework.stereotype.Component; 7 | 8 | @Component(JobConstant.TOPIC_REPLICA_MOVE) 9 | public class TopicReplicaMoveJobHandler extends AbstractReassignJobHandler { 10 | 11 | @Override 12 | public JobTypeEnum type() { 13 | return JobTypeEnum.TOPIC_REPLICA_MOVE; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/job/handler/TopicReplicaScalaJobHandler.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.core.service.job.handler; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.constant.JobConstant; 4 | import com.xiaojukeji.know.streaming.km.common.enums.job.JobTypeEnum; 5 | import org.springframework.stereotype.Component; 6 | 7 | @Component(JobConstant.TOPIC_REPLICA_SCALA) 8 | public class TopicReplicaScalaJobHandler extends AbstractReassignJobHandler { 9 | @Override 10 | public JobTypeEnum type() { 11 | return JobTypeEnum.TOPIC_REPLICA_SCALA; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/km/KmNodeService.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.core.service.km; 2 | 3 | import java.util.List; 4 | 5 | public interface KmNodeService { 6 | 7 | /** 8 | * 获取 km 集群所有部署的 host 节点 9 | * @return 10 | */ 11 | List listKmHosts(); 12 | } 13 | -------------------------------------------------------------------------------- /km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/oprecord/OpLogWrapService.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.core.service.oprecord; 2 | 3 | import com.didiglobal.logi.security.common.dto.oplog.OplogDTO; 4 | 5 | public interface OpLogWrapService { 6 | Integer saveOplogAndIgnoreException(OplogDTO oplogDTO); 7 | } 8 | -------------------------------------------------------------------------------- /km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/partition/OpPartitionService.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.core.service.partition; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result; 4 | import org.apache.kafka.common.TopicPartition; 5 | 6 | import java.util.List; 7 | 8 | public interface OpPartitionService { 9 | 10 | /** 11 | * 优先副本选举 12 | */ 13 | Result preferredReplicaElection(Long clusterPhyId, List tpList); 14 | } 15 | -------------------------------------------------------------------------------- /km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/reassign/ReassignStrategyService.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.core.service.reassign; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.reassign.strategy.ReassignExecutionStrategy; 4 | import com.xiaojukeji.know.streaming.km.common.bean.entity.reassign.strategy.ReassignTask; 5 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result; 6 | 7 | import java.util.List; 8 | 9 | public interface ReassignStrategyService { 10 | /** 11 | * 根据均衡策略生成迁移任务详情 12 | * @param executionStrategy 均衡策略 13 | 14 | * @return 15 | */ 16 | Result> generateReassignmentTask(ReassignExecutionStrategy executionStrategy); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/zookeeper/ZnodeService.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.core.service.zookeeper; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result; 4 | import com.xiaojukeji.know.streaming.km.common.bean.entity.zookeeper.Znode; 5 | 6 | import java.util.List; 7 | 8 | public interface ZnodeService { 9 | 10 | Result> listZnodeChildren(Long clusterPhyId, String path, String keyword); 11 | 12 | Result getZnode(Long clusterPhyId, String path); 13 | } 14 | -------------------------------------------------------------------------------- /km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/zookeeper/ZookeeperService.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.core.service.zookeeper; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.entity.zookeeper.ZookeeperInfo; 4 | import com.xiaojukeji.know.streaming.km.core.service.meta.MetaDataService; 5 | 6 | import java.util.List; 7 | 8 | public interface ZookeeperService extends MetaDataService { 9 | List listFromDBByCluster(Long clusterPhyId); 10 | 11 | /** 12 | * 所有服务挂掉 13 | * @return 14 | */ 15 | boolean allServerDown(Long clusterPhyId); 16 | 17 | /** 18 | * 存在服务挂掉 19 | * @return 20 | */ 21 | boolean existServerDown(Long clusterPhyId); 22 | } 23 | -------------------------------------------------------------------------------- /km-core/src/test/java/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: 3 | 4 | -------------------------------------------------------------------------------- /km-dist/README.md: -------------------------------------------------------------------------------- 1 | 2 | # 安装包说明 3 | 4 | - bin:可执行脚本 5 | - startup.sh:启动脚本 6 | - shutdown.sh:停止脚本 7 | 8 | 9 | - conf:配置 10 | - application.yml:配置文件 11 | - logback-spring.xml:日志配置 12 | 13 | 14 | - helm:安装KnowStreaming的Helm相关文件 15 | 16 | 17 | - init:初始化相关资源 18 | - sql:初始化DB的相关SQL; 19 | - template:初始化ES索引的索引模版 20 | 21 | 22 | - libs:Java的libs 23 | - ks-km.jar:KnowStreaming的Jar包 24 | 25 | 26 | - LICENSE:开源协议 -------------------------------------------------------------------------------- /km-dist/docker/manager/dockerfile: -------------------------------------------------------------------------------- 1 | FROM java:8 2 | 3 | #维护者 4 | MAINTAINER wangdongfang 5 | 6 | # 编译好的knowstreaming包 7 | ADD km-rest.jar / 8 | # docker启动脚本 helm安装不使用 9 | ADD ks-start.sh / 10 | # es初始化脚本 helm安装不使用 11 | ADD es_template_create.sh / 12 | 13 | RUN mkdir /conf 14 | # { 配置文件 helm安装不使用 15 | ADD application.yml /conf/ 16 | ADD logback-spring.xml /conf/ 17 | # } 18 | -------------------------------------------------------------------------------- /km-dist/docker/manager/ks-start.sh: -------------------------------------------------------------------------------- 1 | sed -i "s/SERVER_MYSQL_ADDRESS/${SERVER_MYSQL_ADDRESS}/g" /conf/application.yml 2 | sed -i "s/SERVER_MYSQL_DB/${SERVER_MYSQL_DB}/g" /conf/application.yml 3 | sed -i "s/SERVER_MYSQL_USER/${SERVER_MYSQL_USER}/g" /conf/application.yml 4 | sed -i "s/SERVER_MYSQL_PASSWORD/${SERVER_MYSQL_PASSWORD}/g" /conf/application.yml 5 | sed -i "s/SERVER_ES_ADDRESS/${SERVER_ES_ADDRESS}/g" /conf/application.yml 6 | 7 | java -server ${JAVA_OPTS} -XX:+UseStringDeduplication -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom -Duser.timezone=GMT+08 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs -XX:ErrorFile=/logs/jvm/hs_err_pid%p.log -jar /km-rest.jar --spring.config.location=/conf/application.yml 8 | -------------------------------------------------------------------------------- /km-dist/docker/mysql/dockerfile: -------------------------------------------------------------------------------- 1 | FROM mysql/mysql-server:5.7.38 2 | COPY initsql /docker-entrypoint-initdb.d/ 3 | COPY init.sh /docker-entrypoint-initdb.d/ 4 | ADD my.cnf /etc/ 5 | -------------------------------------------------------------------------------- /km-dist/docker/mysql/init.sh: -------------------------------------------------------------------------------- 1 | if [ "$MYSQL_DATABASE" ]; then 2 | "${mysql[@]}" < /docker-entrypoint-initdb.d/initsql 3 | else 4 | echo "CREATE DATABASE IF NOT EXISTS ks ;" | "${mysql[@]}" 5 | "${mysql[@]}" ks < /docker-entrypoint-initdb.d/initsql 6 | fi 7 | -------------------------------------------------------------------------------- /km-dist/docker/mysql/my.cnf: -------------------------------------------------------------------------------- 1 | [client] 2 | default-character-set=utf8 3 | [mysql] 4 | default-character-set=utf8 5 | [mysqld] 6 | skip-host-cache 7 | skip-name-resolve 8 | datadir=/data/mysql 9 | socket=/var/lib/mysql/mysql.sock 10 | secure-file-priv=/var/lib/mysql-files 11 | character-set-server=utf8 12 | user=mysql 13 | symbolic-links=0 14 | pid-file=/var/run/mysqld/mysqld.pid 15 | sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 16 | -------------------------------------------------------------------------------- /km-dist/docker/ui/dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:1.18 2 | 3 | ADD pub.tar / 4 | ADD knowstreaming.conf /etc/nginx/conf.d/ 5 | RUN rm -rf /etc/nginx/conf.d/default.conf 6 | -------------------------------------------------------------------------------- /km-dist/helm/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /km-dist/helm/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | - [Requirements](#requirements) 5 | - [Installing](#installing) 6 | 7 | 8 | 9 | 10 | 11 | ## Requirements 12 | 13 | * Kubernetes >= 1.14 14 | * [Helm][] >= 2.17.0 15 | 16 | 17 | ## Installing 18 | 19 | * 默认配置为全部安装(elasticsearch + mysql + knowstreaming); 20 | * 如果使用已有的elasticsearch(7.6.x) 和 mysql(5.7) 只需调整 values.yaml 部分参数即可; 21 | * Install it: 22 | - with Helm 3: `helm install knowstreaming knowstreaming-manager/` -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | description: Official Elastic helm chart for Elasticsearch 3 | home: https://github.com/elastic/helm-charts 4 | maintainers: 5 | - email: helm-charts@elastic.co 6 | name: Elastic 7 | name: elasticsearch 8 | version: 7.6.0 9 | appVersion: 7.6.0 10 | sources: 11 | - https://github.com/elastic/elasticsearch 12 | icon: https://helm.elastic.co/icons/elasticsearch.png 13 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/Makefile: -------------------------------------------------------------------------------- 1 | include ../helpers/common.mk 2 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/config/watcher_encryption_key: -------------------------------------------------------------------------------- 1 | supersecret 2 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/default/Makefile: -------------------------------------------------------------------------------- 1 | default: test 2 | 3 | include ../../../helpers/examples.mk 4 | 5 | RELEASE := helm-es-default 6 | TIMEOUT := 1200s 7 | 8 | install: 9 | helm upgrade --wait --timeout=$(TIMEOUT) --install $(RELEASE) ../../ 10 | 11 | test: install goss 12 | 13 | purge: 14 | helm del $(RELEASE) 15 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/default/rolling_upgrade.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash -x 2 | 3 | kubectl proxy || true & 4 | 5 | make & 6 | PROC_ID=$! 7 | 8 | while kill -0 "$PROC_ID" >/dev/null 2>&1; do 9 | echo "PROCESS IS RUNNING" 10 | if curl --fail 'http://localhost:8001/api/v1/proxy/namespaces/default/services/elasticsearch-master:9200/_search' ; then 11 | echo "cluster is healthy" 12 | else 13 | echo "cluster not healthy!" 14 | exit 1 15 | fi 16 | sleep 1 17 | done 18 | echo "PROCESS TERMINATED" 19 | exit 0 20 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/docker-for-mac/Makefile: -------------------------------------------------------------------------------- 1 | default: test 2 | 3 | RELEASE := helm-es-docker-for-mac 4 | TIMEOUT := 1200s 5 | 6 | install: 7 | helm upgrade --wait --timeout=$(TIMEOUT) --install --values values.yaml $(RELEASE) ../../ 8 | 9 | test: install 10 | helm test $(RELEASE) 11 | 12 | purge: 13 | helm del $(RELEASE) 14 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/docker-for-mac/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # Permit co-located instances for solitary minikube virtual machines. 3 | antiAffinity: "soft" 4 | 5 | # Shrink default JVM heap. 6 | esJavaOpts: "-Xmx128m -Xms128m" 7 | 8 | # Allocate smaller chunks of memory per pod. 9 | resources: 10 | requests: 11 | cpu: "100m" 12 | memory: "512M" 13 | limits: 14 | cpu: "1000m" 15 | memory: "512M" 16 | 17 | # Request smaller persistent volumes. 18 | volumeClaimTemplate: 19 | accessModes: [ "ReadWriteOnce" ] 20 | storageClassName: "hostpath" 21 | resources: 22 | requests: 23 | storage: 100M 24 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/kubernetes-kind/Makefile: -------------------------------------------------------------------------------- 1 | default: test 2 | 3 | RELEASE := helm-es-kind 4 | TIMEOUT := 1200s 5 | 6 | install: 7 | helm upgrade --wait --timeout=$(TIMEOUT) --install --values values.yaml $(RELEASE) ../../ 8 | 9 | install-local-path: 10 | kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml 11 | helm upgrade --wait --timeout=$(TIMEOUT) --install --values values-local-path.yaml $(RELEASE) ../../ 12 | 13 | test: install 14 | helm test $(RELEASE) 15 | 16 | purge: 17 | helm del $(RELEASE) 18 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/kubernetes-kind/values-local-path.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # Permit co-located instances for solitary minikube virtual machines. 3 | antiAffinity: "soft" 4 | 5 | # Shrink default JVM heap. 6 | esJavaOpts: "-Xmx128m -Xms128m" 7 | 8 | # Allocate smaller chunks of memory per pod. 9 | resources: 10 | requests: 11 | cpu: "100m" 12 | memory: "512M" 13 | limits: 14 | cpu: "1000m" 15 | memory: "512M" 16 | 17 | # Request smaller persistent volumes. 18 | volumeClaimTemplate: 19 | accessModes: [ "ReadWriteOnce" ] 20 | storageClassName: "local-path" 21 | resources: 22 | requests: 23 | storage: 100M 24 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/kubernetes-kind/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # Permit co-located instances for solitary minikube virtual machines. 3 | antiAffinity: "soft" 4 | 5 | # Shrink default JVM heap. 6 | esJavaOpts: "-Xmx128m -Xms128m" 7 | 8 | # Allocate smaller chunks of memory per pod. 9 | resources: 10 | requests: 11 | cpu: "100m" 12 | memory: "512M" 13 | limits: 14 | cpu: "1000m" 15 | memory: "512M" 16 | 17 | # Request smaller persistent volumes. 18 | volumeClaimTemplate: 19 | accessModes: [ "ReadWriteOnce" ] 20 | storageClassName: "local-path" 21 | resources: 22 | requests: 23 | storage: 100M 24 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/microk8s/Makefile: -------------------------------------------------------------------------------- 1 | default: test 2 | 3 | RELEASE := helm-es-microk8s 4 | TIMEOUT := 1200s 5 | 6 | install: 7 | helm upgrade --wait --timeout=$(TIMEOUT) --install --values values.yaml $(RELEASE) ../../ 8 | 9 | test: install 10 | helm test $(RELEASE) 11 | 12 | purge: 13 | helm del $(RELEASE) 14 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/migration/Makefile: -------------------------------------------------------------------------------- 1 | PREFIX := helm-es-migration 2 | 3 | data: 4 | helm upgrade --wait --timeout=$(TIMEOUT) --install --values data.yaml $(PREFIX)-data ../../ 5 | 6 | master: 7 | helm upgrade --wait --timeout=$(TIMEOUT) --install --values master.yaml $(PREFIX)-master ../../ 8 | 9 | client: 10 | helm upgrade --wait --timeout=$(TIMEOUT) --install --values client.yaml $(PREFIX)-client ../../ 11 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/migration/client.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | replicas: 2 3 | 4 | clusterName: "elasticsearch" 5 | nodeGroup: "client" 6 | 7 | esMajorVersion: 6 8 | 9 | roles: [] 10 | 11 | volumeClaimTemplate: 12 | accessModes: ["ReadWriteOnce"] 13 | storageClassName: "standard" 14 | resources: 15 | requests: 16 | storage: 1Gi # Currently needed till pvcs are made optional 17 | 18 | persistence: 19 | enabled: false 20 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/migration/data.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | replicas: 2 3 | 4 | esMajorVersion: 6 5 | 6 | extraEnvs: 7 | - name: discovery.zen.ping.unicast.hosts 8 | value: "my-release-elasticsearch-discovery" 9 | 10 | clusterName: "elasticsearch" 11 | nodeGroup: "data" 12 | 13 | roles: 14 | - data 15 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/migration/master.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # Temporarily set to 3 so we can scale up/down the old a new cluster 3 | # one at a time whilst always keeping 3 masters running 4 | replicas: 1 5 | 6 | esMajorVersion: 6 7 | 8 | extraEnvs: 9 | - name: discovery.zen.ping.unicast.hosts 10 | value: "my-release-elasticsearch-discovery" 11 | 12 | clusterName: "elasticsearch" 13 | nodeGroup: "master" 14 | 15 | roles: 16 | - master 17 | 18 | volumeClaimTemplate: 19 | accessModes: ["ReadWriteOnce"] 20 | storageClassName: "standard" 21 | resources: 22 | requests: 23 | storage: 4Gi 24 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/minikube/Makefile: -------------------------------------------------------------------------------- 1 | default: test 2 | 3 | RELEASE := helm-es-minikube 4 | TIMEOUT := 1200s 5 | 6 | install: 7 | helm upgrade --wait --timeout=$(TIMEOUT) --install --values values.yaml $(RELEASE) ../../ 8 | 9 | test: install 10 | helm test $(RELEASE) 11 | 12 | purge: 13 | helm del $(RELEASE) 14 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/minikube/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # Permit co-located instances for solitary minikube virtual machines. 3 | antiAffinity: "soft" 4 | 5 | # Shrink default JVM heap. 6 | esJavaOpts: "-Xmx128m -Xms128m" 7 | 8 | # Allocate smaller chunks of memory per pod. 9 | resources: 10 | requests: 11 | cpu: "100m" 12 | memory: "512M" 13 | limits: 14 | cpu: "1000m" 15 | memory: "512M" 16 | 17 | # Request smaller persistent volumes. 18 | volumeClaimTemplate: 19 | accessModes: [ "ReadWriteOnce" ] 20 | storageClassName: "standard" 21 | resources: 22 | requests: 23 | storage: 100M 24 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/multi/Makefile: -------------------------------------------------------------------------------- 1 | default: test 2 | 3 | include ../../../helpers/examples.mk 4 | 5 | PREFIX := helm-es-multi 6 | RELEASE := helm-es-multi-master 7 | TIMEOUT := 1200s 8 | 9 | install: 10 | helm upgrade --wait --timeout=$(TIMEOUT) --install --values master.yaml $(PREFIX)-master ../../ 11 | helm upgrade --wait --timeout=$(TIMEOUT) --install --values data.yaml $(PREFIX)-data ../../ 12 | helm upgrade --wait --timeout=$(TIMEOUT) --install --values client.yaml $(PREFIX)-client ../../ 13 | 14 | test: install goss 15 | 16 | purge: 17 | helm del $(PREFIX)-master 18 | helm del $(PREFIX)-data 19 | helm del $(PREFIX)-client 20 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/multi/master.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | clusterName: "multi" 3 | nodeGroup: "master" 4 | 5 | roles: 6 | - master 7 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/multi/test/goss.yaml: -------------------------------------------------------------------------------- 1 | http: 2 | https://localhost:9200/_cluster/health: 3 | status: 200 4 | timeout: 2000 5 | allow-insecure: true 6 | username: elastic 7 | password: "{{ .Env.ELASTIC_PASSWORD }}" 8 | body: 9 | - "green" 10 | - '"cluster_name":"multi"' 11 | - '"number_of_nodes":9' 12 | - '"number_of_data_nodes":3' 13 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/networkpolicy/Makefile: -------------------------------------------------------------------------------- 1 | default: test 2 | 3 | include ../../../helpers/examples.mk 4 | 5 | RELEASE := helm-es-networkpolicy 6 | TIMEOUT := 1200s 7 | 8 | install: 9 | helm upgrade --wait --timeout=$(TIMEOUT) --install --values values.yaml $(RELEASE) ../../ 10 | 11 | test: install goss 12 | 13 | purge: 14 | helm del $(RELEASE) 15 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/openshift/Makefile: -------------------------------------------------------------------------------- 1 | default: test 2 | 3 | include ../../../helpers/examples.mk 4 | 5 | RELEASE := elasticsearch 6 | 7 | install: 8 | helm upgrade --wait --timeout=$(TIMEOUT) --install --values values.yaml $(RELEASE) ../../ 9 | 10 | test: install goss 11 | 12 | purge: 13 | helm del $(RELEASE) 14 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/openshift/test/goss.yaml: -------------------------------------------------------------------------------- 1 | http: 2 | https://localhost:9200/_cluster/health: 3 | status: 200 4 | timeout: 2000 5 | username: elastic 6 | password: "{{ .Env.ELASTIC_PASSWORD }}" 7 | body: 8 | - "green" 9 | - '"number_of_nodes":3' 10 | - '"number_of_data_nodes":3' 11 | 12 | https://localhost:9200: 13 | status: 200 14 | timeout: 2000 15 | username: elastic 16 | password: "{{ .Env.ELASTIC_PASSWORD }}" 17 | body: 18 | - '"number" : "8.1.0"' 19 | - '"cluster_name" : "elasticsearch"' 20 | - "You Know, for Search" 21 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/openshift/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | securityContext: 4 | runAsUser: null 5 | 6 | podSecurityContext: 7 | fsGroup: null 8 | runAsUser: null 9 | 10 | sysctlInitContainer: 11 | enabled: false 12 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/upgrade/README.md: -------------------------------------------------------------------------------- 1 | # Upgrade 2 | 3 | This example will deploy a 3 node Elasticsearch cluster chart using an old chart 4 | version, then upgrade it. 5 | 6 | 7 | ## Usage 8 | 9 | * Deploy and upgrade Elasticsearch chart with the default values: `make install` 10 | 11 | 12 | ## Testing 13 | 14 | You can also run [goss integration tests][] using `make test`. 15 | 16 | 17 | [goss integration tests]: https://github.com/elastic/helm-charts/tree/main/elasticsearch/examples/upgrade/test/goss.yaml 18 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/upgrade/test/goss.yaml: -------------------------------------------------------------------------------- 1 | http: 2 | https://localhost:9200/_cluster/health: 3 | status: 200 4 | username: elastic 5 | password: "{{ .Env.ELASTIC_PASSWORD }}" 6 | allow-insecure: true 7 | timeout: 2000 8 | body: 9 | - "green" 10 | - '"number_of_nodes":3' 11 | - '"number_of_data_nodes":3' 12 | 13 | https://localhost:9200: 14 | status: 200 15 | username: elastic 16 | password: "{{ .Env.ELASTIC_PASSWORD }}" 17 | allow-insecure: true 18 | timeout: 2000 19 | body: 20 | - '"number" : "8.1.0"' 21 | - '"cluster_name" : "upgrade"' 22 | - "You Know, for Search" 23 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/examples/upgrade/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | clusterName: upgrade 3 | # Rolling upgrade doesn't work when upgrading from clusters with security disabled. 4 | # This is because nodes with security enabled can't join a cluster with security disabled. 5 | # Every nodes need to be recreated at the same time so they can recreate a cluster with security enabled 6 | updateStrategy: OnDelete 7 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Watch all cluster members come up. 2 | $ kubectl get pods --namespace={{ .Release.Namespace }} -l app={{ template "elasticsearch.uname" . }} -w 3 | 2. Retrieve elastic user's password. 4 | $ kubectl get secrets --namespace={{ .Release.Namespace }} {{ template "elasticsearch.uname" . }}-credentials -ojsonpath='{.data.password}' | base64 -d 5 | {{- if .Values.tests.enabled }} 6 | 3. Test cluster health using Helm test. 7 | $ helm --namespace={{ .Release.Namespace }} test {{ .Release.Name }} 8 | {{- end -}} 9 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/templates/poddisruptionbudget.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.maxUnavailable }} 2 | {{- if .Capabilities.APIVersions.Has "policy/v1" -}} 3 | apiVersion: policy/v1 4 | {{- else}} 5 | apiVersion: policy/v1beta1 6 | {{- end }} 7 | kind: PodDisruptionBudget 8 | metadata: 9 | name: "{{ template "elasticsearch.uname" . }}-pdb" 10 | spec: 11 | maxUnavailable: {{ .Values.maxUnavailable }} 12 | selector: 13 | matchLabels: 14 | app: "{{ template "elasticsearch.uname" . }}" 15 | {{- end }} 16 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/templates/podsecuritypolicy.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.podSecurityPolicy.create -}} 2 | {{- $fullName := include "elasticsearch.uname" . -}} 3 | {{- if .Capabilities.APIVersions.Has "policy/v1" -}} 4 | apiVersion: policy/v1 5 | {{- else}} 6 | apiVersion: policy/v1beta1 7 | {{- end }} 8 | kind: PodSecurityPolicy 9 | metadata: 10 | name: {{ default $fullName .Values.podSecurityPolicy.name | quote }} 11 | labels: 12 | heritage: {{ .Release.Service | quote }} 13 | release: {{ .Release.Name | quote }} 14 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 15 | app: {{ $fullName | quote }} 16 | spec: 17 | {{ toYaml .Values.podSecurityPolicy.spec | indent 2 }} 18 | {{- end -}} 19 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/templates/rolebinding.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.rbac.create -}} 2 | {{- $fullName := include "elasticsearch.uname" . -}} 3 | apiVersion: rbac.authorization.k8s.io/v1 4 | kind: RoleBinding 5 | metadata: 6 | name: {{ $fullName | quote }} 7 | labels: 8 | heritage: {{ .Release.Service | quote }} 9 | release: {{ .Release.Name | quote }} 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | app: {{ $fullName | quote }} 12 | subjects: 13 | - kind: ServiceAccount 14 | name: "{{ template "elasticsearch.serviceAccount" . }}" 15 | namespace: {{ .Release.Namespace | quote }} 16 | roleRef: 17 | kind: Role 18 | name: {{ $fullName | quote }} 19 | apiGroup: rbac.authorization.k8s.io 20 | {{- end -}} 21 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/templates/secret-cert.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.createCert }} 2 | apiVersion: v1 3 | kind: Secret 4 | type: kubernetes.io/tls 5 | metadata: 6 | name: {{ template "elasticsearch.uname" . }}-certs 7 | labels: 8 | app: {{ template "elasticsearch.uname" . }} 9 | chart: "{{ .Chart.Name }}" 10 | heritage: {{ .Release.Service }} 11 | release: {{ .Release.Name }} 12 | annotations: 13 | "helm.sh/hook": "pre-install,pre-upgrade" 14 | "helm.sh/hook-delete-policy": "before-hook-creation" 15 | data: 16 | {{ ( include "elasticsearch.gen-certs" . ) | indent 2 }} 17 | {{- end }} 18 | -------------------------------------------------------------------------------- /km-dist/helm/charts/elasticsearch/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.rbac.create -}} 2 | {{- $fullName := include "elasticsearch.uname" . -}} 3 | apiVersion: v1 4 | kind: ServiceAccount 5 | metadata: 6 | name: "{{ template "elasticsearch.serviceAccount" . }}" 7 | annotations: 8 | {{- with .Values.rbac.serviceAccountAnnotations }} 9 | {{- toYaml . | nindent 4 }} 10 | {{- end }} 11 | labels: 12 | heritage: {{ .Release.Service | quote }} 13 | release: {{ .Release.Name | quote }} 14 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 15 | app: {{ $fullName | quote }} 16 | {{- end -}} 17 | -------------------------------------------------------------------------------- /km-dist/helm/charts/knowstreaming-web/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /km-dist/helm/charts/knowstreaming-web/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: knowstreaming-web 3 | description: A Helm chart for Kubernetes 4 | 5 | type: application 6 | 7 | version: 0.1.0 8 | 9 | maintainers: 10 | - email: didicloud@didiglobal.com 11 | name: didicloud 12 | 13 | appVersion: "1.0.0" 14 | -------------------------------------------------------------------------------- /km-dist/helm/charts/knowstreaming-web/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | knowstreaming-web 2 | -------------------------------------------------------------------------------- /km-dist/helm/charts/knowstreaming-web/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "knowstreaming-web.fullname" . }} 5 | labels: 6 | {{- include "knowstreaming-web.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.service.type }} 9 | ports: 10 | - port: {{ .Values.service.port }} 11 | targetPort: http 12 | protocol: TCP 13 | name: http 14 | selector: 15 | {{- include "knowstreaming-web.selectorLabels" . | nindent 4 }} 16 | -------------------------------------------------------------------------------- /km-dist/helm/charts/knowstreaming-web/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "knowstreaming-web.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "knowstreaming-web.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "knowstreaming-web.fullname" . }}:{{ .Values.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /km-dist/helm/charts/ksmysql/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /km-dist/helm/charts/ksmysql/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: ksmysql 3 | description: MySql for KnowStreaming 4 | 5 | type: application 6 | 7 | version: 0.1.0 8 | 9 | appVersion: "5.7.38-1" 10 | -------------------------------------------------------------------------------- /km-dist/helm/charts/ksmysql/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | knowstreaming-mysql 2 | -------------------------------------------------------------------------------- /km-dist/helm/charts/ksmysql/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ include "ksmysql.fullname" . }} 5 | labels: 6 | {{- include "ksmysql.labels" . | nindent 4 }} 7 | stringData: 8 | rootUser: {{ .Values.mysql.username }} 9 | rootHost: '%' 10 | rootPassword: {{ .Values.mysql.password }} 11 | -------------------------------------------------------------------------------- /km-dist/helm/charts/ksmysql/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ .Values.service.name }} 5 | labels: 6 | {{- include "ksmysql.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.service.type }} 9 | ports: 10 | - port: {{ .Values.service.port }} 11 | protocol: TCP 12 | name: mysql 13 | selector: 14 | {{- include "ksmysql.selectorLabels" . | nindent 4 }} 15 | -------------------------------------------------------------------------------- /km-dist/helm/charts/ksmysql/values.yaml: -------------------------------------------------------------------------------- 1 | # Default values for k11gMysql. 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates. 4 | 5 | mysql: 6 | dbname: k11g 7 | username: root 8 | password: "admin2022_" 9 | 10 | replicaCount: 1 11 | 12 | resources: 13 | limits: 14 | cpu: "1000m" 15 | memory: "2Gi" 16 | requests: 17 | cpu: "1000m" 18 | memory: "2Gi" 19 | 20 | service: 21 | name: k11gmysql-server 22 | type: ClusterIP 23 | port: 3306 24 | 25 | persistence: 26 | enabled: true 27 | ## 28 | # storageClass: "-" 29 | accessMode: ReadWriteOnce 30 | size: 30Gi 31 | -------------------------------------------------------------------------------- /km-dist/helm/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | ############knowstreaming-manager############ 2 | 3 | 1. Watch all cluster members come up. 启动需要几分钟时间进行初始化,请稍等~ 4 | 5 | $ kubectl get pods --namespace={{ .Release.Namespace }} -l release={{ .Release.Name }} -w 6 | 7 | 8 | 2. 获取KnowStreaming前端ui的service. 默认nodeport方式.(http://nodeIP:nodeport) 9 | 10 | $ kubectl get service --namespace={{ .Release.Namespace }} {{ .Release.Name }}-knowstreaming-web 11 | -------------------------------------------------------------------------------- /km-dist/helm/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "knowstreaming-manager.fullname" . }} 5 | #name: knowstreaming-manager-km 6 | labels: 7 | {{- include "knowstreaming-manager.labels" . | nindent 4 }} 8 | spec: 9 | type: {{ .Values.service.type }} 10 | ports: 11 | - port: {{ .Values.service.port }} 12 | targetPort: http 13 | protocol: TCP 14 | name: http 15 | selector: 16 | {{- include "knowstreaming-manager.selectorLabels" . | nindent 6 }} 17 | -------------------------------------------------------------------------------- /km-dist/helm/templates/servicemonitors.yaml: -------------------------------------------------------------------------------- 1 | {{ if .Values.servicemonitor.enabled }} 2 | apiVersion: monitoring.coreos.com/v1 3 | kind: ServiceMonitor 4 | metadata: 5 | name: {{ include "knowstreaming-manager.fullname" . }} 6 | labels: 7 | {{- include "knowstreaming-manager.labels" . | nindent 4 }} 8 | spec: 9 | endpoints: 10 | - port: http 11 | scheme: http 12 | path: /metrics/prometheus 13 | selector: 14 | matchLabels: 15 | {{- include "knowstreaming-manager.selectorLabels" . | nindent 4 }} 16 | {{- end }} -------------------------------------------------------------------------------- /km-dist/helm/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "knowstreaming-manager.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "knowstreaming-manager.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "knowstreaming-manager.fullname" . }}:{{ .Values.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /km-extends/km-account/src/main/java/com/xiaojukeji/know/streaming/km/account/common/ldap/LdapPrincipal.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.account.common.ldap; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class LdapPrincipal { 7 | private String userDN; 8 | 9 | private String sAMAccountName; 10 | 11 | private String department; 12 | 13 | private String company; 14 | 15 | private String displayName; 16 | 17 | private String mail; 18 | } 19 | -------------------------------------------------------------------------------- /km-extends/km-account/src/main/java/com/xiaojukeji/know/streaming/km/account/common/ldap/exception/LdapException.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.account.common.ldap.exception; 2 | 3 | import com.didiglobal.logi.security.exception.CodeMsg; 4 | 5 | public class LdapException extends RuntimeException { 6 | 7 | public LdapException() {} 8 | 9 | public LdapException(CodeMsg codeMsg) { 10 | super(codeMsg.getCode() + "-" + codeMsg.getMessage()); 11 | } 12 | 13 | public LdapException(String message, Throwable cause) { 14 | super(message, cause); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /km-extends/km-account/src/main/java/com/xiaojukeji/know/streaming/km/account/login/trick/TrickJumpLoginService.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.account.login.trick; 2 | 3 | import javax.servlet.http.HttpServletRequest; 4 | 5 | /** 6 | * @author zengqiao 7 | * @date 21/5/18 8 | */ 9 | public interface TrickJumpLoginService { 10 | /** 11 | * 是否开启trick的方式登录 12 | */ 13 | boolean isOpenTrickJumpLogin(HttpServletRequest request); 14 | 15 | /** 16 | * 开启trick方式登录后,当前用户是否可以登录 17 | */ 18 | String checkTrickJumpLogin(HttpServletRequest request); 19 | } 20 | -------------------------------------------------------------------------------- /km-extends/km-monitor/src/main/java/com/xiaojukeji/know/streaming/km/monitor/common/MetricSinkPoint.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.monitor.common; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.Map; 6 | 7 | @Data 8 | public class MetricSinkPoint { 9 | /** 10 | * 指标名 11 | */ 12 | private String name; 13 | 14 | /** 15 | * 指标值 16 | */ 17 | private Float value; 18 | 19 | /** 20 | * 上报周期,单位秒 21 | */ 22 | private int step; 23 | 24 | /** 25 | * 当前时间戳,单位为s 26 | */ 27 | private long timestamp; 28 | 29 | /** 30 | * tags 31 | */ 32 | private Map tagsMap; 33 | 34 | public MetricSinkPoint() {} 35 | } 36 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/kafka/KafkaClient.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.kafka; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.exception.NotExistException; 4 | 5 | public interface KafkaClient { 6 | /** 7 | * 获取Kafka客户端 8 | * @param clusterPhyId 物理集群ID 9 | * @return 10 | */ 11 | T getClient(Long clusterPhyId) throws NotExistException; 12 | } 13 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/kafka/zookeeper/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 读取Kafka在ZK中存储的数据的包 3 | */ 4 | package com.xiaojukeji.know.streaming.km.persistence.kafka.zookeeper; -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/kafka/zookeeper/znode/ControllerData.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.kafka.zookeeper.znode; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.ToString; 7 | 8 | /** 9 | * @author zengqiao 10 | * @date 19/4/22 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | @ToString 16 | public class ControllerData { 17 | private Integer brokerid; 18 | 19 | private Integer version; 20 | 21 | private Long timestamp; 22 | } -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/kafka/zookeeper/znode/config/ConfigChangeNotificationBaseData.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.kafka.zookeeper.znode.config; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.ToString; 7 | 8 | /** 9 | * @author zengqiao 10 | * @date 20/5/14 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | @ToString 16 | public class ConfigChangeNotificationBaseData { 17 | protected Integer version; 18 | } -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/kafka/zookeeper/znode/config/ConfigNodeData.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.kafka.zookeeper.znode.config; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.ToString; 7 | 8 | /** 9 | * @author zengqiao 10 | * @date 20/5/12 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | @ToString 16 | public class ConfigNodeData { 17 | public static final Integer CONFIGDATA_VERSION = 1; 18 | 19 | private T config; 20 | 21 | private Integer version; 22 | } -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/ControllerChangeLogDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql; 2 | 3 | import com.xiaojukeji.know.streaming.km.common.bean.po.ControllerChangeLogPO; 4 | import org.springframework.stereotype.Repository; 5 | 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | @Repository 10 | public interface ControllerChangeLogDAO { 11 | 12 | int insert(ControllerChangeLogPO controllerChangeLogPO); 13 | 14 | List paginationQuery(Map params); 15 | 16 | Long queryCount(Map params); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/KafkaAclDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.KafkaAclPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface KafkaAclDAO extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/KafkaUserDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.KafkaUserPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface KafkaUserDAO extends BaseMapper { 9 | int replace(KafkaUserPO kafkaPrincipalPO); 10 | } 11 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/broker/BrokerConfigDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.broker; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.broker.BrokerConfigPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface BrokerConfigDAO extends BaseMapper { 9 | int replace(BrokerConfigPO po); 10 | } 11 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/broker/BrokerDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.broker; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.broker.BrokerPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface BrokerDAO extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/changerecord/KafkaChangeRecordDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.changerecord; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.changerecord.KafkaChangeRecordPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface KafkaChangeRecordDAO extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/cluster/ClusterPhyDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.cluster; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.cluster.ClusterPhyPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface ClusterPhyDAO extends BaseMapper { 9 | int addAndSetId(ClusterPhyPO clusterPhyPO); 10 | } 11 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/config/PlatformClusterConfigDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.config; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.config.PlatformClusterConfigPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | import java.util.List; 8 | 9 | @Repository 10 | public interface PlatformClusterConfigDAO extends BaseMapper { 11 | int batchReplace(List poList); 12 | } 13 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/connect/ConnectClusterDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.connect; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.connect.ConnectClusterPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface ConnectClusterDAO extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/connect/ConnectWorkerDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.connect; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.connect.ConnectWorkerPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface ConnectWorkerDAO extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/connect/ConnectorDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.connect; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.connect.ConnectorPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface ConnectorDAO extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/connect/WorkerConnectorDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.connect; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.connect.WorkerConnectorPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface WorkerConnectorDAO extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/group/GroupDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.group; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.group.GroupPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface GroupDAO extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/group/GroupMemberDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.group; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.group.GroupMemberPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface GroupMemberDAO extends BaseMapper { 9 | int replace(GroupMemberPO po); 10 | } 11 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/ha/HaActiveStandbyRelationDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.ha; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.ha.HaActiveStandbyRelationPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface HaActiveStandbyRelationDAO extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/health/HealthCheckResultDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.health; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.health.HealthCheckResultPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | import java.util.List; 8 | 9 | @Repository 10 | public interface HealthCheckResultDAO extends BaseMapper { 11 | int replace(HealthCheckResultPO healthCheckResultPO); 12 | 13 | int batchReplace(List healthCheckResultPos); 14 | } 15 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/job/JobDAO.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015, WINIT and/or its affiliates. All rights reserved. Use, Copy is subject to authorized license. 3 | */ 4 | package com.xiaojukeji.know.streaming.km.persistence.mysql.job; 5 | 6 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 7 | import com.xiaojukeji.know.streaming.km.common.bean.po.job.JobPO; 8 | import org.springframework.stereotype.Repository; 9 | 10 | @Repository 11 | public interface JobDAO extends BaseMapper { 12 | int addAndSetId(JobPO jobPO); 13 | } 14 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/kafkacontroller/KafkaControllerDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.kafkacontroller; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.kafkacontrollr.KafkaControllerPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | import java.util.List; 8 | 9 | @Repository 10 | public interface KafkaControllerDAO extends BaseMapper { 11 | List listAllLatest(); 12 | } 13 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/km/KmNodeDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.km; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.km.KmNodePO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface KmNodeDAO extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/partition/PartitionDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.partition; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.partition.PartitionPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface PartitionDAO extends BaseMapper { 9 | int replace(PartitionPO po); 10 | } 11 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/reassign/ReassignJobDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.reassign; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.reassign.ReassignJobPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface ReassignJobDAO extends BaseMapper { 9 | int addAndSetId(ReassignJobPO po); 10 | } -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/reassign/ReassignSubJobDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.reassign; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.reassign.ReassignSubJobPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface ReassignSubJobDAO extends BaseMapper { 9 | } -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/topic/TopicDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.topic; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.topic.TopicPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface TopicDAO extends BaseMapper { 9 | int replaceAll(TopicPO topicPO); 10 | 11 | int updateConfigById(TopicPO topicPO); 12 | } 13 | -------------------------------------------------------------------------------- /km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/mysql/zookeeper/ZookeeperDAO.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.km.persistence.mysql.zookeeper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xiaojukeji.know.streaming.km.common.bean.po.zookeeper.ZookeeperInfoPO; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface ZookeeperDAO extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /km-persistence/src/main/resources/es/dsl/BaseMetricESDAO/getLatestMetricTime: -------------------------------------------------------------------------------- 1 | { 2 | "_source": "timestamp", 3 | "size": 1, 4 | "query": { 5 | "bool": { 6 | "must": [ 7 | { 8 | "range": { 9 | "timestamp": { 10 | "gte": %d, 11 | "lte": %d 12 | } 13 | } 14 | } 15 | %s 16 | ] 17 | } 18 | }, 19 | "sort": [ 20 | { 21 | "timestamp": { 22 | "order": "desc" 23 | } 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /km-persistence/src/main/resources/es/dsl/BrokerMetricESDAO/getAggSingleBrokerMetrics: -------------------------------------------------------------------------------- 1 | { 2 | "size": 0, 3 | "query": { 4 | "bool": { 5 | "must": [ 6 | { 7 | "term": { 8 | "clusterPhyId": { 9 | "value": %d 10 | } 11 | } 12 | }, 13 | { 14 | "term": { 15 | "brokerId": { 16 | "value": %d 17 | } 18 | } 19 | }, 20 | { 21 | "range": { 22 | "timestamp": { 23 | "gte": %d, 24 | "lte": %d 25 | } 26 | } 27 | } 28 | ] 29 | } 30 | }, 31 | "aggs": { 32 | %s 33 | } 34 | } -------------------------------------------------------------------------------- /km-persistence/src/main/resources/es/dsl/ClusterMetricESDAO/getAggSingleClusterMetrics: -------------------------------------------------------------------------------- 1 | { 2 | "size": 0, 3 | "query": { 4 | "bool": { 5 | "must": [ 6 | { 7 | "term": { 8 | "clusterPhyId": { 9 | "value": %d 10 | } 11 | } 12 | }, 13 | { 14 | "range": { 15 | "timestamp": { 16 | "gte": %d, 17 | "lte": %d 18 | } 19 | } 20 | } 21 | ] 22 | } 23 | }, 24 | "aggs": { 25 | %s 26 | } 27 | } -------------------------------------------------------------------------------- /km-persistence/src/main/resources/es/dsl/ClusterMetricESDAO/getClusterLatestMetrics: -------------------------------------------------------------------------------- 1 | { 2 | "size": 1, 3 | "query": { 4 | "bool": { 5 | "must": [ 6 | { 7 | "term": { 8 | "clusterPhyId": { 9 | "value": %d 10 | } 11 | } 12 | }, 13 | { 14 | "range": { 15 | "timestamp": { 16 | "gte": %d, 17 | "lte": %d 18 | } 19 | } 20 | } 21 | ] 22 | } 23 | }, 24 | "sort": [ 25 | { 26 | "timestamp": { 27 | "order": "desc" 28 | } 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /km-persistence/src/main/resources/es/dsl/ClusterMetricESDAO/listClusterWithLatestMetrics: -------------------------------------------------------------------------------- 1 | { 2 | "query": { 3 | "bool": { 4 | "must": [ 5 | { 6 | "term": { 7 | "timestamp": { 8 | "value": %d 9 | } 10 | } 11 | } 12 | %s 13 | ] 14 | } 15 | }, 16 | "sort":[%s] 17 | } -------------------------------------------------------------------------------- /km-persistence/src/main/resources/es/dsl/TopicMetricESDAO/getMaxOrMinSingleMetric: -------------------------------------------------------------------------------- 1 | { 2 | "size": 1, 3 | "query": { 4 | "bool": { 5 | "must": [ 6 | { 7 | "term": { 8 | "clusterPhyId": { 9 | "value": %d 10 | } 11 | } 12 | }, 13 | { 14 | "range": { 15 | "timestamp": { 16 | "gte": %d, 17 | "lte": %d 18 | } 19 | } 20 | }, 21 | { 22 | "term": { 23 | "topic": { 24 | "value": "%s" 25 | } 26 | } 27 | } 28 | ] 29 | } 30 | }, 31 | "sort":[%s] 32 | } -------------------------------------------------------------------------------- /km-persistence/src/main/resources/es/dsl/TopicMetricESDAO/listTopicWithLatestMetrics: -------------------------------------------------------------------------------- 1 | { 2 | "size": 5000, 3 | "query": { 4 | "bool": { 5 | "must": [ 6 | { 7 | "term": { 8 | "clusterPhyId": { 9 | "value": %d 10 | } 11 | } 12 | }, 13 | { 14 | "term": { 15 | "timestamp": { 16 | "value": %d 17 | } 18 | } 19 | }, 20 | { 21 | "term": { 22 | "brokerAgg": { 23 | "value": "1" 24 | } 25 | } 26 | } 27 | %s 28 | ] 29 | } 30 | }, 31 | "sort":[%s] 32 | } -------------------------------------------------------------------------------- /km-rest/src/test/java/com/xiaojukeji/know/streaming/test/container/BaseTestContainer.java: -------------------------------------------------------------------------------- 1 | package com.xiaojukeji.know.streaming.test.container; 2 | 3 | public abstract class BaseTestContainer { 4 | public abstract void init(); 5 | 6 | public abstract void cleanup(); 7 | } 8 | --------------------------------------------------------------------------------