├── .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 |
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 |
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 |
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 |
--------------------------------------------------------------------------------