Full Code of didi/LogiEM for AI

master 3beb5fd8d778 cached
3025 files
11.3 MB
3.2M tokens
13958 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (13,317K chars total). Download the full file to get everything.
Repository: didi/LogiEM
Branch: master
Commit: 3beb5fd8d778
Files: 3025
Total size: 11.3 MB

Directory structure:
gitextract_2c3heqbr/

├── .gitignore
├── README.md
├── Releases_Notes.md
├── arius-admin/
│   ├── README.md
│   ├── arius-admin-biz/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   └── biz/
│   │                                       ├── cluster/
│   │                                       │   ├── ClusterContextManager.java
│   │                                       │   ├── ClusterIndexManager.java
│   │                                       │   ├── ClusterLogicManager.java
│   │                                       │   ├── ClusterNodeManager.java
│   │                                       │   ├── ClusterPhyManager.java
│   │                                       │   ├── ClusterPhyQuickCommandManager.java
│   │                                       │   ├── ClusterPluginManager.java
│   │                                       │   ├── ClusterRegionManager.java
│   │                                       │   ├── ESClusterConfigManager.java
│   │                                       │   └── impl/
│   │                                       │       ├── ClusterContextManagerImpl.java
│   │                                       │       ├── ClusterIndexManagerImpl.java
│   │                                       │       ├── ClusterLogicManagerImpl.java
│   │                                       │       ├── ClusterNodeManagerImpl.java
│   │                                       │       ├── ClusterPhyManagerImpl.java
│   │                                       │       ├── ClusterPhyQuickCommandManagerImpl.java
│   │                                       │       ├── ClusterPluginManagerImpl.java
│   │                                       │       ├── ClusterRegionManagerImpl.java
│   │                                       │       └── ESClusterConfigManagerImpl.java
│   │                                       ├── component/
│   │                                       │   └── MetricsValueConvertUtils.java
│   │                                       ├── dsl/
│   │                                       │   ├── DslMetricsManager.java
│   │                                       │   ├── DslTemplateManager.java
│   │                                       │   └── impl/
│   │                                       │       ├── DslMetricsManagerImpl.java
│   │                                       │       └── DslTemplateManagerImpl.java
│   │                                       ├── espackage/
│   │                                       │   └── ESPackageManager.java
│   │                                       ├── extend/
│   │                                       │   └── foctory/
│   │                                       │       └── ExtendServiceFactory.java
│   │                                       ├── gateway/
│   │                                       │   ├── GatewayJoinLogManager.java
│   │                                       │   ├── GatewayManager.java
│   │                                       │   └── impl/
│   │                                       │       ├── GatewayJoinLogManagerImpl.java
│   │                                       │       └── GatewayManagerImpl.java
│   │                                       ├── indices/
│   │                                       │   ├── IndicesManager.java
│   │                                       │   └── IndicesManagerImpl.java
│   │                                       ├── listener/
│   │                                       │   ├── ApplicationRetryListener.java
│   │                                       │   ├── ClusterLogicChangeListener.java
│   │                                       │   ├── ClusterPhyChangeListener.java
│   │                                       │   ├── ClusterPhyHealthListener.java
│   │                                       │   ├── DCDRLinkAbnormalIndicesRebuildListener.java
│   │                                       │   ├── LoggingListener.java
│   │                                       │   ├── LogicTemplateCreatePipelineListener.java
│   │                                       │   ├── ReBuildTomorrowIndexListener.java
│   │                                       │   ├── RefreshCatIndexListener.java
│   │                                       │   ├── RegionEditEventListener.java
│   │                                       │   ├── TemplateEventClearIndexListener.java
│   │                                       │   ├── TemplateEventPipelineListener.java
│   │                                       │   ├── TemplatePhyMetaChangedListener.java
│   │                                       │   └── TemplateProjectIdChangedListener.java
│   │                                       ├── metrics/
│   │                                       │   ├── ClusterPhyMetricsManager.java
│   │                                       │   ├── DashboardMetricsManager.java
│   │                                       │   ├── GatewayMetricsManager.java
│   │                                       │   ├── MetricsDictionaryManager.java
│   │                                       │   ├── handle/
│   │                                       │   │   ├── BaseClusterMetricsHandle.java
│   │                                       │   │   ├── ClusterLogicOverviewMetricsHandle.java
│   │                                       │   │   ├── ClusterOverviewMetricsHandle.java
│   │                                       │   │   └── handler/
│   │                                       │   │       ├── PhyIndicesClusterMetricsHandler.java
│   │                                       │   │       ├── PhyNodeClusterMetricsHandler.java
│   │                                       │   │       ├── PhyNodesTaskClusterMetricsHandler.java
│   │                                       │   │       ├── PhyOverviewClusterMetricsHandler.java
│   │                                       │   │       └── PhyTemplateClusterMetricsHandler.java
│   │                                       │   └── impl/
│   │                                       │       ├── ClusterPhyMetricsManagerImpl.java
│   │                                       │       ├── DashboardMetricsManagerImpl.java
│   │                                       │       ├── GatewayMetricsManagerImpl.java
│   │                                       │       └── MetricsDictionaryManagerImpl.java
│   │                                       ├── page/
│   │                                       │   ├── AbstractPageSearchHandle.java
│   │                                       │   ├── ClusterLogicPageSearchHandle.java
│   │                                       │   ├── ClusterPhyPageSearchHandle.java
│   │                                       │   ├── DslTemplatePageSearchHandle.java
│   │                                       │   ├── GatewayJoinPageSearchHandle.java
│   │                                       │   ├── IndexPageSearchHandle.java
│   │                                       │   ├── OperateRecordPageSearchHandle.java
│   │                                       │   ├── QuickCommandIndicesDistributionPageSearchHandle.java
│   │                                       │   ├── QuickCommandShardsDistributionPageSearchHandle.java
│   │                                       │   ├── TaskPageSearchHandle.java
│   │                                       │   ├── TemplateLogicPageSearchHandle.java
│   │                                       │   └── TemplateSrvPageSearchHandle.java
│   │                                       ├── project/
│   │                                       │   ├── ESUserManager.java
│   │                                       │   ├── LoginManager.java
│   │                                       │   ├── OperateRecordManager.java
│   │                                       │   ├── PermissionExtendManager.java
│   │                                       │   ├── ProjectClusterLogicAuthManager.java
│   │                                       │   ├── ProjectConfigManager.java
│   │                                       │   ├── ProjectExtendManager.java
│   │                                       │   ├── ProjectLogicTemplateAuthManager.java
│   │                                       │   ├── RoleExtendManager.java
│   │                                       │   ├── UserExtendManager.java
│   │                                       │   └── impl/
│   │                                       │       ├── ESUserManagerImpl.java
│   │                                       │       ├── LoginManagerImpl.java
│   │                                       │       ├── OperateRecordManagerImpl.java
│   │                                       │       ├── PermissionExtendManagerImpl.java
│   │                                       │       ├── ProjectClusterLogicAuthManagerImpl.java
│   │                                       │       ├── ProjectConfigManagerImpl.java
│   │                                       │       ├── ProjectExtendManagerImpl.java
│   │                                       │       ├── ProjectLogicTemplateAuthManagerImpl.java
│   │                                       │       ├── RoleExtendManagerImpl.java
│   │                                       │       └── UserExtendManagerImpl.java
│   │                                       ├── security/
│   │                                       │   └── resource/
│   │                                       │       └── ResourceExtendManager.java
│   │                                       ├── task/
│   │                                       │   ├── OpTaskHandler.java
│   │                                       │   ├── OpTaskManager.java
│   │                                       │   ├── content/
│   │                                       │   │   ├── ClusterBaseContent.java
│   │                                       │   │   ├── ClusterConfigRestartContent.java
│   │                                       │   │   ├── ClusterHostContent.java
│   │                                       │   │   ├── ClusterIndecreaseDockerContent.java
│   │                                       │   │   ├── ClusterIndecreaseHostContent.java
│   │                                       │   │   ├── ClusterNewDockerContent.java
│   │                                       │   │   ├── ClusterNewHostContent.java
│   │                                       │   │   ├── ClusterOfflineContent.java
│   │                                       │   │   ├── ClusterRestartContent.java
│   │                                       │   │   └── ClusterUpdateContent.java
│   │                                       │   ├── ecm/
│   │                                       │   │   ├── EcmTaskDetailManager.java
│   │                                       │   │   ├── EcmTaskManager.java
│   │                                       │   │   └── impl/
│   │                                       │   │       ├── EcmTaskDetailManagerImpl.java
│   │                                       │   │       └── EcmTaskManagerImpl.java
│   │                                       │   ├── handler/
│   │                                       │   │   ├── AbstractOpTaskHandler.java
│   │                                       │   │   ├── DCDROpTaskHandler.java
│   │                                       │   │   ├── ECMOpTaskHandler.java
│   │                                       │   │   └── cluster/
│   │                                       │   │       ├── AbstractClusterTaskHandler.java
│   │                                       │   │       ├── ClusterConfigRestartTaskHandler.java
│   │                                       │   │       ├── ClusterCreateTaskHandler.java
│   │                                       │   │       ├── ClusterOfflineTaskHandler.java
│   │                                       │   │       ├── ClusterRestartTaskHandler.java
│   │                                       │   │       ├── ClusterScaleTaskHandler.java
│   │                                       │   │       └── ClusterUpgradeTaskHandler.java
│   │                                       │   └── impl/
│   │                                       │       └── OpTaskManagerImpl.java
│   │                                       ├── template/
│   │                                       │   ├── TemplateLogicManager.java
│   │                                       │   ├── TemplatePhyManager.java
│   │                                       │   ├── TemplatePhyStaticsManager.java
│   │                                       │   ├── impl/
│   │                                       │   │   ├── TemplateLogicManagerImpl.java
│   │                                       │   │   ├── TemplatePhyManagerImpl.java
│   │                                       │   │   └── TemplatePhyStaticsManagerImpl.java
│   │                                       │   └── srv/
│   │                                       │       ├── TemplateSrvManager.java
│   │                                       │       ├── TemplateSrvManagerImpl.java
│   │                                       │       ├── aliases/
│   │                                       │       │   ├── TemplateLogicAliasManager.java
│   │                                       │       │   ├── TemplatePhyAliasManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       ├── TemplateLogicAliasManagerImpl.java
│   │                                       │       │       └── TemplatePhyAliasManagerImpl.java
│   │                                       │       ├── base/
│   │                                       │       │   ├── BaseTemplateSrv.java
│   │                                       │       │   └── impl/
│   │                                       │       │       └── BaseTemplateSrvImpl.java
│   │                                       │       ├── cold/
│   │                                       │       │   ├── ColdManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       └── ColdManagerImpl.java
│   │                                       │       ├── dcdr/
│   │                                       │       │   ├── TemplateDCDRManager.java
│   │                                       │       │   └── TemplateDCDRManagerImpl.java
│   │                                       │       ├── expire/
│   │                                       │       │   ├── ExpireManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       └── ExpireManagerImpl.java
│   │                                       │       ├── indexplan/
│   │                                       │       │   ├── IndexPlanManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       └── IndexPlanManagerImpl.java
│   │                                       │       ├── mapping/
│   │                                       │       │   ├── TemplateLogicMappingManager.java
│   │                                       │       │   ├── TemplatePhyMappingManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       ├── TemplateLogicMappingManagerImpl.java
│   │                                       │       │       └── TemplatePhyMappingManagerImpl.java
│   │                                       │       ├── pipeline/
│   │                                       │       │   ├── PipelineManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       └── PipelineManagerImpl.java
│   │                                       │       ├── precreate/
│   │                                       │       │   ├── PreCreateManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       └── PreCreateManagerImpl.java
│   │                                       │       └── setting/
│   │                                       │           ├── TemplateLogicSettingsManager.java
│   │                                       │           ├── TemplatePhySettingManager.java
│   │                                       │           └── impl/
│   │                                       │               ├── TemplateLogicSettingsManagerImpl.java
│   │                                       │               └── TemplatePhySettingManagerImpl.java
│   │                                       ├── thardpart/
│   │                                       │   ├── CommonManager.java
│   │                                       │   └── impl/
│   │                                       │       └── CommonManagerImpl.java
│   │                                       ├── workorder/
│   │                                       │   ├── BaseWorkOrderHandler.java
│   │                                       │   ├── WorkOrderHandler.java
│   │                                       │   ├── WorkOrderManager.java
│   │                                       │   ├── content/
│   │                                       │   │   ├── BaseContent.java
│   │                                       │   │   ├── ClusterDeleteContent.java
│   │                                       │   │   ├── ClusterLogicTransferContent.java
│   │                                       │   │   ├── DslTemplateQueryLimitContent.java
│   │                                       │   │   ├── DslTemplateStatusContent.java
│   │                                       │   │   ├── JoinLogicClusterContent.java
│   │                                       │   │   ├── LogicClusterAuthContent.java
│   │                                       │   │   ├── LogicClusterCreateContent.java
│   │                                       │   │   ├── LogicClusterDeleteContent.java
│   │                                       │   │   ├── LogicClusterIndecreaseContent.java
│   │                                       │   │   ├── LogicClusterPlugOperationContent.java
│   │                                       │   │   ├── LogicClusterPluginContent.java
│   │                                       │   │   ├── PhyClusterPluginOperationContent.java
│   │                                       │   │   ├── QueryDslLimitEditContent.java
│   │                                       │   │   ├── TemplateAuthContent.java
│   │                                       │   │   ├── TemplateCreateContent.java
│   │                                       │   │   ├── TemplateIndecreaseContent.java
│   │                                       │   │   ├── TemplateLogicStatusContent.java
│   │                                       │   │   ├── TemplateQueryDslContent.java
│   │                                       │   │   └── TemplateTransferContent.java
│   │                                       │   ├── handler/
│   │                                       │   │   ├── ClusterDeleteHandler.java
│   │                                       │   │   ├── ClusterOpIndecreaseHandler.java
│   │                                       │   │   ├── ClusterOpNewHandler.java
│   │                                       │   │   ├── ClusterOpOfflineHandler.java
│   │                                       │   │   ├── ClusterOpUpdateHandler.java
│   │                                       │   │   ├── DslTemplateQueryLimitHandler.java
│   │                                       │   │   ├── DslTemplateStatusChangeHandler.java
│   │                                       │   │   ├── LogicClusterAuthHandler.java
│   │                                       │   │   ├── LogicClusterCreateHandler.java
│   │                                       │   │   ├── LogicClusterIndecreaseHandler.java
│   │                                       │   │   ├── LogicClusterJoinHandler.java
│   │                                       │   │   ├── LogicClusterPlugOperationHandler.java
│   │                                       │   │   ├── LogicClusterPluginHandler.java
│   │                                       │   │   ├── LogicClusterTransferHandler.java
│   │                                       │   │   ├── QueryDslLimitEditHandler.java
│   │                                       │   │   ├── TemplateAuthHandler.java
│   │                                       │   │   ├── TemplateCreateHandler.java
│   │                                       │   │   ├── TemplateIndecreaseHandler.java
│   │                                       │   │   ├── TemplateLogicBlockReadHandler.java
│   │                                       │   │   ├── TemplateLogicBlockWriteHandler.java
│   │                                       │   │   ├── TemplateQueryDslHandler.java
│   │                                       │   │   ├── TemplateTransferHandler.java
│   │                                       │   │   └── clusterrestart/
│   │                                       │   │       ├── BaseClusterOpRestartHandler.java
│   │                                       │   │       ├── ClusterOpConfigRestartHandler.java
│   │                                       │   │       ├── ClusterOpNormalRestartHandler.java
│   │                                       │   │       └── ClusterOpPluginRestartHandler.java
│   │                                       │   ├── impl/
│   │                                       │   │   └── WorkOrderManagerImpl.java
│   │                                       │   └── utils/
│   │                                       │       └── OpOrderTaskConverter.java
│   │                                       └── zeus/
│   │                                           ├── ZeusCollectManager.java
│   │                                           └── ZeusCollectManagerImpl.java
│   ├── arius-admin-common/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   └── common/
│   │                                       ├── Triple.java
│   │                                       ├── Tuple.java
│   │                                       ├── bean/
│   │                                       │   ├── common/
│   │                                       │   │   ├── Alias.java
│   │                                       │   │   ├── BaseResult.java
│   │                                       │   │   ├── ESPipelineProcessor.java
│   │                                       │   │   ├── GatewayHeartbeat.java
│   │                                       │   │   ├── IndexNameQueryAvgRate.java
│   │                                       │   │   ├── IndexTemplatePhysicalConfig.java
│   │                                       │   │   ├── IndexTemplateValue.java
│   │                                       │   │   ├── Label.java
│   │                                       │   │   ├── LogicResourceConfig.java
│   │                                       │   │   ├── LogicTemplateTpsMetric.java
│   │                                       │   │   ├── MappingOptimize.java
│   │                                       │   │   ├── MappingOptimizeItem.java
│   │                                       │   │   ├── NodeAllocationInfo.java
│   │                                       │   │   ├── NodeAttrInfo.java
│   │                                       │   │   ├── OperateRecord.java
│   │                                       │   │   ├── PaginationResult.java
│   │                                       │   │   ├── PagingData.java
│   │                                       │   │   ├── PhysicalTemplateTpsMetric.java
│   │                                       │   │   ├── Plugin.java
│   │                                       │   │   ├── Result.java
│   │                                       │   │   ├── ResultWorkOrder.java
│   │                                       │   │   ├── TemplateLabel.java
│   │                                       │   │   ├── TemplateMetaMetric.java
│   │                                       │   │   ├── TemplateMetric.java
│   │                                       │   │   ├── TemplateResourceConfig.java
│   │                                       │   │   └── ecm/
│   │                                       │   │       ├── ESClusterRoleDocker.java
│   │                                       │   │       ├── ESClusterRoleHost.java
│   │                                       │   │       ├── ESResponsePluginInfo.java
│   │                                       │   │       ├── EcmParamBase.java
│   │                                       │   │       ├── EcmTaskBasic.java
│   │                                       │   │       ├── EcmTaskDetail.java
│   │                                       │   │       ├── EcmTaskDetailProgress.java
│   │                                       │   │       ├── EsConfigAction.java
│   │                                       │   │       ├── EsPluginAction.java
│   │                                       │   │       ├── elasticcloud/
│   │                                       │   │       │   ├── ElasticCloudCommonActionParam.java
│   │                                       │   │       │   ├── ElasticCloudCreateActionParam.java
│   │                                       │   │       │   └── ElasticCloudScaleActionParam.java
│   │                                       │   │       ├── host/
│   │                                       │   │       │   ├── HostCreateActionParam.java
│   │                                       │   │       │   ├── HostParamBase.java
│   │                                       │   │       │   └── HostScaleActionParam.java
│   │                                       │   │       └── response/
│   │                                       │   │           ├── EcmCreateApp.java
│   │                                       │   │           ├── EcmOperateAppBase.java
│   │                                       │   │           ├── EcmSubTaskLog.java
│   │                                       │   │           └── EcmTaskStatus.java
│   │                                       │   ├── dto/
│   │                                       │   │   ├── BaseDTO.java
│   │                                       │   │   ├── PageDTO.java
│   │                                       │   │   ├── README.md
│   │                                       │   │   ├── app/
│   │                                       │   │   │   ├── ConsoleESUserDTO.java
│   │                                       │   │   │   ├── ESUserDTO.java
│   │                                       │   │   │   ├── ProjectConfigDTO.java
│   │                                       │   │   │   ├── ProjectExtendSaveDTO.java
│   │                                       │   │   │   ├── ProjectLogicClusterAuthDTO.java
│   │                                       │   │   │   ├── ProjectQueryExtendDTO.java
│   │                                       │   │   │   ├── ProjectTemplateAuthDTO.java
│   │                                       │   │   │   ├── UserExtendDTO.java
│   │                                       │   │   │   └── UserQueryExtendDTO.java
│   │                                       │   │   ├── cluster/
│   │                                       │   │   │   ├── ClusterJoinDTO.java
│   │                                       │   │   │   ├── ClusterLogicConditionDTO.java
│   │                                       │   │   │   ├── ClusterLogicNodeConditionDTO.java
│   │                                       │   │   │   ├── ClusterLogicSpecCondition.java
│   │                                       │   │   │   ├── ClusterPhyConditionDTO.java
│   │                                       │   │   │   ├── ClusterPhyDTO.java
│   │                                       │   │   │   ├── ClusterPhyQuickCommandIndicesQueryDTO.java
│   │                                       │   │   │   ├── ClusterPhyQuickCommandShardsQueryDTO.java
│   │                                       │   │   │   ├── ClusterRegionDTO.java
│   │                                       │   │   │   ├── ClusterRegionWithNodeInfoDTO.java
│   │                                       │   │   │   ├── ClusterSettingDTO.java
│   │                                       │   │   │   ├── ConsoleLogicClusterDTO.java
│   │                                       │   │   │   ├── ESClusterRoleDTO.java
│   │                                       │   │   │   ├── ESClusterRoleHostDTO.java
│   │                                       │   │   │   ├── ESConfigDTO.java
│   │                                       │   │   │   ├── ESLogicClusterDTO.java
│   │                                       │   │   │   ├── ESLogicClusterWithRegionDTO.java
│   │                                       │   │   │   ├── ESPackageDTO.java
│   │                                       │   │   │   ├── ESZeusConfigDTO.java
│   │                                       │   │   │   ├── ESZeusHostInfoDTO.java
│   │                                       │   │   │   └── PluginDTO.java
│   │                                       │   │   ├── config/
│   │                                       │   │   │   └── AriusConfigInfoDTO.java
│   │                                       │   │   ├── dsl/
│   │                                       │   │   │   ├── DslBaseDTO.java
│   │                                       │   │   │   ├── DslQueryLimitDTO.java
│   │                                       │   │   │   └── template/
│   │                                       │   │   │       └── DslTemplateConditionDTO.java
│   │                                       │   │   ├── indices/
│   │                                       │   │   │   ├── IndexCatCellDTO.java
│   │                                       │   │   │   ├── IndexQueryDTO.java
│   │                                       │   │   │   ├── IndicesBlockSettingDTO.java
│   │                                       │   │   │   ├── IndicesClearDTO.java
│   │                                       │   │   │   ├── manage/
│   │                                       │   │   │   │   └── IndexCatCellWithConfigDTO.java
│   │                                       │   │   │   └── srv/
│   │                                       │   │   │       ├── IndexForceMergeDTO.java
│   │                                       │   │   │       └── IndexRolloverDTO.java
│   │                                       │   │   ├── metrics/
│   │                                       │   │   │   ├── ClientNodeDTO.java
│   │                                       │   │   │   ├── DashBoardMetricThresholdDTO.java
│   │                                       │   │   │   ├── GatewayDslDTO.java
│   │                                       │   │   │   ├── GatewayIndexDTO.java
│   │                                       │   │   │   ├── GatewayJoinQueryDTO.java
│   │                                       │   │   │   ├── GatewayMetricsDTO.java
│   │                                       │   │   │   ├── GatewayNodeDTO.java
│   │                                       │   │   │   ├── GatewayOverviewDTO.java
│   │                                       │   │   │   ├── GatewayProjectDTO.java
│   │                                       │   │   │   ├── MetricDictionaryDTO.java
│   │                                       │   │   │   ├── MetricsClusterPhyDTO.java
│   │                                       │   │   │   ├── MetricsClusterPhyIndicesDTO.java
│   │                                       │   │   │   ├── MetricsClusterPhyNodeDTO.java
│   │                                       │   │   │   ├── MetricsClusterPhyNodeTaskDTO.java
│   │                                       │   │   │   ├── MetricsClusterPhyTemplateDTO.java
│   │                                       │   │   │   ├── MetricsDashboardListDTO.java
│   │                                       │   │   │   ├── MetricsDashboardTopNDTO.java
│   │                                       │   │   │   ├── MultiGatewayNodesDTO.java
│   │                                       │   │   │   ├── MultiMetricsClusterPhyIndicesDTO.java
│   │                                       │   │   │   ├── MultiMetricsClusterPhyNodeDTO.java
│   │                                       │   │   │   ├── MultiMetricsClusterPhyNodeTaskDTO.java
│   │                                       │   │   │   ├── MultiMetricsClusterPhyTemplateDTO.java
│   │                                       │   │   │   ├── ThresholdDto.java
│   │                                       │   │   │   └── UserConfigInfoDTO.java
│   │                                       │   │   ├── oprecord/
│   │                                       │   │   │   └── OperateRecordDTO.java
│   │                                       │   │   ├── stats/
│   │                                       │   │   │   └── ClusterLogicStats.java
│   │                                       │   │   ├── task/
│   │                                       │   │   │   ├── OpTaskDTO.java
│   │                                       │   │   │   ├── OpTaskProcessDTO.java
│   │                                       │   │   │   ├── OpTaskQueryDTO.java
│   │                                       │   │   │   └── ecm/
│   │                                       │   │   │       └── EcmTaskDTO.java
│   │                                       │   │   ├── template/
│   │                                       │   │   │   ├── ConsoleTemplateRateLimitDTO.java
│   │                                       │   │   │   ├── ConsoleTemplateSchemaDTO.java
│   │                                       │   │   │   ├── ConsoleTemplateSchemaOptimizeDTO.java
│   │                                       │   │   │   ├── ConsoleTemplateSettingDTO.java
│   │                                       │   │   │   ├── ConsoleTemplateUpdateDTO.java
│   │                                       │   │   │   ├── DCDRMasterSlaveSwitchDTO.java
│   │                                       │   │   │   ├── IndexTemplateConfigDTO.java
│   │                                       │   │   │   ├── IndexTemplateDTO.java
│   │                                       │   │   │   ├── IndexTemplatePhyDTO.java
│   │                                       │   │   │   ├── IndexTemplateWithCreateInfoDTO.java
│   │                                       │   │   │   ├── TemplateClearDTO.java
│   │                                       │   │   │   ├── TemplateConditionDTO.java
│   │                                       │   │   │   ├── TemplatePhysicalCopyDTO.java
│   │                                       │   │   │   ├── TemplatePhysicalDCDRDTO.java
│   │                                       │   │   │   ├── TemplatePhysicalUpgradeDTO.java
│   │                                       │   │   │   ├── TemplateSettingDTO.java
│   │                                       │   │   │   ├── alias/
│   │                                       │   │   │   │   ├── ConsoleAliasDTO.java
│   │                                       │   │   │   │   ├── ConsoleLogicTemplateAliasesDTO.java
│   │                                       │   │   │   │   ├── ConsoleLogicTemplateDeleteAliasesDTO.java
│   │                                       │   │   │   │   ├── ConsoleTemplateAliasSwitchDTO.java
│   │                                       │   │   │   │   └── IndexTemplateAliasDTO.java
│   │                                       │   │   │   └── srv/
│   │                                       │   │   │       ├── BaseTemplateSrvOpenDTO.java
│   │                                       │   │   │       ├── ColdSrvOpenDTO.java
│   │                                       │   │   │       └── TemplateQueryDTO.java
│   │                                       │   │   └── workorder/
│   │                                       │   │       ├── WorkOrderDTO.java
│   │                                       │   │       ├── WorkOrderProcessDTO.java
│   │                                       │   │       └── WorkOrderTaskDetailDTO.java
│   │                                       │   ├── entity/
│   │                                       │   │   ├── BaseEntity.java
│   │                                       │   │   ├── GlobalParam.java
│   │                                       │   │   ├── MulityTypeTemplatesInfo.java
│   │                                       │   │   ├── access/
│   │                                       │   │   │   ├── TemplateAccessDateRange.java
│   │                                       │   │   │   ├── TemplateAccessDetail.java
│   │                                       │   │   │   ├── TemplateAccessHistory.java
│   │                                       │   │   │   └── UserAccessTemplateDetail.java
│   │                                       │   │   ├── cluster/
│   │                                       │   │   │   ├── AriusMetaJobClusterDistribute.java
│   │                                       │   │   │   ├── ClusterLogic.java
│   │                                       │   │   │   ├── ClusterLogicContext.java
│   │                                       │   │   │   ├── ClusterLogicStatis.java
│   │                                       │   │   │   ├── ClusterNodeInfo.java
│   │                                       │   │   │   ├── ClusterPhy.java
│   │                                       │   │   │   ├── ClusterPhyContext.java
│   │                                       │   │   │   ├── ecm/
│   │                                       │   │   │   │   ├── ClusterRoleHost.java
│   │                                       │   │   │   │   ├── ClusterRoleInfo.java
│   │                                       │   │   │   │   ├── ClusterTag.java
│   │                                       │   │   │   │   └── RoleClusterNodeSepc.java
│   │                                       │   │   │   └── setting/
│   │                                       │   │   │       ├── ESClusterGetSettingsAllAction.java
│   │                                       │   │   │       ├── ESClusterGetSettingsAllRequest.java
│   │                                       │   │   │       ├── ESClusterGetSettingsAllRequestBuilder.java
│   │                                       │   │   │       └── ESClusterGetSettingsAllResponse.java
│   │                                       │   │   ├── config/
│   │                                       │   │   │   └── AriusConfigInfo.java
│   │                                       │   │   ├── dsl/
│   │                                       │   │   │   ├── AuditDsl.java
│   │                                       │   │   │   ├── DslBase.java
│   │                                       │   │   │   ├── DslCheckMode.java
│   │                                       │   │   │   ├── DslInfo.java
│   │                                       │   │   │   ├── DslQueryLimit.java
│   │                                       │   │   │   ├── DslSearchFieldNameMetric.java
│   │                                       │   │   │   ├── DslTemplate.java
│   │                                       │   │   │   ├── ErrorDsl.java
│   │                                       │   │   │   ├── ErrorDslDetail.java
│   │                                       │   │   │   ├── ErrorDslEmailLine.java
│   │                                       │   │   │   ├── ErrorDslInfo.java
│   │                                       │   │   │   ├── ExceptionDslRequest.java
│   │                                       │   │   │   ├── ExceptionDslResponse.java
│   │                                       │   │   │   ├── ExtractDslContent.java
│   │                                       │   │   │   ├── QueryQpsMetric.java
│   │                                       │   │   │   ├── ScrollDslTemplateRequest.java
│   │                                       │   │   │   ├── ScrollDslTemplateResponse.java
│   │                                       │   │   │   ├── SearchDslTemplateResponse.java
│   │                                       │   │   │   ├── SearchOverview.java
│   │                                       │   │   │   ├── SlowDsl.java
│   │                                       │   │   │   ├── SlowDslEmailLine.java
│   │                                       │   │   │   ├── SlowDslReasonType.java
│   │                                       │   │   │   └── SlowQueryInfo.java
│   │                                       │   │   ├── esconfig/
│   │                                       │   │   │   └── ESConfig.java
│   │                                       │   │   ├── espackage/
│   │                                       │   │   │   └── ESPackage.java
│   │                                       │   │   ├── gateway/
│   │                                       │   │   │   └── GatewayClusterNode.java
│   │                                       │   │   ├── index/
│   │                                       │   │   │   ├── BaseDegree.java
│   │                                       │   │   │   ├── IndexCatCell.java
│   │                                       │   │   │   ├── IndexRealTimeInfo.java
│   │                                       │   │   │   ├── IndicatorChild.java
│   │                                       │   │   │   ├── OffLine.java
│   │                                       │   │   │   ├── RealTimeCpuUse.java
│   │                                       │   │   │   ├── RealTimeDiskUse.java
│   │                                       │   │   │   ├── RealTimeOldGC.java
│   │                                       │   │   │   ├── RealTimeSearch.java
│   │                                       │   │   │   ├── RealTimeSearchCost.java
│   │                                       │   │   │   ├── RealTimeWrite.java
│   │                                       │   │   │   └── setting/
│   │                                       │   │   │       └── ESIndicesGetAllSettingRequest.java
│   │                                       │   │   ├── metrics/
│   │                                       │   │   │   ├── config/
│   │                                       │   │   │   │   └── UserConfigInfo.java
│   │                                       │   │   │   ├── linechart/
│   │                                       │   │   │   │   ├── DashboardTopMetrics.java
│   │                                       │   │   │   │   ├── DiskInfoMetrics.java
│   │                                       │   │   │   │   ├── GatewayOverviewMetrics.java
│   │                                       │   │   │   │   ├── MetricsContent.java
│   │                                       │   │   │   │   ├── MetricsContentCell.java
│   │                                       │   │   │   │   ├── ReadQPSMetrics.java
│   │                                       │   │   │   │   ├── RecvTransMetrics.java
│   │                                       │   │   │   │   ├── SendTransMetrics.java
│   │                                       │   │   │   │   ├── ShardInfoMetrics.java
│   │                                       │   │   │   │   ├── TaskCountMetrics.java
│   │                                       │   │   │   │   ├── TopMetrics.java
│   │                                       │   │   │   │   ├── VariousLineChartMetrics.java
│   │                                       │   │   │   │   └── WriteTPSMetrics.java
│   │                                       │   │   │   ├── list/
│   │                                       │   │   │   │   ├── MetricList.java
│   │                                       │   │   │   │   └── MetricListContent.java
│   │                                       │   │   │   ├── ordinary/
│   │                                       │   │   │   │   ├── BigIndexMetrics.java
│   │                                       │   │   │   │   ├── ClusterMemInfo.java
│   │                                       │   │   │   │   ├── ESClusterTaskDetail.java
│   │                                       │   │   │   │   ├── IndexResponse.java
│   │                                       │   │   │   │   ├── IndexShardInfo.java
│   │                                       │   │   │   │   ├── MovingShardMetrics.java
│   │                                       │   │   │   │   ├── PendingTask.java
│   │                                       │   │   │   │   ├── ShardMetrics.java
│   │                                       │   │   │   │   └── UnAssignShardMetrics.java
│   │                                       │   │   │   └── percentiles/
│   │                                       │   │   │       └── BasePercentileMetrics.java
│   │                                       │   │   ├── operaterecord/
│   │                                       │   │   │   └── template/
│   │                                       │   │   │       ├── ESConfigOperateRecode.java
│   │                                       │   │   │       ├── TemplateMappingOperateRecord.java
│   │                                       │   │   │       ├── TemplateOperateRecord.java
│   │                                       │   │   │       └── TemplateSettingOperateRecord.java
│   │                                       │   │   ├── project/
│   │                                       │   │   │   ├── ESUser.java
│   │                                       │   │   │   ├── ProjectClusterLogicAuth.java
│   │                                       │   │   │   ├── ProjectClusterPhyAuth.java
│   │                                       │   │   │   ├── ProjectConfig.java
│   │                                       │   │   │   └── ProjectTemplateAuth.java
│   │                                       │   │   ├── quota/
│   │                                       │   │   │   └── ClusterPhyResourceUsage.java
│   │                                       │   │   ├── region/
│   │                                       │   │   │   ├── ClusterRegion.java
│   │                                       │   │   │   ├── ClusterRegionConfig.java
│   │                                       │   │   │   └── ClusterRegionFSInfo.java
│   │                                       │   │   ├── shard/
│   │                                       │   │   │   └── Segment.java
│   │                                       │   │   ├── stats/
│   │                                       │   │   │   ├── CollectBean.java
│   │                                       │   │   │   ├── ECSegmentOnIp.java
│   │                                       │   │   │   ├── ESClusterStats.java
│   │                                       │   │   │   ├── ESClusterStatsCells.java
│   │                                       │   │   │   ├── ESClusterStatsResponse.java
│   │                                       │   │   │   ├── ESClusterTaskStats.java
│   │                                       │   │   │   ├── ESClusterTaskStatsResponse.java
│   │                                       │   │   │   ├── ESClusterThreadStats.java
│   │                                       │   │   │   ├── ESDataTempBean.java
│   │                                       │   │   │   ├── ESIndexDCDRStats.java
│   │                                       │   │   │   ├── ESIndexStats.java
│   │                                       │   │   │   ├── ESIndexToNodeStats.java
│   │                                       │   │   │   ├── ESIndexToNodeTempBean.java
│   │                                       │   │   │   ├── ESIngestStats.java
│   │                                       │   │   │   ├── ESNodeStats.java
│   │                                       │   │   │   ├── ESNodeToIndexStats.java
│   │                                       │   │   │   ├── ESNodeToIndexTempBean.java
│   │                                       │   │   │   ├── MonitorTaskInfo.java
│   │                                       │   │   │   └── dashboard/
│   │                                       │   │   │       ├── ClusterMetrics.java
│   │                                       │   │   │       ├── ClusterPhyHealthMetrics.java
│   │                                       │   │   │       ├── ClusterThreadPoolQueueMetrics.java
│   │                                       │   │   │       ├── DashBoardStats.java
│   │                                       │   │   │       ├── IndexMetrics.java
│   │                                       │   │   │       ├── NodeMetrics.java
│   │                                       │   │   │       └── TemplateMetrics.java
│   │                                       │   │   ├── task/
│   │                                       │   │   │   ├── OpTask.java
│   │                                       │   │   │   └── detail/
│   │                                       │   │   │       ├── AbstractTaskDetail.java
│   │                                       │   │   │       ├── DCDRSingleTemplateMasterSlaveSwitchDetail.java
│   │                                       │   │   │       ├── DCDRTaskDetail.java
│   │                                       │   │   │       └── DCDRTasksDetail.java
│   │                                       │   │   ├── template/
│   │                                       │   │   │   ├── DslMetrics.java
│   │                                       │   │   │   ├── DslTemplate.java
│   │                                       │   │   │   ├── ESPipeline.java
│   │                                       │   │   │   ├── GatewayJoin.java
│   │                                       │   │   │   ├── IndexTemplate.java
│   │                                       │   │   │   ├── IndexTemplateAlias.java
│   │                                       │   │   │   ├── IndexTemplateConfig.java
│   │                                       │   │   │   ├── IndexTemplateLogicAggregate.java
│   │                                       │   │   │   ├── IndexTemplateLogicWithClusterAndMasterTemplate.java
│   │                                       │   │   │   ├── IndexTemplatePhy.java
│   │                                       │   │   │   ├── IndexTemplatePhyAlias.java
│   │                                       │   │   │   ├── IndexTemplatePhyAliases.java
│   │                                       │   │   │   ├── IndexTemplatePhySetting.java
│   │                                       │   │   │   ├── IndexTemplatePhyWithLogic.java
│   │                                       │   │   │   ├── IndexTemplateType.java
│   │                                       │   │   │   ├── IndexTemplateWithCluster.java
│   │                                       │   │   │   ├── IndexTemplateWithLabels.java
│   │                                       │   │   │   ├── IndexTemplateWithMapping.java
│   │                                       │   │   │   ├── IndexTemplateWithPhyTemplates.java
│   │                                       │   │   │   ├── IndexTemplateWithStats.java
│   │                                       │   │   │   ├── ProjectTemplateAccessCount.java
│   │                                       │   │   │   ├── TemplateHealthDegreeRecord.java
│   │                                       │   │   │   ├── TemplateStatsInfo.java
│   │                                       │   │   │   ├── TemplateValueRecord.java
│   │                                       │   │   │   └── srv/
│   │                                       │   │   │       ├── TemplateSrv.java
│   │                                       │   │   │       └── UnavailableTemplateSrv.java
│   │                                       │   │   ├── weekly/
│   │                                       │   │   │   └── AppQuery.java
│   │                                       │   │   └── workorder/
│   │                                       │   │       ├── WorkOrder.java
│   │                                       │   │       ├── detail/
│   │                                       │   │       │   ├── AbstractOrderDetail.java
│   │                                       │   │       │   ├── BaseClusterHostOrderDetail.java
│   │                                       │   │       │   ├── ClusterDeleteOrderDetail.java
│   │                                       │   │       │   ├── ClusterLogicTransferOrderDetail.java
│   │                                       │   │       │   ├── ClusterOpIndecreaseDockerOrderDetail.java
│   │                                       │   │       │   ├── ClusterOpIndecreaseHostOrderDetail.java
│   │                                       │   │       │   ├── ClusterOpNewDockerOrderDetail.java
│   │                                       │   │       │   ├── ClusterOpNewHostOrderDetail.java
│   │                                       │   │       │   ├── ClusterOpOfflineOrderDetail.java
│   │                                       │   │       │   ├── ClusterOpUpdateOrderDetail.java
│   │                                       │   │       │   ├── DslTemplateQueryLimitDetail.java
│   │                                       │   │       │   ├── DslTemplateStatusDetail.java
│   │                                       │   │       │   ├── LogicClusterAuthOrderDetail.java
│   │                                       │   │       │   ├── LogicClusterCreateOrderDetail.java
│   │                                       │   │       │   ├── LogicClusterDeleteOrderDetail.java
│   │                                       │   │       │   ├── LogicClusterIndecreaseOrderDetail.java
│   │                                       │   │       │   ├── LogicClusterPlugOperationOrderDetail.java
│   │                                       │   │       │   ├── LogicClusterPluginOrderDetail.java
│   │                                       │   │       │   ├── OrderInfoDetail.java
│   │                                       │   │       │   ├── PhyClusterPluginOperationOrderDetail.java
│   │                                       │   │       │   ├── QueryDslLimitEditOrderDetail.java
│   │                                       │   │       │   ├── TemplateAuthOrderDetail.java
│   │                                       │   │       │   ├── TemplateCreateOrderDetail.java
│   │                                       │   │       │   ├── TemplateIndecreaseOrderDetail.java
│   │                                       │   │       │   ├── TemplateLogicStatusDetail.java
│   │                                       │   │       │   ├── TemplateQueryDslOrderDetail.java
│   │                                       │   │       │   ├── TemplateTransferOrderDetail.java
│   │                                       │   │       │   └── clusteroprestart/
│   │                                       │   │       │       ├── ClusterOpConfigRestartOrderDetail.java
│   │                                       │   │       │       └── ClusterOpRestartOrderDetail.java
│   │                                       │   │       └── ecm/
│   │                                       │   │           └── EcmTask.java
│   │                                       │   ├── po/
│   │                                       │   │   ├── BaseESPO.java
│   │                                       │   │   ├── BasePO.java
│   │                                       │   │   ├── cluster/
│   │                                       │   │   │   ├── ClusterLogicDiskUsedInfoPO.java
│   │                                       │   │   │   ├── ClusterLogicPO.java
│   │                                       │   │   │   ├── ClusterPhyPO.java
│   │                                       │   │   │   └── ClusterRegionPO.java
│   │                                       │   │   ├── config/
│   │                                       │   │   │   └── AriusConfigInfoPO.java
│   │                                       │   │   ├── dsl/
│   │                                       │   │   │   ├── DslAnalyzeResultQpsPO.java
│   │                                       │   │   │   ├── DslAnalyzeResultTypePO.java
│   │                                       │   │   │   ├── DslFieldUsePO.java
│   │                                       │   │   │   ├── DslMetricsPO.java
│   │                                       │   │   │   └── DslTemplatePO.java
│   │                                       │   │   ├── ecm/
│   │                                       │   │   │   ├── ESClusterRoleHostPO.java
│   │                                       │   │   │   ├── ESClusterRolePO.java
│   │                                       │   │   │   └── ESMachineNormsPO.java
│   │                                       │   │   ├── esconfig/
│   │                                       │   │   │   └── ESConfigPO.java
│   │                                       │   │   ├── espackage/
│   │                                       │   │   │   └── ESPackagePO.java
│   │                                       │   │   ├── esplugin/
│   │                                       │   │   │   └── PluginPO.java
│   │                                       │   │   ├── gateway/
│   │                                       │   │   │   ├── GatewayClusterNodePO.java
│   │                                       │   │   │   ├── GatewayClusterPO.java
│   │                                       │   │   │   └── GatewayJoinPO.java
│   │                                       │   │   ├── index/
│   │                                       │   │   │   ├── IndexCatCellPO.java
│   │                                       │   │   │   ├── IndexSizePO.java
│   │                                       │   │   │   └── healthdegree/
│   │                                       │   │   │       └── HealthDegreesPO.java
│   │                                       │   │   ├── metrics/
│   │                                       │   │   │   ├── MetricsDictionaryPO.java
│   │                                       │   │   │   └── UserConfigPO.java
│   │                                       │   │   ├── monitor/
│   │                                       │   │   │   └── AriusMetaJobClusterDistributePO.java
│   │                                       │   │   ├── operaterecord/
│   │                                       │   │   │   └── OperateRecordInfoPO.java
│   │                                       │   │   ├── order/
│   │                                       │   │   │   └── WorkOrderPO.java
│   │                                       │   │   ├── project/
│   │                                       │   │   │   ├── ESUserPO.java
│   │                                       │   │   │   ├── ProjectClusterLogicAuthPO.java
│   │                                       │   │   │   ├── ProjectConfigPO.java
│   │                                       │   │   │   └── ProjectTemplateAuthPO.java
│   │                                       │   │   ├── query/
│   │                                       │   │   │   ├── IndexNameAccessCountPO.java
│   │                                       │   │   │   ├── IndexNameQueryAvgRatePO.java
│   │                                       │   │   │   ├── ProjectQueryPO.java
│   │                                       │   │   │   ├── ProjectTemplateAccessCountPO.java
│   │                                       │   │   │   └── TemplateAccessCountPO.java
│   │                                       │   │   ├── quota/
│   │                                       │   │   │   └── ESTemplateQuotaUsagePO.java
│   │                                       │   │   ├── shard/
│   │                                       │   │   │   ├── SegmentPO.java
│   │                                       │   │   │   └── ShardCatCellPO.java
│   │                                       │   │   ├── stats/
│   │                                       │   │   │   ├── ClusterLogicStatsPO.java
│   │                                       │   │   │   ├── ESClusterThreadPO.java
│   │                                       │   │   │   └── TemplateTpsMetricPO.java
│   │                                       │   │   ├── task/
│   │                                       │   │   │   ├── OpTaskPO.java
│   │                                       │   │   │   └── ecm/
│   │                                       │   │   │       ├── EcmTaskDetailPO.java
│   │                                       │   │   │       └── EcmTaskPO.java
│   │                                       │   │   └── template/
│   │                                       │   │       ├── IndexTemplatePO.java
│   │                                       │   │       ├── IndexTemplatePhyPO.java
│   │                                       │   │       ├── TemplateAliasPO.java
│   │                                       │   │       ├── TemplateConfigPO.java
│   │                                       │   │       ├── TemplateFieldPO.java
│   │                                       │   │       ├── TemplateHealthDegreePO.java
│   │                                       │   │       ├── TemplateHealthDegreeRecordPO.java
│   │                                       │   │       ├── TemplateHitPO.java
│   │                                       │   │       ├── TemplateLabelPO.java
│   │                                       │   │       ├── TemplateNotifyESPO.java
│   │                                       │   │       ├── TemplateStatsInfoPO.java
│   │                                       │   │       ├── TemplateTypePO.java
│   │                                       │   │       ├── TemplateValuePO.java
│   │                                       │   │       └── TemplateValueRecordPO.java
│   │                                       │   └── vo/
│   │                                       │       ├── BaseVO.java
│   │                                       │       ├── README.md
│   │                                       │       ├── cluster/
│   │                                       │       │   ├── ClusterConnectionStatusWithTemplateVO.java
│   │                                       │       │   ├── ClusterLogicTemplateIndexCountVO.java
│   │                                       │       │   ├── ClusterLogicTemplateIndexDetailDTO.java
│   │                                       │       │   ├── ClusterLogicVO.java
│   │                                       │       │   ├── ClusterLogicVOWithProjects.java
│   │                                       │       │   ├── ClusterNodeInfoVO.java
│   │                                       │       │   ├── ClusterPhyVO.java
│   │                                       │       │   ├── ClusterPhyWithLogicClusterVO.java
│   │                                       │       │   ├── ClusterRegionVO.java
│   │                                       │       │   ├── ClusterRegionWithNodeInfoVO.java
│   │                                       │       │   ├── ConsoleClusterStatusVO.java
│   │                                       │       │   ├── ESClusterRoleHostVO.java
│   │                                       │       │   ├── ESClusterRoleHostWithRegionInfoVO.java
│   │                                       │       │   ├── ESClusterRoleVO.java
│   │                                       │       │   ├── ESClusterTemplateSrvVO.java
│   │                                       │       │   ├── PluginVO.java
│   │                                       │       │   ├── ThirdPartClusterVO.java
│   │                                       │       │   └── quickcommand/
│   │                                       │       │       ├── IndicesDistributionVO.java
│   │                                       │       │       ├── NodeStateVO.java
│   │                                       │       │       ├── PendingTaskAnalysisVO.java
│   │                                       │       │       ├── ShardAssignmenNodeVO.java
│   │                                       │       │       ├── ShardAssignmentDescriptionVO.java
│   │                                       │       │       ├── ShardDistributionVO.java
│   │                                       │       │       └── TaskMissionAnalysisVO.java
│   │                                       │       ├── config/
│   │                                       │       │   ├── AriusConfigInfoVO.java
│   │                                       │       │   └── ThirdpartConfigVO.java
│   │                                       │       ├── ecm/
│   │                                       │       │   ├── ESClusterNodeSepcVO.java
│   │                                       │       │   ├── ESConfigVO.java
│   │                                       │       │   ├── EcmTaskBasicVO.java
│   │                                       │       │   ├── EcmTaskDetailVO.java
│   │                                       │       │   └── EcmTaskVO.java
│   │                                       │       ├── espackage/
│   │                                       │       │   └── ESPackageVO.java
│   │                                       │       ├── gateway/
│   │                                       │       │   └── GatewayClusterNodeVO.java
│   │                                       │       ├── indices/
│   │                                       │       │   ├── IndexCatCellVO.java
│   │                                       │       │   ├── IndexCatCellWithTemplateVO.java
│   │                                       │       │   ├── IndexMappingVO.java
│   │                                       │       │   ├── IndexSettingVO.java
│   │                                       │       │   └── IndexShardInfoVO.java
│   │                                       │       ├── metrics/
│   │                                       │       │   ├── MetricsVO.java
│   │                                       │       │   ├── dictionary/
│   │                                       │       │   │   └── MetricsDictionaryVO.java
│   │                                       │       │   ├── list/
│   │                                       │       │   │   ├── MetricListContentVO.java
│   │                                       │       │   │   └── MetricListVO.java
│   │                                       │       │   ├── other/
│   │                                       │       │   │   ├── cluster/
│   │                                       │       │   │   │   ├── BigIndexMetricsVO.java
│   │                                       │       │   │   │   ├── BigShardMetricsVO.java
│   │                                       │       │   │   │   ├── CpuLoadFor15MinMetricsVO.java
│   │                                       │       │   │   │   ├── CpuLoadFor1MinMetricsVO.java
│   │                                       │       │   │   │   ├── CpuLoadFor5MinMetricsVO.java
│   │                                       │       │   │   │   ├── CpuUsageMetricsVO.java
│   │                                       │       │   │   │   ├── DiskInfoMetricsVO.java
│   │                                       │       │   │   │   ├── DiskUsageMetricsVO.java
│   │                                       │       │   │   │   ├── ESAggMetricsVO.java
│   │                                       │       │   │   │   ├── ESClusterOverviewMetricsVO.java
│   │                                       │       │   │   │   ├── ESClusterPhyBasicMetricsVO.java
│   │                                       │       │   │   │   ├── ESClusterTaskDetailVO.java
│   │                                       │       │   │   │   ├── IndexBelongNodeVO.java
│   │                                       │       │   │   │   ├── IndexingLatencyMetricsVO.java
│   │                                       │       │   │   │   ├── MovingShardMetricsVO.java
│   │                                       │       │   │   │   ├── NodeInfoForDiskUsageGte75PercentVO.java
│   │                                       │       │   │   │   ├── PendingTaskVO.java
│   │                                       │       │   │   │   ├── ReadQPSMetricsVO.java
│   │                                       │       │   │   │   ├── RecvTransMetricsVO.java
│   │                                       │       │   │   │   ├── SearchLatencyMetricsVO.java
│   │                                       │       │   │   │   ├── SendTransMetricsVO.java
│   │                                       │       │   │   │   ├── ShardInfoMetricsVO.java
│   │                                       │       │   │   │   ├── TaskCostMetricVO.java
│   │                                       │       │   │   │   ├── TaskCountMetricVO.java
│   │                                       │       │   │   │   ├── UnAssignShardMetricsVO.java
│   │                                       │       │   │   │   └── WriteTPSMetricsVO.java
│   │                                       │       │   │   ├── dashboard/
│   │                                       │       │   │   │   └── ClusterPhyHealthMetricsVO.java
│   │                                       │       │   │   └── gateway/
│   │                                       │       │   │       └── GatewayOverviewMetricsVO.java
│   │                                       │       │   ├── percentiles/
│   │                                       │       │   │   └── ESPercentileMetricsVO.java
│   │                                       │       │   └── top/
│   │                                       │       │       ├── MetricsContentCellVO.java
│   │                                       │       │       ├── MetricsContentVO.java
│   │                                       │       │       └── VariousLineChartMetricsVO.java
│   │                                       │       ├── operaterecord/
│   │                                       │       │   └── OperateRecordVO.java
│   │                                       │       ├── order/
│   │                                       │       │   ├── AriusWorkOrderInfoSubmittedVO.java
│   │                                       │       │   ├── OrderTypeVO.java
│   │                                       │       │   ├── WorkOrderVO.java
│   │                                       │       │   └── detail/
│   │                                       │       │       └── OrderDetailBaseVO.java
│   │                                       │       ├── project/
│   │                                       │       │   ├── ConsoleESUserVO.java
│   │                                       │       │   ├── ConsoleESUserWithVerifyCodeVO.java
│   │                                       │       │   ├── ESUserVO.java
│   │                                       │       │   ├── GatewayESUserVO.java
│   │                                       │       │   ├── ProjectBriefExtendVO.java
│   │                                       │       │   ├── ProjectConfigVO.java
│   │                                       │       │   ├── ProjectExtendVO.java
│   │                                       │       │   ├── ProjectLogicClusterAuthVO.java
│   │                                       │       │   ├── ProjectTemplateAuthVO.java
│   │                                       │       │   ├── RoleExtendVO.java
│   │                                       │       │   ├── SinkSdkESUserVO.java
│   │                                       │       │   ├── UserExtendVO.java
│   │                                       │       │   └── UserWithPwVO.java
│   │                                       │       ├── task/
│   │                                       │       │   ├── OpTaskVO.java
│   │                                       │       │   ├── TaskTypeVO.java
│   │                                       │       │   └── WorkTaskVO.java
│   │                                       │       └── template/
│   │                                       │           ├── AmsTemplatePhysicalConfVO.java
│   │                                       │           ├── BaseTemplateVO.java
│   │                                       │           ├── ConsoleTemplateClearVO.java
│   │                                       │           ├── ConsoleTemplateDeleteVO.java
│   │                                       │           ├── ConsoleTemplateDetailVO.java
│   │                                       │           ├── ConsoleTemplateFieldConvertVO.java
│   │                                       │           ├── ConsoleTemplatePhyVO.java
│   │                                       │           ├── ConsoleTemplateRateLimitVO.java
│   │                                       │           ├── ConsoleTemplateVO.java
│   │                                       │           ├── DCDRSingleTemplateMasterSlaveSwitchDetailVO.java
│   │                                       │           ├── DCDRTasksDetailVO.java
│   │                                       │           ├── DslMetricsVO.java
│   │                                       │           ├── DslTemplateVO.java
│   │                                       │           ├── GatewayJoinVO.java
│   │                                       │           ├── GatewayTemplateDeployInfoVO.java
│   │                                       │           ├── GatewayTemplatePhysicalDeployVO.java
│   │                                       │           ├── GatewayTemplatePhysicalVO.java
│   │                                       │           ├── GatewayTemplateVO.java
│   │                                       │           ├── IndexTemplatePhysicalVO.java
│   │                                       │           ├── ProjectIdTemplateAccessCountVO.java
│   │                                       │           ├── SearchDslTemplateResponseVO.java
│   │                                       │           ├── SinkSdkIDCTemplateDeployInfoVO.java
│   │                                       │           ├── SinkSdkTemplateDeployInfoVO.java
│   │                                       │           ├── SinkSdkTemplatePhysicalDeployVO.java
│   │                                       │           ├── SinkSdkTemplateVO.java
│   │                                       │           ├── TemplateCyclicalRollInfoVO.java
│   │                                       │           ├── TemplateDCDRInfoVO.java
│   │                                       │           ├── TemplateHealthDegreeRecordVO.java
│   │                                       │           ├── TemplateLabelVO.java
│   │                                       │           ├── TemplateMappingVO.java
│   │                                       │           ├── TemplateSettingVO.java
│   │                                       │           ├── TemplateStatsInfoVO.java
│   │                                       │           ├── TemplateValueRecordVO.java
│   │                                       │           ├── ThirdPartTemplateLogicWithMasterTemplateResourceVO.java
│   │                                       │           ├── ThirdpartTemplateLogicVO.java
│   │                                       │           ├── ThirdpartTemplatePhysicalVO.java
│   │                                       │           ├── ThirdpartTemplateVO.java
│   │                                       │           └── srv/
│   │                                       │               ├── TemplateSrvVO.java
│   │                                       │               ├── TemplateWithSrvVO.java
│   │                                       │               └── UnavailableTemplateSrvVO.java
│   │                                       ├── component/
│   │                                       │   ├── BaseHandle.java
│   │                                       │   └── RestTool.java
│   │                                       ├── constant/
│   │                                       │   ├── AdminConstant.java
│   │                                       │   ├── AdminESOpRetryConstants.java
│   │                                       │   ├── ApiVersion.java
│   │                                       │   ├── AriusConfigConstant.java
│   │                                       │   ├── AriusStatsEnum.java
│   │                                       │   ├── AuthConstant.java
│   │                                       │   ├── ClusterConstant.java
│   │                                       │   ├── ClusterPhyMetricsConstant.java
│   │                                       │   ├── DataCenterEnum.java
│   │                                       │   ├── ESClusterMethodNameEnum.java
│   │                                       │   ├── ESClusterVersionEnum.java
│   │                                       │   ├── ESConstant.java
│   │                                       │   ├── ESSettingConstant.java
│   │                                       │   ├── FileCompressionType.java
│   │                                       │   ├── GatewaySqlConstant.java
│   │                                       │   ├── IndicatorsType.java
│   │                                       │   ├── LevelEnum.java
│   │                                       │   ├── OperateRecordSortEnum.java
│   │                                       │   ├── PageSearchHandleTypeEnum.java
│   │                                       │   ├── PercentilesEnum.java
│   │                                       │   ├── PluginTypeEnum.java
│   │                                       │   ├── ProjectResourceEnum.java
│   │                                       │   ├── QueryDiagnosisTabNameEnum.java
│   │                                       │   ├── ResultLevel.java
│   │                                       │   ├── RunModeEnum.java
│   │                                       │   ├── SortConstant.java
│   │                                       │   ├── SortTermEnum.java
│   │                                       │   ├── TemplateConstant.java
│   │                                       │   ├── UpdateIndexTemplateLabelParam.java
│   │                                       │   ├── arius/
│   │                                       │   │   └── AriusUser.java
│   │                                       │   ├── cluster/
│   │                                       │   │   ├── ClusterConnectionStatus.java
│   │                                       │   │   ├── ClusterConnectionStatusWithTemplateEnum.java
│   │                                       │   │   ├── ClusterDynamicConfigsEnum.java
│   │                                       │   │   ├── ClusterDynamicConfigsTypeEnum.java
│   │                                       │   │   ├── ClusterHealthEnum.java
│   │                                       │   │   ├── ClusterQuickCommandMethodsEnum.java
│   │                                       │   │   ├── ClusterRegionStatusEnum.java
│   │                                       │   │   ├── ClusterResourceTypeEnum.java
│   │                                       │   │   └── PluginConstant.java
│   │                                       │   ├── config/
│   │                                       │   │   ├── AriusConfigDimensionEnum.java
│   │                                       │   │   ├── AriusConfigItemEnum.java
│   │                                       │   │   └── AriusConfigStatusEnum.java
│   │                                       │   ├── dcdr/
│   │                                       │   │   ├── DCDRStatusEnum.java
│   │                                       │   │   └── DCDRSwithTypeEnum.java
│   │                                       │   ├── ecm/
│   │                                       │   │   ├── EcmHostStatusEnum.java
│   │                                       │   │   └── EcmTaskStatusEnum.java
│   │                                       │   ├── esconfig/
│   │                                       │   │   └── EsConfigActionEnum.java
│   │                                       │   ├── espackage/
│   │                                       │   │   └── AriusESPackageEnum.java
│   │                                       │   ├── index/
│   │                                       │   │   ├── IndexBlockEnum.java
│   │                                       │   │   └── IndexStatusEnum.java
│   │                                       │   ├── metrics/
│   │                                       │   │   ├── AggMetricsTypeEnum.java
│   │                                       │   │   ├── ClusterPhyClusterMetricsEnum.java
│   │                                       │   │   ├── ClusterPhyIndicesMetricsEnum.java
│   │                                       │   │   ├── ClusterPhyNodeMetricsEnum.java
│   │                                       │   │   ├── ClusterPhyTypeMetricsEnum.java
│   │                                       │   │   ├── ConfigTypeEnum.java
│   │                                       │   │   ├── DashBoardMetricListTypeEnum.java
│   │                                       │   │   ├── DashBoardMetricListTypeWithExtendValueFieldEnum.java
│   │                                       │   │   ├── DashBoardMetricOtherTypeEnum.java
│   │                                       │   │   ├── DashBoardMetricThresholdValueNameEnum.java
│   │                                       │   │   ├── DashBoardMetricTopTypeEnum.java
│   │                                       │   │   ├── ESHttpRequestContent.java
│   │                                       │   │   ├── GatewayMetricsTypeEnum.java
│   │                                       │   │   ├── MetricsConstant.java
│   │                                       │   │   ├── OneLevelTypeEnum.java
│   │                                       │   │   └── UserConfigTypeEnum.java
│   │                                       │   ├── operaterecord/
│   │                                       │   │   ├── ModuleEnum.java
│   │                                       │   │   ├── OperateTypeEnum.java
│   │                                       │   │   ├── OperationEnum.java
│   │                                       │   │   ├── TemplateOperateRecordEnum.java
│   │                                       │   │   └── TriggerWayEnum.java
│   │                                       │   ├── project/
│   │                                       │   │   ├── ProjectClusterLogicAuthEnum.java
│   │                                       │   │   ├── ProjectSearchTypeEnum.java
│   │                                       │   │   └── ProjectTemplateAuthEnum.java
│   │                                       │   ├── resource/
│   │                                       │   │   ├── ESClusterCreateSourceEnum.java
│   │                                       │   │   ├── ESClusterImportRuleEnum.java
│   │                                       │   │   ├── ESClusterNodeRoleEnum.java
│   │                                       │   │   ├── ESClusterNodeStatusEnum.java
│   │                                       │   │   ├── ESClusterTypeEnum.java
│   │                                       │   │   └── ResourceLogicLevelEnum.java
│   │                                       │   ├── result/
│   │                                       │   │   └── ResultType.java
│   │                                       │   ├── routing/
│   │                                       │   │   └── ESRoutingConstant.java
│   │                                       │   ├── task/
│   │                                       │   │   ├── OpTaskDCDRProgressEnum.java
│   │                                       │   │   ├── OpTaskHandleEnum.java
│   │                                       │   │   ├── OpTaskStatusEnum.java
│   │                                       │   │   └── OpTaskTypeEnum.java
│   │                                       │   ├── template/
│   │                                       │   │   ├── DataTypeEnum.java
│   │                                       │   │   ├── SupportSrv.java
│   │                                       │   │   ├── TemplateDCDRStepEnum.java
│   │                                       │   │   ├── TemplateDeployRoleEnum.java
│   │                                       │   │   ├── TemplateDeployStatusEnum.java
│   │                                       │   │   ├── TemplateHealthEnum.java
│   │                                       │   │   ├── TemplateLabelAttributeEnum.java
│   │                                       │   │   ├── TemplateLabelEnum.java
│   │                                       │   │   ├── TemplateLabelLevelEnum.java
│   │                                       │   │   ├── TemplateLabelPeriodEnum.java
│   │                                       │   │   ├── TemplateLabelSourceEnum.java
│   │                                       │   │   ├── TemplatePhysicalStatusEnum.java
│   │                                       │   │   └── TemplateServiceEnum.java
│   │                                       │   └── workorder/
│   │                                       │       ├── BpmAuditTypeEnum.java
│   │                                       │       ├── OperationTypeEnum.java
│   │                                       │       ├── OrderStatusEnum.java
│   │                                       │       ├── OrderTypeEnum.java
│   │                                       │       └── WorkOrderTypeEnum.java
│   │                                       ├── event/
│   │                                       │   ├── auth/
│   │                                       │   │   ├── ProjectAuthEvent.java
│   │                                       │   │   ├── ProjectLogicClusterAuthAddEvent.java
│   │                                       │   │   ├── ProjectLogicClusterAuthDeleteEvent.java
│   │                                       │   │   ├── ProjectLogicClusterAuthEditEvent.java
│   │                                       │   │   ├── ProjectTemplateAuthAddEvent.java
│   │                                       │   │   ├── ProjectTemplateAuthDeleteEvent.java
│   │                                       │   │   └── ProjectTemplateAuthEditEvent.java
│   │                                       │   ├── ecm/
│   │                                       │   │   └── EcmTaskEditEvent.java
│   │                                       │   ├── index/
│   │                                       │   │   ├── IndexDeleteEvent.java
│   │                                       │   │   ├── ReBuildTomorrowIndexEvent.java
│   │                                       │   │   └── RefreshCatIndexInfoEvent.java
│   │                                       │   ├── metrics/
│   │                                       │   │   ├── MetaDataMetricsEvent.java
│   │                                       │   │   ├── MetricsMonitorClusterEvent.java
│   │                                       │   │   ├── MetricsMonitorCollectTimeEvent.java
│   │                                       │   │   ├── MetricsMonitorIndexEvent.java
│   │                                       │   │   ├── MetricsMonitorLogicClusterEvent.java
│   │                                       │   │   └── MetricsMonitorNodeEvent.java
│   │                                       │   ├── region/
│   │                                       │   │   ├── RegionBindEvent.java
│   │                                       │   │   ├── RegionCreateEvent.java
│   │                                       │   │   ├── RegionDeleteEvent.java
│   │                                       │   │   ├── RegionEditEvent.java
│   │                                       │   │   └── RegionUnbindEvent.java
│   │                                       │   ├── resource/
│   │                                       │   │   ├── ClusterEvent.java
│   │                                       │   │   ├── ClusterLogicEvent.java
│   │                                       │   │   ├── ClusterPhyEvent.java
│   │                                       │   │   └── ClusterPhyHealthEvent.java
│   │                                       │   └── template/
│   │                                       │       ├── DCDRLinkAbnormalIndicesRebuildEvent.java
│   │                                       │       ├── LogicTemplateCreatePipelineEvent.java
│   │                                       │       ├── LogicTemplateEvent.java
│   │                                       │       ├── LogicTemplateModifyEvent.java
│   │                                       │       ├── PhysicalTemplateAddEvent.java
│   │                                       │       ├── PhysicalTemplateDeleteEvent.java
│   │                                       │       ├── PhysicalTemplateEvent.java
│   │                                       │       ├── PhysicalTemplateModifyEvent.java
│   │                                       │       ├── TemplateCreateEvent.java
│   │                                       │       ├── TemplateEvent.java
│   │                                       │       └── physical/
│   │                                       │           └── metadata/
│   │                                       │               ├── PhysicalMetaDataModifyEvent.java
│   │                                       │               ├── PhysicalTemplateAliasModifyEvent.java
│   │                                       │               ├── PhysicalTemplatePropertiesTypesModifyEvent.java
│   │                                       │               └── PhysicalTemplateSettingsModifyEvent.java
│   │                                       ├── exception/
│   │                                       │   ├── AdminOperateException.java
│   │                                       │   ├── AdminTaskException.java
│   │                                       │   ├── AmsRemoteException.java
│   │                                       │   ├── AriusGatewayException.java
│   │                                       │   ├── BaseException.java
│   │                                       │   ├── ESOperateException.java
│   │                                       │   ├── EcmRemoteException.java
│   │                                       │   ├── EventException.java
│   │                                       │   ├── ExtendServiceNotSupportException.java
│   │                                       │   ├── NotFindSubclassException.java
│   │                                       │   ├── NullESClientException.java
│   │                                       │   ├── OperateForbiddenException.java
│   │                                       │   ├── ThirdPartRemoteException.java
│   │                                       │   ├── WorkOrderNotSupportException.java
│   │                                       │   └── WorkOrderOperateException.java
│   │                                       ├── function/
│   │                                       │   ├── BiFunctionWithESOperateException.java
│   │                                       │   └── FunctionWithESOperateException.java
│   │                                       ├── mapping/
│   │                                       │   ├── AnalyzerEnum.java
│   │                                       │   ├── AriusIndexTemplateSetting.java
│   │                                       │   ├── AriusTypeProperty.java
│   │                                       │   ├── Field.java
│   │                                       │   ├── IndexEnum.java
│   │                                       │   ├── SortEnum.java
│   │                                       │   ├── SpecialField.java
│   │                                       │   └── TypeEnum.java
│   │                                       ├── threadpool/
│   │                                       │   ├── AriusOpThreadPool.java
│   │                                       │   ├── AriusScheduleThreadPool.java
│   │                                       │   └── AriusTaskThreadPool.java
│   │                                       ├── tuple/
│   │                                       │   ├── TupleOne.java
│   │                                       │   ├── TupleThree.java
│   │                                       │   ├── TupleTwo.java
│   │                                       │   └── Tuples.java
│   │                                       └── util/
│   │                                           ├── AriusDateUtils.java
│   │                                           ├── AriusIndexMappingConfigUtils.java
│   │                                           ├── AriusJSON.java
│   │                                           ├── AriusObjUtils.java
│   │                                           ├── AriusOptional.java
│   │                                           ├── AriusUnitUtil.java
│   │                                           ├── AriusUserUtil.java
│   │                                           ├── BaseHttpUtil.java
│   │                                           ├── BatchConvert.java
│   │                                           ├── BatchProcessor.java
│   │                                           ├── ClusterDynamicConfigTypeCheckFunUtil.java
│   │                                           ├── ClusterUtils.java
│   │                                           ├── CommonUtils.java
│   │                                           ├── ConvertUtil.java
│   │                                           ├── DSLSearchUtils.java
│   │                                           ├── DateTimeUtil.java
│   │                                           ├── DiffUtil.java
│   │                                           ├── DslTermUtil.java
│   │                                           ├── ESVersionUtil.java
│   │                                           ├── EnvUtil.java
│   │                                           ├── EventRetryExecutor.java
│   │                                           ├── FutureUtil.java
│   │                                           ├── Getter.java
│   │                                           ├── HttpHostUtil.java
│   │                                           ├── IndexNameFactory.java
│   │                                           ├── IndexNameUtils.java
│   │                                           ├── IndexSettingsUtil.java
│   │                                           ├── ListUtils.java
│   │                                           ├── MapUtils.java
│   │                                           ├── MappingConfigUtil.java
│   │                                           ├── MetricsUtils.java
│   │                                           ├── ParsingExceptionUtils.java
│   │                                           ├── PercentUtils.java
│   │                                           ├── ProjectUtils.java
│   │                                           ├── RegexUtils.java
│   │                                           ├── RetryExecutor.java
│   │                                           ├── SizeUtil.java
│   │                                           ├── TemplateUtils.java
│   │                                           ├── TimeValue.java
│   │                                           ├── TimeValueUtil.java
│   │                                           ├── VerifyCodeFactory.java
│   │                                           └── YamlUtil.java
│   ├── arius-admin-core/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   └── core/
│   │                                       ├── component/
│   │                                       │   ├── BaseExtendFactory.java
│   │                                       │   ├── CacheSwitch.java
│   │                                       │   ├── HandleFactory.java
│   │                                       │   ├── RoleTool.java
│   │                                       │   └── SpringTool.java
│   │                                       ├── config/
│   │                                       │   ├── ProjectEventMultiConfig.java
│   │                                       │   └── RestTemplateConfig.java
│   │                                       └── service/
│   │                                           ├── cluster/
│   │                                           │   ├── ecm/
│   │                                           │   │   ├── ESClusterConfigService.java
│   │                                           │   │   ├── ESMachineNormsService.java
│   │                                           │   │   ├── ESPackageService.java
│   │                                           │   │   ├── ESPluginService.java
│   │                                           │   │   ├── EcmHandleService.java
│   │                                           │   │   └── impl/
│   │                                           │   │       ├── ESClusterConfigServiceImpl.java
│   │                                           │   │       ├── ESMachineNormsServiceImpl.java
│   │                                           │   │       ├── ESPackageServiceImpl.java
│   │                                           │   │       ├── ESPluginServiceImpl.java
│   │                                           │   │       ├── EcmHandleServiceImpl.java
│   │                                           │   │       └── handler/
│   │                                           │   │           ├── AbstractEcmBaseHandle.java
│   │                                           │   │           ├── EcmDockerHandler.java
│   │                                           │   │           └── EcmHostHandler.java
│   │                                           │   ├── logic/
│   │                                           │   │   ├── ClusterLogicService.java
│   │                                           │   │   └── impl/
│   │                                           │   │       └── ClusterLogicServiceImpl.java
│   │                                           │   ├── monitortask/
│   │                                           │   │   ├── AriusMetaJobClusterDistributeService.java
│   │                                           │   │   └── impl/
│   │                                           │   │       └── AriusMetaJobClusterDistributeServiceImpl.java
│   │                                           │   ├── physic/
│   │                                           │   │   ├── ClusterPhyService.java
│   │                                           │   │   ├── ClusterRoleHostService.java
│   │                                           │   │   ├── ClusterRoleService.java
│   │                                           │   │   └── impl/
│   │                                           │   │       ├── ClusterPhyServiceImpl.java
│   │                                           │   │       ├── ClusterRoleHostServiceImpl.java
│   │                                           │   │       └── ClusterRoleServiceImpl.java
│   │                                           │   └── region/
│   │                                           │       ├── ClusterRegionService.java
│   │                                           │       └── impl/
│   │                                           │           └── ClusterRegionServiceImpl.java
│   │                                           ├── common/
│   │                                           │   ├── AriusConfigInfoService.java
│   │                                           │   ├── OperateRecordService.java
│   │                                           │   └── impl/
│   │                                           │       ├── AriusConfigInfoServiceImpl.java
│   │                                           │       └── OperateRecordServiceImpl.java
│   │                                           ├── es/
│   │                                           │   ├── ESClusterNodeService.java
│   │                                           │   ├── ESClusterService.java
│   │                                           │   ├── ESIndexCatService.java
│   │                                           │   ├── ESIndexService.java
│   │                                           │   ├── ESShardCatService.java
│   │                                           │   ├── ESShardService.java
│   │                                           │   ├── ESTemplateService.java
│   │                                           │   └── impl/
│   │                                           │       ├── ESClusterNodeServiceImpl.java
│   │                                           │       ├── ESClusterServiceImpl.java
│   │                                           │       ├── ESIndexCatServiceImpl.java
│   │                                           │       ├── ESIndexServiceImpl.java
│   │                                           │       ├── ESShardCatServiceImpl.java
│   │                                           │       ├── ESShardServiceImpl.java
│   │                                           │       └── ESTemplateServiceImpl.java
│   │                                           ├── extend/
│   │                                           │   └── storage/
│   │                                           │       ├── FileStorageService.java
│   │                                           │       └── impl/
│   │                                           │           └── FileStorageServiceImpl.java
│   │                                           ├── gateway/
│   │                                           │   ├── GatewayService.java
│   │                                           │   └── impl/
│   │                                           │       └── GatewayServiceImpl.java
│   │                                           ├── metrics/
│   │                                           │   ├── MetricsDictionaryService.java
│   │                                           │   ├── UserConfigService.java
│   │                                           │   └── impl/
│   │                                           │       ├── MetricsDictionaryServiceImpl.java
│   │                                           │       └── UserConfigServiceImpl.java
│   │                                           ├── project/
│   │                                           │   ├── ESUserService.java
│   │                                           │   ├── ProjectClusterLogicAuthService.java
│   │                                           │   ├── ProjectConfigService.java
│   │                                           │   ├── ProjectLogicTemplateAuthService.java
│   │                                           │   └── impl/
│   │                                           │       ├── ESUserServiceImpl.java
│   │                                           │       ├── ProjectClusterLogicAuthServiceImpl.java
│   │                                           │       ├── ProjectConfigServiceImpl.java
│   │                                           │       └── ProjectLogicTemplateAuthServiceImpl.java
│   │                                           ├── task/
│   │                                           │   ├── OpTaskService.java
│   │                                           │   └── OpTaskServiceImpl.java
│   │                                           ├── template/
│   │                                           │   ├── dcdr/
│   │                                           │   │   ├── ESDCDRService.java
│   │                                           │   │   └── ESDCDRServiceImpl.java
│   │                                           │   ├── logic/
│   │                                           │   │   ├── IndexTemplateService.java
│   │                                           │   │   ├── TemplateLogicAliasService.java
│   │                                           │   │   └── impl/
│   │                                           │   │       ├── IndexTemplateServiceImpl.java
│   │                                           │   │       └── TemplateLogicAliasServiceImpl.java
│   │                                           │   ├── physic/
│   │                                           │   │   ├── IndexTemplatePhyService.java
│   │                                           │   │   └── impl/
│   │                                           │   │       └── IndexTemplatePhyServiceImpl.java
│   │                                           │   └── pipeline/
│   │                                           │       ├── ESPipelineService.java
│   │                                           │       └── ESPipelineServiceImpl.java
│   │                                           └── workorder/
│   │                                               ├── WorkOrderService.java
│   │                                               └── WorkOrderServiceImpl.java
│   ├── arius-admin-extend/
│   │   ├── arius-admin-rest-v2/
│   │   │   └── pom.xml
│   │   └── fast-index/
│   │       ├── pom.xml
│   │       └── src/
│   │           └── main/
│   │               └── java/
│   │                   └── com/
│   │                       └── didichuxing/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   └── extend/
│   │                                       └── fastindex/
│   │                                           ├── bean/
│   │                                           │   ├── FastIndexLoadDataParam.java
│   │                                           │   ├── entity/
│   │                                           │   │   ├── IndexFastIndexInfo.java
│   │                                           │   │   ├── IndexShardsVersion.java
│   │                                           │   │   ├── NodeVersion.java
│   │                                           │   │   ├── ShardDisk.java
│   │                                           │   │   ├── ShardNode.java
│   │                                           │   │   ├── ShardVersion.java
│   │                                           │   │   └── SpatialInfo.java
│   │                                           │   └── po/
│   │                                           │       ├── FastIndexLoadDataPO.java
│   │                                           │       ├── FastIndexMappingPO.java
│   │                                           │       ├── FastIndexOpIndexPO.java
│   │                                           │       ├── FastIndexTaskMetricPO.java
│   │                                           │       └── FastIndexTemplateConfigPO.java
│   │                                           ├── controller/
│   │                                           │   └── FastIndexController.java
│   │                                           ├── dao/
│   │                                           │   ├── FastIndexLoadDataESDAO.java
│   │                                           │   ├── FastIndexMappingESDAO.java
│   │                                           │   ├── FastIndexOpIndexESDAO.java
│   │                                           │   ├── FastIndexTaskMetricESDAO.java
│   │                                           │   └── FastIndexTemplateConfigESDAO.java
│   │                                           ├── job/
│   │                                           │   ├── FastIndexCleanMetaDataTask.java
│   │                                           │   ├── FastIndexLoadDataTask.java
│   │                                           │   └── FastIndexOpIndexTask.java
│   │                                           ├── limit/
│   │                                           │   ├── CocurrentLimiter.java
│   │                                           │   └── ShardLimiter.java
│   │                                           └── service/
│   │                                               └── FastIndexService.java
│   ├── arius-admin-integration-test/
│   │   ├── README.md
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── didichuxing/
│   │       │   │           └── datachannel/
│   │       │   │               └── arius/
│   │       │   │                   └── admin/
│   │       │   │                       ├── method/
│   │       │   │                       │   └── v3/
│   │       │   │                       │       └── op/
│   │       │   │                       │           └── metrics/
│   │       │   │                       │               └── GatewayMetricsControllerMethod.java
│   │       │   │                       ├── request/
│   │       │   │                       │   └── outer/
│   │       │   │                       │       └── ThirdpartGatewayControllerMethod.java
│   │       │   │                       ├── resource/
│   │       │   │                       │   └── CustomDataSource.java
│   │       │   │                       └── util/
│   │       │   │                           ├── AriusClient.java
│   │       │   │                           ├── CompareUtil.java
│   │       │   │                           ├── RandomConfig.java
│   │       │   │                           ├── RandomFilledBean.java
│   │       │   │                           └── RandomGenerator.java
│   │       │   └── resources/
│   │       │       └── template.thirdpart.gateway/
│   │       │           ├── gatewayappvo.json
│   │       │           ├── gatewaytemplatedeployinfovo.json
│   │       │           ├── gatewaytemplatephysicalvo.json
│   │       │           └── scrollDslTemplateResponse.json
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   ├── base/
│   │                                   │   ├── BaseContextTest.java
│   │                                   │   ├── BaseLogicClusterInfoTest.java
│   │                                   │   ├── BasePhyClusterInfoTest.java
│   │                                   │   ├── BasePhyClusterRegionInfoTest.java
│   │                                   │   └── BaseTemplateInfoTest.java
│   │                                   ├── request/
│   │                                   │   └── outer/
│   │                                   │       └── ThirdpartGatewayTest.java
│   │                                   ├── resource/
│   │                                   │   ├── LogicClusterInfoSource.java
│   │                                   │   ├── PhyClusterInfoSource.java
│   │                                   │   ├── PhyClusterRegionInfoSource.java
│   │                                   │   └── TemplateInfoSource.java
│   │                                   └── v3/
│   │                                       └── op/
│   │                                           └── cluster/
│   │                                               └── logic/
│   │                                                   └── ESLogicClusterRegionTest.java
│   ├── arius-admin-metadata/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   └── metadata/
│   │                                       ├── job/
│   │                                       │   ├── AbstractMetaDataJob.java
│   │                                       │   ├── cluster/
│   │                                       │   │   └── monitor/
│   │                                       │   │       ├── ClusterMonitorJobHandler.java
│   │                                       │   │       ├── LogicClusterMonitorJobHandler.java
│   │                                       │   │       └── esmonitorjob/
│   │                                       │   │           ├── MonitorClusterJob.java
│   │                                       │   │           ├── MonitorCollectMetrics.java
│   │                                       │   │           ├── MonitorJobHandler.java
│   │                                       │   │           ├── MonitorMetricsSender.java
│   │                                       │   │           ├── action/
│   │                                       │   │           │   ├── ESIndicesSimpleStatsAction.java
│   │                                       │   │           │   ├── ESIndicesSimpleStatsRequest.java
│   │                                       │   │           │   ├── ESIndicesSimpleStatsRequestBuilder.java
│   │                                       │   │           │   ├── ESIndicesSimpleStatsResponse.java
│   │                                       │   │           │   ├── SimpleCommonStat.java
│   │                                       │   │           │   └── SimpleIndexNode.java
│   │                                       │   │           ├── index/
│   │                                       │   │           │   ├── ESIndexStatsAction.java
│   │                                       │   │           │   ├── ESIndexStatsRequest.java
│   │                                       │   │           │   ├── ESIndexStatsRequestBuilder.java
│   │                                       │   │           │   └── ESIndexStatsResponse.java
│   │                                       │   │           ├── metrics/
│   │                                       │   │           │   ├── CollectMetrics.java
│   │                                       │   │           │   ├── DCDRMetrics.java
│   │                                       │   │           │   ├── DeriveComputer.java
│   │                                       │   │           │   ├── ESNodeToIndexComputer.java
│   │                                       │   │           │   ├── MetricsComputeType.java
│   │                                       │   │           │   ├── MetricsComputer.java
│   │                                       │   │           │   ├── MetricsRegister.java
│   │                                       │   │           │   └── SimpleComputer.java
│   │                                       │   │           └── node/
│   │                                       │   │               ├── BaseTimeoutRequest.java
│   │                                       │   │               ├── ESBroadcastTimeoutRequest.java
│   │                                       │   │               ├── ESBroadcastTimeoutRequestBuilder.java
│   │                                       │   │               ├── ESNodeAction.java
│   │                                       │   │               ├── ESNodeRequest.java
│   │                                       │   │               ├── ESNodeRequestBuilder.java
│   │                                       │   │               ├── ESNodeResponse.java
│   │                                       │   │               ├── ESNodeStatsAction.java
│   │                                       │   │               ├── ESNodeStatsRequest.java
│   │                                       │   │               ├── ESNodeStatsRequestBuilder.java
│   │                                       │   │               └── ESNodeStatsResponse.java
│   │                                       │   ├── dsl/
│   │                                       │   │   ├── DslTemplateDelExpiredJob.java
│   │                                       │   │   └── DslTemplateUpdateNearestQueryLimitJob.java
│   │                                       │   ├── index/
│   │                                       │   │   ├── IndexCatInfoCollector.java
│   │                                       │   │   └── healthdegree/
│   │                                       │   │       ├── AbstractDegreeIndicator.java
│   │                                       │   │       ├── IDegreeIndicator.java
│   │                                       │   │       └── degreeindicator/
│   │                                       │   │           ├── DegreeOffline.java
│   │                                       │   │           ├── DegreeParam.java
│   │                                       │   │           ├── DegreeRealTimeCpuUse.java
│   │                                       │   │           ├── DegreeRealTimeDiskUse.java
│   │                                       │   │           ├── DegreeRealTimeOldGC.java
│   │                                       │   │           ├── DegreeRealTimeSearch.java
│   │                                       │   │           ├── DegreeRealTimeWriter.java
│   │                                       │   │           └── DegreeSearchCost.java
│   │                                       │   └── shard/
│   │                                       │       └── ShardCatInfoCollector.java
│   │                                       ├── listen/
│   │                                       │   ├── MetaDataMonitorMetrics2PrometheusListener.java
│   │                                       │   └── MetaDataMonitorMetrics2ZHListener.java
│   │                                       ├── service/
│   │                                       │   ├── DashBoardMetricsService.java
│   │                                       │   ├── DslMetricsService.java
│   │                                       │   ├── DslStatisticsService.java
│   │                                       │   ├── DslTemplateService.java
│   │                                       │   ├── ESClusterLogicStatsService.java
│   │                                       │   ├── ESClusterPhyStatsService.java
│   │                                       │   ├── ESIndicesStatsService.java
│   │                                       │   ├── GatewayJoinLogService.java
│   │                                       │   ├── GatewayMetricsService.java
│   │                                       │   ├── NodeStatsService.java
│   │                                       │   └── TemplateStatsService.java
│   │                                       └── utils/
│   │                                           ├── MonitorUtil.java
│   │                                           └── ReadExprValueUtil.java
│   ├── arius-admin-persistence/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── didichuxing/
│   │           │           └── datachannel/
│   │           │               └── arius/
│   │           │                   └── admin/
│   │           │                       └── persistence/
│   │           │                           ├── component/
│   │           │                           │   ├── ESGatewayClient.java
│   │           │                           │   ├── ESOpClient.java
│   │           │                           │   ├── ESOpTimeoutRetry.java
│   │           │                           │   ├── ESUpdateClient.java
│   │           │                           │   └── ScrollResultVisitor.java
│   │           │                           ├── config/
│   │           │                           │   └── DruidDbConfig.java
│   │           │                           ├── constant/
│   │           │                           │   └── ESOperateConstant.java
│   │           │                           ├── es/
│   │           │                           │   ├── BaseESDAO.java
│   │           │                           │   ├── cluster/
│   │           │                           │   │   ├── ESClusterDAO.java
│   │           │                           │   │   ├── ESClusterNodeDAO.java
│   │           │                           │   │   ├── ESDCDRDAO.java
│   │           │                           │   │   ├── ESIndexDAO.java
│   │           │                           │   │   ├── ESPipelineDAO.java
│   │           │                           │   │   ├── ESSecurityRoleDAO.java
│   │           │                           │   │   ├── ESSecurityUserDAO.java
│   │           │                           │   │   ├── ESShardDAO.java
│   │           │                           │   │   └── ESTemplateDAO.java
│   │           │                           │   ├── index/
│   │           │                           │   │   ├── dao/
│   │           │                           │   │   │   ├── app/
│   │           │                           │   │   │   │   └── ProjectTemplateAccessESDAO.java
│   │           │                           │   │   │   ├── dsl/
│   │           │                           │   │   │   │   ├── DslAnalyzeResultQpsESDAO.java
│   │           │                           │   │   │   │   ├── DslAnalyzeResultTypeESDAO.java
│   │           │                           │   │   │   │   ├── DslMetricsESDAO.java
│   │           │                           │   │   │   │   └── DslTemplateESDAO.java
│   │           │                           │   │   │   ├── gateway/
│   │           │                           │   │   │   │   ├── GatewayAppMetricsDAO.java
│   │           │                           │   │   │   │   ├── GatewayDslMetricsDAO.java
│   │           │                           │   │   │   │   ├── GatewayIndexMetricsDAO.java
│   │           │                           │   │   │   │   ├── GatewayJoinESDAO.java
│   │           │                           │   │   │   │   ├── GatewayNodeMetricsDAO.java
│   │           │                           │   │   │   │   └── GatewayOverviewMetricsDAO.java
│   │           │                           │   │   │   ├── index/
│   │           │                           │   │   │   │   └── IndexCatESDAO.java
│   │           │                           │   │   │   ├── stats/
│   │           │                           │   │   │   │   ├── AriusStatsClusterInfoESDAO.java
│   │           │                           │   │   │   │   ├── AriusStatsClusterTaskInfoESDAO.java
│   │           │                           │   │   │   │   ├── AriusStatsDashBoardInfoESDAO.java
│   │           │                           │   │   │   │   ├── AriusStatsIndexInfoESDAO.java
│   │           │                           │   │   │   │   ├── AriusStatsNodeInfoESDAO.java
│   │           │                           │   │   │   │   └── BaseAriusStatsESDAO.java
│   │           │                           │   │   │   └── template/
│   │           │                           │   │   │       └── TemplateAccessESDAO.java
│   │           │                           │   │   ├── datacentre/
│   │           │                           │   │   │   └── DataCentreUtil.java
│   │           │                           │   │   └── dsls/
│   │           │                           │   │       ├── DslLoaderUtil.java
│   │           │                           │   │       └── DslsConstant.java
│   │           │                           │   └── metric/
│   │           │                           │       └── BaseTopNMetricsDAO.java
│   │           │                           └── mysql/
│   │           │                               ├── config/
│   │           │                               │   └── AriusConfigInfoDAO.java
│   │           │                               ├── ecm/
│   │           │                               │   ├── ESClusterConfigDAO.java
│   │           │                               │   ├── ESClusterRoleDAO.java
│   │           │                               │   ├── ESClusterRoleHostDAO.java
│   │           │                               │   ├── ESMachineNormsDAO.java
│   │           │                               │   ├── ESPackageDAO.java
│   │           │                               │   └── ESPluginDAO.java
│   │           │                               ├── gateway/
│   │           │                               │   ├── GatewayClusterDAO.java
│   │           │                               │   └── GatewayClusterNodeDAO.java
│   │           │                               ├── metrics/
│   │           │                               │   ├── MetricsDictionaryDAO.java
│   │           │                               │   └── UserConfigDAO.java
│   │           │                               ├── monitor/
│   │           │                               │   └── AriusMetaJobClusterDistributeDAO.java
│   │           │                               ├── optrecord/
│   │           │                               │   └── OperateRecordDAO.java
│   │           │                               ├── project/
│   │           │                               │   ├── ESUserDAO.java
│   │           │                               │   ├── ProjectConfigDAO.java
│   │           │                               │   ├── ProjectLogicClusterAuthDAO.java
│   │           │                               │   └── ProjectTemplateAuthDAO.java
│   │           │                               ├── region/
│   │           │                               │   └── ClusterRegionDAO.java
│   │           │                               ├── resource/
│   │           │                               │   ├── LogicClusterDAO.java
│   │           │                               │   └── PhyClusterDAO.java
│   │           │                               ├── task/
│   │           │                               │   ├── EcmTaskDAO.java
│   │           │                               │   ├── EcmTaskDetailDAO.java
│   │           │                               │   └── OpTaskDAO.java
│   │           │                               ├── template/
│   │           │                               │   ├── IndexTemplateAliasDAO.java
│   │           │                               │   ├── IndexTemplateConfigDAO.java
│   │           │                               │   ├── IndexTemplateDAO.java
│   │           │                               │   ├── IndexTemplatePhyDAO.java
│   │           │                               │   └── IndexTemplateTypeDAO.java
│   │           │                               └── workorder/
│   │           │                                   └── WorkOrderDAO.java
│   │           └── resources/
│   │               ├── dsl/
│   │               │   ├── AriusStatsClusterPhyInfoEsDao/
│   │               │   │   ├── getAggPercentilesMetricsByRange
│   │               │   │   ├── getClusterMetricsByRangeAndInterval
│   │               │   │   ├── getGatewayCount
│   │               │   │   └── getTimeDifferenceBetweenNearestPointAndNow
│   │               │   ├── AriusStatsClusterTaskInfoEsDao/
│   │               │   │   ├── aggClusterLogicTaskCostAvgAndPercentiles
│   │               │   │   ├── aggClusterNodesTaskCost
│   │               │   │   ├── aggClusterTaskCostAvgAndPercentiles
│   │               │   │   ├── aggClusterTaskCount
│   │               │   │   ├── getAggClusterPhyNodesTaskInfo
│   │               │   │   ├── getAggClusterPhySingleNodeTaskInfo
│   │               │   │   ├── getClusterPhySingleNodeTaskDetailInfo
│   │               │   │   ├── getHasNodeTaskInfoTime
│   │               │   │   └── getTopNNodeTaskAggMetricsInfo
│   │               │   ├── AriusStatsDashBoardInfoESDAO/
│   │               │   │   ├── fetchClusterHealthInfo
│   │               │   │   ├── fetchListFlagMetric
│   │               │   │   ├── fetchListThresholdsMetric
│   │               │   │   ├── fetchListValueMetrics
│   │               │   │   ├── getAggDashboardClusterTopNameInfo
│   │               │   │   ├── getAggDashboardNoClusterTopNameInfo
│   │               │   │   ├── getAggFilterFragment
│   │               │   │   ├── getHasDashboardMetricInfoTime
│   │               │   │   ├── getTopDashboardClusterAggMetricsInfo
│   │               │   │   └── getTopDashboardNoClusterAggMetricsInfo
│   │               │   ├── AriusStatsIndexInfoEsDao/
│   │               │   │   ├── getAggMultipleIndicesMetrics
│   │               │   │   ├── getAggMultipleIndicesMetricsWithStep
│   │               │   │   ├── getAggMultipleIndicesMetricsWithStepAndIndexList
│   │               │   │   ├── getAggMultipleTemplateMetrics
│   │               │   │   ├── getAggMultipleTemplateMetricsWithStep
│   │               │   │   ├── getAggMultipleTemplateMetricsWithStepAndLogicIds
│   │               │   │   ├── getAggSingleIndexMetrics
│   │               │   │   ├── getAggSingleTemplateMetrics
│   │               │   │   ├── getAvgTpsByLogicIdAndTimeRange
│   │               │   │   ├── getClusterLogicTpsQpsInfo
│   │               │   │   ├── getClusterTpsQpsInfo
│   │               │   │   ├── getHasIndexMetricsDataTime
│   │               │   │   ├── getHistoryMaxTpsByLogicIdAndTimeRange
│   │               │   │   ├── getIndexRealTimeInfoByTemplateAndCluster
│   │               │   │   ├── getIndexRealTimeStatisInfoByTemplateAndCluster
│   │               │   │   ├── getIndexStatsByTempalteId
│   │               │   │   ├── getMaxInfoByRangeTimeAndTemplate
│   │               │   │   ├── getQueryRateByIndexDateRange
│   │               │   │   ├── getSingleMetrics
│   │               │   │   ├── getTemplateMaxIndexDoc
│   │               │   │   ├── getTemplateMaxIndexSize
│   │               │   │   ├── getTemplateTotalDocNuByLogicTemplateIdAndTimeRange
│   │               │   │   ├── getTemplateTotalDocNuByTimeRange
│   │               │   │   ├── getTemplateTotalMaxTpsByTimeRange
│   │               │   │   ├── getTemplateTotalMaxTpsByTimeRangeNoPercent
│   │               │   │   ├── getTemplateTotalSizeByLogicTemplateId
│   │               │   │   ├── getTemplateTotalSizeByTemplateId
│   │               │   │   ├── getTemplateTotalSizeByTimeRange
│   │               │   │   ├── getTopNIndicesAggMetrics
│   │               │   │   └── getTopNTemplateAggMetrics
│   │               │   ├── AriusStatsIndexNodeInfoEsDao/
│   │               │   │   ├── getIndexToNodeStats
│   │               │   │   └── getIndexToNodeStatsByTemplateId
│   │               │   ├── AriusStatsIngestInfoEsDao/
│   │               │   │   └── getIngestFailCountByLogicIdAndTimeRange
│   │               │   ├── AriusStatsNodeInfoEsDao/
│   │               │   │   ├── aggClusterAvgAndPercentiles
│   │               │   │   ├── aggClusterAvgAndPercentilesForDiskFreeUsagePercent
│   │               │   │   ├── aggClusterIndexingOrSearchTimeSum
│   │               │   │   ├── aggClusterLogicAvgAndPercentiles
│   │               │   │   ├── aggClusterLogicAvgAndPercentilesForDiskFreeUsagePercent
│   │               │   │   ├── aggClusterLogicIndexingOrSearchTimeSum
│   │               │   │   ├── getAggClusterNodeInfoWithStep
│   │               │   │   ├── getAggClusterPhyNodesInfo
│   │               │   │   ├── getAggClusterPhySingleNodeInfo
│   │               │   │   ├── getAllClusterNodePhyStoreSize
│   │               │   │   ├── getClusterCpuAvgInfo
│   │               │   │   ├── getClusterIndexingLatency
│   │               │   │   ├── getClusterLogicRxTxInfo
│   │               │   │   ├── getClusterRxTxInfo
│   │               │   │   ├── getClusterSearchLatency
│   │               │   │   ├── getFieldSumAndRangeFieldTotal
│   │               │   │   ├── getHasNodeMetricInfoTime
│   │               │   │   ├── getNodeFieldSumAndRangeFieldTotal
│   │               │   │   └── getTopNNodeAggMetricsInfo
│   │               │   ├── DslAnalyzeResultQpsEsDao/
│   │               │   │   └── getMaxProjectIdTemplateQpsInfoByProjectIdTemplateMd5
│   │               │   ├── DslAnalyzeResultTypeEsDao/
│   │               │   │   ├── getDslAnalyzeResultByProjectId
│   │               │   │   └── getDslAnalyzeResultByProjectIdAndRange
│   │               │   ├── DslFieldUseEsDao/
│   │               │   │   ├── getFieldUseInfoByTemplateName
│   │               │   │   └── getFieldUseListByTemplateName
│   │               │   ├── DslMetricsEsDao/
│   │               │   │   ├── getDslDetailMetricByProjectIdAndDslTemplateMd5
│   │               │   │   ├── getMaxProjectIdTemplateQpsInfoByProjectIdTemplateMd5
│   │               │   │   ├── getNeariestDslMetricsByProjectIdTemplateMd5
│   │               │   │   ├── getProjectIdTemplateMd5Info
│   │               │   │   ├── getTotalSearchByProjectIdDate
│   │               │   │   └── queryTotalHitsByProjectIdDate
│   │               │   ├── DslTemplateEsDao/
│   │               │   │   ├── deleteExpiredDslTemplate
│   │               │   │   ├── getAllDslTemplatePoByProjectId
│   │               │   │   ├── getDslTemplateByCondition
│   │               │   │   ├── getDslTemplateByProjectIdAndRange
│   │               │   │   ├── getDslTemplatesByDateRange
│   │               │   │   ├── getEarliestDslTemplate
│   │               │   │   ├── getExpiredAndWillDeleteDslTemplate
│   │               │   │   ├── getIncreaseTemplateCountByProjectId
│   │               │   │   ├── getLongTimeNotUseDslTemplate
│   │               │   │   ├── getMissingAriusCreateTime
│   │               │   │   ├── getNearestDslTemplate
│   │               │   │   ├── getNearestDslTemplateAccessable
│   │               │   │   ├── getTemplateCountByProjectId
│   │               │   │   ├── getTemplateMD5ByIndexName
│   │               │   │   ├── getTemplateMD5ByIndexNameAndProjectId
│   │               │   │   ├── getTemplateMD5ByIndexNameAndProjectIdWithDayRange
│   │               │   │   ├── getTemplateMD5ByIndexNameWithDayRange
│   │               │   │   └── handleScrollDslTemplates
│   │               │   ├── GatewayAppMetricsDao/
│   │               │   │   ├── getAggField
│   │               │   │   ├── getAggFieldByProjectId
│   │               │   │   ├── getAggFieldCount
│   │               │   │   └── getAggFieldCountByProjectId
│   │               │   ├── GatewayDslMetricsDao/
│   │               │   │   ├── getDslCount
│   │               │   │   ├── getDslCountByFileld
│   │               │   │   ├── getDslCountByMd5
│   │               │   │   ├── getDslCountExtendedBoundsByFileld
│   │               │   │   ├── getDslMd5ByProjectId
│   │               │   │   ├── getDslTotalCost
│   │               │   │   ├── getDslTotalCostByMd5
│   │               │   │   ├── getHasMetricInfoTimeByField
│   │               │   │   ├── getTotalCostByField
│   │               │   │   └── getTotalCostExtendedBoundsByField
│   │               │   ├── GatewayIndexMetricsDao/
│   │               │   │   ├── getAggSearch
│   │               │   │   ├── getAggSearchByTemplateName
│   │               │   │   ├── getAggWrite
│   │               │   │   └── getAggWriteByTemplateName
│   │               │   ├── GatewayJoinEsDao/
│   │               │   │   ├── aggIndicesDslMd5ByRange
│   │               │   │   ├── getAccessGatewayInfoByProjectIdDate
│   │               │   │   ├── getAccessIndexNameByProjectId
│   │               │   │   ├── getCostInfoByProjectIdAndDate
│   │               │   │   ├── getDslByIndexAndTemplateMD5
│   │               │   │   ├── getErrorCntByTemplateName
│   │               │   │   ├── getErrorSearchCountAndErrorDetailByProjectIdDate
│   │               │   │   ├── getFailedDslTemplateCount
│   │               │   │   ├── getFailedDslTemplateSearchIndices
│   │               │   │   ├── getFirstByProjectIdAndTemplateMd5
│   │               │   │   ├── getGatewayErrorByCondition
│   │               │   │   ├── getGatewayErrorList
│   │               │   │   ├── getGatewayErrorListByProjectId
│   │               │   │   ├── getGatewaySlowByCondition
│   │               │   │   ├── getGatewaySlowList
│   │               │   │   ├── getGatewaySlowListByProjectId
│   │               │   │   ├── getIds
│   │               │   │   ├── getInfoByIds
│   │               │   │   ├── getOneDSLByProjectIdAndIndexName
│   │               │   │   ├── getPoByIndicesAndMd5
│   │               │   │   ├── getQpsInfoByProjectIdAndDate
│   │               │   │   ├── getQueryLimitErrorMd5
│   │               │   │   ├── getQueryRtByProjectId
│   │               │   │   ├── getQueryTopNumInfoByProjectId
│   │               │   │   ├── getRequestTypeByProjectId
│   │               │   │   ├── getSearchCountByProjectId
│   │               │   │   ├── getSearchRequestByIndexName
│   │               │   │   ├── getSearchTypesByLogicId
│   │               │   │   ├── getSlowCntByTemplateName
│   │               │   │   ├── getTemplateMD5ByIndexName
│   │               │   │   ├── getTotalSearchCountByProjectIdAndDate
│   │               │   │   ├── getWeekSearchCountByMd5
│   │               │   │   ├── matchIndices
│   │               │   │   ├── queryErrorDslByProjectIdExceptionAndDate
│   │               │   │   ├── queryErrorDslDetailByProjectIdTemplateAndDate
│   │               │   │   ├── queryMaxSearchQpsByProjectIdAndDslTemplate
│   │               │   │   ├── querySlowDslByProjectIdAndDate
│   │               │   │   ├── querySlowDslCountAndDetailByByProjectIdAndDslTemplate
│   │               │   │   ├── scrollMulityTypeByShardNo
│   │               │   │   └── scrollRequestLogByShardNo
│   │               │   ├── GatewayNodeMetricsDao/
│   │               │   │   ├── getAggField
│   │               │   │   ├── getAggFieldByIp
│   │               │   │   ├── getAggWriteAndGatewayNode
│   │               │   │   ├── getAggWriteAndGatewayNodeByIp
│   │               │   │   ├── getClientNodeAggField
│   │               │   │   ├── getClientNodeAggFieldByIp
│   │               │   │   ├── getClientNodeAggWrite
│   │               │   │   ├── getClientNodeAggWriteByIp
│   │               │   │   └── getClientNodeByGatewayNode
│   │               │   ├── GatewayOverviewMetricsDao/
│   │               │   │   ├── getCommonMetrics
│   │               │   │   ├── getReadCount
│   │               │   │   ├── getSearchType
│   │               │   │   └── getWriteMetrics
│   │               │   ├── IndexCatESDAO/
│   │               │   │   ├── getAllCatIndexInfoByTerms
│   │               │   │   ├── getAllCatIndexNameByClusters
│   │               │   │   ├── getCatIndexInfoByCondition
│   │               │   │   ├── getPlatformCreateCatIndex
│   │               │   │   ├── getPlatformCreateCatIndexById
│   │               │   │   ├── getPlatformCreateCatIndexByIndexProject
│   │               │   │   ├── getPlatformCreateCatIndexByIndexProjectAndFuzzyIndex
│   │               │   │   ├── getPlatformCreateCatIndexByIndexProjectAndFuzzyIndexAndClusterPhy
│   │               │   │   ├── getPlatformCreateCatIndexGroupByCluster
│   │               │   │   └── getTemplateIndicesHealth
│   │               │   ├── IndexHit/
│   │               │   │   ├── getIndexForNormal
│   │               │   │   └── getIndicesForAggs
│   │               │   ├── IndexNameAccessCountEsDao/
│   │               │   │   ├── getIndexNameAccessByTemplate
│   │               │   │   └── getIndexNameAccessByTemplateId
│   │               │   ├── IndexSizeEsDao/
│   │               │   │   ├── getIndexSizeByTemplateName
│   │               │   │   └── getYesterDayIndexSize
│   │               │   ├── IndexTemplateLabelESDao/
│   │               │   │   ├── getLabelByLabelId
│   │               │   │   └── getLabelByLogicTemplateId
│   │               │   ├── IndexTemplateValueEsDao/
│   │               │   │   └── listAll
│   │               │   ├── ProjectIdTemplateAccessCountEsDao/
│   │               │   │   ├── getAccessProjectIdByTemplateName
│   │               │   │   ├── getAccessProjectIdInfoByLogicTemplateId
│   │               │   │   └── getAccessProjectIdInfoByLogicTemplateIdAndDateRange
│   │               │   ├── ShardCatESDAO/
│   │               │   │   ├── getCatShardInfoByCondition
│   │               │   │   └── shouldTermCell
│   │               │   └── TemplateAccessCountEsDao/
│   │               │       ├── getAllTemplateAccessByDateRange
│   │               │       ├── getAllTemplateAccessByDateRangeAndCluster
│   │               │       ├── getAllTemplateAccessByTemplateDateRange
│   │               │       ├── getAllTemplateAccessHistoryByTemplate
│   │               │       ├── getAllTemplateAccessHistoryByTemplateId
│   │               │       ├── getTemplateAccessLast7DayByTemplateId
│   │               │       └── getTemplateAccessLastNDayByLogicTemplateId
│   │               └── mybatis/
│   │                   ├── AriusConfigInfo.xml
│   │                   ├── AriusMetaJobClusterDistributeDAO.xml
│   │                   ├── ClusterRegion.xml
│   │                   ├── ESClusterConfig.xml
│   │                   ├── ESClusterRoleDAO.xml
│   │                   ├── ESClusterRoleHostDAO.xml
│   │                   ├── ESMachineNorms.xml
│   │                   ├── ESPackage.xml
│   │                   ├── ESPlugin.xml
│   │                   ├── ESUser.xml
│   │                   ├── EcmTask.xml
│   │                   ├── EcmTaskDetail.xml
│   │                   ├── GatewayCluster.xml
│   │                   ├── GatewayNode.xml
│   │                   ├── IndexTemplateAlias.xml
│   │                   ├── IndexTemplateConfig.xml
│   │                   ├── IndexTemplateDAO.xml
│   │                   ├── IndexTemplatePhyDAO.xml
│   │                   ├── IndexTemplateType.xml
│   │                   ├── LogicCluster.xml
│   │                   ├── MetricsDictionaryDAO.xml
│   │                   ├── OpTaskDAO.xml
│   │                   ├── OperateRecord.xml
│   │                   ├── PhyClusterDAO.xml
│   │                   ├── ProjectConfigDAO.xml
│   │                   ├── ProjectLogicClusterAuthDAO.xml
│   │                   ├── ProjectTemplateAuth.xml
│   │                   ├── UserMetricsConfigDAO.xml
│   │                   └── WorkOrderDAO.xml
│   ├── arius-admin-remote/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   └── remote/
│   │                                       ├── storage/
│   │                                       │   ├── FileStorageHandle.java
│   │                                       │   ├── content/
│   │                                       │   │   └── FileStorageTypeEnum.java
│   │                                       │   └── s3/
│   │                                       │       └── S3FileStorageHandle.java
│   │                                       └── zeus/
│   │                                           ├── ZeusClusterRemoteService.java
│   │                                           ├── ZeusClusterRemoteServiceImpl.java
│   │                                           └── bean/
│   │                                               ├── ZeusAgentsList.java
│   │                                               ├── ZeusDat.java
│   │                                               ├── ZeusResult.java
│   │                                               ├── ZeusSubTaskLog.java
│   │                                               ├── ZeusTaskStatus.java
│   │                                               ├── constant/
│   │                                               │   ├── EcmActionEnum.java
│   │                                               │   └── ZeusClusterActionEnum.java
│   │                                               └── request/
│   │                                                   └── ZeusCreateTaskParam.java
│   ├── arius-admin-rest/
│   │   ├── APP_META/
│   │   │   ├── 990-startapp.required.sh
│   │   │   ├── 990-stopapp.sh
│   │   │   ├── 990-webterminal.sh
│   │   │   ├── Dockerfile
│   │   │   ├── DockerfileOffline
│   │   │   ├── clean_nginx_log.sh
│   │   │   ├── monit/
│   │   │   │   ├── monitrc
│   │   │   │   └── nginx.cfg
│   │   │   └── nginx/
│   │   │       └── conf/
│   │   │           ├── nginx-pre-v3-cn.conf
│   │   │           └── nginx.conf
│   │   ├── control.sh
│   │   ├── elevate/
│   │   │   ├── pipeline.3_test.yml
│   │   │   ├── pipeline.merge.yml
│   │   │   ├── pipeline.test.yml
│   │   │   └── pipeline.zhaoqingrong-dev.yml
│   │   ├── nginxfunc.sh
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── didichuxing/
│   │       │   │           └── datachannel/
│   │       │   │               └── arius/
│   │       │   │                   └── admin/
│   │       │   │                       └── rest/
│   │       │   │                           ├── AriusAdminApplication.java
│   │       │   │                           ├── config/
│   │       │   │                           │   └── AriusWebMvcConfigurer.java
│   │       │   │                           ├── controller/
│   │       │   │                           │   ├── HealthController.java
│   │       │   │                           │   └── v3/
│   │       │   │                           │       ├── normal/
│   │       │   │                           │       │   ├── NormalMachineNormsController.java
│   │       │   │                           │       │   ├── NormalOperateRecordController.java
│   │       │   │                           │       │   ├── NormalOrderController.java
│   │       │   │                           │       │   └── NormalPackageController.java
│   │       │   │                           │       ├── op/
│   │       │   │                           │       │   ├── cluster/
│   │       │   │                           │       │   │   ├── config/
│   │       │   │                           │       │   │   │   ├── ESClusterConfigController.java
│   │       │   │                           │       │   │   │   └── ESClusterDynamicConfigController.java
│   │       │   │                           │       │   │   ├── logic/
│   │       │   │                           │       │   │   │   ├── ClusterLogicTemplateSrvController.java
│   │       │   │                           │       │   │   │   ├── ESLogicClusterIndexController.java
│   │       │   │                           │       │   │   │   ├── ESLogicClusterNodeController.java
│   │       │   │                           │       │   │   │   ├── ESLogicClusterOpV3Controller.java
│   │       │   │                           │       │   │   │   └── ESLogicClusterRegionController.java
│   │       │   │                           │       │   │   ├── phy/
│   │       │   │                           │       │   │   │   ├── ESPhyClusterController.java
│   │       │   │                           │       │   │   │   ├── ESPhyClusterNodeController.java
│   │       │   │                           │       │   │   │   ├── ESPhyClusterQuickCommandController.java
│   │       │   │                           │       │   │   │   └── ESPhyClusterRegionController.java
│   │       │   │                           │       │   │   └── plugins/
│   │       │   │                           │       │   │       └── PhyClusterPluginController.java
│   │       │   │                           │       │   ├── config/
│   │       │   │                           │       │   │   └── AriusConfigV3Controller.java
│   │       │   │                           │       │   ├── dsl/
│   │       │   │                           │       │   │   ├── DslMetricsController.java
│   │       │   │                           │       │   │   └── DslTemplateController.java
│   │       │   │                           │       │   ├── gateway/
│   │       │   │                           │       │   │   ├── GatewayJoinController.java
│   │       │   │                           │       │   │   └── GatewaySqlController.java
│   │       │   │                           │       │   ├── indices/
│   │       │   │                           │       │   │   ├── BaseIndicesController.java
│   │       │   │                           │       │   │   ├── IndicesController.java
│   │       │   │                           │       │   │   └── IndicesSrvController.java
│   │       │   │                           │       │   ├── metrics/
│   │       │   │                           │       │   │   ├── ClusterPhyMetricsController.java
│   │       │   │                           │       │   │   ├── DashboardMetricsController.java
│   │       │   │                           │       │   │   ├── GatewayMetricsController.java
│   │       │   │                           │       │   │   └── MetricsDictionaryController.java
│   │       │   │                           │       │   ├── task/
│   │       │   │                           │       │   │   ├── OpTaskController.java
│   │       │   │                           │       │   │   ├── OpTaskDCDRController.java
│   │       │   │                           │       │   │   └── OpTaskEcmController.java
│   │       │   │                           │       │   └── template/
│   │       │   │                           │       │       ├── BaseTemplateController.java
│   │       │   │                           │       │       ├── TemplateAccessController.java
│   │       │   │                           │       │       ├── TemplateController.java
│   │       │   │                           │       │       ├── TemplateDCDRController.java
│   │       │   │                           │       │       ├── TemplateLogicV3Controller.java
│   │       │   │                           │       │       ├── TemplatePhysicalV3Controller.java
│   │       │   │                           │       │       ├── TemplateSchemaController.java
│   │       │   │                           │       │       ├── TemplateSettingController.java
│   │       │   │                           │       │       ├── TemplateSrvController.java
│   │       │   │                           │       │       └── TemplateStatisticsController.java
│   │       │   │                           │       ├── project/
│   │       │   │                           │       │   ├── ESUserV3Controller.java
│   │       │   │                           │       │   ├── LoginV3Controller.java
│   │       │   │                           │       │   ├── PermissionV3Controller.java
│   │       │   │                           │       │   ├── ProjectTemplateAuthV3Controller.java
│   │       │   │                           │       │   ├── ProjectV3Controller.java
│   │       │   │                           │       │   ├── RoleV3Controller.java
│   │       │   │                           │       │   └── UserV3Controller.java
│   │       │   │                           │       └── white/
│   │       │   │                           │           ├── ESPhyClusterWhiteController.java
│   │       │   │                           │           └── thirdpart/
│   │       │   │                           │               ├── ThirdpartCommonController.java
│   │       │   │                           │               ├── ThirdpartGatewayV3Controller.java
│   │       │   │                           │               └── ThirdpartZeusController.java
│   │       │   │                           ├── exception/
│   │       │   │                           │   └── ExceptionHandleController.java
│   │       │   │                           ├── filter/
│   │       │   │                           │   └── DruidStatFilter.java
│   │       │   │                           ├── interceptor/
│   │       │   │                           │   └── PermissionInterceptor.java
│   │       │   │                           ├── servlet/
│   │       │   │                           │   └── DruidStatViewServlet.java
│   │       │   │                           ├── swagger/
│   │       │   │                           │   └── SwaggerConfiguration.java
│   │       │   │                           └── web/
│   │       │   │                               ├── TranslateHttpServletRequestWrapper.java
│   │       │   │                               ├── TranslateServletInputStream.java
│   │       │   │                               ├── UrlHelper.java
│   │       │   │                               ├── WebConstant.java
│   │       │   │                               └── WebRequestLogFilter.java
│   │       │   └── resources/
│   │       │       ├── application-test.yml
│   │       │       ├── application.yml
│   │       │       ├── banner.txt
│   │       │       ├── log4j2-dev.xml
│   │       │       ├── log4j2-test-env.xml
│   │       │       └── observability.properties
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   ├── biz/
│   │                                   │   ├── cluster/
│   │                                   │   │   ├── ClusterNodeManagerImplTest.java
│   │                                   │   │   └── ClusterPhyManagerTest.java
│   │                                   │   ├── gateway/
│   │                                   │   │   └── GatewayManagerTest.java
│   │                                   │   ├── metrics/
│   │                                   │   │   ├── ClusterPhyMetricsManagerTest.java
│   │                                   │   │   ├── DashboardMetricsManagerTest.java
│   │                                   │   │   └── GatewayMetricsManagerTest.java
│   │                                   │   └── project/
│   │                                   │       ├── ESUserManagerTest.java
│   │                                   │       └── ProjectConfigManagerTest.java
│   │                                   ├── common/
│   │                                   │   └── util/
│   │                                   │       └── ClusterDynamicConfigTypeCheckFunUtilTest.java
│   │                                   ├── core/
│   │                                   │   └── service/
│   │                                   │       ├── cluster/
│   │                                   │       │   └── physic/
│   │                                   │       │       └── ClusterPhyServiceTest.java
│   │                                   │       ├── gateway/
│   │                                   │       │   └── GatewayServiceTest.java
│   │                                   │       ├── metrics/
│   │                                   │       │   └── UserMetricsConfigServiceTest.java
│   │                                   │       └── project/
│   │                                   │           ├── ESUserServiceTest.java
│   │                                   │           └── ProjectConfigServiceTest.java
│   │                                   ├── task/
│   │                                   │   └── JudgeTemplateBlockWriteTaskTest.java
│   │                                   └── util/
│   │                                       ├── CustomDataSource.java
│   │                                       ├── RandomGenerator.java
│   │                                       └── StatLineOfMethodTest.java
│   ├── arius-admin-task/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── didichuxing/
│   │       │               └── datachannel/
│   │       │                   └── arius/
│   │       │                       └── admin/
│   │       │                           └── task/
│   │       │                               ├── BaseConcurrentClusterLogicTask.java
│   │       │                               ├── BaseConcurrentClusterTask.java
│   │       │                               ├── BaseConcurrentTask.java
│   │       │                               ├── BaseConcurrentTemplateTask.java
│   │       │                               ├── TaskBatch.java
│   │       │                               ├── TaskConcurrentConstants.java
│   │       │                               ├── component/
│   │       │                               │   └── TaskResultBuilder.java
│   │       │                               ├── dashboard/
│   │       │                               │   ├── DashboardAllClusterCollectorRandomTask.java
│   │       │                               │   ├── DashboardSingleClusterCollectorBroadcastTask.java
│   │       │                               │   └── collector/
│   │       │                               │       ├── BaseDashboardCollector.java
│   │       │                               │       ├── ClusterDashBoardCollector.java
│   │       │                               │       ├── ClusterHealthDashBoardCollector.java
│   │       │                               │       ├── ClusterThreadPoolDashBoardCollector.java
│   │       │                               │       ├── IndexDashBoardCollector.java
│   │       │                               │       ├── NodeDashBoardCollector.java
│   │       │                               │       └── TemplateDashBoardCollector.java
│   │       │                               ├── ecmtask/
│   │       │                               │   └── SyncEcmTaskStatus.java
│   │       │                               ├── metadata/
│   │       │                               │   ├── DslTemplateDelExpiredRandomTask.java
│   │       │                               │   ├── DslTemplateUpdateNearestQueryLimitRandomTask.java
│   │       │                               │   ├── ESClusterMetricsCollectorBroadcastTask.java
│   │       │                               │   ├── ESLogicClusterMetricsCollectorBroadcastTask.java
│   │       │                               │   ├── ESNodeAndIndicesMetricsCollectorBroadcastTask.java
│   │       │                               │   ├── IndicesCatInfoCollectorRandomTask.java
│   │       │                               │   └── ShardsCatInfoCollectorRandomTask.java
│   │       │                               ├── resource/
│   │       │                               │   ├── ClusterLogicHealthCollectorRandomTask.java
│   │       │                               │   ├── ClusterNodeSettingCollectorRandomTask.java
│   │       │                               │   └── ClusterResourceInfoCollectorRandomTask.java
│   │       │                               └── template/
│   │       │                                   ├── CopyIndexMapping2TemplateRandomTask.java
│   │       │                                   ├── JudgeTemplateBlockWriteTask.java
│   │       │                                   ├── SyncTemplateMetadataRandomTask.java
│   │       │                                   └── srv/
│   │       │                                       ├── ColdDataMoveRandomTask.java
│   │       │                                       ├── DcdrInfoCollectorRandomTask.java
│   │       │                                       ├── DeleteDirtyDCDRLinksRandomTask.java
│   │       │                                       ├── DeleteExpireIndexRandomTask.java
│   │       │                                       ├── IndexRolloverRandomTask.java
│   │       │                                       ├── PreCreateIndexRandomTask.java
│   │       │                                       ├── ShardNumAdjustRandomTask.java
│   │       │                                       └── TemplateLogicHealthLogRandomTask.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── didichuxing/
│   │           │           └── datachannel/
│   │           │               └── arius/
│   │           │                   └── admin/
│   │           │                       └── task/
│   │           │                           ├── config/
│   │           │                           │   └── AriusAdminTaskConfiguration.java
│   │           │                           └── dashboard/
│   │           │                               └── IndexDashBoardCollectorTest.java
│   │           └── resources/
│   │               ├── application.properties
│   │               └── log4j2.xml
│   ├── build.sh
│   ├── coverage-report.sh
│   ├── deploy/
│   │   ├── knowsearch-init/
│   │   │   ├── 0.3.1/
│   │   │   │   ├── Readme.md
│   │   │   │   ├── cluster-phy-join
│   │   │   │   ├── init_knowsearch_linux.sh
│   │   │   │   ├── initializeSql.sql
│   │   │   │   └── template_in_arius/
│   │   │   │       ├── arius.appid.template.access
│   │   │   │       ├── arius.dsl.analyze.result
│   │   │   │       ├── arius.dsl.metrics
│   │   │   │       ├── arius.dsl.template
│   │   │   │       ├── arius.gateway.join
│   │   │   │       ├── arius.template.access
│   │   │   │       ├── arius_cat_index_info
│   │   │   │       ├── arius_gateway_metrics
│   │   │   │       ├── arius_stats_cluster_info
│   │   │   │       ├── arius_stats_cluster_task_info
│   │   │   │       ├── arius_stats_dashboard_info
│   │   │   │       ├── arius_stats_index_info
│   │   │   │       └── arius_stats_node_info
│   │   │   ├── 0.3.1.1/
│   │   │   │   ├── 0.3.1.1增量.sql
│   │   │   │   ├── cluster-phy-join
│   │   │   │   ├── init.sql
│   │   │   │   ├── init_knowsearch_linux.sh
│   │   │   │   ├── task
│   │   │   │   └── template_in_arius/
│   │   │   │       ├── arius.appid.template.access
│   │   │   │       ├── arius.dsl.analyze.result
│   │   │   │       ├── arius.dsl.metrics
│   │   │   │       ├── arius.dsl.template
│   │   │   │       ├── arius.gateway.join
│   │   │   │       ├── arius.template.access
│   │   │   │       ├── arius_cat_index_info
│   │   │   │       ├── arius_cat_shard_info
│   │   │   │       ├── arius_gateway_metrics
│   │   │   │       ├── arius_stats_cluster_info
│   │   │   │       ├── arius_stats_cluster_task_info
│   │   │   │       ├── arius_stats_dashboard_info
│   │   │   │       ├── arius_stats_index_info
│   │   │   │       └── arius_stats_node_info
│   │   │   ├── 0.3.1.2/
│   │   │   │   ├── 0.3.1.2.增量.sql
│   │   │   │   ├── init.sql
│   │   │   │   └── template_in_arius/
│   │   │   │       ├── arius.appid.template.access
│   │   │   │       ├── arius.dsl.analyze.result
│   │   │   │       ├── arius.dsl.metrics
│   │   │   │       ├── arius.dsl.template
│   │   │   │       ├── arius.gateway.join
│   │   │   │       ├── arius.template.access
│   │   │   │       ├── arius_cat_index_info
│   │   │   │       ├── arius_cat_shard_info
│   │   │   │       ├── arius_gateway_metrics
│   │   │   │       ├── arius_stats_cluster_info
│   │   │   │       ├── arius_stats_cluster_task_info
│   │   │   │       ├── arius_stats_dashboard_info
│   │   │   │       ├── arius_stats_index_info
│   │   │   │       ├── arius_stats_node_info
│   │   │   │       └── index_observability
│   │   │   ├── core_index_template/
│   │   │   │   └── index_template.sql
│   │   │   ├── es_manager.sql
│   │   │   ├── init_es_templates_to_arius_linux.sh
│   │   │   ├── init_es_templates_to_arius_mac.sh
│   │   │   ├── init_es_templates_to_cluster_linux.sh
│   │   │   ├── init_es_templates_to_cluster_mac.sh
│   │   │   ├── init_logi_em_linux.sh
│   │   │   ├── init_logi_em_mac.sh
│   │   │   ├── init_template.sql
│   │   │   ├── join_cluster_in_logi_em/
│   │   │   │   └── join_cluster_info
│   │   │   ├── security/
│   │   │   │   └── logi_sercurity.sql
│   │   │   ├── template_in_arius/
│   │   │   │   ├── arius.cat.index_info
│   │   │   │   ├── arius.dsl.metrics
│   │   │   │   ├── arius.dsl.template
│   │   │   │   ├── arius.gateway.join
│   │   │   │   ├── arius.stats.cluster_info
│   │   │   │   ├── arius.stats.cluster_task_info
│   │   │   │   ├── arius.stats.dashboard_info
│   │   │   │   ├── arius.stats.index_info
│   │   │   │   ├── arius.stats.node_info
│   │   │   │   └── index_observability
│   │   │   └── template_in_cluster/
│   │   │       ├── arius.cat.index_info
│   │   │       ├── arius.cat.shard_info
│   │   │       ├── arius.dsl.metrics
│   │   │       ├── arius.dsl.template
│   │   │       ├── arius.gateway.join
│   │   │       ├── arius.stats.cluster_info
│   │   │       ├── arius.stats.cluster_task_info
│   │   │       ├── arius.stats.dashboard.info
│   │   │       ├── arius.stats.index_info
│   │   │       ├── arius.stats.node_info
│   │   │       └── index_observability
│   │   ├── knowsearch-upgrade/
│   │   │   └── .gitignore
│   │   ├── zeus-init/
│   │   │   └── zeus_DeployES.sh
│   │   └── zh_update/
│   │       └── sql/
│   │           ├── app_id_rename_project_id.sql
│   │           ├── arius_user_transfer_logi_user.sql
│   │           ├── create_index.sql
│   │           ├── drop_index.sql
│   │           ├── drop_table_field.sql
│   │           ├── not_null_change_null.sql
│   │           ├── query_app_transfer_project.sql
│   │           ├── responsible_transfer_user_project.sql
│   │           ├── table_add_field.sql
│   │           └── table_rename.sql
│   ├── deploy_admin.sh
│   ├── didi-java-code-formatter.xml
│   ├── pom.xml
│   └── stop-server.sh
├── arius-console/
│   ├── .gitignore
│   ├── .gitkeep
│   ├── config/
│   │   ├── d1-webpack.base.js
│   │   ├── feConfig.json
│   │   ├── theme.js
│   │   └── webpack.dev.config.js
│   ├── contains.js
│   ├── d1.js
│   ├── d1.json
│   ├── fetk.config.js
│   ├── package.json
│   ├── patches/
│   │   └── text-diff+1.0.1.patch
│   ├── plugin/
│   │   └── AutoUpload.js
│   ├── readme.md
│   ├── src/
│   │   ├── @types/
│   │   │   ├── base-types.ts
│   │   │   ├── cluster/
│   │   │   │   ├── cluster-types.ts
│   │   │   │   ├── order-types.ts
│   │   │   │   └── physics-type.ts
│   │   │   ├── index-types.ts
│   │   │   ├── index.d.ts
│   │   │   ├── params-types.ts
│   │   │   ├── plug-types.ts
│   │   │   ├── task-types.ts
│   │   │   └── user-types.ts
│   │   ├── actions/
│   │   │   ├── actionTypes.ts
│   │   │   ├── app.ts
│   │   │   ├── cluster-base.ts
│   │   │   ├── cluster-kanban.ts
│   │   │   ├── create-index.ts
│   │   │   ├── dashBoard.ts
│   │   │   ├── full-screen.ts
│   │   │   ├── gateway-kanban.ts
│   │   │   ├── index.ts
│   │   │   ├── modal.ts
│   │   │   ├── phy-cluster-config.ts
│   │   │   ├── region.ts
│   │   │   ├── silderMenu.ts
│   │   │   ├── task.ts
│   │   │   └── user.ts
│   │   ├── api/
│   │   │   ├── Scheduling.ts
│   │   │   ├── app-api.ts
│   │   │   ├── cluster-api.ts
│   │   │   ├── cluster-index-api.ts
│   │   │   ├── cluster-kanban.ts
│   │   │   ├── cluster-node-api.ts
│   │   │   ├── common-api.ts
│   │   │   ├── dashboard.ts
│   │   │   ├── dcdr-api.ts
│   │   │   ├── gateway-kanban.ts
│   │   │   ├── index-admin.ts
│   │   │   ├── index.ts
│   │   │   ├── logi-security.ts
│   │   │   ├── op-cluster-config-api.ts
│   │   │   ├── op-cluster-index-api.ts
│   │   │   ├── op-cluster-region-api.ts
│   │   │   ├── order-api.ts
│   │   │   ├── plug-api.ts
│   │   │   ├── search-query.ts
│   │   │   ├── task-api.ts
│   │   │   └── user-api.ts
│   │   ├── app.tsx
│   │   ├── assets/
│   │   │   └── icon/
│   │   │       ├── demo.css
│   │   │       ├── demo_index.html
│   │   │       ├── iconfont.css
│   │   │       ├── iconfont.js
│   │   │       └── iconfont.json
│   │   ├── component/
│   │   │   ├── LogClusterEmpty/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── TimeRangePicker/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── UserSelect.tsx
│   │   │   ├── dantd/
│   │   │   │   ├── base-detail/
│   │   │   │   │   ├── base.less
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── readme.md
│   │   │   │   ├── dtable/
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── readme.md
│   │   │   │   ├── index.tsx
│   │   │   │   └── query-form/
│   │   │   │       ├── QueryForm.tsx
│   │   │   │       ├── context.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── readme.md
│   │   │   │       ├── style/
│   │   │   │       │   ├── index.less
│   │   │   │       │   └── index.tsx
│   │   │   │       ├── use-media-antd-query.ts
│   │   │   │       └── use-media.ts
│   │   │   ├── expand-card/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── filterColumns/
│   │   │   │   └── index.tsx
│   │   │   ├── info-item/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── infoTooltip/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── jsonEditor/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── jsonEditorWrapper/
│   │   │   │   ├── config.ts
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── left-menu-layout/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── render-title/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── x-form/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── x-form-wrapper/
│   │   │   │   ├── index.less
│   │   │   │   ├── index.tsx
│   │   │   │   └── types.ts
│   │   │   └── x-notification/
│   │   │       ├── index.less
│   │   │       └── index.tsx
│   │   ├── constants/
│   │   │   ├── api.ts
│   │   │   ├── common.ts
│   │   │   ├── menu.ts
│   │   │   ├── permission.ts
│   │   │   ├── reg.ts
│   │   │   ├── status-map.ts
│   │   │   ├── table.ts
│   │   │   └── time.ts
│   │   ├── container/
│   │   │   ├── AllModalInOne.tsx
│   │   │   ├── IndexSelect.tsx
│   │   │   ├── ProjectManager/
│   │   │   │   ├── AccessSetting.tsx
│   │   │   │   ├── MemberList.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   ├── detail.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── index.tsx
│   │   │   │   ├── resources-associated.tsx
│   │   │   │   ├── resources.tsx
│   │   │   │   └── types.ts
│   │   │   ├── RoleManager/
│   │   │   │   ├── authorized-list.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   ├── detail.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── index.tsx
│   │   │   │   ├── jurisdiction-list.tsx
│   │   │   │   └── types.ts
│   │   │   ├── Scheduling/
│   │   │   │   ├── config.tsx
│   │   │   │   ├── schedulinglog.tsx
│   │   │   │   └── taskList.tsx
│   │   │   ├── cluster/
│   │   │   │   ├── cluster-edition.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── index.tsx
│   │   │   │   ├── logic-detail/
│   │   │   │   │   ├── base-info.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── detail.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── logic-node-list.tsx
│   │   │   │   ├── logic.tsx
│   │   │   │   ├── physics-detail/
│   │   │   │   │   ├── base-info.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── detail.tsx
│   │   │   │   │   ├── edit-list/
│   │   │   │   │   │   ├── config.tsx
│   │   │   │   │   │   ├── edit-list-grid.tsx
│   │   │   │   │   │   ├── edit-list-item.tsx
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── readme.md
│   │   │   │   │   │   └── useClickOutSide.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── logic-list.tsx
│   │   │   │   │   ├── logic-node-list.tsx
│   │   │   │   │   ├── node-divide.tsx
│   │   │   │   │   ├── physics-config-info.tsx.tsx
│   │   │   │   │   ├── plugn-list.tsx
│   │   │   │   │   ├── region-task-item-modal.tsx
│   │   │   │   │   ├── searchProfiler.tsx
│   │   │   │   │   └── sense.tsx
│   │   │   │   └── physics.tsx
│   │   │   ├── custom-component.tsx
│   │   │   ├── custom-form/
│   │   │   │   ├── add-role-table.tsx
│   │   │   │   ├── base.tsx
│   │   │   │   ├── cost.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── index.ts
│   │   │   │   ├── logic-cluser-select.tsx
│   │   │   │   ├── region-transfer.tsx
│   │   │   │   ├── relevance-region.tsx
│   │   │   │   ├── step-select.tsx
│   │   │   │   ├── tpl-table-add-row/
│   │   │   │   │   ├── TableFormAddRow.tsx
│   │   │   │   │   ├── editTable.tsx
│   │   │   │   │   └── index.less
│   │   │   │   └── upload-file.tsx
│   │   │   ├── dashboard/
│   │   │   │   ├── Operation.tsx
│   │   │   │   ├── cluster.tsx
│   │   │   │   ├── components/
│   │   │   │   │   ├── echarts/
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── line.tsx
│   │   │   │   │   ├── metricsConfig.tsx
│   │   │   │   │   ├── pieCharts/
│   │   │   │   │   │   ├── constants.ts
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── pieChart.tsx
│   │   │   │   │   └── table/
│   │   │   │   │       ├── index.less
│   │   │   │   │       └── index.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   ├── index-view.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── index.tsx
│   │   │   │   └── node.tsx
│   │   │   ├── drawer/
│   │   │   │   ├── config-detail.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   ├── dsl-detail.tsx
│   │   │   │   ├── index-create.tsx
│   │   │   │   ├── index-mapping-edit.tsx
│   │   │   │   ├── index-setting-edit.tsx
│   │   │   │   ├── index-srv-forceMerge.tsx
│   │   │   │   ├── index-srv-rollover.tsx
│   │   │   │   ├── index-srv-shrinkSplit.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── mapping-diff.less
│   │   │   │   ├── mapping-diff.tsx
│   │   │   │   ├── node-monitor.tsx
│   │   │   │   ├── scheduling-detail.tsx
│   │   │   │   ├── scheduling-log.tsx
│   │   │   │   ├── shard-list/
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── tasklist-detail.tsx
│   │   │   │   ├── template-create.tsx
│   │   │   │   └── template-edit.tsx
│   │   │   ├── full-screen/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── iframe-page.tsx
│   │   │   ├── index-admin/
│   │   │   │   ├── component/
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── mapping-index.tsx
│   │   │   │   │   ├── mapping.tsx
│   │   │   │   │   ├── setting-index.tsx
│   │   │   │   │   └── setting.tsx
│   │   │   │   ├── detail.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   ├── management/
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   └── service/
│   │   │   │       ├── config.tsx
│   │   │   │       ├── index.less
│   │   │   │       └── index.tsx
│   │   │   ├── index-tpl-management/
│   │   │   │   ├── component/
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── mapping-tpl.tsx
│   │   │   │   │   ├── mapping.tsx
│   │   │   │   │   ├── preview-tpl.tsx
│   │   │   │   │   ├── setting-tpl.tsx
│   │   │   │   │   └── setting.tsx
│   │   │   │   ├── create/
│   │   │   │   │   ├── basicInfo-preview.tsx
│   │   │   │   │   ├── basicInfo.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── constant.ts
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── last-step.tsx
│   │   │   │   │   ├── mapping.tsx
│   │   │   │   │   └── setting.tsx
│   │   │   │   ├── detail/
│   │   │   │   │   ├── base-info.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── partition.tsx
│   │   │   │   │   ├── record.tsx
│   │   │   │   │   └── shard.tsx
│   │   │   │   ├── edit/
│   │   │   │   │   ├── baseInfo.tsx
│   │   │   │   │   ├── jsonMapping.tsx
│   │   │   │   │   └── jsonSetting.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   ├── management/
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   └── service/
│   │   │   │       ├── config.tsx
│   │   │   │       ├── constants.ts
│   │   │   │       ├── filterModal.tsx
│   │   │   │       ├── index.less
│   │   │   │       └── index.tsx
│   │   │   ├── indicators-kanban/
│   │   │   │   ├── cluster-kanban/
│   │   │   │   │   ├── cluster-kanban.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── index-template-view-config.tsx
│   │   │   │   │   ├── index-template-view.tsx
│   │   │   │   │   ├── index-view-config.tsx
│   │   │   │   │   ├── index-view.tsx
│   │   │   │   │   ├── node-view-config.tsx
│   │   │   │   │   ├── node-view.tsx
│   │   │   │   │   ├── overview-line-shard.tsx
│   │   │   │   │   ├── overview-view-basic.tsx
│   │   │   │   │   ├── overview-view-config.tsx
│   │   │   │   │   └── overview-view.tsx
│   │   │   │   ├── components/
│   │   │   │   │   ├── contrast-figure-config.ts
│   │   │   │   │   ├── contrast-figure.tsx
│   │   │   │   │   ├── custom-time-picker.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── indicator-config.tsx
│   │   │   │   │   ├── kanban-form.tsx
│   │   │   │   │   ├── line.tsx
│   │   │   │   │   ├── operation-panel.tsx
│   │   │   │   │   ├── refresh-time.tsx
│   │   │   │   │   ├── render-line.tsx
│   │   │   │   │   ├── select-radio.tsx
│   │   │   │   │   ├── select-time.tsx
│   │   │   │   │   ├── shard.tsx
│   │   │   │   │   ├── state-config.tsx
│   │   │   │   │   └── style.less
│   │   │   │   ├── config.tsx
│   │   │   │   ├── gateway-kanban/
│   │   │   │   │   ├── clientnode-config.tsx
│   │   │   │   │   ├── clientnode-view.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── gateway-kanban.tsx
│   │   │   │   │   ├── index-view-config.tsx
│   │   │   │   │   ├── index-view.tsx
│   │   │   │   │   ├── node-view-config.tsx
│   │   │   │   │   ├── node-view.tsx
│   │   │   │   │   ├── overview-view-config.tsx
│   │   │   │   │   ├── overview-view.tsx
│   │   │   │   │   ├── project-view-config.tsx
│   │   │   │   │   ├── project-view.tsx
│   │   │   │   │   ├── query-template-config.tsx
│   │   │   │   │   └── query-template.tsx
│   │   │   │   ├── hooks/
│   │   │   │   │   └── useMouseoutOutSide.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   └── style/
│   │   │   │       ├── cluster-kanban.less
│   │   │   │       ├── contrast-figure.less
│   │   │   │       ├── gateway-kanban.less
│   │   │   │       ├── index.less
│   │   │   │       ├── index.ts
│   │   │   │       ├── kanban-form.less
│   │   │   │       ├── node-view.less
│   │   │   │       ├── refresh-time.less
│   │   │   │       ├── select-time.less
│   │   │   │       └── state-config.less
│   │   │   ├── modal/
│   │   │   │   ├── edition-cluster/
│   │   │   │   │   └── add-package.tsx
│   │   │   │   ├── index-admin/
│   │   │   │   │   ├── batch-execute.tsx
│   │   │   │   │   ├── delete-alias.tsx
│   │   │   │   │   ├── delete-index.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── set-alias.tsx
│   │   │   │   ├── indicators/
│   │   │   │   │   ├── big-picture.tsx
│   │   │   │   │   ├── chart-modal.less
│   │   │   │   │   ├── chart-tablemodal.tsx
│   │   │   │   │   ├── index-config.less
│   │   │   │   │   └── index-config.tsx
│   │   │   │   ├── logic-cluster/
│   │   │   │   │   ├── apply-authority.tsx
│   │   │   │   │   ├── apply-cluster.tsx
│   │   │   │   │   ├── deleteStyle.less
│   │   │   │   │   ├── edit-cluster.tsx
│   │   │   │   │   ├── expand-shrink-cluster.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── offlineLogicCluster.tsx
│   │   │   │   ├── physics-cluster/
│   │   │   │   │   ├── access-cluster.tsx
│   │   │   │   │   ├── apply-cluster.tsx
│   │   │   │   │   ├── bind-gateway.tsx
│   │   │   │   │   ├── deleteCluster.tsx
│   │   │   │   │   ├── deleteStyle.less
│   │   │   │   │   ├── docker-expand-shrink-cluster.tsx
│   │   │   │   │   ├── edit-cluster.tsx
│   │   │   │   │   ├── edit-config.tsx
│   │   │   │   │   ├── edit-gateway-url.tsx
│   │   │   │   │   ├── edit-plugin-desc.tsx
│   │   │   │   │   ├── expand-shrink-cluster.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── install.tsx
│   │   │   │   │   ├── new-config.tsx
│   │   │   │   │   ├── physicsClusterTask/
│   │   │   │   │   │   ├── codeMirror.tsx
│   │   │   │   │   │   ├── config.tsx
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── indicesTable.tsx
│   │   │   │   │   │   ├── shardDistributeTable.tsx
│   │   │   │   │   │   ├── shardTable.tsx
│   │   │   │   │   │   ├── svg.tsx
│   │   │   │   │   │   └── table.tsx
│   │   │   │   │   ├── region-admin.tsx
│   │   │   │   │   ├── region-divide.tsx
│   │   │   │   │   ├── restart-cluster.tsx
│   │   │   │   │   ├── senior.tsx
│   │   │   │   │   ├── unintallPlugn.tsx
│   │   │   │   │   ├── upgrade-cluster.tsx
│   │   │   │   │   └── userPassword.tsx
│   │   │   │   ├── plugn/
│   │   │   │   │   └── custom-plugn.tsx
│   │   │   │   ├── project/
│   │   │   │   │   ├── access-setting.tsx
│   │   │   │   │   ├── add-project.tsx
│   │   │   │   │   ├── delete-project.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── resources-associated.tsx
│   │   │   │   │   └── transfer-of-resources.tsx
│   │   │   │   ├── role/
│   │   │   │   │   └── add-or-edit-role.tsx
│   │   │   │   ├── sql-query/
│   │   │   │   │   └── mapping.tsx
│   │   │   │   ├── system/
│   │   │   │   │   ├── cluster-config.tsx
│   │   │   │   │   └── index.less
│   │   │   │   ├── template/
│   │   │   │   │   ├── DCDR-detail.tsx
│   │   │   │   │   ├── batch-update.tsx
│   │   │   │   │   ├── clear.tsx
│   │   │   │   │   ├── create-DCDR.tsx
│   │   │   │   │   ├── dcdr-timeout.tsx
│   │   │   │   │   ├── expand-shrink-capacity.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── open-separate.tsx
│   │   │   │   └── work-order/
│   │   │   │       ├── approval-drawer.tsx
│   │   │   │       ├── approval-modal.tsx
│   │   │   │       ├── index.less
│   │   │   │       └── task-log.tsx
│   │   │   ├── search-query/
│   │   │   │   ├── components/
│   │   │   │   │   ├── editLimit.less
│   │   │   │   │   ├── editLimit.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── search-query-form.less
│   │   │   │   │   ├── search-query-form.tsx
│   │   │   │   │   └── select-time.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   ├── dsl-page.tsx
│   │   │   │   ├── dsl-tpl.tsx
│   │   │   │   ├── error-query.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── kibana-page.tsx
│   │   │   │   ├── query-tpl.tsx
│   │   │   │   ├── slow-query.tsx
│   │   │   │   ├── sql-index.less
│   │   │   │   ├── sql-page.tsx
│   │   │   │   └── sql-query.tsx
│   │   │   ├── staff-select.tsx
│   │   │   ├── system/
│   │   │   │   ├── cluster-config.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   └── operating-list.tsx
│   │   │   ├── tooltip.tsx
│   │   │   └── work-order/
│   │   │       ├── base-info.tsx
│   │   │       ├── config.tsx
│   │   │       ├── dcdr-detail.tsx
│   │   │       ├── dcdr-drawer.tsx
│   │   │       ├── dcdr-plan-speed.tsx
│   │   │       ├── dcdr.less
│   │   │       ├── index.less
│   │   │       ├── my-application.tsx
│   │   │       ├── my-approval.tsx
│   │   │       ├── order-detail.tsx
│   │   │       ├── plan-speed.tsx
│   │   │       ├── task-detail.tsx
│   │   │       └── task.tsx
│   │   ├── d1-packages/
│   │   │   ├── CommonComponents/
│   │   │   │   └── ProgressBar/
│   │   │   │       ├── NProgress.js
│   │   │   │       ├── index.less
│   │   │   │       └── index.ts
│   │   │   ├── CommonPages/
│   │   │   │   ├── Exception/
│   │   │   │   │   ├── Page401/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── Page403/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── Page404/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── Page500/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── style.less
│   │   │   │   ├── Login/
│   │   │   │   │   ├── LoginForm.tsx
│   │   │   │   │   ├── RegisterForm.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── crypto.ts
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── RenderTitle/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── RoleManage/
│   │   │   │   │   ├── BindUser.tsx
│   │   │   │   │   ├── PermissionTree.tsx
│   │   │   │   │   ├── RecycleUser.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── detail.less
│   │   │   │   │   ├── detail.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── service.ts
│   │   │   │   └── UserManage/
│   │   │   │       ├── config.tsx
│   │   │   │       ├── detail.less
│   │   │   │       ├── detail.tsx
│   │   │   │       ├── index.less
│   │   │   │       ├── index.tsx
│   │   │   │       └── service.ts
│   │   │   ├── GlobalStore.js
│   │   │   ├── Layout/
│   │   │   │   ├── CustomProjectSelect/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── HeaderConditionComponent.tsx
│   │   │   │   ├── LeftMenu.tsx
│   │   │   │   ├── MenuContent.tsx
│   │   │   │   ├── MsgPanel/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── ProjectSelect/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── UseCenter/
│   │   │   │   │   ├── config.ts
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── assets/
│   │   │   │   │   ├── iconfont-es/
│   │   │   │   │   │   ├── demo.css
│   │   │   │   │   │   ├── demo_index.html
│   │   │   │   │   │   ├── iconfont.css
│   │   │   │   │   │   ├── iconfont.js
│   │   │   │   │   │   └── iconfont.json
│   │   │   │   │   ├── iconfont-logi/
│   │   │   │   │   │   ├── demo.css
│   │   │   │   │   │   ├── demo_index.html
│   │   │   │   │   │   ├── iconfont.css
│   │   │   │   │   │   ├── iconfont.js
│   │   │   │   │   │   └── iconfont.json
│   │   │   │   │   └── style.less
│   │   │   │   ├── config.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── index.tsx
│   │   │   │   ├── interface.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── utils.tsx
│   │   │   ├── ProForm/
│   │   │   │   ├── DrawerForm/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── ModalForm/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── QueryForm/
│   │   │   │   │   ├── QueryForm.tsx
│   │   │   │   │   ├── context.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── readme.md
│   │   │   │   │   ├── style/
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── use-media-antd-query.ts
│   │   │   │   │   └── use-media.ts
│   │   │   │   ├── StepForm/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── Submitter/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── XForm/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   └── index.ts
│   │   │   ├── ProTable/
│   │   │   │   ├── DTable/
│   │   │   │   │   ├── filterTableColumns.less
│   │   │   │   │   ├── filterTableColumns.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── readme.md
│   │   │   │   ├── RenderTableOpts/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── XTable/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── QueryForm/
│   │   │   │   ├── QueryForm.tsx
│   │   │   │   ├── context.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   ├── readme.md
│   │   │   │   ├── style/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── use-media-antd-query.ts
│   │   │   │   └── use-media.ts
│   │   │   ├── RouterGuard/
│   │   │   │   ├── README.md
│   │   │   │   ├── index.tsx
│   │   │   │   ├── route-guard-wrap.tsx
│   │   │   │   └── route-guard.tsx
│   │   │   ├── api.tsx
│   │   │   ├── config.js
│   │   │   ├── container/
│   │   │   │   ├── Grid/
│   │   │   │   │   ├── RowContext.tsx
│   │   │   │   │   ├── _util/
│   │   │   │   │   │   └── responsiveObserve.ts
│   │   │   │   │   ├── col.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── row.tsx
│   │   │   │   │   └── style/
│   │   │   │   │       ├── index.less
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       └── mixin.less
│   │   │   │   ├── demo/
│   │   │   │   │   └── base.md
│   │   │   │   ├── example/
│   │   │   │   │   ├── grid.less
│   │   │   │   │   └── grid.tsx
│   │   │   │   ├── index.md
│   │   │   │   └── index.tsx
│   │   │   ├── d-range-time/
│   │   │   │   ├── demo/
│   │   │   │   │   └── custom.md
│   │   │   │   ├── index.md
│   │   │   │   ├── index.tsx
│   │   │   │   └── style/
│   │   │   │       └── index.less
│   │   │   ├── dantd/
│   │   │   │   ├── DTable/
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── readme.md
│   │   │   │   ├── QueryForm/
│   │   │   │   │   ├── QueryForm.tsx
│   │   │   │   │   ├── context.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── readme.md
│   │   │   │   │   ├── style/
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── use-media-antd-query.ts
│   │   │   │   │   └── use-media.ts
│   │   │   │   ├── components/
│   │   │   │   │   ├── config-provider/
│   │   │   │   │   │   ├── demo/
│   │   │   │   │   │   │   ├── direction.md
│   │   │   │   │   │   │   ├── locale.md
│   │   │   │   │   │   │   ├── prefixCls.md
│   │   │   │   │   │   │   └── size.md
│   │   │   │   │   │   ├── index.en-US.md
│   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── hook/
│   │   │   │   │   │   ├── create-global-state/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   ├── useEffectOnce.ts
│   │   │   │   │   │   │   └── useIsomorphicLayoutEffect.ts
│   │   │   │   │   │   ├── create-reducer-context/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── create-state-context/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── use-async/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── use-async-fn/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── use-async-retry/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── use-debounce/
│   │   │   │   │   │   │   ├── demo/
│   │   │   │   │   │   │   │   └── useDebounce.md
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── use-deep-compare-effect/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── useCustomCompareEffect.ts
│   │   │   │   │   │   ├── use-dynamic-list/
│   │   │   │   │   │   │   ├── demo/
│   │   │   │   │   │   │   │   └── basic.md
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── use-interval/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── use-mounted-state/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   └── use-timeout/
│   │   │   │   │   │       ├── index.md
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       ├── useTimeoutFn.ts
│   │   │   │   │   │       └── useUpdate.ts
│   │   │   │   │   ├── locale/
│   │   │   │   │   │   ├── en_US.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── zh_CN.tsx
│   │   │   │   │   ├── locale-provider/
│   │   │   │   │   │   ├── context.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── provider.tsx
│   │   │   │   │   │   ├── useIntl.tsx
│   │   │   │   │   │   └── withIntl.tsx
│   │   │   │   │   └── utils/
│   │   │   │   │       └── index.tsx
│   │   │   │   └── readme.md
│   │   │   ├── drag-group/
│   │   │   │   ├── DragGroup.tsx
│   │   │   │   ├── DragableContainer.tsx
│   │   │   │   ├── DragableItem.tsx
│   │   │   │   ├── demo/
│   │   │   │   │   ├── card.md
│   │   │   │   │   └── custom.md
│   │   │   │   ├── index.md
│   │   │   │   └── index.tsx
│   │   │   └── index.tsx
│   │   ├── index.html
│   │   ├── index.less
│   │   ├── index.tsx
│   │   ├── interface/
│   │   │   ├── common.ts
│   │   │   └── project.ts
│   │   ├── lib/
│   │   │   ├── api-cache.ts
│   │   │   ├── fetch.ts
│   │   │   ├── permission.ts
│   │   │   ├── url-parser.ts
│   │   │   └── utils.ts
│   │   ├── locales/
│   │   │   ├── en.tsx
│   │   │   └── zh.tsx
│   │   ├── pages/
│   │   │   ├── cachePage.tsx
│   │   │   ├── cluster-admin.tsx
│   │   │   ├── cluster-system.tsx
│   │   │   ├── dashboard.tsx
│   │   │   ├── index-admin.tsx
│   │   │   ├── index-tpl-management.tsx
│   │   │   ├── index.less
│   │   │   ├── index.tsx
│   │   │   ├── indicators-kanban.tsx
│   │   │   ├── scheduling.tsx
│   │   │   ├── search-query.tsx
│   │   │   ├── system-page.tsx
│   │   │   └── work-order.tsx
│   │   ├── reducers/
│   │   │   ├── app.ts
│   │   │   ├── cluster-base.ts
│   │   │   ├── cluster-kanban.ts
│   │   │   ├── create-index.ts
│   │   │   ├── dashboard.ts
│   │   │   ├── gateway-kanban.ts
│   │   │   ├── index.ts
│   │   │   ├── modal.ts
│   │   │   ├── phy-cluster-config.ts
│   │   │   ├── region.ts
│   │   │   ├── sliderMenu.ts
│   │   │   ├── task.ts
│   │   │   └── user.ts
│   │   ├── store/
│   │   │   ├── index.ts
│   │   │   └── type.d.ts
│   │   ├── style-addtion.less
│   │   └── styles/
│   │       ├── base.less
│   │       ├── common.less
│   │       ├── custom-component.less
│   │       ├── detail.less
│   │       ├── search-filter.less
│   │       ├── sense_overrides.less
│   │       └── table-filter.less
│   ├── tsconfig.json
│   └── webpack.config.js
├── arius-gateway/
│   ├── README.md
│   ├── arius-gateway-common/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── didi/
│   │                       └── arius/
│   │                           └── gateway/
│   │                               ├── common/
│   │                               │   ├── consts/
│   │                               │   │   ├── QueryConsts.java
│   │                               │   │   └── RestConsts.java
│   │                               │   ├── enums/
│   │                               │   │   ├── AggsTypeEnum.java
│   │                               │   │   ├── ClusterType.java
│   │                               │   │   ├── FlowStatus.java
│   │                               │   │   ├── FlowType.java
│   │                               │   │   ├── RunModeEnum.java
│   │                               │   │   ├── SearchType.java
│   │                               │   │   └── TemplateBlockTypeEnum.java
│   │                               │   ├── event/
│   │                               │   │   ├── ActionPostResponseEvent.java
│   │                               │   │   ├── PostResponseEvent.java
│   │                               │   │   └── QueryPostResponseEvent.java
│   │                               │   ├── exception/
│   │                               │   │   ├── AccessForbiddenException.java
│   │                               │   │   ├── AggsParseException.java
│   │                               │   │   ├── ClusterNotFoundException.java
│   │                               │   │   ├── DslForbiddenException.java
│   │                               │   │   ├── DslRateLimitException.java
│   │                               │   │   ├── FlowLimitException.java
│   │                               │   │   ├── IndexDateFieldException.java
│   │                               │   │   ├── IndexNotFoundException.java
│   │                               │   │   ├── IndexNotPermittedException.java
│   │                               │   │   ├── IndexRateLimitException.java
│   │                               │   │   ├── InvalidAppInfoException.java
│   │                               │   │   ├── InvalidParameterException.java
│   │                               │   │   ├── QueryDslLengthException.java
│   │                               │   │   ├── QueryException.java
│   │                               │   │   ├── ResponseTooLargeException.java
│   │                               │   │   ├── SQLNotPermittedException.java
│   │                               │   │   ├── ServerBusyException.java
│   │                               │   │   ├── ServerException.java
│   │                               │   │   ├── SettingsForbiddenException.java
│   │                               │   │   ├── TemplateBlockException.java
│   │                               │   │   ├── TooManyIndexException.java
│   │                               │   │   ├── UnauthorizedException.java
│   │                               │   │   └── UriNotFoundException.java
│   │                               │   ├── flowcontrol/
│   │                               │   │   ├── AreaFlow.java
│   │                               │   │   ├── AreaFlowCache.java
│   │                               │   │   ├── Flow.java
│   │                               │   │   ├── FlowController.java
│   │                               │   │   └── FlowLimit.java
│   │                               │   ├── metadata/
│   │                               │   │   ├── ActionContext.java
│   │                               │   │   ├── AggsAnalyzerContext.java
│   │                               │   │   ├── AggsBukcetInfo.java
│   │                               │   │   ├── AggsPath.java
│   │                               │   │   ├── AppDetail.java
│   │                               │   │   ├── AuthRequest.java
│   │                               │   │   ├── BaseContext.java
│   │                               │   │   ├── DSLTemplate.java
│   │                               │   │   ├── ESCluster.java
│   │                               │   │   ├── FetchFields.java
│   │                               │   │   ├── FieldInfo.java
│   │                               │   │   ├── FlowThreshold.java
│   │                               │   │   ├── IndexTemplate.java
│   │                               │   │   ├── JoinLogContext.java
│   │                               │   │   ├── MappingIndexNameWhiteAppIds.java
│   │                               │   │   ├── MetaVersion.java
│   │                               │   │   ├── QueryContext.java
│   │                               │   │   ├── RateLimitDetail.java
│   │                               │   │   ├── RateLimitStat.java
│   │                               │   │   ├── TemplateAlias.java
│   │                               │   │   ├── TemplateClusterInfo.java
│   │                               │   │   ├── TemplateInfo.java
│   │                               │   │   └── WrapESGetResponse.java
│   │                               │   ├── metrics/
│   │                               │   │   ├── ActionMetric.java
│   │                               │   │   ├── AppMetric.java
│   │                               │   │   ├── IndexMetrics.java
│   │                               │   │   ├── LoggerMetric.java
│   │                               │   │   ├── QueryMetrics.java
│   │                               │   │   ├── SearchMetric.java
│   │                               │   │   ├── StatusMetric.java
│   │                               │   │   └── log/
│   │                               │   │       ├── DslLogEntity.java
│   │                               │   │       └── DslMetricHelper.java
│   │                               │   └── utils/
│   │                               │       ├── AppUtil.java
│   │                               │       ├── CommonUtil.java
│   │                               │       ├── Convert.java
│   │                               │       ├── DateUtil.java
│   │                               │       ├── HttpClient.java
│   │                               │       ├── IndexTire.java
│   │                               │       ├── IndexTireBuilder.java
│   │                               │       ├── MetricUtil.java
│   │                               │       ├── PathTrie.java
│   │                               │       └── Regex.java
│   │                               └── elasticsearch/
│   │                                   └── client/
│   │                                       ├── ESClient.java
│   │                                       ├── gateway/
│   │                                       │   ├── direct/
│   │                                       │   │   ├── DirectAction.java
│   │     

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
#.gitignore for java
*.class

# Package Files #
*.jar
*.war
*.ear
**/target/
**/output/
**/META-INF/
# logs
/stacktrace.log
/test/reports
logs/
*.log
*.log.*

## .gitignore for intellij
*.iml
*.ipr
*.iws
.idea/
.mvn/

## .gitignore for eclipse
*.pydevproject
.project
.metadata
bin/**
tmp/**
tmp/**/*
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath

/*.settings
polaris-agent/*.project
polaris-agent/polaris-agent-api/*.classpath
polaris-agent/polaris-agent-api/*.project
.DS_Store
.gitversion
**/.flattened-pom.xml

================================================
FILE: README.md
================================================
<img src="./doc/file/KnowSearch.png" width="300"/>

# 1.KnowSearch简介

KnowSearch是面向Elasticsearch研发与运维人员,围绕集群、索引构建的零侵入、多租户的Elasticsearch GUI管控平台。历经滴滴PB级海量索引数据考验、金融级1000+ES集群运营实战打磨,围绕Elasticsearch构建的可见、可管、可控的服务体系。

- 围绕ES用户,构建了自助服务体系
  - 量贩式集群/索引资源申请与管理
  - 低门槛数据建模
  - DSL/SQL灵活数据探查
  - 基于DSL查询模板,自助问题诊断

- 围绕ES运维,构建了场景化运维服务体系
  - 基于Dashboard集群问题主动发现
  - 基于集群看板高频问题快速诊断
  - 基于集群管理,存量5.X+版本集群全量纳管、高频集群与索引变更批量支持
  - 基于原生ES网关,零侵入、插件化的构建查询/写入限流、权限校验、跨集群访问、DSL查询模板分析与管控能力

体验地址 http://101.43.178.205 ,用户名/密码:admin/admin123
<br/>
Grafana地址 http://101.43.178.205:3000

# 2.KnowSearch特性

滴滴内部大量使用 ES 来支撑日志探查与安全分析、交易数据近实时检索、企业SKU搜索与推荐等业务场景的基础搜索服务。在开源 Elasticsearch 基础上提供离线索引快速导入、跨集群复制、索引模板服务的企业特性,平台整体具有以下特点:

- 5.X、6.X、7.X、8.X 众多主流Elasticsearch版本零侵入、统一纳管,多集群统一管理
- 集群、节点、索引维度,30+ 稳定性、性能风险点主动巡检,Dashboard统一呈现
- 集群、节点、索引维度,200+指标探查、同环比趋势分析、场景化指标筛选,助力问题高效诊断
- 应用视角、索引视角、查询模板视角、ClientNode视角 30+ 用户写入、查询网关指标同环比监控分析
- 集群动态配置管理、Sense 运维场景化命令集成、SearchProfiler集群慢查分析、集群快捷命令GUI集成
- 索引Mapping/Setting/别名管理、RollOver/Shrink/Split/FroceMerge/读写禁用高频操作GUI批量执行

# 3.KnowSearch产品图

DashBoard、集群看板、网关看板、集群管理、索引管理核心产品功能图如下:

<img src="./doc/file/KnowSearch-Dashboard.png" style="zoom:50%;" />
<img src="./doc/file/KnowSearch-IndexBoard.png"  style="zoom:50%;" />
<img src="./doc/file/KnowSearch-GateWay-Metric.png"  style="zoom:50%;"/>
<img src="./doc/file/KnowSearch-ClusterManager.png" style="zoom:50%;" />
<img src="./doc/file/KnowSearch-IndexManager.png"  style="zoom:50%;" />

# 4.文档资源

- [KnowSearch用户手册](doc/KnowSearch用户手册.md)
- [KnowSearch安装部署文档](doc/KnowSearch安装部署文档.md)
- [KnowSearch设计说明](doc/KnowSearch设计说明.md)
- [KnowSearch-GateWay设计说明](doc/KnowSearch-GateWay设计文档.md)
- [KnowSearch源码编译运行文档](doc/KnowSearch源码编译运行文档.md)
- [ElasticSearch最佳实践](doc/ElasticSearch最佳实践.md)
- [KnowSearch常见FAQ](doc/KnowSearch常见FAQ.md)

# 5.技术交流

微信加群:添加`PenceXie`的微信号备注KnowSearch加群,加群之前有劳点一下 Star,一个小小的 Star 是对KnowSearch作者们努力建设社区的动力。
如果有商业合作需求,也欢迎咨询。



================================================
FILE: Releases_Notes.md
================================================
# v0.3.1

版本上线时间:2022-12-30

## 能力提升
- KnowSearch工程,基于Metrics构建观测体系,指标通过Grafana展示
- 物理集群接入流程加入Kibana/Cerebro外联地址,集群详情支持跳转到对应地址
- 指标场景化设计,将指标看板细分为读写黄金指标、读写性能指标、读写热点指标、读写内存指标

## 体验优化
- 检索查询页面体验优化
- 物理集群-快捷命令操作体验优化
- 索引模板-禁用读写操作用户侧变更为工单形式
- 子页面详情页支持打开多个
- 一级二级页面展示优化,UI统一
- 用户管理新增删除能力,新增用户密码展示
- 指标看板支持对象多选
- 查询模板中【启/禁用】、【修改限流值】加入工单审批流程
- 下线kibana依赖
- 模块改动,将低频模块转移至【系统管理】中

## BUG修复
- 脚本初始化后,需要还原平台配置默认值
- 指标看板展示性能问题解决
- 实例名称兼容中文



# v0.2.3

版本上线时间:2022-04-24

## 能力提升

- 集群看板—索引视图中增加以.开头的系统索引。
- 集群看板增加指标监控项:stored_fields_memory。
- 集群看板—索引视图指标优化:索引写入耗时优化为单条文档耗时,merge\flush\refresh耗时优化为单次耗时。
- 指标拆解:网关写入量条/min拆为为写入吞吐量/min、写入请求量/min。
- 物理集群—接入集群节点校验是否属于一个集群。
- 编辑mapping不同步当前索引,在下次创建分区时生效。
- 增加模块:Dashboard。
- 集群看板—节点视图增加堆内存young/old区监控。
- 优化指标看板中起始位置曲线尖刺。

## 体验优化

- 集群看板—节点视图选择节点时,支持一次选择多个节点。
- 集群看板—总览视图指标查看时,多个图表可以联动显示。
- 指标布局优化,统一write queue与search queue的名称。
- 指标看板节点列表按指标大小排序。
- 集群总览自动刷新支持全页面刷新。
- 查询模板详情增加md5信息。
- 搜索框输入内容去除前后空格。
- 集群看板,时间筛选器起止时间跨度限制为7天内。
- 新建模板未开启索引模板服务时置灰相关项mapping和setting。
- 平台配置中的【值】长度上限修改为1000。
- 索引模板操作记录分类,mapping编辑部分优化。
- 搜索框支持回车查询。
- 总览视图新增堆内存使用率。
- 索引名称、索引模板名称展示优化(索引50 模板30字符)。
- 指标看板搜索框宽度,集群看板索引视图50字符,索引模板30字符,网关看板索引视图50字符。

## BUG修复

- 集群看板—节点视图merge,flush,refresh展示每分钟的次数(次/min)。
- DCDR版本校验、任务失败后可再次提交。
- 索引模板升版本,新增的版本号只加到当天分区,第二天新建的分区不加版本号后缀。



# v0.2.2

版本上线时间:2022-03-14

## 能力提升

- DCDR特性去除对Rack依赖,优化DCDR链路创建规范,新建链路时可以进行rack选择。
- admin和gateway中 xxx.yml 或者 xxx.properties中配置项port说明不明确。应该指明是http port 还是tcp port。
- 索引删除逻辑优化(索引管理页面新增close和open按钮,作用是打开或者关闭索引,用户可以选择close索引)。
- Elasticsearch元数据集群专项治理(包括增加routing以及索引index sort)。
- GateWay日志优化+Get Node Task记录,整体写入与查询问题。
- 2.3.3 存量ES集群版本全纳管,索引管理模板中check禁用读、禁用写。
- 网关原生模式:支持限流(支持appid粒度)、支持gateway对请求token校验。
- Kibana的DisCover模块代理逻辑(非dsl控制台也要数据隔离,带上物理集群名到gateway查询)。
- 增加Sense管控的集群路由能力。
- 元信息指标读写都在GateWay,网关看板指标保障准确(网关看板添加clientNode视图)。
- 指标看板-topN算法优化。
- 指标看板新增索引模板视图的指标监控。

## 体验优化

- 平台搜索框需要具备记录能力,切换不清空。
- 接入集群端口放开,不限制只能4位。之前是限制4位,后面放开为0-25535。
- 集群版本管理体验优化 ,新增版本标识:滴滴内部、开源。
- 集群名称默认物理名称+集群版本号(输入框加提示,规范用户操作)。
- 平台配置项的说明文档优化,配置说明优化(跳转至github文档说明)。
- 模板管理的操作项将平台能力与索引模板服务区分展示。
- 插件管理定义(物理集群插件管理分为平台能力插件、ES能能力插件)。
- 索引模板详情 Mapping、 Setting  、DCDR TAB页体验页面优化。
- 全平台集群下拉框需要支持搜索能力。
- 检索查询--索引查新--SQL查询页面体验优化。
- 指标配置新增黄金指标配置,点击一键勾选黄金指标。
- 容量规划概念统一为索引RollOver(shard调整和indexRollover 统一,索引模版服务名称由容量规划改为索引规划)。
- 索引模板管理页面加入物理集群筛选项。
- 指标图表可以同类中进行拖拽,指标配置顺序同步修改。
- 接入集群记录主机分为两种模式:自动获取、全量录入。
- LogIEM全平台列表排序支持全局排序。
- 新建集群增加节点规格输入框,物理集群详情-节点划分新增节点规格展示列。
- 筛选分片过多的集群 :物理集群列表增加一列”活跃分片数“,支持排序。
- 索引模板mapping、setting等更新操作需要保留记录(旧mapping、setting和修改后的mapping setting)。
- 逻辑集群增加等级标识:核心、重要、一般。索引模板支持业务等级与逻辑集群绑定,新建模板时默认与所选集群业务等级一致,支持修改,升降等级均可。
- 集群接入增加所属资源类型:acs、vmware、信创(tce)。
- 检索查询-DSL模板改成查询诊断。
- 总览视图和节点视图中涉及到数量趋势、TASK耗时的指标名称改为(节点)执行任务数量、(节点)执行任务数耗时。

## bug修复

- 修复dcdr采集任务报错,自己的元数据es引擎根本没有DCDR的actionplugin。
- 修复DSL查询切换集群时报错问题(GET  _cluster/health?v)。
- 修复网关看板--查询模板点击事件消失问题(可能是代码未合到主分支导致)。
- 统一集群看板的节点角色概念和物理集群详情中节点划分的角色概念。
- 集群状态statustype 0,1,2统一标准。
- 索引模板名称不支持大写字母,前端修复。


================================================
FILE: arius-admin/README.md
================================================
## 1. 项目背景
    arius-admin-v2 致力于实现一套于对Elasticsearch元数据的管控平台,负责维护项目(APPID)、索引、Elasticsearch集群资源等信息的管理,并维护三者之前的关系;对外暴露restFul接口,以提供查询管控元数据的能力。
## 2. 模块划分
arius-admin-v2由10个主要的工程和扩展增值服务组成:

```java
arius-admin-rest            表现层1,可以直接封装Manager接口暴露成restful接口 
arius-admin-task            表现层2,提供auv-job定时调度任务入口, 任务实现在arius-admin-biz/arius-admin-core中 
arius-admin-common          基础组件层1,存放业务需要数据结构, 如Java POJO(entity、po)、公共工具方法、事件等 
arius-admin-client          基础组件层2,存放业务需要的POJO(vo、dto)、枚举等, 并且提供客户端请求响应的数据实体。 
arius-admin-biz             业务层1,负责对arius-admin-core中各种的业务逻辑进行聚合处理,提供表现层所需要的数据实体 
arius-admin-extend          业务层2,扩展服务, 如容量规划等 
arius-admin-core            核心层1,提供核心的管控能力, 主要的业务逻辑实现, 如集群、索引、项目等 
arius-admin-metadata        核心层2,负责对Elasticsearch的元数据采集,如索引指标统计、节点指标统计, 提供的能力包括但不限于DSL分析、健康检查等 
arius-admin-persistence     数据层1,负责对MySQL和Elasticsearch中的数据进行操作 
arius-admin-remote          数据层2,获取第三方服务数据, 如访问文件存储系统、企业部门系统等
```

名词定义:

```java
resource:       逻辑资源
cluster:        物理ES集群
region:         一组ES DataNode组成的最小资源分配单位
```


​    
## 3. 如何使用
    可单独部署,也可配合网关 arius-gateway-v2 一同使用,致力于更高效的管控 Elasticsearch 元数据

### 3.1 配置
    配置环境文件:application-xxx.properties
#### 3.1.1 更新ES数据集群名称
```java
es.update.cluster.name: {name}
es.client.cluster.port: {port}
```

#### 3.1.2 网关配置
    es.gateway.url: {host}
    es.gateway.port: {port}
    es.appid: {appId1},{appId2},{appId3}
    es.password: {passwd},{passwd},{passwd}

#### 3.1.3 数据源配置
    datasource:
        name: data
        type: com.alibaba.druid.pool.DruidDataSource 
        druid:
          driver-class-name: com.mysql.jdbc.Driver
          url: jdbc:mysql://{host}:{port}/{dbName}?useUnicode=true&characterEncoding=utf8&jdbcCompliantTruncation=true&allowMultiQueries=true&useSSL=false
        username: {username}
        password: {password}
    auv-job:
        jdbc-url: jdbc:mysql://{host}:{port}/{dbName}?useUnicode=true&characterEncoding=utf8&jdbcCompliantTruncation=true&allowMultiQueries=true&useSSL=false
        username: {username}
        password: {password}

### 3.2 打包
    mvn clean package -Dmaven.test.skip=true

### 3.3 运行
    java -jar arius-admin-rest.jar --spring.profiles.active=xxx (test、dev)

================================================
FILE: arius-admin/arius-admin-biz/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.didichuxing.datachannel</groupId>
        <artifactId>arius-admin</artifactId>
         <version>${revision}${sha1}${changelist}</version>
    </parent>

    <artifactId>arius-admin-biz</artifactId>

    <dependencies>
       

        <dependency>
            <groupId>com.didichuxing.datachannel</groupId>
            <artifactId>arius-admin-common</artifactId>
        </dependency>

        <dependency>
            <groupId>com.didichuxing.datachannel</groupId>
            <artifactId>arius-admin-remote</artifactId>
        </dependency>

        <dependency>
            <groupId>com.didichuxing.datachannel</groupId>
            <artifactId>arius-admin-persistence</artifactId>
        </dependency>

        <dependency>
            <groupId>com.didichuxing.datachannel</groupId>
            <artifactId>arius-admin-core</artifactId>
        </dependency>

        <dependency>
            <groupId>com.didichuxing.datachannel</groupId>
            <artifactId>arius-admin-metadata</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
        </dependency>

        <dependency>
            <groupId>io.github.knowstack</groupId>
            <artifactId>kf-elasticsearch-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-email</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>com.sun.mail</groupId>
                    <artifactId>javax.mail</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
        </dependency>

        <dependency>
            <groupId>org.reflections</groupId>
            <artifactId>reflections</artifactId>
        </dependency>

    </dependencies>

</project>

================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterContextManager.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster;

import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterLogicContext;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterPhyContext;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.region.ClusterRegion;
import java.util.List;
import java.util.Map;

/**
 * Created by linyunan on 2021-06-08
 * 后续下线
 * {@see 0.3.2}
 */
@Deprecated
public interface ClusterContextManager {
    /**
     * 刷新物理集群上下文
     * @param clusterPhyName  物理集群名称
     * @return ClusterPhyContext 物理集群上下文
     */
    ClusterPhyContext flushClusterPhyContext(String clusterPhyName);

    /**
     * 刷新逻辑集群上下文
     * @param clusterLogicId   逻辑集群Id
     * @return ClusterLogicContext 逻辑集群上下文     
     */
    ClusterLogicContext flushClusterLogicContext(Long clusterLogicId);

    /**
     * 根据region信息更新集群上下文
     * @param clusterRegion
     */
    void flushClusterContextByClusterRegion(ClusterRegion clusterRegion);

    /**
     * 校验逻辑集群是可否关联物理集群, 不同类型的逻辑集群, 校验规则不一样
     * @param clusterLogicId
     * @param clusterPhyName
     * @param regionId
     * @param clusterLogicType     
     */
    Result<Boolean> canClusterLogicAssociatedPhyCluster(Long clusterLogicId, String clusterPhyName, Long regionId,
                                                        Integer clusterLogicType);

    /**
     * 获取可关联的物理集群名称列表, 针对新建逻辑集群、逻辑集群关联region等操作
     * @param clusterLogicIdclusterLogicType 
     * @param clusterLogicId
     */
    Result<List<String>> getCanBeAssociatedClustersPhys(Integer clusterLogicType, Long clusterLogicId);

    /**
     * 获取集群关联逻辑集群名称列表
     * @param clusterPhyName     
     */
    List<String> getClusterPhyAssociatedClusterLogicNames(String clusterPhyName);

    /**
     * 构建物理集群上下文
     * @param cluster
     * @return ClusterPhyContext 
     */
    ClusterPhyContext getClusterPhyContext(String cluster);

     /**
     * 从缓存中获取物理集群上下文
     * @param cluster
     * @return ClusterPhyContext 
     */
    ClusterPhyContext getClusterPhyContextCache(String cluster);

    /**
     * 获取物理集群对应的上下文信息Map
     * @return key-> 物理集群名称, value 上下文信息
     */
    Map<String, ClusterPhyContext> listClusterPhyContextMap();

    /**
     * 从缓存中获取逻辑集群上下文
     *
     * @param clusterLogicId 逻辑集群Id
     * @return ClusterLogicContext 逻辑集群上下文
     */
    ClusterLogicContext getClusterLogicContextCache(Long clusterLogicId);

    /**
     * 构建逻辑集群上下文
     * @param clusterLogicId 逻辑集群Id
     * @return ClusterLogicContext 逻辑集群上下文
     */
    ClusterLogicContext getClusterLogicContext(Long clusterLogicId);
}


================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterIndexManager.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster;

import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ESClusterRoleHostVO;
import java.util.List;

/**
 * 索引业务相关.
 *
 * @ClassName ClusterIndexManager
 * @Author gyp
 * @Date 2022/6/13
 * @Version 1.0
 */
public interface ClusterIndexManager {
    /**
     * 获取逻辑集群索引列表
     *
     * @param clusterId 集群id
     * @param projectId 项目id
     * @return {@link Result}<{@link List}<{@link ESClusterRoleHostVO}>>
     */
    Result<List<ESClusterRoleHostVO>> listClusterLogicIndices(Integer clusterId, Integer projectId);
}

================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterLogicManager.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster;

import com.didichuxing.datachannel.arius.admin.common.Tuple;
import com.didichuxing.datachannel.arius.admin.common.bean.common.PaginationResult;
import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterJoinDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterLogicConditionDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ESLogicClusterDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ESLogicClusterWithRegionDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.template.TemplateClearDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterLogic;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterPhy;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ClusterLogicTemplateIndexCountVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ClusterLogicVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ClusterPhyVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ClusterPhyWithLogicClusterVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.PluginVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.ecm.ESClusterNodeSepcVO;
import com.didichuxing.datachannel.arius.admin.common.constant.operaterecord.OperationEnum;
import com.didichuxing.datachannel.arius.admin.common.exception.AdminOperateException;
import com.didichuxing.datachannel.arius.admin.common.exception.ESOperateException;
import com.didichuxing.datachannel.arius.admin.common.exception.NotFindSubclassException;
import java.util.List;

/**
 * @description: 逻辑集群manager
 * @author gyp
 * @date 2022/5/31 16:26
 * @version 1.0
 */
public interface ClusterLogicManager {

    /**
     * 构建运维页面的逻辑集群VO
     * @param logicClusters     逻辑集群列表
     * @return List<ClusterLogicVO> 逻辑集群VO列表
     */
    List<ClusterLogicVO> buildClusterLogics(List<ClusterLogic> logicClusters);

    /**
     * 构建运维页面的逻辑集群VO
     * @param clusterLogic    逻辑集群
     * @return ClusterLogicVO 逻辑集群VO
     */
    ClusterLogicVO buildClusterLogic(ClusterLogic clusterLogic);

    /**
     * 获取project拥有的逻辑集群id和名称列表
     * @param projectId 应用id
     * @return
     */
    Result<List<Tuple<Long/*逻辑集群Id*/, String/*逻辑集群名称*/>>> listProjectClusterLogicIdsAndNames(Integer projectId);

    /**
     * 获取项目下的逻辑集群信息
     *
     * @param projectId 项目id
     * @return
     */
    Result<List<ClusterLogicVO>> getLogicClustersByProjectId(Integer projectId);

    /**
     * 根据项目和集群类型获取逻辑集群(项目对其有管理权限)名称列表
     * @param projectId 项目id
     * @param type 集群类型
     * @return
     */
    Result<List<ClusterLogicVO>> getProjectLogicClusterInfoByType(Integer projectId, Integer type);



    /**
     * 获取当前集群支持的套餐列表
     * @return
     */
    Result<List<ESClusterNodeSepcVO>> listMachineSpec();

    /**
     * clearIndices
     * @param clearDTO
     * @param operator
     * @return
     * @throws ESOperateException
     */
    Result<Void> clearIndices(TemplateClearDTO clearDTO, String operator) throws ESOperateException;

    /**
     * 获取逻辑集群分派的物理集群列表
     *
     * @param logicClusterId 逻辑集群ID
     * @return ClusterPhy 物理集群
     */
    ClusterPhy getLogicClusterAssignedPhysicalClusters(Long logicClusterId);



    /**
     *  获取单个逻辑集群overView信息
     * @param clusterLogicId 逻辑集群id
     * @param currentProjectId 当前登录项目
     * @return ClusterLogicVO 逻辑集群VO
     */
    ClusterLogicVO getClusterLogic(Long clusterLogicId, Integer currentProjectId);

    /**
     * 新建逻辑集群, 关联 logicCluster 关联 region
     *
     * @param param    集群信息
     * @param operator 操作人
     * @return 成功或失败
     */
    Result<Void> addLogicClusterAndClusterRegions(ESLogicClusterWithRegionDTO param,
                                                  String operator) throws AdminOperateException;

    /**
     * 逻辑集群下线
     * @param logicClusterId 逻辑集群id
     * @param operator 操作人
     * @param projectId projectId 项目id
     * @return 成功或者失败
     * @throws AdminOperateException
     */
    Result<Void> deleteLogicCluster(Long logicClusterId, String operator,
                                    Integer projectId) ;

    /**
     *  修改逻辑集群信息
     * @param param 逻辑集群dto
     * @param operator 操作人
     * @param projectId projectId
     * @return 成功或者失败
     */
    Result<Void> editLogicCluster(ESLogicClusterDTO param, String operator, Integer projectId);

    /**
     * 组合查询带分页信息的逻辑集群列表
     * @param condition
     * @param projectId 项目id
     * @return
     */
    PaginationResult<ClusterLogicVO> pageGetClusterLogics(ClusterLogicConditionDTO condition,
                                                          Integer projectId) throws NotFindSubclassException, ESOperateException;

    /**
     * 更新逻辑集群状态
     * @param clusterLogicId
     * @return
     */
    boolean updateClusterLogicHealth(Long clusterLogicId);

    /**
     * 获取我的集群下索引和模板的数量
     * @param clusterId
     * @param operator
     * @param projectId 项目id
     * @return
     */
    Result<ClusterLogicTemplateIndexCountVO> indexTemplateCount(Long clusterId, String operator, Integer projectId);

    /**
     * 获取预估磁盘大小
     * @param clusterLogicId 逻辑集群id
     * @param count
     * @return
     */
    Result<Long> estimatedDiskSize(Long clusterLogicId, Integer count);

    /**
     * 获取当前逻辑集群对应region的机器规格
     * @param clusterLogicId 逻辑集群id
     * @return
     */
    Result<String> getClusterDataNodeSpec(Long clusterLogicId);

    /**
     * 根据projectId获取项目下的逻辑集群
     * @param projectId 项目id
     * @return
     */
    Result<List<String>> listClusterLogicNameByProjectId(Integer projectId);

    /**
     * 根据项目id获取集群的映射关系
     * @param projectId 项目id
     * @return
     */
    Result<List<Tuple<String, ClusterPhyVO>>> getClusterRelationByProjectId(Integer projectId);

    /**
     *  获取逻辑集群插件列表
     * @param clusterId 逻辑集群id
     * @return 插件列表
     */
    Result<List<PluginVO>> getClusterLogicPlugins(Long clusterId);

    /**
     * 检查逻辑集群的reigon是否不为空
     *
     * @param logicClusterId 逻辑集群id
     * @return {@link Result}<{@link Boolean}>
     */
    Result<Boolean> isLogicClusterRegionIsNotEmpty(Long logicClusterId);
    
     /**
     * 根据level获取逻辑集群VO列表
     *
     * @param level
     * @return {@link Result}<{@link List<ClusterLogicVO>}>
     */
    Result<List<ClusterLogicVO>> getLogicClustersByLevel(Integer level);
    
    /**
     * 验证集群逻辑的参数
     *
     * @param param 要验证的参数对象。
     * @param operation OperationEnum.ADD、OperationEnum.UPDATE、OperationEnum.DELETE
     * @param projectId 项目编号
     * @return 返回类型是 Result<Void>,它是操作结果的包装类。
     */
    Result<Void> validateClusterLogicParams(ESLogicClusterDTO param, OperationEnum operation, Integer projectId);
    
    
   
    /**
     * 加入逻辑集群
     *
     * @param logicClusterId 要加入的逻辑集群 ID。
     * @param joinProjectId 待加入的项目ID
     * @return 返回类型是 Result<Void>,它是操作结果的包装类。
     */
    Result<Void> joinClusterLogic(Long logicClusterId, Integer joinProjectId);
   
    /**
     * 返回与给定物理集群名称关联的逻辑集群名称列表
     *
     * @param phyClusterName 物理集群的名称。
     * @return List<String> 与给定集群物理名称关联的集群逻辑名称列表。
     */
    List<String> getClusterPhyAssociatedClusterLogicNames(String phyClusterName);

    /**
     * 根据物理集群名获取对应的逻辑集群列表,若传入为空,则返回全量
     * @param phyClusterName 物理集群的名称
     * @return List<String> 逻辑集群名称列表
     */
    List<String> listClusterLogicNameByPhyName(String phyClusterName);

    /**
     * 根据项目id获取对应的逻辑集群列表
     * @param projectId 项目id
     * @return List<String> 逻辑集群名称列表
     */
    List<String> listClusterLogicNameByApp(Integer projectId);
    
     /**
     * 加入物理集群并创建逻辑集群
     *
     * @param param ClusterJoinDTO
     * @param projectId 项目编号
     * @return joinClusterPhyAndCreateLogicCluster 方法的结果。
     */
    Result<Long> joinClusterPhyAndCreateLogicCluster(ClusterJoinDTO param, Integer projectId)
            throws AdminOperateException;
    
    /**
     * 列出一个项目中的所有物理集群及其对应的逻辑集群
     *
     * @param projectId 项目编号
     * @return 列表<ClusterPhyWithLogicClusterVO>
     */
    Result<List<ClusterPhyWithLogicClusterVO>> listLogicClusterWithClusterPhyByProjectId(Integer projectId);
    
    /**
     * 根据物理集群名获取其对应的逻辑集群
     *
     * @param phyClusterName 物理集群名
     * @return 列表<ClusterLogicVO>
     */
    Result<List<ClusterLogicVO>> listClusterLogicByPhyName(String phyClusterName);

    /**
     * 删除从模板及索引数据
     * @param clusterLogicId 逻辑集群id
     * @param projectId 项目编号
     * @param operator 操作人
     * @return
     */
    Result<Void> deleteTemplatesIndicesInfo(Long clusterLogicId,Integer projectId,String operator);
}


================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterNodeManager.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster;

import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterRegionWithNodeInfoDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ClusterNodeInfoVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ESClusterRoleHostVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ESClusterRoleHostWithRegionInfoVO;
import com.didichuxing.datachannel.arius.admin.common.constant.operaterecord.OperationEnum;
import com.didichuxing.datachannel.arius.admin.common.exception.AdminOperateException;
import com.didichuxing.datachannel.arius.admin.common.exception.AdminTaskException;
import java.util.List;

/**
 * @author ohushenglin_v
 * @date 2022-05-30
 */
public interface ClusterNodeManager {
    /**
     * 获取可划分至region的节点信息
     * @param clusterId   物理集群Id
     * @return            Result<List<ESClusterRoleHostVO>>
     */
    Result<List<ESClusterRoleHostWithRegionInfoVO>> listDivide2ClusterNodeInfo(Long clusterId);

    /**
     * 划分指定节点至region
     *
     * @param params    集群带节点信息的Region实体
     * @param operator  操作者
     * @param projectId
     * @return Result<Long>
     */
    Result<List<Long>> createMultiNode2Region(List<ClusterRegionWithNodeInfoDTO> params, String operator,
                                              Integer projectId) throws AdminOperateException;

    /**
     * 编辑节点的region属性
     *
     * @param params        集群带节点信息的Region实体
     * @param operator      操作者
     * @param projectId
     * @param operationEnum
     * @return Result<Boolean>
     */
    Result<Boolean> editMultiNode2Region(List<ClusterRegionWithNodeInfoDTO> params, String operator,
                                         Integer projectId, OperationEnum operationEnum) throws AdminOperateException;

    /**
     * 获取物理集群节点列表
     *
     * @param clusterId 集群id
     * @return {@link Result}<{@link List}<{@link ESClusterRoleHostVO}>>
     */
    Result<List<ESClusterRoleHostVO>> listClusterPhyNode(Integer clusterId);

    /**
     * 获取逻辑集群节点列表
     *
     * @param clusterId 集群id
     * @return {@link Result}<{@link List}<{@link ESClusterRoleHostVO}>>
     */
    Result<List<ESClusterRoleHostVO>> listClusterLogicNode(Integer clusterId);

    /**
     * 通过逻辑集群名称获取节点
     * @param clusterLogicName
     * @return
     */
    Result listClusterLogicNodeByName(String clusterLogicName);

    /**
     * 通过逻辑集群名称获取节点信息
     * @param clusterLogicName
     * @return
     */
    Result<List<ClusterNodeInfoVO>> listClusterLogicNodeInfosByName(String clusterLogicName);

    /**
     * 通过逻辑集群ID获取节点信息
     * @param regionId
     * @return
     */
    Result<List<ESClusterRoleHostVO>> listClusterRoleHostByRegionId(Long regionId);

    /**
     * 采集集群节点数据
     *
     * @param cluster 集群
     * @return boolean
     * @throws AdminTaskException 管理任务异常
     */
    boolean collectNodeSettings(String cluster) throws AdminTaskException;
    
    /**
     * > 该功能用于删除集群节点,但该节点必须离线且未绑定 region
     *
     * @param ids       要删除的节点的 id
     * @param projectId 项目编号
     * @param operator  操作员是执行操作的用户。
     */
    Result<Void> delete(List<Integer> ids, Integer projectId, String operator);

    /**
     * 校验节点的region划分
     * @param params
     * @param operator
     * @param projectId
     * @return
     */
    Result<Boolean> checkMultiNode2Region(List<ClusterRegionWithNodeInfoDTO> params, String operator, Integer projectId);

    /**
     * 通过物理集群获取带角色的节点信息
     * @param clusterPhyName
     * @return
     */
    Result<List<ClusterNodeInfoVO>> listClusterPhyNodeInfosByName(String clusterPhyName);

    /**
     * 获取当前平台所有集群节点的机器规格
     * @return
     */
    Result<List<String>> listAllMachineSpecs();
}

================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterPhyManager.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster;

import com.didichuxing.datachannel.arius.admin.common.bean.common.PaginationResult;
import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterJoinDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterPhyConditionDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterPhyDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterSettingDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterPhy;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ecm.ClusterRoleHost;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ecm.ClusterRoleInfo;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ClusterPhyVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.PluginVO;
import com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterConnectionStatusWithTemplateEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterDynamicConfigsTypeEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterResourceTypeEnum;
import com.didichuxing.datachannel.arius.admin.common.exception.ESOperateException;
import com.didichuxing.datachannel.arius.admin.common.exception.NotFindSubclassException;
import com.didichuxing.datachannel.arius.admin.common.tuple.TupleThree;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 *
 * @author ohushenglin_v
 * @date 2022-05-10
 */
public interface ClusterPhyManager {

    /**
     * 对集群下所有模板执行拷贝索引的mapping到模板操作
     * @param cluster 集群
     * @param retryCount 重试次数
     * @return true/false
     */
    boolean copyMapping(String cluster, int retryCount);
    TupleThree</*dcdrExist*/Boolean,/*pipelineExist*/ Boolean,/*existColdRegion*/ Boolean> getDCDRAndPipelineAndColdRegionTupleByClusterPhyWithCache(String clusterPhy);
     /**
      * 它返回集群和缓存之间的连接状态。
      *
      * @param clusterPhy 集群的物理名称。
      * @return 正在返回 ClusterConnectionStatusWithTemplateEnum。
      */
     ClusterConnectionStatusWithTemplateEnum getClusterConnectionStatusWithCache(String clusterPhy);
    

    /**
     * 同步元数据
     * @param cluster    集群名称
     * @param retryCount 重试次数
     * @return
     */
    void syncTemplateMetaData(String cluster, int retryCount) throws ESOperateException;

    /**
     * 集群是否存在
     * @param clusterName 集群名字
     * @return true 存在
     */

    boolean isClusterExists(String clusterName);

    /**
     * 获取控制台物理集群信息列表(ZH有使用)
     * @param param 查询参数
     * @return 物理集群列表
     */
    List<ClusterPhyVO> listClusterPhys(ClusterPhyDTO param);

    /**
     * 构建客户端需要的数据
     *
     * @param clusterPhyList  集群列表源数据
     * @return
     */
    List<ClusterPhyVO> buildClusterInfo(List<ClusterPhy> clusterPhyList);

    /**
     * 获取单个物理集群overView信息
     * @param clusterId 物理集群id
     * @param currentProjectId 当前登录项目
     * @return 物理集群信息
     */
    ClusterPhyVO getClusterPhyOverview(Integer clusterId, Integer currentProjectId);

    /**
     * 获取逻辑集群可关联region的物理集群名称列表
     * @param clusterLogicType 逻辑集群类型
     * @param clusterLogicId   逻辑集群Id
     * @see ClusterResourceTypeEnum
     * @return 物理集群名称
     */
    Result<List<String>> listCanBeAssociatedRegionOfClustersPhys(Integer clusterLogicType, Long clusterLogicId);

    /**
     * 获取新建逻辑集群可关联的物理集群名称
     * @param clusterLogicType  逻辑集群类型
     * @see ClusterResourceTypeEnum
     * @return 物理集群名称
     */
    Result<List<String>> listCanBeAssociatedClustersPhys(Integer clusterLogicType);

    /**
     * 集群接入
     *
     * @param param     逻辑集群Id, 物理集群名称
     * @param operator  操作人
     * @param projectId
     * @return ClusterPhyVO
     */
    Result<ClusterPhyVO> joinCluster(ClusterJoinDTO param, String operator, Integer projectId);

    /**
     * 删除接入集群 删除顺序: region ——> clusterLogic ——> clusterHost ——> clusterRole  ——> cluster
     *
     * @param clusterId 集群id
     * @param operator  操作人
     * @param projectId
     * @return {@link Result}<{@link Void}>
     */
    Result<Void> deleteClusterJoin(Integer clusterId, String operator, Integer projectId);

    /**
     * 插件列表
     *
     * @param cluster 集群
     * @return {@link Result}<{@link List}<{@link PluginVO}>>
     */
    Result<List<PluginVO>> listPlugins(String cluster);

    /**
     * 获取集群下的动态配置信息
     * @param cluster 物理集群的名称
     * @return 动态配置信息 Map中的String见于动态配置的字段,例如cluster.routing.allocation.awareness.attributes
     */
    Result<Map<ClusterDynamicConfigsTypeEnum, Map<String, Object>>> getPhyClusterDynamicConfigs(String cluster)
		    throws ESOperateException;

    /**
     * 更新集群下的动态配置信息
     *
     * @param param     配置信息参数
     * @param operator
     * @param projectId
     * @return result
     */
    Result<Boolean> updatePhyClusterDynamicConfig(ClusterSettingDTO param, String operator, Integer projectId) throws ESOperateException ;

    /**
     * 获取集群下的属性配置
     * @param cluster 集群名称
     * @return result
     */
    Result<Set<String>> getRoutingAllocationAwarenessAttributes(String cluster);

    /**
     * 获取APP有管理、读写、读权限的物理集群名称列表
     *
     * @param projectId projectId
     * @return {@link List}<{@link String}>
     */
    List<String> listClusterPhyNameByProjectId(Integer projectId);

    /**
     * 根据模板所在集群,获取与该集群相同版本号的集群名称列表
     * @param projectId      projectId
     * @param templateId 模板id
     * @return {@link Result}<{@link List}<{@link String}>>
     */
    Result<List<String>> getTemplateSameVersionClusterNamesByTemplateId(Integer projectId, Integer templateId);
    
    Result<List<String>> getTemplateSameVersionClusterNamesByTemplateIdExistDCDR(Integer projectId, Integer templateId);


    /**
     * 获取物理集群节点名称列表
     * @param clusterPhyName 集群phy名称
     * @return {@link List}<{@link String}>
     */
    List<String> listClusterPhyNodeName(String clusterPhyName);

    /**
     * 构建单个物理集群统计信息
     * @param cluster 集群
     */
    void buildPhyClusterStatics(ClusterPhyVO cluster);

    /**
     * 获取APP可查看的物理集群节点名称列表
     * @param projectId projectId
     * @return {@link List}<{@link String}>
     */
    List<String> listNodeNameByProjectId(Integer projectId);

    /**
     * 物理集群信息删除 (host信息、角色信息、集群信息、region信息)
     *
     * @param clusterPhyId 物理集群ID
     * @param operator     操作人
     * @param projectId
     * @return {@link Result}<{@link Boolean}>
     */
    Result<Boolean> deleteCluster(Integer clusterPhyId, String operator, Integer projectId);

    /**
     * 添加集群
     *
     * @param param    参数
     * @param operator 操作人
     * @param projectId    projectId
     * @return {@link Result}<{@link Boolean}>
     */
    Result<Boolean> addCluster(ClusterPhyDTO param, String operator, Integer projectId);

    /**
     * 编辑集群
     *
     * @param param    参数
     * @param operator 操作人
     * @return {@link Result}<{@link Boolean}>
     */
    Result<Boolean> editCluster(ClusterPhyDTO param, String operator);

    /**
     * 条件组合、分页查询
     * @param condition
     * @param projectId
     * @return
     */
    PaginationResult<ClusterPhyVO> pageGetClusterPhys(ClusterPhyConditionDTO condition,
                                                      Integer projectId) throws NotFindSubclassException;

    /**
     * 根据projectId获取超级项目下的物理集群列表
     * @param projectId 项目id
     * @return Result<List<String>>
     */
    Result<List<String>> listClusterPhyNameBySuperApp(Integer projectId);

    /**
     * 构建物理集群角色信息
     * @param cluster
     */
    void buildClusterRole(ClusterPhyVO cluster);

    /**
     * 构建集群作用
     *
     * @param cluster      集群
     * @param clusterRoleInfos 集群角色
     */
    void buildClusterRole(ClusterPhyVO cluster, List<ClusterRoleInfo> clusterRoleInfos);

    /**
     * 更新物理集群状态
     * @param clusterPhyName   物理集群名称
     * @param operator         操作者
     * @return
     */
    boolean updateClusterHealth(String clusterPhyName, String operator);

    /**
     * 更新集群资源信息
     * @param cluster
     * @param operator
     * @return
     */
    boolean updateClusterInfo(String cluster, String operator);

    /**
     * 校验集群状态是否有效
     * @param clusterPhyName
     * @param operator
     * @return
     */
    Result<Boolean> checkClusterHealth(String clusterPhyName, String operator);

    /**
     * 集群是否存在
     * @param clusterPhyName
     * @param operator
     * @return
     */
    Result<Boolean> checkClusterIsExit(String clusterPhyName, String operator);

    /**
     * 删除存在集群
     * @param clusterPhyName
     * @param projectId
     * @param operator
     * @return
     */
    Result<Boolean> deleteClusterExit(String clusterPhyName, Integer projectId, String operator);

    /**
     *  根据逻辑集群类型和已选中的物理集群名称筛选出es版本一致的物理集群名称列表
     *  @param hasSelectedClusterNameWhenBind 用户在新建逻辑集群阶段已选择的物理集群名称
     *  @param clusterLogicType 逻辑集群类型
     *  @return 同版本的物理集群名称列表
     */
    Result<List<String>> getPhyClusterNameWithSameEsVersion(Integer clusterLogicType,
                                                            String hasSelectedClusterNameWhenBind);

    /**
     * 根据已经创建的逻辑集群id筛选出物理集群版本一致的物理集群名称列表
     * @param clusterLogicId 逻辑集群id
     * @return 同版本的物理集群名称列表
     */
    Result<List<String>> getPhyClusterNameWithSameEsVersionAfterBuildLogic(Long clusterLogicId);

    /**
     * 更新集群网关
     *
     * @param param    参数
     * @param operator 操作人
     * @return {@link Result}<{@link ClusterPhyVO}>
     */
    Result<ClusterPhyVO> updateClusterGateway(ClusterPhyDTO param, String operator);

    /**
     * 根据集群ID获取物理集群角色
     *
     * @param clusterId 集群id
     * @return {@link List}<{@link ClusterRoleInfo}>
     */
    List<ClusterRoleInfo> listClusterRolesByClusterId(Integer clusterId);

    /**
     * 根据集群名称获获取集群节点列表
     *
     * @param cluster 集群名称
     * @return {@link List}<{@link ClusterRoleHost}>
     */
    List<ClusterRoleHost> listClusterRoleHostByCluster(String cluster);
    /**
     * 按照资源类型查询物理集群名称列表
     *
     * @param clusterResourceType 集群资源类型
     * @param projectId           项目id
     * @return {@link Result}<{@link List}<{@link String}>>
     */
    Result<List<String>> listClusterPhyNameByResourceType(Integer clusterResourceType, Integer projectId);
    
    Result<ClusterPhy> getClusterByName(String masterCluster);
    
    boolean ensureDCDRRemoteCluster(String cluster, String remoteCluster) throws ESOperateException;
    
    /**
     * 它返回满足条件的总数。
     *
     * @param condition 查询的条件。
     * @return 长
     */
    Long fuzzyClusterPhyHitByCondition(ClusterPhyConditionDTO condition);
    
    /**
     * 按条件获取集群物理信息
     *
     * @param condition 查询的条件。
     * @return 列表<ClusterPhy>
     */
    List<ClusterPhy> pagingGetClusterPhyByCondition(ClusterPhyConditionDTO condition);
}

================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterPhyQuickCommandManager.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster;

import com.didichuxing.datachannel.arius.admin.common.bean.common.PaginationResult;
import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterPhyQuickCommandIndicesQueryDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterPhyQuickCommandShardsQueryDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.quickcommand.IndicesDistributionVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.quickcommand.NodeStateVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.quickcommand.PendingTaskAnalysisVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.quickcommand.ShardAssignmentDescriptionVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.quickcommand.ShardDistributionVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.quickcommand.TaskMissionAnalysisVO;
import com.didichuxing.datachannel.arius.admin.common.exception.ESOperateException;
import com.didichuxing.datachannel.arius.admin.common.exception.NotFindSubclassException;
import java.util.List;

/**
 * 快捷指令.
 *
 * @ClassName QuickCommandManager
 * @Author gyp
 * @Date 2022/6/1
 * @Version 1.0
 */
public interface ClusterPhyQuickCommandManager {
    
    /**
     * node_state分析
     *
     * @param clusterId
     * @return
     */
    Result<List<NodeStateVO>> nodeStateAnalysis(String clusterId);
    
    /**
     * indices分布
     *
     * @param cluster
     * @return
     */
    Result<List<IndicesDistributionVO>> indicesDistribution(String cluster);
    
    /**
     * pending task分析
     *
     * @param cluster
     * @return
     */
    Result<List<PendingTaskAnalysisVO>> pendingTaskAnalysis(String cluster);
    
    /**
     * task任务分析
     *
     * @param cluster
     * @return
     */
    Result<List<TaskMissionAnalysisVO>> taskMissionAnalysis(String cluster);
    
    /**
     * 热点线程分析
     *
     * @param cluster
     * @return
     */
    Result<String> hotThreadAnalysis(String cluster);
    
    /**
     * shard分配说明
     *
     * @param cluster
     * @return
     */
    Result<ShardAssignmentDescriptionVO> shardAssignmentDescription(String cluster);
    
    /**
     * 异常shard分配重试
     *
     * @param cluster
     * @return
     */
    Result<Void> abnormalShardAllocationRetry(String cluster);
    
    /**
     * 清除fielddata内存
     *
     * @param cluster
     * @return
     */
    Result<Void> clearFieldDataMemory(String cluster);
    
    /**
     * 条件获取索引列表信息 ,携带可读可写标志位
     *
     * @param condition 查询条件
     * @param projectId 项目
     * @return IndicesDistributionVO
     */
    List<IndicesDistributionVO> indicesDistributionPage(ClusterPhyQuickCommandIndicesQueryDTO condition,
                                                                    Integer projectId) throws NotFindSubclassException;
    
    /**
     * 条件获取shard列表信息 ,携带可读可写标志位
     *
     * @param condition 查询条件
     * @param projectId 项目
     * @return ShardDistributionVO
     */
    List<ShardDistributionVO> shardDistributionPage(ClusterPhyQuickCommandShardsQueryDTO condition,
                                                                Integer projectId) throws ESOperateException;
}

================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterPluginManager.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster;

import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.PluginDTO;
import com.didichuxing.datachannel.arius.admin.common.exception.NotFindSubclassException;

public interface ClusterPluginManager {

    /**
     * 上传插件,涉及ES能力插件和平台能力插件
     *
     * @param plugin    插件信息
     * @param projectId
     * @return result
     */
    Result<Long> addPlugins(PluginDTO plugin, Integer projectId) throws NotFindSubclassException;

    /**
     * 删除指定的插件
     *
     * @param id        插件id
     * @param operator  操作人员
     * @param projectId
     * @return result
     */
    Result<Long> deletePluginById(Long id, String operator, Integer projectId) throws NotFindSubclassException;

    /**
     * 编辑插件的描述信息
     *
     * @param pluginDTO 插件信息
     * @param operator  操作人员
     * @param projectId
     * @return result
     */
    Result<Void> editPluginDesc(PluginDTO pluginDTO, String operator, Integer projectId);
}

================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterRegionManager.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster;

import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterLogicSpecCondition;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ESLogicClusterWithRegionDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.region.ClusterRegion;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ClusterRegionVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ClusterRegionWithNodeInfoVO;
import com.didichuxing.datachannel.arius.admin.common.exception.AdminOperateException;
import java.util.List;

public interface ClusterRegionManager {

    /**
     * 构建regionVO
     * @param regions region列表
     * @return
     */
    List<ClusterRegionVO> buildLogicClusterRegionVO(List<ClusterRegion> regions);

    /**
     * 根据逻辑集群的类型筛选出可以绑定的region信息,返回的region列表中不包含cold region
     * @param clusterLogicType 逻辑集群类型
     * @param phyCluster 物理集群名称
     * @return 筛选后的region列表
     */
    @Deprecated
    Result<List<ClusterRegionVO>> listPhyClusterRegionsByLogicClusterTypeAndCluster(String phyCluster,
                                                                                    Integer clusterLogicType);

    /**
     * 逻辑集群绑定同一个物理集群的region的时候需要根据类型进行过滤,之后再根据cold、region节点数量、节点规格进行过滤
     * @param phyCluster 物理集群名称
     * @param clusterLogicType 逻辑集群类型
     * @param condition 用户侧申请的集群规格(节点数量、机器规格)
     * @return
     */
    Result<List<ClusterRegionVO>> listPhyClusterRegionsByCondition(String phyCluster,
                                                                   Integer clusterLogicType,
                                                                   ClusterLogicSpecCondition condition);

    /**
     * 构建regionVO
     * @param region region
     * @return
     */
    ClusterRegionVO buildLogicClusterRegionVO(ClusterRegion region);

    /**
     * 逻辑集群批量绑定region
     *
     * @param isAddClusterLogicFlag 是否要添加逻辑集群
     */
    Result<Void> batchBindRegionToClusterLogic(ESLogicClusterWithRegionDTO param, String operator,
                                               boolean isAddClusterLogicFlag) throws AdminOperateException;

    /**
     * 根据物理集群名称获region信息(包含空节点region),包含region中的数据节点信息
     * @param clusterName          物理集群名称
     * @return                     Result<List<ClusterRegionWithNodeInfoVO>>
     */
    Result<List<ClusterRegionWithNodeInfoVO>> listClusterRegionWithNodeInfoByClusterName(String clusterName);

    /**
     * 获取可分配至dcdr的物理集群名称获region列表, 不包含空节点region
     *
     * @param clusterName         物理集群名称
     * @return                    Result<List<ClusterRegionVO>>
     */
    Result<List<ClusterRegionVO>> listNotEmptyClusterRegionByClusterName(String clusterName);

    /**
     * 删除物理集群region
     * @param regionId
     * @param operator
     * @param projectId
     * @return
     */
    Result<Void> deletePhyClusterRegion(Long regionId, String operator, Integer projectId) throws AdminOperateException;

    
    /**
     * 通过物理集群获取冷region
     *
     * @param phyCluster 物理集群名称
     * @return ClusterRegion 对象列表
     */
    List<ClusterRegion> getColdRegionByPhyCluster(String phyCluster);
    /**
     * 列出物理集群的所有region
     *
     * @param phyCluster 物理集群名称
     * @return ClusterRegion 对象列表
     */
    List<ClusterRegion> listRegionByPhyCluster(String phyCluster);
    
    /**
     * > 通过逻辑集群 id 构建逻辑集群region vo
     *
     * @param logicClusterId 逻辑集群 ID
     * @return 列表<ClusterRegionVO>
     */
    Result<List<ClusterRegionVO>> buildLogicClusterRegionVOByLogicClusterId(Long logicClusterId);
    
    
}

================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ESClusterConfigManager.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster;

import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ESConfigDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.ecm.ESConfigVO;
import java.util.List;
import java.util.Set;

/**
 * esclusterconfig
 *
 * @author shizeying
 * @date 2022/07/11
 */
public interface ESClusterConfigManager {
    /**
     * 编辑configdesc
     *
     * @param param     入参
     * @param operator  操作人或角色
     * @param projectId 项目id
     * @return {@code Result<Void>}
     */
    Result<Void> editConfigDesc(ESConfigDTO param, String operator, Integer projectId);

    /**
     * 获取ES集群模板config
     *
     * @param type 类型
     * @return {@code Result<ESConfigVO>}
     */
    Result<ESConfigVO> getEsClusterTemplateConfig(String type);

    Result<Set<String>> gainEsClusterRoles(Long clusterId);

    /**
     * 获取ES集群config通过id
     *
     * @param configId configid
     * @return {@code Result<ESConfigVO>}
     */
    Result<ESConfigVO> getEsClusterConfigById(Long configId);

    /**
     * 获得ES集群配置
     *
     * @param clusterId 集群id
     * @return {@code Result<List<ESConfigVO>>}
     */
    Result<List<ESConfigVO>> gainEsClusterConfigs(Long clusterId);
}

================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterContextManagerImpl.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;

import static com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterResourceTypeEnum.EXCLUSIVE;
import static com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterResourceTypeEnum.PRIVATE;
import static com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterResourceTypeEnum.PUBLIC;
import static com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterResourceTypeEnum.UNKNOWN;
import static com.didichuxing.datachannel.arius.admin.common.constant.resource.ESClusterNodeRoleEnum.DATA_NODE;

import com.didichuxing.datachannel.arius.admin.biz.cluster.ClusterContextManager;
import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterLogic;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterLogicContext;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterPhy;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterPhyContext;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ecm.ClusterRoleHost;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.region.ClusterRegion;
import com.didichuxing.datachannel.arius.admin.common.constant.AdminConstant;
import com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterResourceTypeEnum;
import com.didichuxing.datachannel.arius.admin.common.threadpool.AriusScheduleThreadPool;
import com.didichuxing.datachannel.arius.admin.common.util.AriusObjUtils;
import com.didichuxing.datachannel.arius.admin.common.util.ConvertUtil;
import com.didichuxing.datachannel.arius.admin.common.util.ListUtils;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.logic.ClusterLogicService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.physic.ClusterPhyService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.physic.ClusterRoleHostService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.region.ClusterRegionService;
import com.didiglobal.knowframework.log.ILog;
import com.didiglobal.knowframework.log.LogFactory;
import com.didiglobal.knowframework.security.common.vo.project.ProjectBriefVO;
import com.didiglobal.knowframework.security.service.ProjectService;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import org.apache.commons.collections4.CollectionUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 集群上下文类, 包含以下信息:
 * 1. 包括逻辑集群(共享、独享、独占)关联的物理集群信息(region、node、project消息等)
 * 2. 物理集群信息关联逻辑集群(共享、独享、独占)信息
 * 3. 校验模型 ————> 获取逻辑集群可绑定的物理集群列表
 *
 * Created by linyunan on 2021-06-08
 */
@Component
public class ClusterContextManagerImpl implements ClusterContextManager {
    private static final ILog                    LOGGER                          = LogFactory
        .getLog(ClusterContextManagerImpl.class);

    /**
     * key-> 逻辑集群Id
     */
    private final Map<Long, ClusterLogicContext> id2ClusterLogicContextMap       = Maps.newConcurrentMap();

    /**
     * key-> 物理集群名称, value 上下文信息
     */
    private final Map<String, ClusterPhyContext> name2ClusterPhyContextMap       = Maps.newConcurrentMap();

    private static final Integer                 LOGIC_ASSOCIATED_PHY_MAX_NUMBER = 2 << 9;

    private static final Integer                 PHY_ASSOCIATED_LOGIC_MAX_NUMBER = 2 << 9;

    @Autowired
    private ClusterLogicService                  clusterLogicService;

    @Autowired
    private ClusterPhyService                    clusterPhyService;

    @Autowired
    private ClusterRegionService                 clusterRegionService;

    @Autowired
    private ClusterRoleHostService               clusterRoleHostService;

    @Autowired
    private AriusScheduleThreadPool              ariusScheduleThreadPool;

    @Autowired
    private ProjectService                       projectService;

    @PostConstruct
    private void init() {
        ariusScheduleThreadPool.submitScheduleAtFixedDelayTask(this::flushClusterLogicContexts, 60, 120);
        ariusScheduleThreadPool.submitScheduleAtFixedDelayTask(this::flushClusterPhyContexts, 120, 120);
    }

    @Override
    public ClusterPhyContext flushClusterPhyContext(String clusterPhyName) {
        try {
            ClusterPhyContext clusterPhyContext = getClusterPhyContext(clusterPhyName);
            if (null != clusterPhyContext) {
                name2ClusterPhyContextMap.put(clusterPhyContext.getClusterName(), clusterPhyContext);
                return clusterPhyContext;
            }
        } catch (Exception e) {
            Thread.currentThread().interrupt();
            LOGGER.error("class=ClusterContextManagerImpl||method=flushClusterPhyContext||clusterPhyName={}||errMsg={}",
                clusterPhyName, e.getMessage(), e);
        }

        return null;
    }

    @Override
    public ClusterLogicContext flushClusterLogicContext(Long clusterLogicId) {
        try {
            ClusterLogicContext clusterLogicContext = getClusterLogicContext(clusterLogicId);
            if (null != clusterLogicContext) {
                id2ClusterLogicContextMap.put(clusterLogicContext.getClusterLogicId(), clusterLogicContext);
                return clusterLogicContext;
            }

        } catch (Exception e) {
            Thread.currentThread().interrupt();
            LOGGER.error(
                "class=ClusterContextManagerImpl||method=flushClusterLogicContext||clusterLogicId={}||errMsg={}",
                clusterLogicId, e.getMessage(), e);

        }

        return null;
    }

    @Override
    public void flushClusterContextByClusterRegion(ClusterRegion clusterRegion) {
        if (null == clusterRegion) {
            return;
        }

        flushClusterPhyContext(clusterRegion.getPhyClusterName());

        // 一个物理集群可以关联多个逻辑集群
        List<Long> logicClusterIds = ListUtils.string2LongList(clusterRegion.getLogicClusterIds());
        if (!CollectionUtils.isEmpty(logicClusterIds)) {
            logicClusterIds.forEach(this::flushClusterLogicContext);
        }
    }

    @Override
    public Result<Boolean> canClusterLogicAssociatedPhyCluster(Long clusterLogicId, String clusterPhyName,
                                                               Long regionId, Integer clusterLogicType) {
        //新建时clusterLogicId为空, 防止NPE
        if (AriusObjUtils.isNull(clusterLogicId)) {
            clusterLogicId = -1L;
        }

        ClusterLogicContext clusterLogicContext = getClusterLogicContext(clusterLogicId);
        ClusterPhyContext clusterPhyContext = getClusterPhyContext(clusterPhyName);

        int associatedPhyNum = 0;
        int associatedLogicNum = 0;
        if (null != clusterLogicContext) {
            associatedPhyNum = clusterLogicContext.getAssociatedPhyNum();
        }
        if (null != clusterPhyContext) {
            associatedLogicNum = clusterPhyContext.getAssociatedLogicNum();
        }

        return doValid(associatedPhyNum, associatedLogicNum, clusterLogicId, clusterPhyName, regionId,
            clusterLogicType);
    }

    /**
     *   1. Type为独立, LP = 1, PL = 1
     *   2. Type为共享, LP = n, PL = 1
     * 	 3. Type为独享, LP = n, PL = 1
     */
    @Override
    public Result<List<String>> getCanBeAssociatedClustersPhys(Integer clusterLogicType, Long clusterLogicId) {
        if (!ClusterResourceTypeEnum.isExist(clusterLogicType)) {
            return Result.buildParamIllegal("逻辑集群类型非法");
        }

        List<String> canBeAssociatedClustersPhyNames = Lists.newArrayList();

        if (PRIVATE.getCode() == clusterLogicType) {
            handleClusterLogicTypePrivate(clusterLogicId, canBeAssociatedClustersPhyNames);
        }

        if (PUBLIC.getCode() == clusterLogicType) {
            handleClusterLogicTypePublic(clusterLogicId, canBeAssociatedClustersPhyNames);
        }

        if (EXCLUSIVE.getCode() == clusterLogicType) {
            handleClusterLogicTypeExclusive(clusterLogicId, canBeAssociatedClustersPhyNames);
        }

        return Result.buildSucc(canBeAssociatedClustersPhyNames);
    }

    @Override
    public List<String> getClusterPhyAssociatedClusterLogicNames(String clusterPhyName) {
        ClusterPhyContext clusterPhyContext = getClusterPhyContext(clusterPhyName);
        if (null == clusterPhyContext) {
            return Lists.newArrayList();
        }

        List<Long> clusterLogicIds = clusterPhyContext.getAssociatedClusterLogicIds();
        if (CollectionUtils.isEmpty(clusterLogicIds)) {
            return Lists.newArrayList();
        }

        return clusterLogicIds.stream().map(r -> clusterLogicService.getClusterLogicByIdThatNotContainsProjectId(r ))
                .map(ClusterLogic::getName)
            .distinct().collect(Collectors.toList());
    }

    @Override
    public ClusterPhyContext getClusterPhyContext(String clusterPhyName) {
        ClusterPhy clusterPhy = clusterPhyService.getClusterByName(clusterPhyName);
        if (null == clusterPhy) {
            LOGGER.error(
                "class=ClusterContextManagerImpl||method=flushClusterPhyContext||clusterPhyName={}||msg=clusterPhy is empty",
                clusterPhyName);
            return null;
        }

        ClusterPhyContext build = ClusterPhyContext.builder().clusterPhyId(clusterPhy.getId().longValue())
            .clusterName(clusterPhy.getCluster()).associatedLogicNumMax(PHY_ASSOCIATED_LOGIC_MAX_NUMBER).build();

        setClusterPhyNodeInfo(build);
        setRegionAndClusterLogicInfoAndProjectId(build);
        return build;
    }

    @Override
    public ClusterPhyContext getClusterPhyContextCache(String cluster) {
        return name2ClusterPhyContextMap.get(cluster);
    }

    @Override
    public Map<String, ClusterPhyContext> listClusterPhyContextMap() {
        return name2ClusterPhyContextMap;
    }

    @Override
    public ClusterLogicContext getClusterLogicContextCache(Long clusterLogicId) {
        return id2ClusterLogicContextMap.get(clusterLogicId);
    }

    @Override
    public ClusterLogicContext getClusterLogicContext(Long clusterLogicId) {
        ClusterLogic clusterLogic =
                clusterLogicService.listClusterLogicByIdThatProjectIdStrConvertProjectIdList(clusterLogicId).stream().findFirst().orElse(null);
        if (null == clusterLogic) {
            LOGGER.error(
                "class=ClusterContextManagerImpl||method=flushClusterLogicContext||clusterLogicId={}||msg=clusterLogic is empty",
                clusterLogicId);
            return null;
        }

        ClusterLogicContext build = buildInitESClusterLogicContextByType(clusterLogic);
        setAssociatedClusterPhyInfo(build);
        setRegionAndAssociatedClusterPhyDataNodeInfo(build);
        return build;
    }

    /***********************************************private*********************************************/
    public void flushClusterPhyContexts() {
        LOGGER.info("class=ClusterContextManagerImpl||method=flushClusterPhyContexts||msg=start...");
        long currentTimeMillis = System.currentTimeMillis();
        List<ClusterPhy> clusterPhyList = clusterPhyService.listAllClusters();
        if (CollectionUtils.isEmpty(clusterPhyList)) {
            LOGGER.info(
                "class=ClusterContextManagerImpl||method=flushClusterLogicContexts||msg=finish...||consumingTime={}",
                System.currentTimeMillis() - currentTimeMillis);
            return;
        }

        // regionk信息按【cluster】分组
        List<ClusterRegion> clusterRegionList = clusterRegionService.listAllBoundRegions();
        Map<String/*phyClusterName*/, List<ClusterRegion>> phyClusterName2ClusterLogicRackListMap = ConvertUtil
            .list2MapOfList(clusterRegionList, ClusterRegion::getPhyClusterName, clusterRegion -> clusterRegion);

        // clusterLogic信息按主键分组
        List<ClusterLogic> clusterLogicList = clusterLogicService.listAllClusterLogics();
        Map<Long, ClusterLogic> id2ClusterLogicMap = ConvertUtil.list2Map(clusterLogicList, ClusterLogic::getId);

        // host信息按【cluster】分组
        List<ClusterRoleHost> clusterRoleHosts = clusterRoleHostService.listAllNode();
        Map<String, List<ClusterRoleHost>> cluster2RoleListMap = ConvertUtil.list2MapOfList(clusterRoleHosts,
            ClusterRoleHost::getCluster, clusterRoleHost -> clusterRoleHost);

        // project信息分组
        final List<ProjectBriefVO> briefVOS = projectService.getProjectBriefList();
        Map<Integer/*projectId*/, String/*projectName*/> projectId2ProjectNameMap = ConvertUtil.list2Map(briefVOS,
            ProjectBriefVO::getId, ProjectBriefVO::getProjectName);

        for (ClusterPhy phy : clusterPhyList) {
            // 初始化
            ClusterPhyContext clusterPhyContext = ClusterPhyContext.builder().clusterPhyId(phy.getId().longValue())
                .clusterName(phy.getCluster()).associatedLogicNumMax(PHY_ASSOCIATED_LOGIC_MAX_NUMBER).build();

            List<ClusterRoleHost> hostList = cluster2RoleListMap.get(phy.getCluster());
            if (CollectionUtils.isEmpty(hostList)) {
                name2ClusterPhyContextMap.put(phy.getCluster(), clusterPhyContext);
                continue;
            }

            // 设置物理集群管理的host信息, 这里暂时不去区分单机器多es实例的场景
            List<ClusterRoleHost> dataNodes = hostList.stream()
                .filter(r -> Objects.nonNull(r) && DATA_NODE.getCode() == r.getRole()).collect(Collectors.toList());

            clusterPhyContext.setAssociatedDataNodeNum(dataNodes.size());
            clusterPhyContext
                .setAssociatedDataNodeIps(dataNodes.stream().map(ClusterRoleHost::getIp).collect(Collectors.toList()));
            clusterPhyContext
                .setAssociatedNodeIps(hostList.stream().map(ClusterRoleHost::getIp).collect(Collectors.toList()));

            // 设置region信息
            List<ClusterRegion> clusterRegions = phyClusterName2ClusterLogicRackListMap.get(phy.getCluster());
            if (CollectionUtils.isEmpty(clusterRegions)) {
                name2ClusterPhyContextMap.put(phy.getCluster(), clusterPhyContext);
                continue;
            }

            clusterPhyContext
                .setAssociatedRegionIds(clusterRegions.stream().map(ClusterRegion::getId).collect(Collectors.toList()));

            // 设置关联逻辑集群信息
            List<String> associatedClusterLogicIdsStr = clusterRegions.stream()
                .filter(r -> Objects.nonNull(r)
                             && !AdminConstant.REGION_NOT_BOUND_LOGIC_CLUSTER_ID.equals(r.getLogicClusterIds()))
                .map(ClusterRegion::getLogicClusterIds).distinct().collect(Collectors.toList());
            Set<Long> associatedClusterLogicIds = Sets.newHashSet();
            for (String associatedClusterLogicIdStr : associatedClusterLogicIdsStr) {
                associatedClusterLogicIds.addAll(ListUtils.string2LongList(associatedClusterLogicIdStr));
            }
            clusterPhyContext.setAssociatedClusterLogicIds(Lists.newArrayList(associatedClusterLogicIds));
            clusterPhyContext.setAssociatedLogicNum(associatedClusterLogicIds.size());

            // 设置project信息
            Set<Integer> projectIdSet = Sets.newHashSet();
            Set<String> projectNameSet = Sets.newHashSet();
            for (Long associatedClusterLogicId : associatedClusterLogicIds) {
                ClusterLogic clusterLogic = id2ClusterLogicMap.get(associatedClusterLogicId);
                if (null == clusterLogic) {
                    continue;
                }
                projectIdSet.add(clusterLogic.getProjectId());

                String projectName = projectId2ProjectNameMap.get(clusterLogic.getProjectId());
                if (AriusObjUtils.isBlack(projectName)) {
                    continue;
                }
                projectNameSet.add(projectName);
            }
            clusterPhyContext.setAssociatedProjectIds(Lists.newArrayList(projectIdSet));
            clusterPhyContext.setAssociatedProjectNames(Lists.newArrayList(projectNameSet));

            name2ClusterPhyContextMap.put(phy.getCluster(), clusterPhyContext);
        }
        LOGGER.info("class=ClusterContextManagerImpl||method=flushClusterPhyContexts||msg=finish...||consumingTime={}",
            System.currentTimeMillis() - currentTimeMillis);
    }

    /**
     * 刷新逻辑集群上下文,其中包括 关联的物理集群信息、 region信息、 host信息等
     */
    public void flushClusterLogicContexts() {
        LOGGER.info("class=ClusterContextManagerImpl||method=flushClusterLogicContexts||msg=start...");
        long currentTimeMillis = System.currentTimeMillis();

        List<ClusterLogic> clusterLogics = clusterLogicService.listAllClusterLogics();
        if (CollectionUtils.isEmpty(clusterLogics)) {
            LOGGER.info(
                "class=ClusterContextManagerImpl||method=flushClusterLogicContexts||msg=finish...||consumingTime={}",
                System.currentTimeMillis() - currentTimeMillis);
            return;
        }

        // 获取全量逻辑集群绑定的Region信息
        Map<Long, List<ClusterRegion>> clusterLogicId2ClusterLogicRackListMap = getClusterLogicId2ClusterRegionListMap();

        // host信息按【regionId】分组
        Map<Integer, List<ClusterRoleHost>> regionId2HostListMap = getRegionId2HostListMap();

        for (ClusterLogic clusterLogic : clusterLogics) {
            // 构建初始化上下文, 按照逻辑集群类型限制上下文信息数量
            ClusterLogicContext clusterLogicContext = buildInitESClusterLogicContextByType(clusterLogic);

            // 设置关联集群信息
            List<ClusterRegion> clusterRegions = clusterLogicId2ClusterLogicRackListMap.get(clusterLogic.getId());
            if (CollectionUtils.isEmpty(clusterRegions)) {
                id2ClusterLogicContextMap.put(clusterLogic.getId(), clusterLogicContext);
                continue;
            }

            List<String> associatedClusterPhyNameList = clusterRegions.stream().map(ClusterRegion::getPhyClusterName)
                .distinct().collect(Collectors.toList());

            clusterLogicContext.setAssociatedClusterPhyNames(associatedClusterPhyNameList);
            clusterLogicContext.setAssociatedPhyNum(associatedClusterPhyNameList.size());
            // 遇到异常数据,先简单去打印错误日志
            if (clusterLogicContext.getAssociatedPhyNumMax() < associatedClusterPhyNameList.size()) {
                LOGGER.error("class=ClusterContextManagerImpl||method=flushClusterLogicContexts"
                             + "||logicClusterType={}||esClusterLogicId={}||msg=集群间关联超过最大限制数{}, 请纠正",
                    clusterLogicContext.getLogicClusterType(), clusterLogicContext.getClusterLogicId(),
                    clusterLogicContext.getAssociatedPhyNumMax());
            }

            // 获取逻辑集群已关联的Region信息
            clusterLogicContext
                .setAssociatedRegionIds(clusterRegions.stream().map(ClusterRegion::getId).collect(Collectors.toList()));

            // 获取逻辑集群关联region下的rack节点信息
            List<ClusterRoleHost> associatedRegionDataNodeList = Lists.newArrayList();
            for (ClusterRegion clusterRegion : clusterRegions) {
                List<ClusterRoleHost> dataNodeList = regionId2HostListMap.get(clusterRegion.getId().intValue());
                if (CollectionUtils.isEmpty(dataNodeList)) {
                    continue;
                }

                associatedRegionDataNodeList.addAll(dataNodeList);
            }

            //设置数据节点总数
            clusterLogicContext.setAssociatedDataNodeNum(associatedRegionDataNodeList.size());

            //设置数据节点Ip地址
            clusterLogicContext.setAssociatedDataNodeIps(
                associatedRegionDataNodeList.stream().map(ClusterRoleHost::getIp).collect(Collectors.toList()));

            id2ClusterLogicContextMap.put(clusterLogic.getId(), clusterLogicContext);
        }

        LOGGER.info(
            "class=ClusterContextManagerImpl||method=flushClusterLogicContexts||msg=finish...||consumingTime={}",
            System.currentTimeMillis() - currentTimeMillis);
    }

    /**
     * 获取全量逻辑集群绑定的Region信息
     * @return  key -> clusterLogicId   value -> List<ClusterRegion>
     */
    @NotNull
    private Map<Long, List<ClusterRegion>> getClusterLogicId2ClusterRegionListMap() {
        List<ClusterRegion> clusterRegionList = clusterRegionService.listAllBoundRegions();
        Map<String/*clusterLogicIds 逗号分隔*/, List<ClusterRegion>> clusterLogicIds2ClusterRegionListMap = ConvertUtil
            .list2MapOfList(clusterRegionList, ClusterRegion::getLogicClusterIds, region -> region);

        // 按【逻辑集群Id】分组, 特殊处理table中clusterLogicIds列的数据
        Map<Long/*clusterLogicId*/, List<ClusterRegion>> clusterLogicId2ClusterLogicRackListMap = Maps.newHashMap();
        for (Map.Entry<String, List<ClusterRegion>> e : clusterLogicIds2ClusterRegionListMap.entrySet()) {
            String key = e.getKey();
            List<ClusterRegion> clusterRegions = e.getValue();
            List<Long> clusterLogicIdList = ListUtils.string2LongList(key);
            for (Long clusterLogicId : clusterLogicIdList) {
                clusterLogicId2ClusterLogicRackListMap.put(clusterLogicId, clusterRegions);
            }
        }
        return clusterLogicId2ClusterLogicRackListMap;
    }

    /**
     * host信息按【regionId】分组
     * @return key -> regionId  value -> List<RoleClusterHost>
     */
    @NotNull
    private Map<Integer, List<ClusterRoleHost>> getRegionId2HostListMap() {
        List<ClusterRoleHost> clusterRoleHosts = clusterRoleHostService.listAllNodeByRole(DATA_NODE.getCode());
        if (CollectionUtils.isEmpty(clusterRoleHosts)) {
            return Maps.newHashMap();
        }
        return ConvertUtil.list2MapOfList(clusterRoleHosts, ClusterRoleHost::getRegionId, node -> node);
    }

    /**
     *   定义规则:
     *   1. Type为独立, LP = 1, PL = 1
     *   2. Type为共享, LP = n, PL = 1 ,  1 <= n <= 1024   多个逻辑集群共享一个物理集群, 每个逻辑集群关联物理集群一部分region,不可跨其他物理集群,
     *                                                    多个逻辑集群可关联同一部分region。
     *   3. Type为独占, LP = 1, PL = n ,  1 <= n <= 1024   一个逻辑集群独占一个或者多个物理集群
     */
    private ClusterLogicContext buildInitESClusterLogicContextByType(ClusterLogic clusterLogic) {

        if (PRIVATE.getCode() == clusterLogic.getType() || EXCLUSIVE.getCode() == clusterLogic.getType()) {
            return ClusterLogicContext.builder().clusterLogicName(clusterLogic.getName())
                .clusterLogicId(clusterLogic.getId()).logicClusterType(clusterLogic.getType()).associatedPhyNumMax(1)
                .build();
        } else if (PUBLIC.getCode() == clusterLogic.getType()) {
            return ClusterLogicContext.builder().clusterLogicName(clusterLogic.getName())
                .clusterLogicId(clusterLogic.getId()).logicClusterType(clusterLogic.getType())
                .associatedPhyNumMax(LOGIC_ASSOCIATED_PHY_MAX_NUMBER).build();
        } else {
            LOGGER.error(
                "class=ClusterContextManagerImpl||method=buildInitESClusterLogicContextByType||esClusterLogicId={}||msg={}",
                clusterLogic.getId(), String.format("请确认逻辑集群%s类型是否存在", clusterLogic.getType()));

            return ClusterLogicContext.builder().clusterLogicName(clusterLogic.getName())
                .clusterLogicId(clusterLogic.getId()).logicClusterType(clusterLogic.getType()).associatedPhyNumMax(-1)
                .build();
        }
    }

    private void setAssociatedClusterPhyInfo(ClusterLogicContext build) {
        List<String> clusterPhyNames = clusterRegionService.listPhysicClusterNames(build.getClusterLogicId());
        if (build.getAssociatedPhyNumMax() < clusterPhyNames.size()) {
            LOGGER.error("class=ClusterContextManagerImpl||method=setAssociatedClusterPhyInfo"
                         + "||logicClusterType={}||esClusterLogicId={}||msg=集群间关联超过最大限制数{}, 请纠正",
                build.getLogicClusterType(), build.getClusterLogicId(), build.getAssociatedPhyNumMax());
            return;
        }

        build.setAssociatedClusterPhyNames(clusterPhyNames);
        build.setAssociatedPhyNum(clusterPhyNames.size());
    }

    private void setRegionAndAssociatedClusterPhyDataNodeInfo(ClusterLogicContext build) {
        //获取逻辑集群已关联的Region信息
        List<ClusterRegion> regions = clusterRegionService.getClusterRegionsByLogicIds(Collections.singletonList(build.getClusterLogicId()));
        build.setAssociatedRegionIds(regions.stream().map(ClusterRegion::getId).collect(Collectors.toList()));

        //获取逻辑集群关联region下的rack节点信息
        List<ClusterRoleHost> associatedRackClusterHosts = Lists.newArrayList();
        for (ClusterRegion region : regions) {
            Result<List<ClusterRoleHost>> regionDataNodeListRet = clusterRoleHostService
                .listByRegionId(region.getId().intValue());
            if (regionDataNodeListRet.failed()) {
                LOGGER.warn(
                    "class=ClusterContextManagerImpl||method=setRegionAndAssociatedClusterPhyDataNodeInfo||regionId={}||msg=failed to get regionDataNodeList:{}",
                    region.getId(), regionDataNodeListRet.getMessage());
                continue;
            }
            associatedRackClusterHosts.addAll(regionDataNodeListRet.getData());
        }

        //设置数据节点总数
        build.setAssociatedDataNodeNum(associatedRackClusterHosts.size());

        //设置数据节点Ip地址
        build.setAssociatedDataNodeIps(
            associatedRackClusterHosts.stream().map(ClusterRoleHost::getIp).collect(Collectors.toList()));
    }

    private void setRegionAndClusterLogicInfoAndProjectId(ClusterPhyContext build) {
        // 1. set region
        List<ClusterRegion> regions = clusterRegionService.listPhyClusterRegions(build.getClusterName());
        build.setAssociatedRegionIds(regions.stream().map(ClusterRegion::getId).collect(Collectors.toList()));

        // 2. set ClusterLogicInfo
        Set<Long> associatedClusterLogicIds = Sets.newHashSet();
        for (ClusterRegion clusterRegion : regions) {
            // 添加每一个物理集群下每一个region所被绑定的逻辑集群
            List<Long> logicClusterIds = ListUtils.string2LongList(clusterRegion.getLogicClusterIds());
            if (!CollectionUtils.isEmpty(logicClusterIds)
                && !logicClusterIds.contains(Long.parseLong(AdminConstant.REGION_NOT_BOUND_LOGIC_CLUSTER_ID))) {
                associatedClusterLogicIds.addAll(logicClusterIds);
            }
        }

        build.setAssociatedClusterLogicIds(Lists.newArrayList(associatedClusterLogicIds));
        build.setAssociatedLogicNum(associatedClusterLogicIds.size());

        // 3. set projectId
        Set<Integer> projectIdSet = new HashSet<>();
        Set<String> clusterLogicSet = new HashSet<>();
        if (!CollectionUtils.isEmpty(associatedClusterLogicIds)) {
            for (Long associatedClusterLogicId : associatedClusterLogicIds) {
                clusterLogicService.listClusterLogicByIdThatProjectIdStrConvertProjectIdList(associatedClusterLogicId).stream().filter(Objects::nonNull)
                        .filter(clusterLogic -> null != clusterLogic.getProjectId() && null != clusterLogic.getName())
                        .forEach(clusterLogic -> {
                            projectIdSet.add(clusterLogic.getProjectId());
                            clusterLogicSet.add(clusterLogic.getName());
                        });
                
            }
        }

        build.setAssociatedProjectIds(Lists.newArrayList(projectIdSet));
        build.setAssociatedProjectNames(Lists.newArrayList(clusterLogicSet));
    }

    private void setClusterPhyNodeInfo(ClusterPhyContext build) {
        List<ClusterRoleHost> nodes = clusterRoleHostService.getNodesByCluster(build.getClusterName());
        List<ClusterRoleHost> dataNodes = nodes.stream().filter(r -> DATA_NODE.getCode() == r.getRole())
            .collect(Collectors.toList());

        build.setAssociatedDataNodeNum(dataNodes.size());
        build.setAssociatedDataNodeIps(dataNodes.stream().map(ClusterRoleHost::getIp).collect(Collectors.toList()));
        build.setAssociatedNodeIps(nodes.stream().map(ClusterRoleHost::getIp).collect(Collectors.toList()));
    }

    /**
     * 具体校验逻辑
     * @param associatedPhyNumber    逻辑集群关联物理集群个数
     * @param associatedLogicNumber  物理集群关联逻辑集群个数
     * @param regionId               需要绑定的regionId
     * @param clusterLogicType       逻辑集群类型
     */
    private Result<Boolean> doValid(int associatedPhyNumber, int associatedLogicNumber, Long clusterLogicId,
                                    String clusterPhyName, Long regionId, Integer clusterLogicType) {

        if (AriusObjUtils.isNull(clusterLogicType)) {
            return Result.buildParamIllegal("逻辑集群类型为空");
        }

        if (UNKNOWN.getCode() == ClusterResourceTypeEnum.valueOf(clusterLogicType).getCode()) {
            return Result.buildParamIllegal("无法识别逻辑集群类型");
        }

        ClusterPhy clusterPhy = clusterPhyService.getClusterByName(clusterPhyName);
        if (AriusObjUtils.isNull(clusterPhy)) {
            return Result.buildFail("物理集群不存在");
        }

        if (PRIVATE.getCode() == clusterLogicType
            && !canClusterLogicBoundRegion(regionId, clusterPhyName, clusterLogicId)) {
            //先判断logic -> phy, 二次关联region需要先校验逻辑集群对应的物理集群数据是否合理
            if (associatedPhyNumber > 0) {
                return Result.buildParamIllegal(String.format("集群间关联失败 ,该独立逻辑集群%s已有关联物理集群", clusterLogicId));
            }
            //在判断phy -> logic
            if (associatedLogicNumber > 0) {
                return Result.buildFail(String.format("集群间关联失败, 物理集群%s已有关联逻辑集群", clusterPhyName));
            }
        }

        return Result.buildSucc(Boolean.TRUE);
    }

    /**
     * 判断指定的物理集群下的region是否被对应的逻辑集群绑定
     * @param regionId regionId
     * @param clusterPhyName 物理集群名称
     * @param clusterLogicId 逻辑集群id
     * @return  true of false
     */
    private boolean canClusterLogicBoundRegion(Long regionId, String clusterPhyName, Long clusterLogicId) {
        ClusterRegion region = clusterRegionService.getRegionById(regionId);
        ClusterPhyContext clusterPhyContext = getClusterPhyContext(clusterPhyName);
        List<Long> clusterLogicIds = clusterPhyContext.getAssociatedClusterLogicIds();
        if (CollectionUtils.isNotEmpty(clusterLogicIds) && !clusterLogicIds.contains(clusterLogicId)) {
            return false;
        }

        if (!region.getLogicClusterIds().equals(AdminConstant.REGION_NOT_BOUND_LOGIC_CLUSTER_ID)) {
            return false;
        }

        return region.getPhyClusterName().equals(clusterPhyName);
    }

    /**
     * LP = 1 , PL = 1
     * @param clusterLogicId    逻辑集群Id
     * @param clusterPhyContext 物理集群上下文
     * @return                  true/false
     */
    private boolean checkForPrivate(Long clusterLogicId, ClusterPhyContext clusterPhyContext) {
        //采集测associatedLogicNumber 会存在null问题
        if (null == clusterPhyContext.getAssociatedLogicNum()) {
            return true;
        }
        if (null == clusterLogicId) {
            if (0 == clusterPhyContext.getAssociatedLogicNum()) {
                return true;
            } else if (clusterPhyContext.getAssociatedLogicNum() >= 1) {
                return false;
            }

            return false;
        } else {
            ClusterLogicContext clusterLogicContext = getClusterLogicContext(clusterLogicId);
            if (0 == clusterLogicContext.getAssociatedPhyNum() && 0 == clusterPhyContext.getAssociatedLogicNum()) {
                return true;
            } else {
                return 1 == clusterLogicContext.getAssociatedPhyNum() && clusterLogicContext
                    .getAssociatedClusterPhyNames().contains(clusterPhyContext.getClusterName());
            }
        }
    }

    /**
     * 校验当前的物理集群可否被指定的共享类型的逻辑集群关联
     * @param clusterLogicId    逻辑集群Id
     * @param clusterPhyContext 物理集群上下文
     * @return                  true/false
     */
    private boolean checkForPublic(Long clusterLogicId, ClusterPhyContext clusterPhyContext) {
        //采集测associatedLogicNumber 会存在null问题
        if (null == clusterPhyContext.getAssociatedLogicNum()) {
            return true;
        }
        if (null == clusterLogicId) {
            if (0 == clusterPhyContext.getAssociatedLogicNum()) {
                return true;
            } else {
                return !hasClusterPhyContextAssociatedLogicTypeIsCode(clusterPhyContext, PRIVATE.getCode());
            }
        } else {
            ClusterLogicContext clusterLogicContext = id2ClusterLogicContextMap.get(clusterLogicId);
            //不允许一个逻辑集群绑定多个物理集群
            if (1 < clusterLogicContext.getAssociatedPhyNum()) {
                return false;
            }

            //逻辑集群绑定物理集群数为0 且 物理集群无逻辑集群绑定
            if (0 == clusterLogicContext.getAssociatedPhyNum() && 0 == clusterPhyContext.getAssociatedLogicNum()) {
                return true;
            } else {
                return clusterLogicContext.getAssociatedPhyNum() == 1
                       && hasBelongClusterLogicContextAssociatedClusterNames(clusterLogicContext,
                           clusterPhyContext.getClusterName())
                       || clusterPhyContext.getAssociatedLogicNum() > 0
                          && !hasClusterPhyContextAssociatedLogicTypeIsCode(clusterPhyContext, PRIVATE.getCode());
            }
        }
    }

    /**
     * 校验当前的物理集群可否被指定的独享类型的逻辑集群关联
     * @param clusterLogicId    逻辑集群Id
     * @param clusterPhyContext 物理集群上下文
     * @return                  true/false
     */
    private boolean checkForExclusive(Long clusterLogicId, ClusterPhyContext clusterPhyContext) {
        //采集测associatedLogicNumber 会存在null问题
        if (null == clusterPhyContext.getAssociatedLogicNum()) {
            return true;
        }
        if (null == clusterLogicId) {
            if (0 == clusterPhyContext.getAssociatedLogicNum()) {
                return true;
            } else {
                return !hasClusterPhyContextAssociatedLogicTypeIsCode(clusterPhyContext, PRIVATE.getCode());
            }
        } else {
            ClusterLogicContext clusterLogicContext = id2ClusterLogicContextMap.get(clusterLogicId);
            //不允许一个逻辑集群绑定多个物理集群
            if (1 < clusterLogicContext.getAssociatedPhyNum()) {
                return false;
            }

            //逻辑集群绑定物理集群数为0 且 物理集群无逻辑集群绑定
            if (0 == clusterLogicContext.getAssociatedPhyNum() && 0 == clusterPhyContext.getAssociatedLogicNum()) {
                return true;
            } else {
                return clusterLogicContext.getAssociatedPhyNum() == 1
                       && hasBelongClusterLogicContextAssociatedClusterNames(clusterLogicContext,
                           clusterPhyContext.getClusterName())
                       || clusterPhyContext.getAssociatedLogicNum() > 0
                          && !hasClusterPhyContextAssociatedLogicTypeIsCode(clusterPhyContext, PRIVATE.getCode());
            }
        }
    }

    /**
     * 物理集群上下文中的逻辑集群类型是否全为传入类型
     * @param clusterPhyContext  物理集群上下文
     * @param code               逻辑集群类型
     * @return                   true/false
     */
    private boolean hasClusterPhyContextAssociatedLogicTypeIsCode(ClusterPhyContext clusterPhyContext, int code) {
        Set<Integer> typeSet = clusterPhyContext.getAssociatedClusterLogicIds().stream()
            .map(this::getClusterLogicContext).map(ClusterLogicContext::getLogicClusterType)
            .collect(Collectors.toSet());

        return 1 == typeSet.size() && typeSet.contains(code);
    }

    /**
     * 逻辑集群上下文中是否包含此物理集群
     * @param clusterLogicContext  逻辑集群上下文
     * @param clusterName          物理集群名称
     * @return                     true/false
     */
    private boolean hasBelongClusterLogicContextAssociatedClusterNames(ClusterLogicContext clusterLogicContext,
                                                                       String clusterName) {
        return clusterLogicContext.getAssociatedClusterPhyNames().contains(clusterName);
    }

    private void handleClusterLogicTypeExclusive(Long clusterLogicId, List<String> canBeAssociatedClustersPhyNames) {
        if (hasClusterLogicContextMapEmpty()) {
            return;
        }
        if (hasClusterPhyContextMapEmpty()) {
            return;
        }

        for (ClusterPhyContext clusterPhyContext : name2ClusterPhyContextMap.values()) {
            if (checkForExclusive(clusterLogicId, clusterPhyContext)) {
                canBeAssociatedClustersPhyNames.add(clusterPhyContext.getClusterName());
            }
        }
    }

    private void handleClusterLogicTypePublic(Long clusterLogicId, List<String> canBeAssociatedClustersPhyNames) {
        if (hasClusterLogicContextMapEmpty()) {
            return;
        }
        if (hasClusterPhyContextMapEmpty()) {
            return;
        }

        for (ClusterPhyContext clusterPhyContext : name2ClusterPhyContextMap.values()) {
            if (checkForPublic(clusterLogicId, clusterPhyContext)) {
                canBeAssociatedClustersPhyNames.add(clusterPhyContext.getClusterName());
            }
        }
    }

    private void handleClusterLogicTypePrivate(Long clusterLogicId, List<String> canBeAssociatedClustersPhyNames) {
        if (hasClusterLogicContextMapEmpty()) {
            return;
        }
        if (hasClusterPhyContextMapEmpty()) {
            return;
        }

        for (ClusterPhyContext clusterPhyContext : name2ClusterPhyContextMap.values()) {
            if (checkForPrivate(clusterLogicId, clusterPhyContext)) {
                canBeAssociatedClustersPhyNames.add(clusterPhyContext.getClusterName());
            }
        }
    }

    private boolean hasClusterPhyContextMapEmpty() {
        return name2ClusterPhyContextMap.isEmpty();
    }

    private boolean hasClusterLogicContextMapEmpty() {
        return id2ClusterLogicContextMap.isEmpty();
    }
}

================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterIndexManagerImpl.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;

import com.didichuxing.datachannel.arius.admin.biz.cluster.ClusterIndexManager;
import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterLogic;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ecm.ClusterRoleHost;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.region.ClusterRegion;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.template.IndexTemplatePhy;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ESClusterRoleHostVO;
import com.didichuxing.datachannel.arius.admin.common.util.AriusObjUtils;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.logic.ClusterLogicService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.physic.ClusterRoleHostService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.region.ClusterRegionService;
import com.didichuxing.datachannel.arius.admin.core.service.template.physic.IndexTemplatePhyService;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 详细介绍类情况.
 *
 * @ClassName ClusterIndexManagerImpl
 * @Author gyp
 * @Date 2022/6/13
 * @Version 1.0
 */
@Component
public class ClusterIndexManagerImpl implements ClusterIndexManager {
    @Autowired
    private ClusterLogicService     clusterLogicService;

    @Autowired
    private ClusterRegionService    clusterRegionService;

    @Autowired
    private ClusterRoleHostService  clusterRoleHostService;

   

    @Autowired
    private IndexTemplatePhyService indexTemplatePhyService;

    @Override
    public Result<List<ESClusterRoleHostVO>> listClusterLogicIndices(Integer clusterId, Integer projectId) {
        ClusterLogic clusterLogic = clusterLogicService.getClusterLogicByIdAndProjectId(Long.valueOf(clusterId), projectId);
        if (AriusObjUtils.isNull(clusterLogic)) {
            return Result.buildFail(String.format("集群[%s]不存在", clusterId));
        }
        ClusterRegion clusterRegion = clusterRegionService.getRegionByLogicClusterId(clusterLogic.getId());
        Result<List<ClusterRoleHost>> result = clusterRoleHostService
            .listByRegionId(Math.toIntExact(clusterRegion.getId()));
        if (result.failed()) {
            return Result.buildFail(result.getMessage());
        }

        Result<List<IndexTemplatePhy>> indexTemplatePhy = indexTemplatePhyService
            .listByRegionId(Math.toIntExact(clusterRegion.getId()));
        if (indexTemplatePhy.failed()) {
            return Result.buildFail(indexTemplatePhy.getMessage());
        }

        return null;
    }
}

================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterLogicManagerImpl.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;

import static com.didichuxing.datachannel.arius.admin.common.constant.PageSearchHandleTypeEnum.CLUSTER_LOGIC;
import static com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterHealthEnum.*;
import static com.didichuxing.datachannel.arius.admin.common.constant.resource.ESClusterNodeRoleEnum.DATA_NODE;
import static com.didichuxing.datachannel.arius.admin.common.util.SizeUtil.getUnitSize;

import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.ElasticsearchTimeoutException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;

import com.alibaba.fastjson.JSON;
import com.didichuxing.datachannel.arius.admin.biz.cluster.ClusterLogicManager;
import com.didichuxing.datachannel.arius.admin.biz.cluster.ClusterNodeManager;
import com.didichuxing.datachannel.arius.admin.biz.cluster.ClusterPhyManager;
import com.didichuxing.datachannel.arius.admin.biz.cluster.ClusterRegionManager;
import com.didichuxing.datachannel.arius.admin.biz.page.ClusterLogicPageSearchHandle;
import com.didichuxing.datachannel.arius.admin.common.Triple;
import com.didichuxing.datachannel.arius.admin.common.Tuple;
import com.didichuxing.datachannel.arius.admin.common.bean.common.PaginationResult;
import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.*;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterRegionWithNodeInfoDTO.ClusterRegionWithNodeInfoDTOBuilder;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ESLogicClusterWithRegionDTO.ESLogicClusterWithRegionDTOBuilder;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.indices.IndexCatCellDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.template.IndexTemplateDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.template.TemplateClearDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterLogic;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterLogicStatis;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterPhy;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ecm.ClusterRoleHost;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ecm.ClusterRoleInfo;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.project.ProjectClusterLogicAuth;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.region.ClusterRegion;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.stats.ESClusterStatsResponse;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.template.IndexTemplate;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.template.IndexTemplatePhy;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.template.IndexTemplateWithPhyTemplates;
import com.didichuxing.datachannel.arius.admin.common.bean.po.ecm.ESMachineNormsPO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.*;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.ecm.ESClusterNodeSepcVO;
import com.didichuxing.datachannel.arius.admin.common.component.BaseHandle;
import com.didichuxing.datachannel.arius.admin.common.constant.AdminConstant;
import com.didichuxing.datachannel.arius.admin.common.constant.AuthConstant;
import com.didichuxing.datachannel.arius.admin.common.constant.arius.AriusUser;
import com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterHealthEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.operaterecord.OperateTypeEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.operaterecord.OperationEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.project.ProjectClusterLogicAuthEnum;
import com.didichuxing.datachannel.arius.admin.common.event.resource.ClusterLogicEvent;
import com.didichuxing.datachannel.arius.admin.common.exception.AdminOperateException;
import com.didichuxing.datachannel.arius.admin.common.exception.ESOperateException;
import com.didichuxing.datachannel.arius.admin.common.exception.NotFindSubclassException;
import com.didichuxing.datachannel.arius.admin.common.tuple.TupleTwo;
import com.didichuxing.datachannel.arius.admin.common.tuple.Tuples;
import com.didichuxing.datachannel.arius.admin.common.util.*;
import com.didichuxing.datachannel.arius.admin.core.component.HandleFactory;
import com.didichuxing.datachannel.arius.admin.core.component.SpringTool;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.ecm.ESMachineNormsService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.logic.ClusterLogicService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.physic.ClusterPhyService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.physic.ClusterRoleHostService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.region.ClusterRegionService;
import com.didichuxing.datachannel.arius.admin.core.service.common.OperateRecordService;
import com.didichuxing.datachannel.arius.admin.core.service.es.ESClusterNodeService;
import com.didichuxing.datachannel.arius.admin.core.service.es.ESClusterService;
import com.didichuxing.datachannel.arius.admin.core.service.es.ESIndexCatService;
import com.didichuxing.datachannel.arius.admin.core.service.es.ESIndexService;
import com.didichuxing.datachannel.arius.admin.core.service.project.ProjectClusterLogicAuthService;
import com.didichuxing.datachannel.arius.admin.core.service.template.logic.IndexTemplateService;
import com.didichuxing.datachannel.arius.admin.core.service.template.physic.IndexTemplatePhyService;
import com.didichuxing.datachannel.arius.admin.persistence.component.ESGatewayClient;
import com.didiglobal.knowframework.log.ILog;
import com.didiglobal.knowframework.log.LogFactory;
import com.didiglobal.knowframework.security.common.vo.project.ProjectBriefVO;
import com.didiglobal.knowframework.security.service.ProjectService;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.ElasticsearchTimeoutException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;

@Component
public class ClusterLogicManagerImpl implements ClusterLogicManager {

    private static final ILog              LOGGER       = LogFactory.getLog(ClusterLogicManagerImpl.class);

    @Autowired
    private ESIndexService                 esIndexService;

    @Autowired
    private ClusterPhyService              clusterPhyService;

    @Autowired
    private ClusterLogicService            clusterLogicService;

    @Autowired
    private ClusterRegionService           clusterRegionService;

    @Autowired
    private ClusterRoleHostService         clusterRoleHostService;

    @Autowired
    private IndexTemplateService           indexTemplateService;


    @Autowired
    private IndexTemplatePhyService        indexTemplatePhyService;

    @Autowired
    private ProjectClusterLogicAuthService projectClusterLogicAuthService;

    @Autowired
    private OperateRecordService           operateRecordService;

    @Autowired
    private ESMachineNormsService          esMachineNormsService;

    @Autowired
    private ProjectService                 projectService;

    @Autowired
    private ESGatewayClient                esGatewayClient;

    @Autowired
    private ClusterRegionManager           clusterRegionManager;

 

    @Autowired
    private ESClusterService               esClusterService;

    @Autowired
    private HandleFactory                  handleFactory;


    @Autowired
    private ESIndexCatService              esIndexCatService;

    @Autowired
    private ESClusterNodeService eSClusterNodeService;
    @Autowired
    private ClusterPhyManager    clusterPhyManager;
    @Autowired
    private ClusterNodeManager clusterNodeManager;
    
    private static final FutureUtil<Void>         FUTURE_UTIL        = FutureUtil.init("ClusterLogicManager", 10, 10,
            100);

    private static final Long              UNKNOWN_SIZE = -1L;

    /**
     * 构建运维页面的逻辑集群VO
     * @param logicClusters     逻辑集群列表
     * @return 逻辑集群列表
     */
    @Override
    public List<ClusterLogicVO> buildClusterLogics(List<ClusterLogic> logicClusters) {
        if (CollectionUtils.isEmpty(logicClusters)) {
            return Lists.newArrayList();
        }

        List<ClusterLogicVO> clusterLogicVOS = Lists.newArrayList();
        for (ClusterLogic logicCluster : logicClusters) {
            clusterLogicVOS.add(buildClusterLogic(logicCluster));
        }

        Collections.sort(clusterLogicVOS);
        return clusterLogicVOS;
    }

    /**
     * 构建运维页面的逻辑集群VO
     * @param clusterLogic    逻辑集群
     * @return ClusterLogicVO
     */
    @Override
    public ClusterLogicVO buildClusterLogic(ClusterLogic clusterLogic) {
        ClusterLogicVO clusterLogicVO = ConvertUtil.obj2Obj(clusterLogic, ClusterLogicVO.class);

        FUTURE_UTIL.runnableTask(() -> buildLogicClusterStatus(clusterLogicVO, clusterLogic))
            .runnableTask(() -> buildLogicRole(clusterLogicVO, clusterLogic))
            .runnableTask(() -> buildConsoleClusterVersions(clusterLogicVO));

        buildClusterNodeInfo(clusterLogicVO);
        Optional.ofNullable(projectService.getProjectBriefByProjectId(clusterLogic.getProjectId()))
            .map(ProjectBriefVO::getProjectName).ifPresent(clusterLogicVO::setProjectName);

        return clusterLogicVO;
    }

    @Override
    public Result<Void> clearIndices(TemplateClearDTO clearDTO, String operator) throws ESOperateException {
        if (AriusObjUtils.isNull(operator)) {
            return Result.buildParamIllegal("操作人为空");
        }

        if (CollectionUtils.isEmpty(clearDTO.getDelIndices())) {
            return Result.buildParamIllegal("删除索引为空");
        }
        final TupleTwo<Result<Void>, Integer> resultIntegerTuple2 = checkIndices(clearDTO.getDelIndices(),
            clearDTO.getLogicId());
        Result<Void> checkResult = resultIntegerTuple2.v1;
        if (checkResult.failed()) {
            return checkResult;
        }

        LOGGER.info("class=TemplateLogicServiceImpl||method=clearIndex||"
                    + "operator={}||logicId={}||delIndices={}||delQueryDsl={}",
            operator, clearDTO.getLogicId(), JSON.toJSONString(clearDTO.getDelIndices()), clearDTO.getDelQueryDsl());

        IndexTemplateWithPhyTemplates templateLogicWithPhysical = indexTemplateService
            .getLogicTemplateWithPhysicalsById(clearDTO.getLogicId());

        if (StringUtils.isNotBlank(clearDTO.getDelQueryDsl())) {
            Result<Void> deleteResult = batchDeletePhysicalTemplateIndicesByQuery(
                templateLogicWithPhysical.getPhysicals(), clearDTO.getDelQueryDsl(), clearDTO.getDelIndices());
            if (deleteResult.failed()) {
                return deleteResult;
            }
        } else {
            Result<Void> deleteIndicesResult = batchDeletePhysicalTemplateIndices(
                templateLogicWithPhysical.getPhysicals(), clearDTO.getDelIndices());
            if (deleteIndicesResult.failed()) {
                return deleteIndicesResult;
            }
        }

        if (StringUtils.isNotBlank(clearDTO.getDelQueryDsl())) {
            String delIndices = String.join(",", clearDTO.getDelIndices());
            operateRecordService.saveOperateRecordWithManualTrigger(
                    String.format("需要清理的索引列表:%s; 删除条件:%s", delIndices, clearDTO.getDelQueryDsl()),
                    operator, resultIntegerTuple2.v2, clearDTO.getLogicId(), OperateTypeEnum.TEMPLATE_SERVICE_CLEAN);

            return Result.buildSucWithTips("删除任务下发成功,请到sense中执行查询语句,确认删除进度");
        } else {
            return Result.buildSucWithTips("索引删除成功");
        }
    }

    /**
     * 获取逻辑集群分派的物理集群列表
     *
     * @param logicClusterId 逻辑集群ID
     * @return 物理集群集合
     */
    @Override
    public ClusterPhy getLogicClusterAssignedPhysicalClusters(Long logicClusterId) {
        ClusterRegion clusterRegion = clusterRegionService.getRegionByLogicClusterId(logicClusterId);
        if (clusterRegion == null) {
            return null;
        }

        return clusterPhyService.getClusterByName(clusterRegion.getPhyClusterName());
    }

    @Override
    public Result<List<ClusterLogicVO>> getLogicClustersByProjectId(Integer projectId) {
        List<ClusterLogicVO> list = ConvertUtil
            .list2List(clusterLogicService.getHasAuthClusterLogicsByProjectId(projectId), ClusterLogicVO.class);
        for (ClusterLogicVO clusterLogicVO : list) {
            List<String> clusterPhyNames = clusterRegionService.listPhysicClusterNames(clusterLogicVO.getId());
            clusterLogicVO.setPhyClusterAssociated(!AriusObjUtils.isEmptyList(clusterPhyNames));
            clusterLogicVO.setAssociatedPhyClusterName(clusterPhyNames);
            Optional.ofNullable(clusterLogicVO.getProjectId()).map(projectService::getProjectBriefByProjectId)
                .map(ProjectBriefVO::getProjectName).ifPresent(clusterLogicVO::setProjectName);
        }
        return Result.buildSucc(list);
    }
    
    /**
     * 验证集群逻辑的参数
     *
     * @param param     要验证的参数对象。
     * @param operation OperationEnum.ADD、OperationEnum.UPDATE、OperationEnum.DELETE
     * @param projectId 项目编号
     */
    @Override
    public Result<Void> validateClusterLogicParams(ESLogicClusterDTO param, OperationEnum operation,
                                                   Integer projectId) {
        return clusterLogicService.validateClusterLogicParams(param,operation,projectId);
    }

    /**
     * “将具有给定 id 的集群加入到具有给定 id 的项目中。”
     * <p>
     * 函数的第一行是注释。编译器会忽略注释
     *
     * @param logicClusterId            要加入的集群的 ID。
     * @param joinProjectId 加入的项目ID
     * @return 返回类型是 Result<Void>
     */
    @Override
    public Result<Void> joinClusterLogic(Long logicClusterId, Integer joinProjectId) {
        final ESLogicClusterDTO param = new ESLogicClusterDTO();
        param.setId(logicClusterId);
        param.setProjectId(joinProjectId);
        param.setType(clusterLogicService.getClusterLogicByIdThatNotContainsProjectId(logicClusterId).getType());
        return Result.buildFrom(clusterLogicService.joinClusterLogic(param));
    }
    /**
     * @param level level
     * @return Result<List<ClusterLogicVO>>
     */
    @Override
    public Result<List<ClusterLogicVO>> getLogicClustersByLevel(Integer level) {
    
        List<ClusterLogicVO> list = ConvertUtil.list2List(clusterLogicService.listLogicClustersByLevelThatProjectIdStrConvertProjectIdList(level),
                ClusterLogicVO.class);
        for (ClusterLogicVO clusterLogicVO : list) {
            List<String> clusterPhyNames = clusterRegionService.listPhysicClusterNames(clusterLogicVO.getId());
            clusterLogicVO.setPhyClusterAssociated(!AriusObjUtils.isEmptyList(clusterPhyNames));
            clusterLogicVO.setAssociatedPhyClusterName(clusterPhyNames);
            Optional.ofNullable(clusterLogicVO.getProjectId()).map(projectService::getProjectBriefByProjectId)
                    .map(ProjectBriefVO::getProjectName).ifPresent(clusterLogicVO::setProjectName);
        }
        return Result.buildSucc(list);
    }
    
    @Override
    public Result<List<Tuple<Long/*逻辑集群Id*/, String/*逻辑集群名称*/>>> listProjectClusterLogicIdsAndNames(Integer projectId) {
        List<Tuple<Long/*逻辑集群Id*/, String/*逻辑集群名称*/>> res = Lists.newArrayList();
        List<ClusterLogic> tempAuthLogicClusters = Lists.newArrayList();

        if (AuthConstant.SUPER_PROJECT_ID.equals(projectId)) {
            tempAuthLogicClusters.addAll(clusterLogicService.listAllClusterLogics());
        } else {
            tempAuthLogicClusters.addAll(clusterLogicService.getHasAuthClusterLogicsByProjectId(projectId));
        }

        for (ClusterLogic clusterLogic : tempAuthLogicClusters) {
            Tuple<Long, String> logicClusterId2logicClusterNameTuple = new Tuple<>();
            logicClusterId2logicClusterNameTuple.setV1(clusterLogic.getId());
            logicClusterId2logicClusterNameTuple.setV2(clusterLogic.getName());
            res.add(logicClusterId2logicClusterNameTuple);
        }
        return Result.buildSucc(res);
    }

    @Override
    public Result<List<ClusterLogicVO>> getProjectLogicClusterInfoByType(Integer projectId, Integer type) {
        ESLogicClusterDTO logicClusterDTO = new ESLogicClusterDTO();
        if (!AuthConstant.SUPER_PROJECT_ID.equals(projectId)) {
            logicClusterDTO.setProjectId(projectId);
        }

        logicClusterDTO.setType(type);
        return Result.buildSucc(
            ConvertUtil.list2List(clusterLogicService.listClusterLogics(logicClusterDTO), ClusterLogicVO.class));
    }



    @Override
    public Result<List<ESClusterNodeSepcVO>> listMachineSpec() {
        List<ESMachineNormsPO> esMachineNormsPOS = esMachineNormsService.listMachineNorms();
        return Result.buildSucc(ConvertUtil.list2List(esMachineNormsPOS, ESClusterNodeSepcVO.class));
    }



    @Override
    public ClusterLogicVO getClusterLogic(Long clusterLogicId, Integer currentProjectId) {
        ClusterLogic clusterLogic = clusterLogicService.getClusterLogicByIdAndProjectId(clusterLogicId, currentProjectId);
        ClusterLogicVO clusterLogicVO = ConvertUtil.obj2Obj(clusterLogic, ClusterLogicVO.class);

        FUTURE_UTIL.runnableTask(() -> buildConsoleClusterVersions(clusterLogicVO))
            .runnableTask(() -> buildOpLogicClusterPermission(clusterLogicVO, currentProjectId))
            .runnableTask(
                () -> Optional.ofNullable(projectService.getProjectBriefByProjectId(clusterLogicVO.getProjectId()))
                    .map(ProjectBriefVO::getProjectName).ifPresent(clusterLogicVO::setProjectName))
            .runnableTask(() -> buildClusterNodeInfo(clusterLogicVO)).waitExecute();

        return clusterLogicVO;
    }

    @Override
    public Result<Void> addLogicClusterAndClusterRegions(ESLogicClusterWithRegionDTO param,
                                                         String operator) throws AdminOperateException {
        return clusterRegionManager.batchBindRegionToClusterLogic(param, operator, Boolean.TRUE);
    }
    
    /**
     * 删除逻辑集群 这里是及其容易触发操作超时的,
     * 1.如果模板没有下线干净,那么这里就不能把逻辑集群下线干净,
     * 2.如果索引没有下线干净,那么逻辑集群也是不能下线的,否则系统和数据库共同残留下来,业务侧就出现了问题
     *
     * @param logicClusterId logicclusterid
     * @param operator
     * @param projectId      projectid
     * @return {@link Result}<{@link Void}>
     * @throws AdminOperateException
     */
    @Transactional(rollbackFor = Exception.class)
    @Override
    public Result<Void> deleteLogicCluster(Long logicClusterId, String operator,
                                           Integer projectId) {
        //一个逻辑集群对应了多个项目的情况
        final List<ClusterLogic> clusterLogicList = clusterLogicService.listClusterLogicByIdThatProjectIdStrConvertProjectIdList(logicClusterId);
        if (CollectionUtils.isEmpty(clusterLogicList)) {
            return Result.buildSucc();
        }
        final ClusterLogic clusterLogic = clusterLogicList.stream()
                .filter(c -> Objects.equals(c.getProjectId(), projectId)).findFirst()
                .orElse(null);
        if (Objects.isNull(clusterLogic)) {
            return Result.buildFail(String.format("项目【%s】不存在逻辑集群",
                    projectService.getProjectBriefByProjectId(projectId).getProjectName()));
        }
      
        final Result<Void> checkProjectCorrectly = ProjectUtils.checkProjectCorrectly(ClusterLogic::getProjectId,
            clusterLogic, projectId);
        if (checkProjectCorrectly.failed()) {
            return checkProjectCorrectly;
        }
        
        //获取逻辑模板和索引
        ClusterLogicTemplateIndexDetailDTO templateIndexVO = getTemplateIndexVO(clusterLogic, projectId);
        try {
          
            //但是索引下线没有完成,导致了脏数据的产生
            if (CollectionUtils.isNotEmpty( templateIndexVO.getCatIndexResults())||
                CollectionUtils.isNotEmpty(templateIndexVO.getTemplates())){
                return Result.buildFail(String.format(
                        "该集群下还有%d项模板资源、%d项索引资源,如需下线集群,请前往模板管理、索引管理下线掉对应的模板及索引",
                        Optional.ofNullable(templateIndexVO.getTemplates()).orElse(Collections.emptyList()).size(),
                        Optional.ofNullable(templateIndexVO.getCatIndexResults()).orElse(Collections.emptyList()).size()
                ));
            }
          
            if (clusterLogicList.size() == 1) {
                //将region解绑
                ClusterRegion clusterRegion = clusterRegionService.getRegionByLogicClusterId(logicClusterId);
                if (Objects.nonNull(clusterRegion)) {
                    //将region解绑
                    Result<Void> unbindRes = clusterRegionService.unbindRegion(clusterRegion.getId(), logicClusterId,
                            operator);
                    if (unbindRes.failed()) {
                       throw new AdminOperateException(unbindRes.getMessage());
                    }
                }
            }
            //删除逻辑集群
            Result<Void> result = clusterLogicService.deleteClusterLogicById(logicClusterId, operator, projectId);
            if (result.success()) {
                SpringTool.publish(new ClusterLogicEvent(logicClusterId, projectId));
                //操作记录 集群下线
                operateRecordService.saveOperateRecordWithManualTrigger(clusterLogic.getName(), operator, projectId, logicClusterId,
                        OperateTypeEnum.MY_CLUSTER_OFFLINE);
                return Result.buildSuccWithTips(result.getData(),
                        String.format("逻辑集群%s下线成功", clusterLogic.getName()));
            }
            return Result.buildFailWithMsg(result.getData(),String.format("逻辑集群%s下线失败,%s", clusterLogic.getName(),
                    result.getMessage()));
        } catch (AdminOperateException | ElasticsearchTimeoutException e) {
            LOGGER.error("class={}||method=deleteLogicCluster||clusterLogic={}||es operation errMsg={}",
                    getClass().getSimpleName(), clusterLogic.getName(), e);
            // 这里必须显示事务回滚
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return Result.buildFail(String.format("逻辑集群%s下线失败,, 请重新尝试下线集群,多次重试不成功,请联系管理员", clusterLogic.getName()));
        } catch (Exception e) {
            LOGGER.error("class={}||method=deleteLogicCluster||clusterLogic={}||es operation errMsg={}",
                    getClass().getSimpleName(), clusterLogic.getName(), e);
            // 这里必须显示事务回滚
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return Result.buildFail("操作失败,请联系管理员");
        }
        
    }

    private ClusterLogicTemplateIndexDetailDTO getTemplateIndexVO(ClusterLogic clusterLogic,Integer projectId) {
        IndexTemplateDTO param = new IndexTemplateDTO();
        param.setResourceId(clusterLogic.getId());
        param.setProjectId(projectId);
        List<IndexTemplate> indexTemplates = indexTemplateService.listLogicTemplates(param);
        //通过逻辑集群获取index
        List<IndexCatCellDTO> catIndexResults = esIndexCatService.syncGetIndexByCluster(clusterLogic.getName(),projectId);
        ClusterLogicTemplateIndexDetailDTO templateIndexVO = new ClusterLogicTemplateIndexDetailDTO();
        templateIndexVO.setCatIndexResults(catIndexResults);
        templateIndexVO.setTemplates(indexTemplates);
        return templateIndexVO;
    }

    @Override
    public Result<Void> editLogicCluster(ESLogicClusterDTO param, String operator, Integer projectId) {
        final ClusterLogic logic = clusterLogicService.getClusterLogicByIdAndProjectId(param.getId(), projectId);
        Result<Void> result = clusterLogicService.editClusterLogic(param, operator, projectId);
        if (result.success()) {
            SpringTool.publish(new ClusterLogicEvent(param.getId(), projectId));
            //操作记录 我的集群信息修改
            if (StringUtils.isNotBlank(param.getMemo())) {
                 operateRecordService.saveOperateRecordWithManualTrigger(String.format("%s 修改集群描述,%s-->%s", logic.getName(), logic.getMemo(),
                         param.getMemo()), operator, projectId, param.getId(),OperateTypeEnum.MY_CLUSTER_INFO_MODIFY);
            
            }
        }
        return result;
    }
    
 
    
    @Override
    public PaginationResult<ClusterLogicVO> pageGetClusterLogics(ClusterLogicConditionDTO condition,
                                                                 Integer projectId) throws NotFindSubclassException, ESOperateException {
        BaseHandle baseHandle = handleFactory.getByHandlerNamePer(CLUSTER_LOGIC.getPageSearchType());
        if (baseHandle instanceof ClusterLogicPageSearchHandle) {
            ClusterLogicPageSearchHandle pageSearchHandle = (ClusterLogicPageSearchHandle) baseHandle;
            return pageSearchHandle.doPage(condition, projectId);
        }

        LOGGER.warn(
            "class=ClusterLogicManagerImpl||method=pageGetConsoleClusterVOS||msg=failed to get the ClusterLogicPageSearchHandle");
        return PaginationResult.buildFail("分页获取逻辑集群信息失败");
    }

    @Override
    public boolean updateClusterLogicHealth(Long clusterLogicId) {
        ESLogicClusterDTO updateLogicClusterDTO = new ESLogicClusterDTO();
        Set<Integer> clusterHealthSet = Sets.newHashSet();
        updateLogicClusterDTO.setId(clusterLogicId);
        try {
            final ClusterRegion clusterRegion = clusterRegionService.getRegionByLogicClusterId(clusterLogicId);
            if (Objects.isNull(clusterRegion)) {
                LOGGER.error(
                    "class=ClusterLogicManagerImpl||method=updateClusterLogicHealth||clusterLogicId={}||errMsg=clusterLogicContext is empty",
                    clusterLogicId);
                clusterHealthSet.add(UNKNOWN.getCode());
            } else {
                clusterHealthSet.add(esClusterService.syncGetClusterHealthEnum(clusterRegion.getPhyClusterName()).getCode());
            }

            updateLogicClusterDTO.setHealth(ClusterUtils.getClusterLogicHealthByClusterHealth(clusterHealthSet));
            setClusterLogicInfo(updateLogicClusterDTO,clusterRegion);
            clusterLogicService.editClusterLogicNotCheck(updateLogicClusterDTO);
        } catch (Exception e) {
            LOGGER.error("class=ClusterLogicManagerImpl||method=updateClusterLogicHealth||clusterLogicId={}||errMsg={}",
                    clusterLogicId, e.getMessage(), e);
            return false;
        }

        return true;
    }

    @Override
    public Result<ClusterLogicTemplateIndexCountVO> indexTemplateCount(Long clusterId, String operator,
                                                                       Integer projectId) {
        ClusterLogic clusterLogic = clusterLogicService.getClusterLogicByIdAndProjectId(clusterId,projectId);
        ClusterLogicTemplateIndexDetailDTO detailVO = getTemplateIndexVO(clusterLogic,projectId);
        ClusterLogicTemplateIndexCountVO countVO = new ClusterLogicTemplateIndexCountVO();
        countVO.setCatIndexResults(detailVO.getCatIndexResults().size());
        countVO.setTemplateLogicAggregates(detailVO.getTemplates().size());
        return Result.buildSucc(countVO);
    }

    @Override
    public Result<Long> estimatedDiskSize(Long clusterLogicId, Integer count) {
        ClusterLogic clusterLogic =
                clusterLogicService.getClusterLogicByIdThatNotContainsProjectId(clusterLogicId);
        if (Objects.isNull(clusterLogic)){
            return Result.buildFail("逻辑集群不存在");
        }
        String nodeSpec = clusterLogic.getDataNodeSpec();
        if (StringUtils.isNotBlank(nodeSpec)) {
            return Result.buildSucc(getUnitSize(nodeSpec.split("-")[2]) * count);
        }
        return Result.buildSucc(UNKNOWN_SIZE);
    }

    @Override
    public Result<String> getClusterDataNodeSpec(Long clusterLogicId){
        ClusterRegion clusterRegion = clusterRegionService.getRegionByLogicClusterId(clusterLogicId);
        Result<List<ClusterRoleHost>> result = clusterRoleHostService.listByRegionId(clusterRegion.getId().intValue());
        ClusterRoleHost clusterRoleHost = result.getData().stream().findFirst().orElse(null);
        return Result.buildSucc(clusterRoleHost.getMachineSpec());
    }

    @Override
    public Result<List<String>> listClusterLogicNameByProjectId(Integer projectId) {
        List<ClusterLogic> tempAuthLogicClusters = Lists.newArrayList();
        if (AuthConstant.SUPER_PROJECT_ID.equals(projectId)) {
            tempAuthLogicClusters.addAll(clusterLogicService.listAllClusterLogics());
        } else {
            tempAuthLogicClusters.addAll(clusterLogicService.getHasAuthClusterLogicsByProjectId(projectId));
        }
        List<String> names = tempAuthLogicClusters.stream().map(ClusterLogic::getName).collect(Collectors.toList());
        if (CollectionUtils.isEmpty(names)){
            return Result.buildFail("无集群信息,请前往集群管理-->我的集群,进行集群申请。");
        }
        return Result.buildSucc(names);
    }

    @Override
    public Result<List<Tuple<String, ClusterPhyVO>>> getClusterRelationByProjectId(Integer projectId) {

        List<Tuple<String, ClusterPhyVO>> collect;
        if (AuthConstant.SUPER_PROJECT_ID.equals(projectId)) {
            List<ClusterPhy> phyList = clusterPhyService.listAllClusters();
            collect = phyList.stream().map(
                clusterPhy -> new Tuple<>(clusterPhy.getCluster(), ConvertUtil.obj2Obj(clusterPhy, ClusterPhyVO.class)))
                .collect(Collectors.toList());
        } else {
            List<ClusterLogic> logicList = clusterLogicService.getOwnedClusterLogicListByProjectId(projectId);
            collect = logicList.stream()
                .map(clusterLogic -> new Tuple<>(clusterLogic.getName(), getPhyNameByLogic(clusterLogic.getId())))
                .collect(Collectors.toList());
        }
        return Result.buildSucc(collect);
    }

    @Override
    public Result<List<PluginVO>> getClusterLogicPlugins(Long clusterId) {
        return Result
            .buildSucc(ConvertUtil.list2List(clusterLogicService.getClusterLogicPlugins(clusterId), PluginVO.class));
    }

    @Override
    public Result<Boolean> isLogicClusterRegionIsNotEmpty(Long logicClusterId) {
        if (!clusterLogicService.existClusterLogicById(logicClusterId)) {
            return Result.buildWithMsg(false, "逻辑集群不存在!");
        }
        ClusterRegion clusterRegion = clusterRegionService.getRegionByLogicClusterId(logicClusterId);
        if (null == clusterRegion) {
            return Result.buildWithMsg(false, "逻辑集群Region不存在!");
        }
        Result<List<ClusterRoleHost>> roleHostResult = clusterRoleHostService
            .listByRegionId(Math.toIntExact(clusterRegion.getId()));

        return Result.buildSucc(roleHostResult.success() && CollectionUtils.isNotEmpty(roleHostResult.getData()));
    }

    /**************************************************** private method ****************************************************/

    /**
     * 设置磁盘使用信息
     * @param clusterDTO
     */
    public void setClusterLogicInfo(ESLogicClusterDTO clusterDTO,ClusterRegion clusterRegion) {
        Result<List<ClusterRoleHost>> result = clusterRoleHostService
                .listByRegionId(Math.toIntExact(clusterRegion.getId()));
        if (result.success()) {
            List<String> clusterRoleHostList = result.getData().stream().map(ClusterRoleHost::getNodeSet).collect(Collectors.toList());

            Long diskTotal = 0L;
            Long diskUsage = 0L;
            Map<String, Triple<Long, Long, Double>> map = eSClusterNodeService
                    .syncGetNodesDiskUsage(clusterRegion.getPhyClusterName());
            Set<Map.Entry<String, Triple<Long, Long, Double>>> entries = map.entrySet();
            for (Map.Entry<String, Triple<Long, Long, Double>> entry : entries) {
                if (clusterRoleHostList.contains(entry.getKey())) {
                    diskTotal += entry.getValue().v1();
                    diskUsage += entry.getValue().v2();
                }
            }
            //设置节点数
            clusterDTO.setDataNodeNum(clusterRoleHostList.size());
            clusterDTO.setDiskTotal(diskTotal);
            clusterDTO.setDiskUsage(diskUsage);
            double diskUsagePercent = diskUsage != 0L && diskTotal != 0L ? CommonUtils.divideDoubleAndFormatDouble(
                    diskUsage,
                    diskTotal, 2, 1) : 0.0;
            clusterDTO.setDiskUsagePercent(diskUsagePercent);
        }

        //设置es集群版本
        ClusterPhy physicalCluster = getLogicClusterAssignedPhysicalClusters(clusterDTO.getId());
        if (physicalCluster == null) {
            return;
        }
        clusterDTO.setEsClusterVersion(physicalCluster.getEsVersion());

    }

    private ClusterPhyVO getPhyNameByLogic(Long clusterLogicId) {
        ClusterRegion clusterRegion = clusterRegionService.getRegionByLogicClusterId(clusterLogicId);
        ClusterPhy clusterPhy = clusterPhyService.getClusterByName(clusterRegion.getPhyClusterName());
        return ConvertUtil.obj2Obj(clusterPhy, ClusterPhyVO.class);
    }

    /**
     * 构建OP逻辑集群权限
     * @param clusterLogicVO  逻辑集群
     * @param projectIdForAuthJudge 用于判断权限的应用id(供应用管理页面获取关联集群列表使用)
     *                          ,为null则权限为运维人员权限(管理权限)
     */
    private void buildOpLogicClusterPermission(ClusterLogicVO clusterLogicVO, Integer projectIdForAuthJudge) {
        if (clusterLogicVO == null) {
            return;
        }

        if (projectIdForAuthJudge == null) {
            // 未指定需要判断权限的app,取运维人员权限
            clusterLogicVO.setAuthId(null);
            clusterLogicVO.setAuthType(ProjectClusterLogicAuthEnum.OWN.getCode());
            clusterLogicVO.setPermissions(ProjectClusterLogicAuthEnum.OWN.getDesc());
        } else {
            // 指定了需要判断权限的app
            buildLogicClusterPermission(clusterLogicVO, projectIdForAuthJudge);
        }
    }

    /**
     * 根据物理集群名获取对应的逻辑集群列表,若传入为空,则返回全量
     * @param phyClusterName 物理集群的名称
     * @return List<String> 逻辑集群名称列表
     */
    @Override
    public List<String> listClusterLogicNameByPhyName(String phyClusterName) {
        //若传入为空,则返回全量
        if (null == phyClusterName) {
            return clusterLogicService.listAllClusterLogics()
                    .stream()
                    .map(ClusterLogic::getName)
                    .distinct()
                    .collect(Collectors.toList());
        } else {
           return getClusterPhyAssociatedClusterLogicNames(phyClusterName);
        }
    }

    /**
     * 返回与给定应用关联的逻辑集群名称列表
     *
     * @param projectId 项目id
     * @return List<String> 逻辑集群名称列表
     */
    @Override
    public List<String> listClusterLogicNameByApp(Integer projectId) {
        List<ClusterLogic> clusterLogicList = clusterLogicService.getHasAuthClusterLogicsByProjectId(projectId);
        List<String> names = Lists.newArrayList();
        for (ClusterLogic clusterLogic : clusterLogicList) {
            names.add(clusterLogic.getName());
        }
        return names;
    }

    /**
     * 返回与给定物理集群名称关联的逻辑集群名称列表
     *
     * @param phyClusterName 物理集群的名称。
     * @return 与给定集群物理名称关联的集群逻辑名称列表。
     */
    @Override
    public List<String> getClusterPhyAssociatedClusterLogicNames(String phyClusterName) {
        ClusterPhy clusterPhy = clusterPhyService.getClusterByName(phyClusterName);
        if (null == clusterPhy) {
            LOGGER.error(
                    "class=ClusterContextManagerImpl||method=flushClusterPhyContext||clusterPhyName={}||msg=clusterPhy is empty",
                    phyClusterName);
            return Collections.emptyList();
        }

        final List<Long> logicIds = clusterRegionManager.listRegionByPhyCluster(phyClusterName).stream()
                .filter(clusterRegion -> Objects.nonNull(clusterRegion.getLogicClusterIds()))
                .map(clusterRegion -> ListUtils.string2LongList(clusterRegion.getLogicClusterIds()))
                .filter(CollectionUtils::isNotEmpty).flatMap(Collection::stream)
                .filter(logicId -> !Objects.equals(logicId,
                        Long.parseLong(AdminConstant.REGION_NOT_BOUND_LOGIC_CLUSTER_ID))).distinct()
                .collect(Collectors.toList());
        if (CollectionUtils.isEmpty(logicIds)){
            return Collections.emptyList();
        }
       return clusterLogicService.getClusterLogicListByIds(logicIds)
                .stream()
                .map(ClusterLogic::getName)
                .distinct()
                .collect(Collectors.toList());

    }
    
    /**
     * 加入物理集群并创建逻辑集群
     *
     * @param param     ClusterJoinDTO
     * @param projectId 项目编号
     * @return joinClusterPhyAndCreateLogicCluster 方法的结果。
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result<Long> joinClusterPhyAndCreateLogicCluster(ClusterJoinDTO param, Integer projectId)
            throws AdminOperateException {
        final Result<ClusterPhyVO> voResult = clusterPhyManager.joinCluster(param, AriusUser.SYSTEM.getDesc(), projectId);
        if (voResult.failed()) {
            return Result.buildFrom(voResult);
        }
        final Integer clusterPhyId = voResult.getData().getId();
        final Result<List<ESClusterRoleHostWithRegionInfoVO>> listResult = clusterNodeManager.listDivide2ClusterNodeInfo(
                clusterPhyId.longValue());
        if (listResult.failed()) {
            return Result.buildFrom(listResult);
        }
        final List<Integer> regionIds = listResult.getData().stream()
                .map(ESClusterRoleHostVO::getId).distinct().map(Long::intValue).collect(Collectors.toList());
        final ClusterRegionWithNodeInfoDTO clusterRegionWithNodeInfoDTO =
                new ClusterRegionWithNodeInfoDTOBuilder()
                .withBindingNodeIds(regionIds).withName(param.getCluster()).withLogicClusterIds("-1")
                .withPhyClusterName(param.getCluster()).build();
    
        final Result<List<Long>> result = clusterNodeManager.createMultiNode2Region(
                Lists.newArrayList(clusterRegionWithNodeInfoDTO), AriusUser.SYSTEM.getDesc(), projectId);
        if (result.failed()) {
            return Result.buildFrom(result);
        }
        final Long regionId = result.getData().get(0);
        ClusterRegionDTO clusterRegionDTO = ClusterRegionDTO.builder().id(regionId).logicClusterIds("-1")
                .phyClusterName(param.getCluster()).name(param.getCluster()).build();
        final ESLogicClusterWithRegionDTO esLogicClusterWithRegionDTO = new ESLogicClusterWithRegionDTOBuilder()
                .withProjectId(AuthConstant.DEFAULT_METADATA_PROJECT_ID).withName(clusterRegionDTO.getName()).withLevel(1).withType(1)
                .withDataNodeSpec("").withClusterRegionDTOS(Lists.newArrayList(clusterRegionDTO)).build();
       
        final Result<Void> voidResult = addLogicClusterAndClusterRegions(esLogicClusterWithRegionDTO, AriusUser.SYSTEM.getDesc());
        if (voidResult.failed()) {
            return Result.buildFrom(voidResult);
        }
        final ClusterLogic logic = clusterLogicService.getClusterLogicByNameThatNotContainsProjectId(
                param.getCluster());
    
        return Result.buildSucc(logic.getId());
    }
    
    @Override
    public Result<List<ClusterPhyWithLogicClusterVO>> listLogicClusterWithClusterPhyByProjectId(Integer projectId) {
        List<ClusterLogic> clusterLogics = clusterLogicService.getOwnedClusterLogicListByProjectId(projectId);
        if (CollectionUtils.isEmpty(clusterLogics)) {
            return Result.buildSucc(Collections.emptyList());
        }
        Map<Long, String> clusterLogicId2ClusterLogicNameMap = ConvertUtil.list2Map(clusterLogics, ClusterLogic::getId,
                ClusterLogic::getName);
        List<Long> logicClusterIdList = clusterLogics.stream().map(ClusterLogic::getId).distinct()
                .collect(Collectors.toList());
        List<ClusterRegion> regions = clusterRegionService.getClusterRegionsByLogicIds(logicClusterIdList);
        if (CollectionUtils.isEmpty(regions)) {
            return Result.buildSucc(Collections.emptyList());
        }
        // 逻辑集群 -》region 1-1 所以
        Function<ClusterRegion, List<TupleTwo<Long, String>>> logicClusterIds2logicClusterIdLongWithClusterPhyFunc = clusterRegion -> Arrays.stream(
                        StringUtils.split(clusterRegion.getLogicClusterIds(), ",")).filter(StringUtils::isNumeric)
                .map(Long::parseLong)
                .map(logicClusterId -> Tuples.of(logicClusterId, clusterRegion.getPhyClusterName()))
                .collect(Collectors.toList());
        // 转换
        Function<TupleTwo</*clusterLogicId*/Long,/*clusterPhy*/ String>, ClusterPhyWithLogicClusterVO> clusterLogicId2clusterPhyFunc = tuple -> {
            Long logicId = tuple.v1;
            String clusterPhy = tuple.v2;
            if (clusterLogicId2ClusterLogicNameMap.containsKey(logicId)) {
                return ClusterPhyWithLogicClusterVO.builder().clusterPhy(clusterPhy).clusterLogicId(logicId)
                        .clusterLogic(clusterLogicId2ClusterLogicNameMap.get(logicId)).build();
            }
        
            return null;
        };
    
        List<ClusterPhyWithLogicClusterVO> clusterPhyWithLogicClusterList = regions.stream()
                .map(logicClusterIds2logicClusterIdLongWithClusterPhyFunc).flatMap(Collection::stream).distinct()
                .map(clusterLogicId2clusterPhyFunc).filter(Objects::nonNull).collect(Collectors.toList());
        return Result.buildSucc(clusterPhyWithLogicClusterList);
    }

    @Override
    public Result<List<ClusterLogicVO>> listClusterLogicByPhyName(String phyClusterName) {
        if (StringUtils.isNotBlank(phyClusterName)) {
            ClusterPhy clusterPhy = clusterPhyService.getClusterByName(phyClusterName);
            if (null == clusterPhy) {
                LOGGER.error(
                    "class=ClusterContextManagerImpl||method=flushClusterPhyContext||clusterPhyName={}||msg=clusterPhy is empty",
                    phyClusterName);
                return Result.buildFail("物理集群不存在!");
            }

            final List<Long> logicIds = clusterRegionManager.listRegionByPhyCluster(phyClusterName).stream()
                .filter(clusterRegion -> Objects.nonNull(clusterRegion.getLogicClusterIds()))
                .map(clusterRegion -> ListUtils.string2LongList(clusterRegion.getLogicClusterIds()))
                .filter(CollectionUtils::isNotEmpty).flatMap(Collection::stream)
                .filter(logicId -> !Objects.equals(logicId,
                    Long.parseLong(AdminConstant.REGION_NOT_BOUND_LOGIC_CLUSTER_ID)))
                .distinct().collect(Collectors.toList());
            if (CollectionUtils.isNotEmpty(logicIds)) {
                return Result.buildSucc(ConvertUtil.list2List(clusterLogicService.getClusterLogicListByIds(logicIds),
                    ClusterLogicVO.class));
            }
            return Result.buildSucc(Collections.emptyList());
        }
        //若传入为空,则返回全量
        return Result
            .buildSucc(ConvertUtil.list2List(clusterLogicService.listAllClusterLogics(), ClusterLogicVO.class));
    }

    /**
     * 构建ES集群版本
     * @param logicCluster 逻辑集群
     */
    private void buildConsoleClusterVersions(ClusterLogicVO logicCluster) {
        try {
            if (logicCluster != null) {
                ClusterPhy physicalCluster = getLogicClusterAssignedPhysicalClusters(logicCluster.getId());
                if (physicalCluster == null) {
                    return;
                }
                logicCluster.setEsClusterVersion(physicalCluster.getEsVersion());
            }
        } catch (Exception e) {
            LOGGER.warn("class=LogicClusterManager||method=buildConsoleClusterVersions||logicClusterId={}",
                logicCluster.getId(), e);
        }
    }

    /**
     * 设置app对指定逻辑集群的权限
     * @param logicClusterVO      逻辑集群
     * @param projectIdForAuthJudge 需要判断的app的ID
     */
    private void buildLogicClusterPermission(ClusterLogicVO logicClusterVO, Integer projectIdForAuthJudge) {
        try {
            if (logicClusterVO == null || projectIdForAuthJudge == null) {
                return;
            }
            if (AuthConstant.SUPER_PROJECT_ID.equals(projectIdForAuthJudge)) {
                logicClusterVO.setAuthType(ProjectClusterLogicAuthEnum.OWN.getCode());
                logicClusterVO.setPermissions(ProjectClusterLogicAuthEnum.OWN.getDesc());
                return;
            }

            ProjectClusterLogicAuth auth = projectClusterLogicAuthService.getLogicClusterAuth(projectIdForAuthJudge,
                logicClusterVO.getId());

            if (auth == null) {
                // 没有权限
                logicClusterVO.setAuthId(null);
                logicClusterVO.setAuthType(ProjectClusterLogicAuthEnum.NO_PERMISSIONS.getCode());
                logicClusterVO.setPermissions(ProjectClusterLogicAuthEnum.NO_PERMISSIONS.getDesc());
            } else {
                // 有权限
                logicClusterVO.setAuthId(auth.getId());
                logicClusterVO.setAuthType(ProjectClusterLogicAuthEnum.valueOf(auth.getType()).getCode());
                logicClusterVO.setPermissions(ProjectClusterLogicAuthEnum.valueOf(auth.getType()).getDesc());
            }

        } catch (Exception e) {
            LOGGER.warn("class=LogicClusterManager||method=buildLogicClusterPermission||logicClusterId={}",
                logicClusterVO.getId(), e);
        }
    }

    /**
     * 更新逻辑集群状态信息
     */
    private void buildLogicClusterStatus(ClusterLogicVO logicCluster, ClusterLogic clusterLogic) {
        ClusterLogicStatis esClusterLogicStatus = buildDefaultLogicStatus();
        try {
            ClusterLogicStatis clusterLogicStatus = getClusterLogicStatus(clusterLogic.getId());
            if (null != clusterLogicStatus) {
                esClusterLogicStatus = clusterLogicStatus;
            }
        } catch (Exception e) {
            LOGGER.error("class=ClusterLogicManagerImpl||method=buildLogicClusterStatus||logicClusterId={}",
                logicCluster.getId(), e);
        }

        logicCluster.setClusterStatus(ConvertUtil.obj2Obj(esClusterLogicStatus, ConsoleClusterStatusVO.class));
    }

    /**
     * 创建默认逻辑集群状态
     * @return  ClusterLogicStatis
     */
    private ClusterLogicStatis buildDefaultLogicStatus() {
        ClusterLogicStatis logicStatus = new ClusterLogicStatis();
        logicStatus.setStatus(ClusterHealthEnum.RED.getDesc());
        logicStatus.setDocNu(0.0);
        logicStatus.setIndexNu(0);
        logicStatus.setTotalDisk(0.0);
        logicStatus.setUsedDisk(0.0);
        return logicStatus;
    }

    private void buildLogicRole(ClusterLogicVO logicCluster, ClusterLogic clusterLogic) {
        if (logicCluster != null) {
            try {
                Long logicClusterId = logicCluster.getId();

                List<String> phyClusterNames = clusterRegionService.listPhysicClusterNames(logicClusterId);
                if (CollectionUtils.isEmpty(phyClusterNames)) {
                    return;
                }

                //拿第一个物理集群的client、master信息,因为只有Arius维护的大公共共享集群才会有一个逻辑集群映射成多个物理集群
                ClusterPhy clusterPhy = clusterPhyService.getClusterByName(phyClusterNames.get(0));
                if (null == clusterPhy) {
                    return;
                }

                List<ClusterRoleInfo> esRolePhyClusters = clusterPhy.getClusterRoleInfos();
                List<ClusterRoleHost> esRolePhyClusterHosts = clusterPhy.getClusterRoleHosts();

                logicCluster.setEsClusterRoleVOS(
                    buildESRoleClusterVOList(clusterLogic, logicClusterId, esRolePhyClusters, esRolePhyClusterHosts));
            } catch (Exception e) {
                LOGGER.warn("class=LogicClusterManager||method=buildLogicRole||logicClusterId={}", logicCluster.getId(),
                    e);
            }
        }
    }

    private List<ESClusterRoleVO> buildESRoleClusterVOList(ClusterLogic clusterLogic, Long logicClusterId,
                                                           List<ClusterRoleInfo> esRolePhyClusters,
                                                           List<ClusterRoleHost> esRolePhyClusterHosts) {
        List<ESClusterRoleVO> esClusterRoleVOS = new ArrayList<>();
        for (ClusterRoleInfo clusterRoleInfo : esRolePhyClusters) {
            ESClusterRoleVO esClusterRoleVO = ConvertUtil.obj2Obj(clusterRoleInfo, ESClusterRoleVO.class);

            List<ESClusterRoleHostVO> esClusterRoleHostVOS = new ArrayList<>();

            //如果是datanode节点,那么使用逻辑集群申请的节点个数和阶段规格配置
            if (DATA_NODE.getDesc().equals(clusterRoleInfo.getRoleClusterName())) {
                buildEsClusterRoleHostVOList(clusterLogic, logicClusterId, esClusterRoleVO, esClusterRoleHostVOS);
            } else {
                for (ClusterRoleHost clusterRoleHost : esRolePhyClusterHosts) {
                    if (clusterRoleHost.getRoleClusterId().longValue() == clusterRoleInfo.getId().longValue()) {
                        esClusterRoleHostVOS.add(ConvertUtil.obj2Obj(clusterRoleHost, ESClusterRoleHostVO.class));
                    }
                }
            }

            esClusterRoleVO.setEsClusterRoleHostVO(esClusterRoleHostVOS);
            esClusterRoleVO.setPodNumber(esClusterRoleHostVOS.size());
            esClusterRoleVOS.add(esClusterRoleVO);
        }
        return esClusterRoleVOS;
    }

    private void buildEsClusterRoleHostVOList(ClusterLogic clusterLogic, Long logicClusterId,
                                              ESClusterRoleVO esClusterRoleVO,
                                              List<ESClusterRoleHostVO> esClusterRoleHostVOS) {
        esClusterRoleVO.setPodNumber(clusterLogic.getDataNodeNum());
        esClusterRoleVO.setMachineSpec(clusterLogic.getDataNodeSpec());

        ClusterRegion clusterRegion = clusterRegionService.getRegionByLogicClusterId(logicClusterId);
        if (null != clusterRegion) {
            Result<List<ClusterRoleHost>> ret = clusterRoleHostService.listByRegionId(clusterRegion.getId().intValue());
            if (ret.success() && CollectionUtils.isNotEmpty(ret.getData())) {
                for (ClusterRoleHost clusterRoleHost : ret.getData()) {
                    ESClusterRoleHostVO esClusterRoleHostVO = new ESClusterRoleHostVO();
                    esClusterRoleHostVO.setHostname(clusterRoleHost.getIp());
                    esClusterRoleHostVO.setRole(DATA_NODE.getCode());

                    esClusterRoleHostVOS.add(esClusterRoleHostVO);
                }
            }
        }
    }

    /**
     * 构建节点信息:
     * 1. 是否关联物理集群
     * 2. 获取关联物理集群列表
     * 3. 逻辑集群拥有的数据节点数
     * 4. 防止没有关联物理集群, 或者取消关联region, 逻辑集群状态为red
     * 5. 获取gateway地址
     */
    private void buildClusterNodeInfo(ClusterLogicVO clusterLogicVO) {
        //获取gateway地址
        clusterLogicVO.setGatewayAddress(esGatewayClient.getGatewayAddress());
        //获取活跃分片数
        ClusterRegion clusterRegion = clusterRegionService.getRegionByLogicClusterId(clusterLogicVO.getId());
        AtomicReference<Long> activeShardNum = new AtomicReference<>(0L);
        if (Objects.nonNull(clusterRegion)){
            Map<String/*node*/, Long /*shardNum*/>  nodeShardsNum = eSClusterNodeService.syncGetNode2ShardNumMap(clusterRegion.getPhyClusterName());
            Result<List<ESClusterRoleHostVO>>  ESClusterRoleHostVORes =clusterNodeManager.listClusterLogicNode(Math.toIntExact(clusterLogicVO.getId()));
            ESClusterRoleHostVORes.getData().stream().forEach(node->{
                activeShardNum.updateAndGet(v -> v + nodeShardsNum.get(node.getNodeSet()));
            });
        }

        clusterLogicVO.setActiveShardNum(activeShardNum.get());
    }

    private TupleTwo<Result<Void>, /*projectId*/Integer> checkIndices(List<String> delIndices, Integer logicId) {
        for (String index : delIndices) {
            if (index.endsWith("*")) {
                return Tuples.of(Result.buildParamIllegal("索引名字不能以*结尾"), null);
            }
        }

        IndexTemplateWithPhyTemplates templateLogicWithPhysical = indexTemplateService
            .getLogicTemplateWithPhysicalsById(logicId);
        IndexTemplatePhy templatePhysical = templateLogicWithPhysical.getMasterPhyTemplate();

        List<String> matchIndices = indexTemplatePhyService.getMatchNoVersionIndexNames(templatePhysical.getId());
        for (String index : delIndices) {
            if (!matchIndices.contains(index)) {
                return Tuples.of(Result.buildParamIllegal(index + "不属于该索引模板"), null);
            }
        }
        return Tuples.of(Result.buildSucc(), templateLogicWithPhysical.getProjectId());
    }

    /**
     * 批量删除物理模板对应分区索引
     * @param physicals 物理模板列表
     * @param delIndices 待删除分区索引列表
     * @return 成功/失败
     */
    private Result<Void> batchDeletePhysicalTemplateIndices(List<IndexTemplatePhy> physicals, List<String> delIndices) {
        for (IndexTemplatePhy templatePhysical : physicals) {
            if (templatePhysical.getVersion() > 0) {
                List<String> delIndicesWithVersion = genDeleteIndicesWithVersion(delIndices);

                LOGGER.info(
                    "class=TemplateLogicServiceImpl||method=clearIndex||templateName={}||version={}||indices={}",
                    templatePhysical.getName(), templatePhysical.getVersion(), delIndicesWithVersion);

                if (CollectionUtils.isNotEmpty(delIndicesWithVersion)) {
                    esIndexService.syncBatchDeleteIndices(templatePhysical.getCluster(), delIndicesWithVersion, 3);
                }
            }

            int count = delIndices.size();
            if (count != esIndexService.syncBatchDeleteIndices(templatePhysical.getCluster(), delIndices, 3)) {
                return Result.buildFail("删除索引失败,请重试");
            }
        }

        return Result.buildSucc();
    }

    /**
     * 通过请求的方式批量删除物理模板分区索引
     * @param physicals 物理模板
     * @param delQueryDsl DSL语句
     * @param delIndices 删除索引列表
     * @return 成功/失败
     */
    private Result<Void> batchDeletePhysicalTemplateIndicesByQuery(List<IndexTemplatePhy> physicals, String delQueryDsl,
                                                                   List<String> delIndices) throws ESOperateException {
        if (StringUtils.isNotBlank(delQueryDsl)) {
            for (IndexTemplatePhy templatePhysical : physicals) {
                if (!esIndexService.syncDeleteByQuery(templatePhysical.getCluster(), delIndices, delQueryDsl)) {
                    return Result.buildFail("删除索引失败,请重试");
                }
            }
        }

        return Result.buildSucc();
    }

    /**
     * 生成带有版本模式的待删除索引列表
     *
     * @param delIndices 待删除索引列表
     * @return 索引名称列表
     */
    private List<String> genDeleteIndicesWithVersion(List<String> delIndices) {
        List<String> indicesWithVersion = new ArrayList<>();
        if (CollectionUtils.isNotEmpty(delIndices)) {
            for (String delIndex : delIndices) {
                indicesWithVersion.add(delIndex + "_v*");
            }
        }

        return indicesWithVersion;
    }

    private ClusterLogicStatis getClusterLogicStatus(Long logicClusterId) {
        ClusterLogicStatis clusterLogicStatis = new ClusterLogicStatis();

        //获取集群上下文
        //todo 暂时留存
        //ClusterLogicContext clusterLogicContext = clusterContextManager.getClusterLogicContext(logicClusterId);
        //if (null == clusterLogicContext) {
        //    return null;
        //}
        ClusterLogic clusterLogic = clusterLogicService.getClusterLogicByIdThatNotContainsProjectId(
                logicClusterId);
        if (Objects.isNull(clusterLogic)){
            return null;
        }

        //设置逻辑集群名称
        //clusterLogicStatis.setName(clusterLogicService.getClusterLogicName());
        clusterLogicStatis.setName(clusterLogic.getName());
        clusterLogicStatis.setId(logicClusterId);

        List<ESClusterStatsResponse> esClusterStatsResponseList =
                //clusterLogicContext.getAssociatedClusterPhyNames()
        clusterRegionService.listPhysicClusterNames(clusterLogic.getId())
            .stream().map(esClusterService::syncGetClusterStats).collect(Collectors.toList());

        //设置基础数据
        clusterLogicStatis
            .setIndexNu(esClusterStatsResponseList.stream().mapToLong(ESClusterStatsResponse::getIndexCount).sum());
        clusterLogicStatis
            .setDocNu(esClusterStatsResponseList.stream().mapToDouble(ESClusterStatsResponse::getDocsCount).sum());
        clusterLogicStatis
            .setTotalDisk(esClusterStatsResponseList.stream().mapToDouble(item -> item.getTotalFs().getBytes()).sum());
        clusterLogicStatis.setUsedDisk(esClusterStatsResponseList.stream()
            .mapToDouble(item -> item.getTotalFs().getBytes() - item.getFreeFs().getBytes()).sum());

        //设置逻辑集群状态
        Set<String> statusSet = esClusterStatsResponseList.stream().map(ESClusterStatsResponse::getStatus)
            .collect(Collectors.toSet());
        clusterLogicStatis.setStatus(getClusterLogicStatus(statusSet));
        return clusterLogicStatis;
    }

    @Override
    public Result<Void> deleteTemplatesIndicesInfo(Long clusterLogicId,Integer projectId,String operator) {
        ClusterRegion clusterRegion = clusterRegionService.getRegionByLogicClusterId(clusterLogicId);
        ClusterLogic clusterLogic = clusterLogicService.getClusterLogicByIdAndProjectId(clusterLogicId,projectId);
        if (Objects.isNull(clusterRegion)){
            return Result.buildFail("该逻辑集群未绑定region!");
        }
        //获取物理模板
        Result<List<IndexTemplatePhy>> indexTemplatePhys = indexTemplatePhyService.listByRegionId(Math.toIntExact(clusterRegion.getId()));
        //获取逻辑模板
        Result<List<IndexTemplate>> indexTemplates = indexTemplateService.listByRegionId(Math.toIntExact(clusterRegion.getId()));
        List<String> indices = esIndexCatService.syncGetIndexListByProjectId(projectId,clusterLogic.getName());
        if (indexTemplatePhys.getData().size() == 0&&indexTemplates.getData().size() == 0&&indices.size()==0){
            return Result.buildFail("该逻辑集群下无数据!");
        }
        //删除数据
        for (IndexTemplate indexTemplate:indexTemplates.getData()) {
            try {
                indexTemplateService.delTemplate(indexTemplate.getId(),operator);
                indexTemplatePhyService.delTemplateByLogicId(indexTemplate.getId(),operator);
            } catch (AdminOperateException e) {
                return Result.buildFail("数据删除错误!");
            }
        }
        return Result.buildSucc();
    }

    /**
     * 获取逻辑集群状态
     * @return ClusterStatusEnum
     */
    private String getClusterLogicStatus(Set<String> statusSet) {
        if (statusSet.contains(RED.getDesc())) {
            return RED.getDesc();
        }

        if (statusSet.size() == 1 && statusSet.contains(GREEN.getDesc())) {
            return GREEN.getDesc();
        }

        if (statusSet.contains(YELLOW.getDesc())) {
            return YELLOW.getDesc();
        }
        return RED.getDesc();
    }
}

================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterNodeManagerImpl.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;

import static com.didichuxing.datachannel.arius.admin.common.constant.resource.ESClusterNodeRoleEnum.DATA_NODE;
import static com.didichuxing.datachannel.arius.admin.common.constant.result.ResultType.FAIL;

import com.didichuxing.datachannel.arius.admin.biz.cluster.ClusterNodeManager;
import com.didichuxing.datachannel.arius.admin.common.Triple;
import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterRegionWithNodeInfoDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterLogic;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterPhy;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ecm.ClusterRoleHost;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.region.ClusterRegion;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ClusterNodeInfoVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ESClusterRoleHostVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ESClusterRoleHostWithRegionInfoVO;
import com.didichuxing.datachannel.arius.admin.common.constant.operaterecord.OperateTypeEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.operaterecord.OperationEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.resource.ESClusterNodeStatusEnum;
import com.didichuxing.datachannel.arius.admin.common.event.region.RegionEditEvent;
import com.didichuxing.datachannel.arius.admin.common.exception.AdminOperateException;
import com.didichuxing.datachannel.arius.admin.common.exception.AdminTaskException;
import com.didichuxing.datachannel.arius.admin.common.util.AriusObjUtils;
import com.didichuxing.datachannel.arius.admin.common.util.ConvertUtil;
import com.didichuxing.datachannel.arius.admin.common.util.ProjectUtils;
import com.didichuxing.datachannel.arius.admin.core.component.SpringTool;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.logic.ClusterLogicService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.physic.ClusterPhyService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.physic.ClusterRoleHostService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.region.ClusterRegionService;
import com.didichuxing.datachannel.arius.admin.core.service.common.OperateRecordService;
import com.didichuxing.datachannel.arius.admin.core.service.es.ESClusterNodeService;
import com.didiglobal.knowframework.log.ILog;
import com.didiglobal.knowframework.log.LogFactory;
import com.didiglobal.knowframework.security.service.ProjectService;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author ohushenglin_v
 * @date 2022-05-30
 */
@Component
public class ClusterNodeManagerImpl implements ClusterNodeManager {

    private static final ILog      LOGGER = LogFactory.getLog(ClusterNodeManager.class);

    @Autowired
    private ClusterRoleHostService clusterRoleHostService;

    @Autowired
    private ClusterRegionService   clusterRegionService;

    @Autowired
    private ClusterPhyService      clusterPhyService;

    @Autowired
    private ESClusterNodeService   esClusterNodeService;

    @Autowired
    private OperateRecordService   operateRecordService;

    @Autowired
    private ClusterLogicService    clusterLogicService;
    @Autowired
    private ProjectService projectService;

    @Override
    public Result<List<ESClusterRoleHostWithRegionInfoVO>> listDivide2ClusterNodeInfo(Long clusterId) {
        List<ClusterRoleHost> clusterRoleHostList = null;
        try {
            clusterRoleHostList = clusterRoleHostService.getByRoleAndClusterId(clusterId, DATA_NODE.getDesc());
        } catch (Exception e) {
            LOGGER.error("class=ClusterPhyManagerImpl||method=listDivide2ClusterNodeInfo||clusterId={}||errMsg={}",
                clusterId, e.getMessage(), e);
        }
        List<ESClusterRoleHostWithRegionInfoVO> esClusterRoleHostWithRegionInfoVOS = ConvertUtil
            .list2List(clusterRoleHostList, ESClusterRoleHostWithRegionInfoVO.class);

        // 根据regionId获取region名称
        List<Integer> regionIdList = esClusterRoleHostWithRegionInfoVOS.stream()
            .map(ESClusterRoleHostWithRegionInfoVO::getRegionId).distinct().collect(Collectors.toList());

        if (CollectionUtils.isEmpty(regionIdList)) {
            return Result.buildSucc(esClusterRoleHostWithRegionInfoVOS);
        }

        Map<Integer, String> regionId2RegionNameMap = Maps.newHashMap();
        for (Integer regionId : regionIdList) {
            ClusterRegion clusterRegion = clusterRegionService.getRegionById(regionId.longValue());
            if (null == clusterRegion) {
                continue;
            }

            regionId2RegionNameMap.put(regionId, clusterRegion.getName());
        }

        for (ESClusterRoleHostWithRegionInfoVO clusterRoleHostWithRegionInfoVO : esClusterRoleHostWithRegionInfoVOS) {
            clusterRoleHostWithRegionInfoVO
                .setRegionName(regionId2RegionNameMap.get(clusterRoleHostWithRegionInfoVO.getRegionId()));
        }
        return Result.buildSucc(esClusterRoleHostWithRegionInfoVOS);
    }

    @Override
    public Result<Boolean> checkMultiNode2Region(List<ClusterRegionWithNodeInfoDTO> params, String operator, Integer projectId) {
        final Result<Void> result = ProjectUtils.checkProjectCorrectly(i -> i, projectId, projectId);
        if (result.failed()) {
            return Result.buildFail(result.getMessage());
        }
        for(ClusterRegionWithNodeInfoDTO param : params){
            Result<Boolean> checkRet = baseCheckParamValid(param,OperationEnum.ADD);
            if (checkRet.failed()) {
                return checkRet;
            }

            if (CollectionUtils.isEmpty(param.getBindingNodeIds())) {
                return Result.buildFail(String.format("region名称[%s], errMsg=%s", param.getName(), "划分至该region的节点为空"));
            }
        }
        return Result.buildSucc(true);
    }

    @Override
    public Result<List<ClusterNodeInfoVO>> listClusterPhyNodeInfosByName(String clusterPhyName) {
        if (null == clusterPhyName) {
            LOGGER.error("class=ClusterPhyManagerImpl||method=getAppClusterPhyNodeNames||errMsg=集群名称为空");
            return Result.buildFail("集群名称为空");
        }
        List<ClusterRoleHost> clusterRoleHosts = clusterRoleHostService.getNodesByCluster(clusterPhyName);
        //节点信息列表
        return Result.buildSucc(clusterRoleHosts.stream().map(clusterRoleHost->new ClusterNodeInfoVO(clusterRoleHost.getNodeSet(),clusterRoleHost.getRole()))
                .collect(Collectors.toList()));
    }

    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result<List<Long>> createMultiNode2Region(List<ClusterRegionWithNodeInfoDTO> params, String operator,
                                                     Integer projectId) throws AdminOperateException {
        final Result<Void> result = ProjectUtils.checkProjectCorrectly(i -> i, projectId, projectId);
        if (result.failed()) {
            return Result.buildFail(result.getMessage());
        }

        List<Long> regionIdLis = Lists.newArrayList();
        for (ClusterRegionWithNodeInfoDTO param : params) {
            Result<Boolean> checkRet = baseCheckParamValid(param,OperationEnum.ADD);
            if (checkRet.failed()) {
                throw new AdminOperateException(checkRet.getMessage());
            }

            if (CollectionUtils.isEmpty(param.getBindingNodeIds())) {
                throw new AdminOperateException(
                    String.format("region名称[%s], errMsg=%s", param.getName(), "划分至该region的节点为空"));
            }

            Result<Long> addRegionRet = clusterRegionService.createPhyClusterRegion(param, operator);

            if (addRegionRet.success()) {
                param.setId(addRegionRet.getData());
                // 调用扩缩容region接口来添加region
                Result<Boolean> booleanResult = editNode2Region(param);
                if (booleanResult.success()) {
                    // 2. 操作记录 :Region变更
                     operateRecordService.saveOperateRecordWithManualTrigger(String.format("新增 region[%s]", param.getName()), operator, projectId,
                            param.getId(), OperateTypeEnum.PHYSICAL_CLUSTER_REGION_CHANGE);
                    regionIdLis.add(addRegionRet.getData());
                } else {
                    throw new AdminOperateException(addRegionRet.getMessage());
                }
            }
        }
        return Result.buildSucc(regionIdLis);
    }

    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result<Boolean> editMultiNode2Region(List<ClusterRegionWithNodeInfoDTO> params, String operator,
                                                Integer projectId, OperationEnum operationEnum) throws AdminOperateException {
        final Result<Void> result = ProjectUtils.checkProjectCorrectly(i -> i, projectId, projectId);
        if (result.failed()) {
            return Result.buildFail(result.getMessage());
        }
        for (ClusterRegionWithNodeInfoDTO param : params) {
            Result<Boolean> checkRet = baseCheckParamValid(param,operationEnum);
            if (checkRet.failed()) {
                throw new AdminOperateException(checkRet.getMessage(), FAIL);
            }

            Result<Boolean> editNode2RegionRet = editNode2Region(param);
            if (editNode2RegionRet.failed()) {
                throw new AdminOperateException(editNode2RegionRet.getMessage(), FAIL);
            }
        }

        // 发布region变更的事件,对模板和索引生效
        List<Long> regionIdList = params.stream().distinct().map(ClusterRegionWithNodeInfoDTO::getId)
            .collect(Collectors.toList());
        SpringTool.publish(new RegionEditEvent(this, regionIdList));

        return Result.buildSucc(true);
    }

    @Override
    public Result<List<ESClusterRoleHostVO>> listClusterPhyNode(Integer clusterId) {
        ClusterPhy clusterPhy = clusterPhyService.getClusterById(clusterId);
        if (AriusObjUtils.isNull(clusterPhy)) {
            return Result.buildFail(String.format("集群[%s]不存在", clusterId));
        }
        List<ClusterRoleHost> clusterRoleHostList = clusterRoleHostService.getNodesByCluster(clusterPhy.getCluster());
        return Result.buildSucc(buildClusterRoleHostStats(clusterPhy.getCluster(), clusterRoleHostList));
    }

    @Override
    public Result<List<ESClusterRoleHostVO>> listClusterLogicNode(Integer clusterId) {
        if (!clusterLogicService.existClusterLogicById(clusterId.longValue())) {
            return Result.buildFail(String.format("集群[%s]不存在", clusterId));
        }
        ClusterRegion clusterRegion = clusterRegionService.getRegionByLogicClusterId(clusterId.longValue());
        if (clusterRegion == null) {
            return Result.buildFail(String.format("集群[%s]未绑定region", clusterId));
        }
        Result<List<ClusterRoleHost>> result = clusterRoleHostService
            .listByRegionId(Math.toIntExact(clusterRegion.getId()));
        if (result.failed()) {
            return Result.buildFail(result.getMessage());
        }
        //节点名称列表
        return Result.buildSucc(buildClusterRoleHostStats(clusterRegion.getPhyClusterName(), result.getData()));
    }

    @Override
    public Result listClusterLogicNodeByName(String clusterLogicName) {
        ClusterLogic clusterLogic =
                clusterLogicService.listClusterLogicByNameThatProjectIdStrConvertProjectIdList(clusterLogicName).stream().findFirst().orElse(null);
        if (AriusObjUtils.isNull(clusterLogic)) {
            return Result.buildFail(String.format("集群[%s]不存在", clusterLogicName));
        }
        ClusterRegion clusterRegion = clusterRegionService.getRegionByLogicClusterId(clusterLogic.getId());
        Result<List<ClusterRoleHost>> result = clusterRoleHostService
            .listByRegionId(Math.toIntExact(clusterRegion.getId()));

        if (result.failed()) {
            return Result.buildFail(result.getMessage());
        }

        //节点名称列表
        return Result
            .buildSucc(result.getData().stream().map(ClusterRoleHost::getNodeSet).collect(Collectors.toList()));
    }

    @Override
    public Result<List<ClusterNodeInfoVO>> listClusterLogicNodeInfosByName(String clusterLogicName) {
        ClusterLogic clusterLogic =
                clusterLogicService.listClusterLogicByNameThatProjectIdStrConvertProjectIdList(clusterLogicName).stream().findFirst().orElse(null);
        if (AriusObjUtils.isNull(clusterLogic)) {
            return Result.buildFail(String.format("集群[%s]不存在", clusterLogicName));
        }
        ClusterRegion clusterRegion = clusterRegionService.getRegionByLogicClusterId(clusterLogic.getId());
        if (clusterRegion == null) {
            return Result.buildFail(String.format("集群[%s]未绑定region", clusterLogic.getId()));
        }
        Result<List<ClusterRoleHost>> result = clusterRoleHostService
                .listByRegionId(Math.toIntExact(clusterRegion.getId()));
        if (result.failed()) {
            return Result.buildFail(result.getMessage());
        }
        //节点信息列表
        return Result.buildSucc(result.getData().stream().map(clusterRoleHost->new ClusterNodeInfoVO(clusterRoleHost.getNodeSet(),clusterRoleHost.getRole()))
                .collect(Collectors.toList()));
    }
    @Override
    public boolean collectNodeSettings(String cluster) throws AdminTaskException {
        return clusterRoleHostService.collectClusterNodeSettings(cluster);
    }
    
  
    /**
     * > 该功能用于删除集群节点,但该节点必须离线且未绑定region
     *
     * @param ids 要删除的节点的id
     * @param projectId 项目编号
     * @param operator 操作员是执行操作的用户。
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result<Void> delete(List<Integer> ids, Integer projectId, String operator) {
        Result<Void> checkProjectCorrectly = ProjectUtils.checkProjectCorrectly(i -> i, projectId, projectId);
        if (checkProjectCorrectly.failed()) {
            return checkProjectCorrectly;
        }
    
        List<ClusterRoleHost> clusterRoleHosts = clusterRoleHostService.listById(ids);
        if (CollectionUtils.isEmpty(clusterRoleHosts)) {
            return Result.buildSucc();
        }
        //1. 校验当前节点是否 bind region, 如果是则不允许下线
        if (!clusterRoleHosts.stream().allMatch(clusterRoleHost -> Objects.equals(clusterRoleHost.getRegionId(), -1))) {
            return Result.buildFail("当前选中的节点绑定了 region,请先下线 region");
        }
        //2. 检验当前节点是否都离线
        if (!clusterRoleHosts.stream().allMatch(clusterRoleHost -> Objects.equals(clusterRoleHost.getStatus(),
                ESClusterNodeStatusEnum.OFFLINE.getCode()))) {
            return Result.buildFail("只可以下线离线状态的节点,当前选中的节点存在非离线状态的节点");
        }
        //3. 下线离线的节点
        List<String> clusterPhies = clusterRoleHosts.stream().map(ClusterRoleHost::getCluster).distinct()
                .collect(Collectors.toList());
        List<ClusterPhy> clusterPhyList = clusterPhyService.listClustersByNames(clusterPhies);
    
        boolean delete = clusterRoleHostService.deleteByIds(ids);
        if (delete) {
            Map<String, Integer> clusterPhy2ClusterId = ConvertUtil.list2Map(clusterPhyList, ClusterPhy::getCluster,
                    ClusterPhy::getId);
            Multimap<String, Long> clusterPhy2NodeIds = ConvertUtil.list2MulMap(clusterRoleHosts,
                    ClusterRoleHost::getCluster, ClusterRoleHost::getId);
            Map<Long, String> nodeId2IpMap = ConvertUtil.list2Map(clusterRoleHosts, ClusterRoleHost::getId,
                    ClusterRoleHost::getIp);
            for (Entry<String, Integer> clusterPhy2ClusterIdEntry : clusterPhy2ClusterId.entrySet()) {
                Integer clusterId = clusterPhy2ClusterIdEntry.getValue();
                String ipStr = clusterPhy2NodeIds.get(clusterPhy2ClusterIdEntry.getKey()).stream()
                        .map(nodeId2IpMap::get).distinct().collect(Collectors.joining(","));
                // 2. 操作记录 : 节点下线
                 operateRecordService.saveOperateRecordWithManualTrigger(String.format("下线节点的 ip 列表 :[%s]", ipStr), operator, projectId, clusterId,
                        OperateTypeEnum.PHYSICAL_CLUSTER_NODE_CHANGE);
            }
        }
        return Result.build(delete);
    }

    /**
     * @param regionId
     * @return
     */
    @Override
    public Result<List<ESClusterRoleHostVO>> listClusterRoleHostByRegionId(Long regionId) {
        ClusterRegion region = clusterRegionService.getRegionById(regionId);
        if (region == null) {
            return Result.buildFail("region不存在");
        }
        Result<List<ClusterRoleHost>> ret = clusterRoleHostService.listByRegionId(region.getId().intValue());
        if (ret.failed()) {
            return Result.buildFail("获取host失败");

        }
        return Result.buildSucc(ConvertUtil.list2List(ret.getData(), ESClusterRoleHostVO.class));
    }

    /**
     * 获取当前平台所有集群节点的机器规格
     * @return
     */
    @Override
    public Result<List<String>> listAllMachineSpecs() {
        List<ClusterRoleHost> clusterRoleHostList = clusterRoleHostService.listAllNodeByRole(DATA_NODE.getCode());
        if(AriusObjUtils.isEmptyList(clusterRoleHostList)){
            return Result.buildFail("当前集群还没有任何节点");
        }
        List<String> machineSpecs = clusterRoleHostList.stream()
                .filter(clusterRoleHost -> StringUtils.isNotBlank(clusterRoleHost.getMachineSpec()))
                .map(ClusterRoleHost::getMachineSpec)
                .distinct().collect(Collectors.toList());
        machineSpecs.sort(this::machineSpecSort);
        return Result.buildSucc(machineSpecs);
    }

    /**************************************** private method ***************************************************/

    /**
     * 对节点规格(如4c-125g-500g)进行排序展示,方便用户查看选择
     * @param s1
     * @param s2
     * @return
     */
    private int machineSpecSort(String s1, String s2) {
        int c1 = Integer.valueOf(s1.substring(0, s1.indexOf('c')));
        int c2 = Integer.valueOf(s2.substring(0, s2.indexOf('c')));
        if(c1 == c2){
            int g1 = Integer.valueOf(s1.substring(s1.indexOf('c')+2, s1.indexOf('g')));
            int g2 = Integer.valueOf(s2.substring(s2.indexOf('c')+2, s2.indexOf('g')));
            if(g1 == g2){
                int gg1 = Integer.valueOf(s1.substring(s1.indexOf('g')+2, s1.length()-1));
                int gg2 = Integer.valueOf(s2.substring(s2.indexOf('g')+2, s2.length()-1));
                if(gg1 == gg2){
                    return 0;
                }
                return gg1 > gg2 ? 1 : -1;
            }
            return g1 > g2 ? 1 : -1;
        }
        return c1 > c2 ? 1 : -1;
    }

    private List<ESClusterRoleHostVO> buildClusterRoleHostStats(String cluster,
                                                                List<ClusterRoleHost> clusterRoleHostList) {
        List<ESClusterRoleHostVO> roleHostList = ConvertUtil.list2List(clusterRoleHostList, ESClusterRoleHostVO.class);
        if (CollectionUtils.isNotEmpty(roleHostList)) {
            Map<String, String> regionMap = roleHostList.stream().map(ESClusterRoleHostVO::getRegionId)
                .filter(regionId -> null != regionId && regionId > 0).distinct()
                .map(regionId -> clusterRegionService.getRegionById(regionId.longValue())).filter(Objects::nonNull)
                .collect(
                    Collectors.toMap(region -> String.valueOf(region.getId()), ClusterRegion::getName, (r1, r2) -> r1));

            Map<String, Triple<Long, Long, Double>> nodeDiskUsageMap = esClusterNodeService
                .syncGetNodesDiskUsage(cluster);
            roleHostList.forEach(vo -> {
                Optional.ofNullable(regionMap.get(String.valueOf(vo.getRegionId()))).ifPresent(vo::setRegionName);
                Optional.ofNullable(nodeDiskUsageMap.get(vo.getNodeSet())).ifPresent(triple -> {
                    vo.setDiskTotal(triple.v1());
                    vo.setDiskUsage(triple.v2());
                    vo.setDiskUsagePercent(triple.v3());
                });
            });
        }
        return roleHostList;
    }

    private Result<Boolean> baseCheckParamValid(ClusterRegionWithNodeInfoDTO param, OperationEnum operationEnum) {
        if (null == param) {
            return Result.buildFail("参数为空");
        }
        if (operationEnum.equals(OperationEnum.ADD)) {
            if (AriusObjUtils.isBlank(param.getName())) {
                return Result.buildFail("region名称不允许为空或者空字符串");
            }
            if (clusterRegionService.isExistByRegionName(param.getName())) {
                return Result.buildFail(String.format("region名称[%s]已经存在", param.getName()));
            }
            if (CollectionUtils.isEmpty(param.getBindingNodeIds())) {
                return Result.buildFail("不允许绑定空region");
            }
        }
        if (operationEnum.equals(OperationEnum.EDIT)) {
            if (Objects.isNull(param.getId())) {
                return Result.buildFail("编辑id不能为空");
            }
            if (!clusterRegionService.isExistByRegionId(Math.toIntExact(param.getId()))) {
                return Result.buildFail(String.format("编辑的region %d 不存在", param.getId()));
            }
        }

        if (!clusterPhyService.isClusterExists(param.getPhyClusterName())) {
            return Result.buildFail(String.format("物理集群[%s]不存在", param.getPhyClusterName()));
        }
        return Result.buildSucc();
    }

    private Result<Boolean> editNode2Region(ClusterRegionWithNodeInfoDTO param) throws AdminOperateException {
       
        // 校验bindingNodeIds 和 unBindingNodeIds的重复性
        List<Integer> bindingNodeIds = param.getBindingNodeIds();
        List<Integer> unBindingNodeIds = param.getUnBindingNodeIds();
        if (CollectionUtils.isNotEmpty(bindingNodeIds)) {
            for (Integer bindingNodeId : bindingNodeIds) {
                if (CollectionUtils.isNotEmpty(unBindingNodeIds) && unBindingNodeIds.contains(bindingNodeId)) {
                    return Result.buildFail("region中绑定节点类别和解绑节点列表不能有相同节点");
                }
            }
        }

        if (CollectionUtils.isNotEmpty(bindingNodeIds)) {
            // 绑定node 到指定 region
            boolean editBingingNodeRegionIdFlag = clusterRoleHostService.editNodeRegionId(bindingNodeIds,
                param.getId().intValue());
            if (!editBingingNodeRegionIdFlag) {
                return Result.buildFail(String.format("新增region节点[%s]失败", bindingNodeIds));
            }
        }

        if (CollectionUtils.isNotEmpty(unBindingNodeIds)) {
            // 解绑node 到指定 region
            boolean editUnBingingNodeRegionFlag = clusterRoleHostService.editNodeRegionId(unBindingNodeIds, -1);
            if (!editUnBingingNodeRegionFlag) {
                return Result.buildFail(String.format("删除region节点[%s]失败", unBindingNodeIds));
            }
        }
        return Result.build(true);
    }
}

================================================
FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterPhyManagerImpl.java
================================================
package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;

import static com.didichuxing.datachannel.arius.admin.common.constant.ClusterConstant.DEFAULT_CLUSTER_HEALTH;
import static com.didichuxing.datachannel.arius.admin.common.constant.ClusterConstant.DEFAULT_CLUSTER_IDC;
import static com.didichuxing.datachannel.arius.admin.common.constant.ClusterConstant.JOIN_MASTER_NODE_MIN_NUMBER;
import static com.didichuxing.datachannel.arius.admin.common.constant.PageSearchHandleTypeEnum.CLUSTER_PHY;
import static com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterResourceTypeEnum.EXCLUSIVE;
import static com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterResourceTypeEnum.PRIVATE;
import static com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterResourceTypeEnum.PUBLIC;
import static com.didichuxing.datachannel.arius.admin.common.constant.resource.ESClusterNodeRoleEnum.CLIENT_NODE;
import static com.didichuxing.datachannel.arius.admin.common.constant.resource.ESClusterNodeRoleEnum.DATA_NODE;
import static com.didichuxing.datachannel.arius.admin.common.constant.resource.ESClusterNodeRoleEnum.MASTER_NODE;

import com.alibaba.fastjson.JSON;
import com.didichuxing.datachannel.arius.admin.biz.cluster.ClusterPhyManager;
import com.didichuxing.datachannel.arius.admin.biz.page.ClusterPhyPageSearchHandle;
import com.didichuxing.datachannel.arius.admin.biz.template.TemplatePhyManager;
import com.didichuxing.datachannel.arius.admin.biz.template.srv.mapping.TemplatePhyMappingManager;
import com.didichuxing.datachannel.arius.admin.biz.template.srv.pipeline.PipelineManager;
import com.didichuxing.datachannel.arius.admin.common.Triple;
import com.didichuxing.datachannel.arius.admin.common.Tuple;
import com.didichuxing.datachannel.arius.admin.common.bean.common.PaginationResult;
import com.didichuxing.datachannel.arius.admin.common.bean.common.Result;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterJoinDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterPhyConditionDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterPhyDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ClusterSettingDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.dto.cluster.ESClusterRoleHostDTO;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterLogic;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ClusterPhy;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ecm.ClusterRoleHost;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ecm.ClusterRoleInfo;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.ecm.ClusterTag;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.cluster.setting.ESClusterGetSettingsAllResponse;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.region.ClusterRegion;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.stats.ESClusterStatsResponse;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.template.IndexTemplate;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.template.IndexTemplatePhy;
import com.didichuxing.datachannel.arius.admin.common.bean.entity.template.IndexTemplateWithPhyTemplates;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ClusterLogicVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ClusterLogicVOWithProjects;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ClusterPhyVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ClusterRegionVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ESClusterRoleHostVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.ESClusterRoleVO;
import com.didichuxing.datachannel.arius.admin.common.bean.vo.cluster.PluginVO;
import com.didichuxing.datachannel.arius.admin.common.component.BaseHandle;
import com.didichuxing.datachannel.arius.admin.common.constant.AdminConstant;
import com.didichuxing.datachannel.arius.admin.common.constant.AuthConstant;
import com.didichuxing.datachannel.arius.admin.common.constant.DataCenterEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.RunModeEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.arius.AriusUser;
import com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterConnectionStatus;
import com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterConnectionStatusWithTemplateEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterDynamicConfigsEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterDynamicConfigsTypeEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterHealthEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.cluster.ClusterResourceTypeEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.operaterecord.OperateTypeEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.resource.ESClusterCreateSourceEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.resource.ESClusterImportRuleEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.resource.ESClusterTypeEnum;
import com.didichuxing.datachannel.arius.admin.common.constant.resource.ResourceLogicLevelEnum;
import com.didichuxing.datachannel.arius.admin.common.event.resource.ClusterPhyEvent;
import com.didichuxing.datachannel.arius.admin.common.exception.AdminOperateException;
import com.didichuxing.datachannel.arius.admin.common.exception.AdminTaskException;
import com.didichuxing.datachannel.arius.admin.common.exception.ESOperateException;
import com.didichuxing.datachannel.arius.admin.common.exception.NotFindSubclassException;
import com.didichuxing.datachannel.arius.admin.common.threadpool.AriusScheduleThreadPool;
import com.didichuxing.datachannel.arius.admin.common.tuple.TupleThree;
import com.didichuxing.datachannel.arius.admin.common.tuple.TupleTwo;
import com.didichuxing.datachannel.arius.admin.common.tuple.Tuples;
import com.didichuxing.datachannel.arius.admin.common.util.AriusObjUtils;
import com.didichuxing.datachannel.arius.admin.common.util.ClusterUtils;
import com.didichuxing.datachannel.arius.admin.common.util.CommonUtils;
import com.didichuxing.datachannel.arius.admin.common.util.ConvertUtil;
import com.didichuxing.datachannel.arius.admin.common.util.ESVersionUtil;
import com.didichuxing.datachannel.arius.admin.common.util.FutureUtil;
import com.didichuxing.datachannel.arius.admin.common.util.ListUtils;
import com.didichuxing.datachannel.arius.admin.common.util.ProjectUtils;
import com.didichuxing.datachannel.arius.admin.core.component.HandleFactory;
import com.didichuxing.datachannel.arius.admin.core.component.RoleTool;
import com.didichuxing.datachannel.arius.admin.core.component.SpringTool;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.logic.ClusterLogicService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.physic.ClusterPhyService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.physic.ClusterRoleHostService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.physic.ClusterRoleService;
import com.didichuxing.datachannel.arius.admin.core.service.cluster.region.ClusterRegionService;
import com.didichuxing.datachannel.arius.admin.core.service.common.OperateRecordService;
import com.didichuxing.datachannel.arius.admin.core.service.es.ESClusterNodeService;
import com.didichuxing.datachannel.arius.admin.core.service.es.ESClusterService;
import com.didichuxing.datachannel.arius.admin.core.service.es.ESTemplateService;
import com.didichuxing.datachannel.arius.admin.core.service.template.logic.IndexTemplateService;
import com.didichuxing.datachannel.arius.admin.core.service.template.physic.IndexTemplatePhyService;
import com.didichuxing.datachannel.arius.admin.persistence.component.ESGatewayClient;
import com.didichuxing.datachannel.arius.admin.persistence.component.ESOpClient;
import com.didichuxing.datachannel.arius.admin.remote.zeus.ZeusClusterRemoteService;
import com.didiglobal.knowframework.elasticsearch.client.response.setting.common.MappingConfig;
import com.didiglobal.knowframework.log.ILog;
import com.didiglobal.knowframework.log.LogFactory;
import com.didiglobal.knowframework.security.common.vo.project.ProjectBriefVO;
import com.didiglobal.knowframework.security.service.ProjectService;
import com.google.common.base.Strings;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;

import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.ElasticsearchTimeoutException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;

/**
 *
 * @author ohushenglin_v
 * @date 2022-05-10
 */
@Component
public class ClusterPhyManagerImpl implements ClusterPhyManager {

    private static final ILog                                    LOGGER                                      = LogFactory
        .getLog(ClusterPhyManagerImpl.class);

    private static final String                                  NODE_NOT_EXISTS_TIPS                        = "集群缺少类型为%s的节点";

    private static final String                                  IP_DUPLICATE_TIPS                           = "集群ip:%s重复, 请重新输入";
    /**
     * Map< cluster , Triple< diskUsage , diskTotal , diskUsagePercent >>
     */
    private static final Map<String, Triple<Long, Long, Double>> CLUSTER_NAME_TO_ES_CLUSTER_STATS_TRIPLE_MAP = Maps
        .newConcurrentMap();
    public static final String                                   SEPARATOR_CHARS                             = ",";
    private static final String COLD             = "cold";
    public static final  String ZEUS_AGENTS_LIST = "zeus_agents_list";

    

    @Autowired
    private ESGatewayClient                                      esGatewayClient;

    @Autowired
    private ESTemplateService                                    esTemplateService;

    @Autowired
    private ClusterPhyService                                    clusterPhyService;

    @Autowired
    private ClusterLogicService                                  clusterLogicService;

    @Autowired
    private ClusterRoleService                                   clusterRoleService;

    @Autowired
    private ClusterRoleHostService                               clusterRoleHostService;

    @Autowired
    private IndexTemplatePhyService                              indexTemplatePhyService;

    @Autowired
    private TemplatePhyMappingManager                            templatePhyMappingManager;

    @Autowired
    private PipelineManager                                      templatePipelineManager;

    @Autowired
    private IndexTemplateService                                 indexTemplateService;

    @Autowired
    private TemplatePhyManager                                   templatePhyManager;

    @Autowired
    private ClusterRegionService                                 clusterRegionService;

    

    @Autowired
    private ProjectService                                       projectService;

    @Autowired
    private OperateRecordService                                 operateRecordService;

    @Autowired
    private ESClusterNodeService                                 esClusterNodeService;

    @Autowired
    private ESClusterService                                     esClusterService;

    @Autowired
    private HandleFactory                                        handleFactory;

    @Autowired
    private AriusScheduleThreadPool                              ariusScheduleThreadPool;

    @Autowired
    private ESOpClient                                           esOpClient;

    @Autowired
    private RoleTool                 roleTool;
    @Autowired
    private ZeusClusterRemoteService zeusClusterRemoteService;
    
    private static final FutureUtil<Void>         FUTURE_UTIL               = FutureUtil.init(
            "ClusterPhyManagerImpl", 20, 40, 100);
    private static final Cache</*clusterPhy*/String, TupleThree</*dcdrExist*/Boolean,/*pipelineExist*/ Boolean,/*existColdRegion*/ Boolean>> CLUSTER_PHY_DCDR_PIPELINE   = CacheBuilder.newBuilder()
            .expireAfterWrite(10, TimeUnit.MINUTES).maximumSize(10000).build();
    private static final Cache</*clusterPhy*/String, ClusterConnectionStatusWithTemplateEnum> CLUSTER_PHY_CONNECTION_ENUM = CacheBuilder.newBuilder()
            .expireAfterWrite(10, TimeUnit.MINUTES).maximumSize(10000).build();
    public static final Cache</*zeus_agents_list*/String, /*agents_list*/ List<String>> ZEUS_AGENTS_LIST_CACHE = CacheBuilder.newBuilder()
            .expireAfterWrite(45, TimeUnit.MINUTES).build();
    @PostConstruct
    private void init() {
        ariusScheduleThreadPool.submitScheduleAtFixedDelayTask(this::refreshClusterDistInfo, 60, 180);
        ariusScheduleThreadPool.submitScheduleAtFixedDelayTask(this::refreshClusterPhyInfoWithCache, 60, 10 * 60L);
        ariusScheduleThreadPool.submitScheduleAtFixedDelayTask(this::refreshWhitIpList, 60, 45 * 60L);
    
    }
    
    /**
     * 每45分钟全量更新一遍集群
     */
    private synchronized void refreshClusterPhyInfoWithCache() {
    
        for (String clusterName : clusterPhyService.listClusterNames()) {
            CLUSTER_PHY_DCDR_PIPELINE.put(clusterName, getDCDRAndPipelineTupleByClusterPhy(clusterName));
            CLUSTER_PHY_CONNECTION_ENUM.put(clusterName, getClusterConnectionStatus(clusterName));
        }
    }

  
    
    /**
     * @param clusterPhy
     */
    @Override
    public TupleThree</*dcdrExist*/Boolean,/*pipelineExist*/ Boolean,/*existColdRegion*/ Boolean> getDCDRAndPipelineAndColdRegionTupleByClusterPhyWithCache(
            String clusterPhy) {
        try {
           return CLUSTER_PHY_DCDR_PIPELINE.get(
                clusterPhy,()->getDCDRAndPipelineTupleByClusterPhy(clusterPhy));
        }catch (Exception e){
            return Tuples.of(false, false, false);
        }
    }
    
    @Override
    public ClusterConnectionStatusWithTemplateEnum getClusterConnectionStatusWithCache(String clusterPhy) {
        try {
            return CLUSTER_PHY_CONNECTION_ENUM.get(clusterPhy, () -> getClusterConnectionStatus(clusterPhy));
        } catch (Exception e) {
            return ClusterConnectionStatusWithTemplateEnum.DISCONNECTED;
        }
    }
    
   
    
    @Override
    public boolean copyMapping(String cluster, int retryCount) {
        // 获取物理集群下的所有物理模板
        List<IndexTemplatePhy> physicals = indexTemplatePhyService.getNormalTemplateByCluster(cluster);
        if (CollectionUtils.isEmpty(physicals)) {
            LOGGER.info("class=ESClusterPhyServiceImpl||method=copyMapping||cluster={}||msg=copyMapping no template",
                cluster);
            return true;
        }

        int succeedCount = 0;
        // 遍历物理模板,copy mapping
        for (IndexTemplatePhy physical : physicals) {
            try {
                // 获取物理模板对应的逻辑模板
                IndexTemplate templateLogic = indexTemplateService.getLogicTemplateById(physical.getLogicId());
                // 同步索引的mapping到模板
                Result<MappingConfig> result = templatePhyMappingManager.syncMappingConfig(cluster, physical.getName(),
                    physical.getExpression(), templateLogic.getDateFormat());

                if (result.success()) {
                    succeedCount++;
                    if (!setTemplateSettingSingleType(cluster, physical.getName())) {
                        LOGGER.error(
                            "class=ESClusterPhyServiceImpl||method=copyMapping||errMsg=failedUpdateSingleType||cluster={}||template={}",
                            cluster, physical.getName());
                    }
                } else {
                    LOGGER.warn(
                        "class=ESClusterPhyServiceImpl||method=copyMapping||cluster={}||template={}||msg=copyMapping fail",
                        cluster, physical.getName());
                }
            } catch (Exception e) {
                LOGGER.error("class=ESClusterPhyServiceImpl||method=copyMapping||errMsg={}||cluster={}||template={}",
                    e.getMessage(), cluster, physical.getName(), e);
            }
        }

        return succeedCount * 1.0 / physicals.size() > 0.7;
    }

    @Override
    public void syncTemplateMetaData(String cluster, int retryCount) {
        // 获取物理集群下的所有物理模板
        List<IndexTemplatePhy> physicals = indexTemplatePhyService.getNormalTemplateByCluster(cluster);
        if (CollectionUtils.isEmpty(physicals)) {
            LOGGER.info(
                "class=ESClusterPhyServiceImpl||method=syncTemplateMetaData||cluster={}||msg=syncTemplateMetaData no template",
                cluster);
            return;
        }

        // 遍历物理模板
        for (IndexTemplatePhy physical : physicals) {
            try {
                // 同步模板元数据到ES集群(修改ES集群中的模板)
                templatePhyManager.syncMeta(physical.getId(), retryCount);
                // 同步最新元数据到ES集群pipeline
                templatePipelineManager.syncPipeline(physical.getLogicId());
            } catch (Exception e) {
                LOGGER.error(
                    "class=ESClusterPhyServiceImpl||method=syncTemplateMetaData||errMsg={}||cluster={}||template={}",
                    e.getMessage(), cluster, physical.getName(), e);
            }
        }
    }

    @Override
    public boolean isClusterExists(String clusterName) {
        return clusterPhyService.isClusterExists(clusterName);
    }

    @Override
    public List<ClusterPhyVO> listClusterPhys(ClusterPhyDTO param) {
        List<ClusterPhy> phyClusters = clusterPhyService.listClustersByCondt(param);
        return buildClusterInfo(phyClusters);
    }

    @Override
    public List<ClusterPhyVO> buildClusterInfo(List<ClusterPhy> clusterPhyList) {
        if (CollectionUtils.isEmpty(clusterPhyList)) {
            return Lists.newArrayList();
        }

        List<ClusterPhyVO> clusterPhyVOList = ConvertUtil.list2List(clusterPhyList, ClusterPhyVO.class);

        List<Integer> clusterIds = clusterPhyVOList.stream().map(ClusterPhyVO::getId).collect(Collectors.toList());
        Map<Long, List<ClusterRoleInfo>> roleListMap = clusterRoleService.getAllRoleClusterByClusterIds(clusterIds);
        //3. 设置集群基本统计信息:磁盘使用信息
        long timeForBuildClusterDiskInfo = System.currentTimeMillis();
        List<String> ipList = ipListWithCache();
        final List<ClusterRoleHost> clusterRoleHosts = clusterRoleHostService.listAllNode();
        final Map<String, List<String>> clusterPhy2IpListMap = ConvertUtil.list2MapOfList(clusterRoleHosts,
                ClusterRoleHost::getCluster, ClusterRoleHost::getIp);
        for (ClusterPhyVO clusterPhyVO : clusterPhyVOList) {
            FUTURE_UTIL.runnableTask(
                            () -> buildClusterRole(clusterPhyVO, roleListMap.get(clusterPhyVO.getId().longValue())))
                    // 判断集群是否支持 zeus,并设置对应的参数值
                    .runnableTask(() -> buildSupportZeusByClusterPhy(clusterPhyVO,
                            clusterPhy2IpListMap.get(clusterPhyVO.getCluster()), ipList))
            
            ;
        }
        buildClusterPhyWithLogicAndRegion(clusterPhyVOList);
        FUTURE_UTIL.waitExecute();
        LOGGER.info(
            "class=ClusterPhyManagerImpl||method=buildClusterInfo||msg=consumed build cluster belongProjectIds and ProjectName time is {} ms",
            System.currentTimeMillis() - timeForBuildClusterDiskInfo);

        return clusterPhyVOList;
    }

    private long buildClusterPhyWithLogicAndRegion(List<ClusterPhyVO> clusterPhyVOList) {
        List<ClusterRegion> regions = clusterRegionService.listRegionByPhyClusterNames(
            clusterPhyVOList.stream().map(ClusterPhyVO::getCluster).distinct().collect(Collectors.toList()));
        Map<String, Set<Long>> phyCluster2logicClusterIds = Maps.newHashMap();
        final List<ProjectBriefVO> projectBriefList = projectService.getProjectBriefList();
        final Map<Integer, String> projectId2ProjectNameMap = ConvertUtil.list2Map(projectBriefList, ProjectBriefVO::getId,
                ProjectBriefVO::getProjectName);
        Map<Long,  List<ClusterLogicVO>> logicClusterId2LogicClusterList = Maps.newHashMap();
        Map<Long, ClusterRegionVO> logicClusterId2Region = Maps.newHashMap();
        List<Long> logicIds = Lists.newArrayList();
        regions.stream()
            .filter(region -> StringUtils.isNotBlank(region.getPhyClusterName())
                              && StringUtils.isNotBlank(region.getLogicClusterIds())
                              && !AdminConstant.REGION_NOT_BOUND_LOGIC_CLUSTER_ID.equals(region.getLogicClusterIds()))
            .forEach(region -> {
                String idStr = region.getLogicClusterIds();
                List<Long> list = Lists.newArrayList();
                for (String id : StringUtils.split(idStr, SEPARATOR_CHARS)) {
                    if (StringUtils.isNumeric(id)) {
                        list.add(Long.valueOf(id));
                    }
                }
                Set<Long> ids = phyCluster2logicClusterIds.getOrDefault(region.getPhyClusterName(), Sets.newHashSet());
                ids.addAll(list);
                phyCluster2logicClusterIds.put(region.getPhyClusterName(), ids);
                list.forEach(id -> logicClusterId2Region.put(id, ConvertUtil.obj2Obj(region, ClusterRegionVO.class, regionVO -> regionVO.setClusterName(region.getPhyClusterName()))));
                logicIds.addAll(list);
            });
        if (CollectionUtils.isNotEmpty(logicIds)) {
            List<ClusterLogic> clusterLogicList = clusterLogicService.getClusterLogicListByIds(logicIds);
    
            logicClusterId2LogicClusterList = ConvertUtil.list2MapOfList(clusterLogicList, ClusterLogic::getId,
                    clusterLogic -> ConvertUtil.obj2Obj(clusterLogic, ClusterLogicVO.class,
                            clusterLogicVO -> clusterLogicVO.setProjectName(
                                    projectId2ProjectNameMap.get(clusterLogicVO.getProjectId()))));
        }
        
        //3. 设置集群基本统计信息:磁盘使用信息
        long timeForBuildClusterDiskInfo = System.currentTimeMillis();
        for (ClusterPhyVO clusterPhyVO : clusterPhyVOList) {
            Set<Long> set = phyCluster2logicClusterIds.getOrDefault(clusterPhyVO.getCluster(), Sets.newHashSet());
            Map<Long, List<ClusterLogicVO>> finalLogicClusterId2Vo = logicClusterId2LogicClusterList;
            FUTURE_UTIL.runnableTask(()-> {
                set.forEach(id -> {
                    List<ClusterLogicVO> clusterLogicVOList = finalLogicClusterId2Vo.get(id);
                    if (CollectionUtils.isNotEmpty(clusterLogicVOList)) {
                        List<String> projectNames = clusterLogicVOList.stream().map(ClusterLogicVO::getProjectName).collect(Collectors.toList());
                        ClusterLogicVOWithProjects clusterLogicVOWithProjects = ConvertUtil.obj2Obj(clusterLogicVOList.get(0),
                                ClusterLogicVOWithProj
Download .txt
Showing preview only (307K chars total). Download the full file or copy to clipboard to get everything.
gitextract_2c3heqbr/

├── .gitignore
├── README.md
├── Releases_Notes.md
├── arius-admin/
│   ├── README.md
│   ├── arius-admin-biz/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   └── biz/
│   │                                       ├── cluster/
│   │                                       │   ├── ClusterContextManager.java
│   │                                       │   ├── ClusterIndexManager.java
│   │                                       │   ├── ClusterLogicManager.java
│   │                                       │   ├── ClusterNodeManager.java
│   │                                       │   ├── ClusterPhyManager.java
│   │                                       │   ├── ClusterPhyQuickCommandManager.java
│   │                                       │   ├── ClusterPluginManager.java
│   │                                       │   ├── ClusterRegionManager.java
│   │                                       │   ├── ESClusterConfigManager.java
│   │                                       │   └── impl/
│   │                                       │       ├── ClusterContextManagerImpl.java
│   │                                       │       ├── ClusterIndexManagerImpl.java
│   │                                       │       ├── ClusterLogicManagerImpl.java
│   │                                       │       ├── ClusterNodeManagerImpl.java
│   │                                       │       ├── ClusterPhyManagerImpl.java
│   │                                       │       ├── ClusterPhyQuickCommandManagerImpl.java
│   │                                       │       ├── ClusterPluginManagerImpl.java
│   │                                       │       ├── ClusterRegionManagerImpl.java
│   │                                       │       └── ESClusterConfigManagerImpl.java
│   │                                       ├── component/
│   │                                       │   └── MetricsValueConvertUtils.java
│   │                                       ├── dsl/
│   │                                       │   ├── DslMetricsManager.java
│   │                                       │   ├── DslTemplateManager.java
│   │                                       │   └── impl/
│   │                                       │       ├── DslMetricsManagerImpl.java
│   │                                       │       └── DslTemplateManagerImpl.java
│   │                                       ├── espackage/
│   │                                       │   └── ESPackageManager.java
│   │                                       ├── extend/
│   │                                       │   └── foctory/
│   │                                       │       └── ExtendServiceFactory.java
│   │                                       ├── gateway/
│   │                                       │   ├── GatewayJoinLogManager.java
│   │                                       │   ├── GatewayManager.java
│   │                                       │   └── impl/
│   │                                       │       ├── GatewayJoinLogManagerImpl.java
│   │                                       │       └── GatewayManagerImpl.java
│   │                                       ├── indices/
│   │                                       │   ├── IndicesManager.java
│   │                                       │   └── IndicesManagerImpl.java
│   │                                       ├── listener/
│   │                                       │   ├── ApplicationRetryListener.java
│   │                                       │   ├── ClusterLogicChangeListener.java
│   │                                       │   ├── ClusterPhyChangeListener.java
│   │                                       │   ├── ClusterPhyHealthListener.java
│   │                                       │   ├── DCDRLinkAbnormalIndicesRebuildListener.java
│   │                                       │   ├── LoggingListener.java
│   │                                       │   ├── LogicTemplateCreatePipelineListener.java
│   │                                       │   ├── ReBuildTomorrowIndexListener.java
│   │                                       │   ├── RefreshCatIndexListener.java
│   │                                       │   ├── RegionEditEventListener.java
│   │                                       │   ├── TemplateEventClearIndexListener.java
│   │                                       │   ├── TemplateEventPipelineListener.java
│   │                                       │   ├── TemplatePhyMetaChangedListener.java
│   │                                       │   └── TemplateProjectIdChangedListener.java
│   │                                       ├── metrics/
│   │                                       │   ├── ClusterPhyMetricsManager.java
│   │                                       │   ├── DashboardMetricsManager.java
│   │                                       │   ├── GatewayMetricsManager.java
│   │                                       │   ├── MetricsDictionaryManager.java
│   │                                       │   ├── handle/
│   │                                       │   │   ├── BaseClusterMetricsHandle.java
│   │                                       │   │   ├── ClusterLogicOverviewMetricsHandle.java
│   │                                       │   │   ├── ClusterOverviewMetricsHandle.java
│   │                                       │   │   └── handler/
│   │                                       │   │       ├── PhyIndicesClusterMetricsHandler.java
│   │                                       │   │       ├── PhyNodeClusterMetricsHandler.java
│   │                                       │   │       ├── PhyNodesTaskClusterMetricsHandler.java
│   │                                       │   │       ├── PhyOverviewClusterMetricsHandler.java
│   │                                       │   │       └── PhyTemplateClusterMetricsHandler.java
│   │                                       │   └── impl/
│   │                                       │       ├── ClusterPhyMetricsManagerImpl.java
│   │                                       │       ├── DashboardMetricsManagerImpl.java
│   │                                       │       ├── GatewayMetricsManagerImpl.java
│   │                                       │       └── MetricsDictionaryManagerImpl.java
│   │                                       ├── page/
│   │                                       │   ├── AbstractPageSearchHandle.java
│   │                                       │   ├── ClusterLogicPageSearchHandle.java
│   │                                       │   ├── ClusterPhyPageSearchHandle.java
│   │                                       │   ├── DslTemplatePageSearchHandle.java
│   │                                       │   ├── GatewayJoinPageSearchHandle.java
│   │                                       │   ├── IndexPageSearchHandle.java
│   │                                       │   ├── OperateRecordPageSearchHandle.java
│   │                                       │   ├── QuickCommandIndicesDistributionPageSearchHandle.java
│   │                                       │   ├── QuickCommandShardsDistributionPageSearchHandle.java
│   │                                       │   ├── TaskPageSearchHandle.java
│   │                                       │   ├── TemplateLogicPageSearchHandle.java
│   │                                       │   └── TemplateSrvPageSearchHandle.java
│   │                                       ├── project/
│   │                                       │   ├── ESUserManager.java
│   │                                       │   ├── LoginManager.java
│   │                                       │   ├── OperateRecordManager.java
│   │                                       │   ├── PermissionExtendManager.java
│   │                                       │   ├── ProjectClusterLogicAuthManager.java
│   │                                       │   ├── ProjectConfigManager.java
│   │                                       │   ├── ProjectExtendManager.java
│   │                                       │   ├── ProjectLogicTemplateAuthManager.java
│   │                                       │   ├── RoleExtendManager.java
│   │                                       │   ├── UserExtendManager.java
│   │                                       │   └── impl/
│   │                                       │       ├── ESUserManagerImpl.java
│   │                                       │       ├── LoginManagerImpl.java
│   │                                       │       ├── OperateRecordManagerImpl.java
│   │                                       │       ├── PermissionExtendManagerImpl.java
│   │                                       │       ├── ProjectClusterLogicAuthManagerImpl.java
│   │                                       │       ├── ProjectConfigManagerImpl.java
│   │                                       │       ├── ProjectExtendManagerImpl.java
│   │                                       │       ├── ProjectLogicTemplateAuthManagerImpl.java
│   │                                       │       ├── RoleExtendManagerImpl.java
│   │                                       │       └── UserExtendManagerImpl.java
│   │                                       ├── security/
│   │                                       │   └── resource/
│   │                                       │       └── ResourceExtendManager.java
│   │                                       ├── task/
│   │                                       │   ├── OpTaskHandler.java
│   │                                       │   ├── OpTaskManager.java
│   │                                       │   ├── content/
│   │                                       │   │   ├── ClusterBaseContent.java
│   │                                       │   │   ├── ClusterConfigRestartContent.java
│   │                                       │   │   ├── ClusterHostContent.java
│   │                                       │   │   ├── ClusterIndecreaseDockerContent.java
│   │                                       │   │   ├── ClusterIndecreaseHostContent.java
│   │                                       │   │   ├── ClusterNewDockerContent.java
│   │                                       │   │   ├── ClusterNewHostContent.java
│   │                                       │   │   ├── ClusterOfflineContent.java
│   │                                       │   │   ├── ClusterRestartContent.java
│   │                                       │   │   └── ClusterUpdateContent.java
│   │                                       │   ├── ecm/
│   │                                       │   │   ├── EcmTaskDetailManager.java
│   │                                       │   │   ├── EcmTaskManager.java
│   │                                       │   │   └── impl/
│   │                                       │   │       ├── EcmTaskDetailManagerImpl.java
│   │                                       │   │       └── EcmTaskManagerImpl.java
│   │                                       │   ├── handler/
│   │                                       │   │   ├── AbstractOpTaskHandler.java
│   │                                       │   │   ├── DCDROpTaskHandler.java
│   │                                       │   │   ├── ECMOpTaskHandler.java
│   │                                       │   │   └── cluster/
│   │                                       │   │       ├── AbstractClusterTaskHandler.java
│   │                                       │   │       ├── ClusterConfigRestartTaskHandler.java
│   │                                       │   │       ├── ClusterCreateTaskHandler.java
│   │                                       │   │       ├── ClusterOfflineTaskHandler.java
│   │                                       │   │       ├── ClusterRestartTaskHandler.java
│   │                                       │   │       ├── ClusterScaleTaskHandler.java
│   │                                       │   │       └── ClusterUpgradeTaskHandler.java
│   │                                       │   └── impl/
│   │                                       │       └── OpTaskManagerImpl.java
│   │                                       ├── template/
│   │                                       │   ├── TemplateLogicManager.java
│   │                                       │   ├── TemplatePhyManager.java
│   │                                       │   ├── TemplatePhyStaticsManager.java
│   │                                       │   ├── impl/
│   │                                       │   │   ├── TemplateLogicManagerImpl.java
│   │                                       │   │   ├── TemplatePhyManagerImpl.java
│   │                                       │   │   └── TemplatePhyStaticsManagerImpl.java
│   │                                       │   └── srv/
│   │                                       │       ├── TemplateSrvManager.java
│   │                                       │       ├── TemplateSrvManagerImpl.java
│   │                                       │       ├── aliases/
│   │                                       │       │   ├── TemplateLogicAliasManager.java
│   │                                       │       │   ├── TemplatePhyAliasManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       ├── TemplateLogicAliasManagerImpl.java
│   │                                       │       │       └── TemplatePhyAliasManagerImpl.java
│   │                                       │       ├── base/
│   │                                       │       │   ├── BaseTemplateSrv.java
│   │                                       │       │   └── impl/
│   │                                       │       │       └── BaseTemplateSrvImpl.java
│   │                                       │       ├── cold/
│   │                                       │       │   ├── ColdManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       └── ColdManagerImpl.java
│   │                                       │       ├── dcdr/
│   │                                       │       │   ├── TemplateDCDRManager.java
│   │                                       │       │   └── TemplateDCDRManagerImpl.java
│   │                                       │       ├── expire/
│   │                                       │       │   ├── ExpireManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       └── ExpireManagerImpl.java
│   │                                       │       ├── indexplan/
│   │                                       │       │   ├── IndexPlanManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       └── IndexPlanManagerImpl.java
│   │                                       │       ├── mapping/
│   │                                       │       │   ├── TemplateLogicMappingManager.java
│   │                                       │       │   ├── TemplatePhyMappingManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       ├── TemplateLogicMappingManagerImpl.java
│   │                                       │       │       └── TemplatePhyMappingManagerImpl.java
│   │                                       │       ├── pipeline/
│   │                                       │       │   ├── PipelineManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       └── PipelineManagerImpl.java
│   │                                       │       ├── precreate/
│   │                                       │       │   ├── PreCreateManager.java
│   │                                       │       │   └── impl/
│   │                                       │       │       └── PreCreateManagerImpl.java
│   │                                       │       └── setting/
│   │                                       │           ├── TemplateLogicSettingsManager.java
│   │                                       │           ├── TemplatePhySettingManager.java
│   │                                       │           └── impl/
│   │                                       │               ├── TemplateLogicSettingsManagerImpl.java
│   │                                       │               └── TemplatePhySettingManagerImpl.java
│   │                                       ├── thardpart/
│   │                                       │   ├── CommonManager.java
│   │                                       │   └── impl/
│   │                                       │       └── CommonManagerImpl.java
│   │                                       ├── workorder/
│   │                                       │   ├── BaseWorkOrderHandler.java
│   │                                       │   ├── WorkOrderHandler.java
│   │                                       │   ├── WorkOrderManager.java
│   │                                       │   ├── content/
│   │                                       │   │   ├── BaseContent.java
│   │                                       │   │   ├── ClusterDeleteContent.java
│   │                                       │   │   ├── ClusterLogicTransferContent.java
│   │                                       │   │   ├── DslTemplateQueryLimitContent.java
│   │                                       │   │   ├── DslTemplateStatusContent.java
│   │                                       │   │   ├── JoinLogicClusterContent.java
│   │                                       │   │   ├── LogicClusterAuthContent.java
│   │                                       │   │   ├── LogicClusterCreateContent.java
│   │                                       │   │   ├── LogicClusterDeleteContent.java
│   │                                       │   │   ├── LogicClusterIndecreaseContent.java
│   │                                       │   │   ├── LogicClusterPlugOperationContent.java
│   │                                       │   │   ├── LogicClusterPluginContent.java
│   │                                       │   │   ├── PhyClusterPluginOperationContent.java
│   │                                       │   │   ├── QueryDslLimitEditContent.java
│   │                                       │   │   ├── TemplateAuthContent.java
│   │                                       │   │   ├── TemplateCreateContent.java
│   │                                       │   │   ├── TemplateIndecreaseContent.java
│   │                                       │   │   ├── TemplateLogicStatusContent.java
│   │                                       │   │   ├── TemplateQueryDslContent.java
│   │                                       │   │   └── TemplateTransferContent.java
│   │                                       │   ├── handler/
│   │                                       │   │   ├── ClusterDeleteHandler.java
│   │                                       │   │   ├── ClusterOpIndecreaseHandler.java
│   │                                       │   │   ├── ClusterOpNewHandler.java
│   │                                       │   │   ├── ClusterOpOfflineHandler.java
│   │                                       │   │   ├── ClusterOpUpdateHandler.java
│   │                                       │   │   ├── DslTemplateQueryLimitHandler.java
│   │                                       │   │   ├── DslTemplateStatusChangeHandler.java
│   │                                       │   │   ├── LogicClusterAuthHandler.java
│   │                                       │   │   ├── LogicClusterCreateHandler.java
│   │                                       │   │   ├── LogicClusterIndecreaseHandler.java
│   │                                       │   │   ├── LogicClusterJoinHandler.java
│   │                                       │   │   ├── LogicClusterPlugOperationHandler.java
│   │                                       │   │   ├── LogicClusterPluginHandler.java
│   │                                       │   │   ├── LogicClusterTransferHandler.java
│   │                                       │   │   ├── QueryDslLimitEditHandler.java
│   │                                       │   │   ├── TemplateAuthHandler.java
│   │                                       │   │   ├── TemplateCreateHandler.java
│   │                                       │   │   ├── TemplateIndecreaseHandler.java
│   │                                       │   │   ├── TemplateLogicBlockReadHandler.java
│   │                                       │   │   ├── TemplateLogicBlockWriteHandler.java
│   │                                       │   │   ├── TemplateQueryDslHandler.java
│   │                                       │   │   ├── TemplateTransferHandler.java
│   │                                       │   │   └── clusterrestart/
│   │                                       │   │       ├── BaseClusterOpRestartHandler.java
│   │                                       │   │       ├── ClusterOpConfigRestartHandler.java
│   │                                       │   │       ├── ClusterOpNormalRestartHandler.java
│   │                                       │   │       └── ClusterOpPluginRestartHandler.java
│   │                                       │   ├── impl/
│   │                                       │   │   └── WorkOrderManagerImpl.java
│   │                                       │   └── utils/
│   │                                       │       └── OpOrderTaskConverter.java
│   │                                       └── zeus/
│   │                                           ├── ZeusCollectManager.java
│   │                                           └── ZeusCollectManagerImpl.java
│   ├── arius-admin-common/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   └── common/
│   │                                       ├── Triple.java
│   │                                       ├── Tuple.java
│   │                                       ├── bean/
│   │                                       │   ├── common/
│   │                                       │   │   ├── Alias.java
│   │                                       │   │   ├── BaseResult.java
│   │                                       │   │   ├── ESPipelineProcessor.java
│   │                                       │   │   ├── GatewayHeartbeat.java
│   │                                       │   │   ├── IndexNameQueryAvgRate.java
│   │                                       │   │   ├── IndexTemplatePhysicalConfig.java
│   │                                       │   │   ├── IndexTemplateValue.java
│   │                                       │   │   ├── Label.java
│   │                                       │   │   ├── LogicResourceConfig.java
│   │                                       │   │   ├── LogicTemplateTpsMetric.java
│   │                                       │   │   ├── MappingOptimize.java
│   │                                       │   │   ├── MappingOptimizeItem.java
│   │                                       │   │   ├── NodeAllocationInfo.java
│   │                                       │   │   ├── NodeAttrInfo.java
│   │                                       │   │   ├── OperateRecord.java
│   │                                       │   │   ├── PaginationResult.java
│   │                                       │   │   ├── PagingData.java
│   │                                       │   │   ├── PhysicalTemplateTpsMetric.java
│   │                                       │   │   ├── Plugin.java
│   │                                       │   │   ├── Result.java
│   │                                       │   │   ├── ResultWorkOrder.java
│   │                                       │   │   ├── TemplateLabel.java
│   │                                       │   │   ├── TemplateMetaMetric.java
│   │                                       │   │   ├── TemplateMetric.java
│   │                                       │   │   ├── TemplateResourceConfig.java
│   │                                       │   │   └── ecm/
│   │                                       │   │       ├── ESClusterRoleDocker.java
│   │                                       │   │       ├── ESClusterRoleHost.java
│   │                                       │   │       ├── ESResponsePluginInfo.java
│   │                                       │   │       ├── EcmParamBase.java
│   │                                       │   │       ├── EcmTaskBasic.java
│   │                                       │   │       ├── EcmTaskDetail.java
│   │                                       │   │       ├── EcmTaskDetailProgress.java
│   │                                       │   │       ├── EsConfigAction.java
│   │                                       │   │       ├── EsPluginAction.java
│   │                                       │   │       ├── elasticcloud/
│   │                                       │   │       │   ├── ElasticCloudCommonActionParam.java
│   │                                       │   │       │   ├── ElasticCloudCreateActionParam.java
│   │                                       │   │       │   └── ElasticCloudScaleActionParam.java
│   │                                       │   │       ├── host/
│   │                                       │   │       │   ├── HostCreateActionParam.java
│   │                                       │   │       │   ├── HostParamBase.java
│   │                                       │   │       │   └── HostScaleActionParam.java
│   │                                       │   │       └── response/
│   │                                       │   │           ├── EcmCreateApp.java
│   │                                       │   │           ├── EcmOperateAppBase.java
│   │                                       │   │           ├── EcmSubTaskLog.java
│   │                                       │   │           └── EcmTaskStatus.java
│   │                                       │   ├── dto/
│   │                                       │   │   ├── BaseDTO.java
│   │                                       │   │   ├── PageDTO.java
│   │                                       │   │   ├── README.md
│   │                                       │   │   ├── app/
│   │                                       │   │   │   ├── ConsoleESUserDTO.java
│   │                                       │   │   │   ├── ESUserDTO.java
│   │                                       │   │   │   ├── ProjectConfigDTO.java
│   │                                       │   │   │   ├── ProjectExtendSaveDTO.java
│   │                                       │   │   │   ├── ProjectLogicClusterAuthDTO.java
│   │                                       │   │   │   ├── ProjectQueryExtendDTO.java
│   │                                       │   │   │   ├── ProjectTemplateAuthDTO.java
│   │                                       │   │   │   ├── UserExtendDTO.java
│   │                                       │   │   │   └── UserQueryExtendDTO.java
│   │                                       │   │   ├── cluster/
│   │                                       │   │   │   ├── ClusterJoinDTO.java
│   │                                       │   │   │   ├── ClusterLogicConditionDTO.java
│   │                                       │   │   │   ├── ClusterLogicNodeConditionDTO.java
│   │                                       │   │   │   ├── ClusterLogicSpecCondition.java
│   │                                       │   │   │   ├── ClusterPhyConditionDTO.java
│   │                                       │   │   │   ├── ClusterPhyDTO.java
│   │                                       │   │   │   ├── ClusterPhyQuickCommandIndicesQueryDTO.java
│   │                                       │   │   │   ├── ClusterPhyQuickCommandShardsQueryDTO.java
│   │                                       │   │   │   ├── ClusterRegionDTO.java
│   │                                       │   │   │   ├── ClusterRegionWithNodeInfoDTO.java
│   │                                       │   │   │   ├── ClusterSettingDTO.java
│   │                                       │   │   │   ├── ConsoleLogicClusterDTO.java
│   │                                       │   │   │   ├── ESClusterRoleDTO.java
│   │                                       │   │   │   ├── ESClusterRoleHostDTO.java
│   │                                       │   │   │   ├── ESConfigDTO.java
│   │                                       │   │   │   ├── ESLogicClusterDTO.java
│   │                                       │   │   │   ├── ESLogicClusterWithRegionDTO.java
│   │                                       │   │   │   ├── ESPackageDTO.java
│   │                                       │   │   │   ├── ESZeusConfigDTO.java
│   │                                       │   │   │   ├── ESZeusHostInfoDTO.java
│   │                                       │   │   │   └── PluginDTO.java
│   │                                       │   │   ├── config/
│   │                                       │   │   │   └── AriusConfigInfoDTO.java
│   │                                       │   │   ├── dsl/
│   │                                       │   │   │   ├── DslBaseDTO.java
│   │                                       │   │   │   ├── DslQueryLimitDTO.java
│   │                                       │   │   │   └── template/
│   │                                       │   │   │       └── DslTemplateConditionDTO.java
│   │                                       │   │   ├── indices/
│   │                                       │   │   │   ├── IndexCatCellDTO.java
│   │                                       │   │   │   ├── IndexQueryDTO.java
│   │                                       │   │   │   ├── IndicesBlockSettingDTO.java
│   │                                       │   │   │   ├── IndicesClearDTO.java
│   │                                       │   │   │   ├── manage/
│   │                                       │   │   │   │   └── IndexCatCellWithConfigDTO.java
│   │                                       │   │   │   └── srv/
│   │                                       │   │   │       ├── IndexForceMergeDTO.java
│   │                                       │   │   │       └── IndexRolloverDTO.java
│   │                                       │   │   ├── metrics/
│   │                                       │   │   │   ├── ClientNodeDTO.java
│   │                                       │   │   │   ├── DashBoardMetricThresholdDTO.java
│   │                                       │   │   │   ├── GatewayDslDTO.java
│   │                                       │   │   │   ├── GatewayIndexDTO.java
│   │                                       │   │   │   ├── GatewayJoinQueryDTO.java
│   │                                       │   │   │   ├── GatewayMetricsDTO.java
│   │                                       │   │   │   ├── GatewayNodeDTO.java
│   │                                       │   │   │   ├── GatewayOverviewDTO.java
│   │                                       │   │   │   ├── GatewayProjectDTO.java
│   │                                       │   │   │   ├── MetricDictionaryDTO.java
│   │                                       │   │   │   ├── MetricsClusterPhyDTO.java
│   │                                       │   │   │   ├── MetricsClusterPhyIndicesDTO.java
│   │                                       │   │   │   ├── MetricsClusterPhyNodeDTO.java
│   │                                       │   │   │   ├── MetricsClusterPhyNodeTaskDTO.java
│   │                                       │   │   │   ├── MetricsClusterPhyTemplateDTO.java
│   │                                       │   │   │   ├── MetricsDashboardListDTO.java
│   │                                       │   │   │   ├── MetricsDashboardTopNDTO.java
│   │                                       │   │   │   ├── MultiGatewayNodesDTO.java
│   │                                       │   │   │   ├── MultiMetricsClusterPhyIndicesDTO.java
│   │                                       │   │   │   ├── MultiMetricsClusterPhyNodeDTO.java
│   │                                       │   │   │   ├── MultiMetricsClusterPhyNodeTaskDTO.java
│   │                                       │   │   │   ├── MultiMetricsClusterPhyTemplateDTO.java
│   │                                       │   │   │   ├── ThresholdDto.java
│   │                                       │   │   │   └── UserConfigInfoDTO.java
│   │                                       │   │   ├── oprecord/
│   │                                       │   │   │   └── OperateRecordDTO.java
│   │                                       │   │   ├── stats/
│   │                                       │   │   │   └── ClusterLogicStats.java
│   │                                       │   │   ├── task/
│   │                                       │   │   │   ├── OpTaskDTO.java
│   │                                       │   │   │   ├── OpTaskProcessDTO.java
│   │                                       │   │   │   ├── OpTaskQueryDTO.java
│   │                                       │   │   │   └── ecm/
│   │                                       │   │   │       └── EcmTaskDTO.java
│   │                                       │   │   ├── template/
│   │                                       │   │   │   ├── ConsoleTemplateRateLimitDTO.java
│   │                                       │   │   │   ├── ConsoleTemplateSchemaDTO.java
│   │                                       │   │   │   ├── ConsoleTemplateSchemaOptimizeDTO.java
│   │                                       │   │   │   ├── ConsoleTemplateSettingDTO.java
│   │                                       │   │   │   ├── ConsoleTemplateUpdateDTO.java
│   │                                       │   │   │   ├── DCDRMasterSlaveSwitchDTO.java
│   │                                       │   │   │   ├── IndexTemplateConfigDTO.java
│   │                                       │   │   │   ├── IndexTemplateDTO.java
│   │                                       │   │   │   ├── IndexTemplatePhyDTO.java
│   │                                       │   │   │   ├── IndexTemplateWithCreateInfoDTO.java
│   │                                       │   │   │   ├── TemplateClearDTO.java
│   │                                       │   │   │   ├── TemplateConditionDTO.java
│   │                                       │   │   │   ├── TemplatePhysicalCopyDTO.java
│   │                                       │   │   │   ├── TemplatePhysicalDCDRDTO.java
│   │                                       │   │   │   ├── TemplatePhysicalUpgradeDTO.java
│   │                                       │   │   │   ├── TemplateSettingDTO.java
│   │                                       │   │   │   ├── alias/
│   │                                       │   │   │   │   ├── ConsoleAliasDTO.java
│   │                                       │   │   │   │   ├── ConsoleLogicTemplateAliasesDTO.java
│   │                                       │   │   │   │   ├── ConsoleLogicTemplateDeleteAliasesDTO.java
│   │                                       │   │   │   │   ├── ConsoleTemplateAliasSwitchDTO.java
│   │                                       │   │   │   │   └── IndexTemplateAliasDTO.java
│   │                                       │   │   │   └── srv/
│   │                                       │   │   │       ├── BaseTemplateSrvOpenDTO.java
│   │                                       │   │   │       ├── ColdSrvOpenDTO.java
│   │                                       │   │   │       └── TemplateQueryDTO.java
│   │                                       │   │   └── workorder/
│   │                                       │   │       ├── WorkOrderDTO.java
│   │                                       │   │       ├── WorkOrderProcessDTO.java
│   │                                       │   │       └── WorkOrderTaskDetailDTO.java
│   │                                       │   ├── entity/
│   │                                       │   │   ├── BaseEntity.java
│   │                                       │   │   ├── GlobalParam.java
│   │                                       │   │   ├── MulityTypeTemplatesInfo.java
│   │                                       │   │   ├── access/
│   │                                       │   │   │   ├── TemplateAccessDateRange.java
│   │                                       │   │   │   ├── TemplateAccessDetail.java
│   │                                       │   │   │   ├── TemplateAccessHistory.java
│   │                                       │   │   │   └── UserAccessTemplateDetail.java
│   │                                       │   │   ├── cluster/
│   │                                       │   │   │   ├── AriusMetaJobClusterDistribute.java
│   │                                       │   │   │   ├── ClusterLogic.java
│   │                                       │   │   │   ├── ClusterLogicContext.java
│   │                                       │   │   │   ├── ClusterLogicStatis.java
│   │                                       │   │   │   ├── ClusterNodeInfo.java
│   │                                       │   │   │   ├── ClusterPhy.java
│   │                                       │   │   │   ├── ClusterPhyContext.java
│   │                                       │   │   │   ├── ecm/
│   │                                       │   │   │   │   ├── ClusterRoleHost.java
│   │                                       │   │   │   │   ├── ClusterRoleInfo.java
│   │                                       │   │   │   │   ├── ClusterTag.java
│   │                                       │   │   │   │   └── RoleClusterNodeSepc.java
│   │                                       │   │   │   └── setting/
│   │                                       │   │   │       ├── ESClusterGetSettingsAllAction.java
│   │                                       │   │   │       ├── ESClusterGetSettingsAllRequest.java
│   │                                       │   │   │       ├── ESClusterGetSettingsAllRequestBuilder.java
│   │                                       │   │   │       └── ESClusterGetSettingsAllResponse.java
│   │                                       │   │   ├── config/
│   │                                       │   │   │   └── AriusConfigInfo.java
│   │                                       │   │   ├── dsl/
│   │                                       │   │   │   ├── AuditDsl.java
│   │                                       │   │   │   ├── DslBase.java
│   │                                       │   │   │   ├── DslCheckMode.java
│   │                                       │   │   │   ├── DslInfo.java
│   │                                       │   │   │   ├── DslQueryLimit.java
│   │                                       │   │   │   ├── DslSearchFieldNameMetric.java
│   │                                       │   │   │   ├── DslTemplate.java
│   │                                       │   │   │   ├── ErrorDsl.java
│   │                                       │   │   │   ├── ErrorDslDetail.java
│   │                                       │   │   │   ├── ErrorDslEmailLine.java
│   │                                       │   │   │   ├── ErrorDslInfo.java
│   │                                       │   │   │   ├── ExceptionDslRequest.java
│   │                                       │   │   │   ├── ExceptionDslResponse.java
│   │                                       │   │   │   ├── ExtractDslContent.java
│   │                                       │   │   │   ├── QueryQpsMetric.java
│   │                                       │   │   │   ├── ScrollDslTemplateRequest.java
│   │                                       │   │   │   ├── ScrollDslTemplateResponse.java
│   │                                       │   │   │   ├── SearchDslTemplateResponse.java
│   │                                       │   │   │   ├── SearchOverview.java
│   │                                       │   │   │   ├── SlowDsl.java
│   │                                       │   │   │   ├── SlowDslEmailLine.java
│   │                                       │   │   │   ├── SlowDslReasonType.java
│   │                                       │   │   │   └── SlowQueryInfo.java
│   │                                       │   │   ├── esconfig/
│   │                                       │   │   │   └── ESConfig.java
│   │                                       │   │   ├── espackage/
│   │                                       │   │   │   └── ESPackage.java
│   │                                       │   │   ├── gateway/
│   │                                       │   │   │   └── GatewayClusterNode.java
│   │                                       │   │   ├── index/
│   │                                       │   │   │   ├── BaseDegree.java
│   │                                       │   │   │   ├── IndexCatCell.java
│   │                                       │   │   │   ├── IndexRealTimeInfo.java
│   │                                       │   │   │   ├── IndicatorChild.java
│   │                                       │   │   │   ├── OffLine.java
│   │                                       │   │   │   ├── RealTimeCpuUse.java
│   │                                       │   │   │   ├── RealTimeDiskUse.java
│   │                                       │   │   │   ├── RealTimeOldGC.java
│   │                                       │   │   │   ├── RealTimeSearch.java
│   │                                       │   │   │   ├── RealTimeSearchCost.java
│   │                                       │   │   │   ├── RealTimeWrite.java
│   │                                       │   │   │   └── setting/
│   │                                       │   │   │       └── ESIndicesGetAllSettingRequest.java
│   │                                       │   │   ├── metrics/
│   │                                       │   │   │   ├── config/
│   │                                       │   │   │   │   └── UserConfigInfo.java
│   │                                       │   │   │   ├── linechart/
│   │                                       │   │   │   │   ├── DashboardTopMetrics.java
│   │                                       │   │   │   │   ├── DiskInfoMetrics.java
│   │                                       │   │   │   │   ├── GatewayOverviewMetrics.java
│   │                                       │   │   │   │   ├── MetricsContent.java
│   │                                       │   │   │   │   ├── MetricsContentCell.java
│   │                                       │   │   │   │   ├── ReadQPSMetrics.java
│   │                                       │   │   │   │   ├── RecvTransMetrics.java
│   │                                       │   │   │   │   ├── SendTransMetrics.java
│   │                                       │   │   │   │   ├── ShardInfoMetrics.java
│   │                                       │   │   │   │   ├── TaskCountMetrics.java
│   │                                       │   │   │   │   ├── TopMetrics.java
│   │                                       │   │   │   │   ├── VariousLineChartMetrics.java
│   │                                       │   │   │   │   └── WriteTPSMetrics.java
│   │                                       │   │   │   ├── list/
│   │                                       │   │   │   │   ├── MetricList.java
│   │                                       │   │   │   │   └── MetricListContent.java
│   │                                       │   │   │   ├── ordinary/
│   │                                       │   │   │   │   ├── BigIndexMetrics.java
│   │                                       │   │   │   │   ├── ClusterMemInfo.java
│   │                                       │   │   │   │   ├── ESClusterTaskDetail.java
│   │                                       │   │   │   │   ├── IndexResponse.java
│   │                                       │   │   │   │   ├── IndexShardInfo.java
│   │                                       │   │   │   │   ├── MovingShardMetrics.java
│   │                                       │   │   │   │   ├── PendingTask.java
│   │                                       │   │   │   │   ├── ShardMetrics.java
│   │                                       │   │   │   │   └── UnAssignShardMetrics.java
│   │                                       │   │   │   └── percentiles/
│   │                                       │   │   │       └── BasePercentileMetrics.java
│   │                                       │   │   ├── operaterecord/
│   │                                       │   │   │   └── template/
│   │                                       │   │   │       ├── ESConfigOperateRecode.java
│   │                                       │   │   │       ├── TemplateMappingOperateRecord.java
│   │                                       │   │   │       ├── TemplateOperateRecord.java
│   │                                       │   │   │       └── TemplateSettingOperateRecord.java
│   │                                       │   │   ├── project/
│   │                                       │   │   │   ├── ESUser.java
│   │                                       │   │   │   ├── ProjectClusterLogicAuth.java
│   │                                       │   │   │   ├── ProjectClusterPhyAuth.java
│   │                                       │   │   │   ├── ProjectConfig.java
│   │                                       │   │   │   └── ProjectTemplateAuth.java
│   │                                       │   │   ├── quota/
│   │                                       │   │   │   └── ClusterPhyResourceUsage.java
│   │                                       │   │   ├── region/
│   │                                       │   │   │   ├── ClusterRegion.java
│   │                                       │   │   │   ├── ClusterRegionConfig.java
│   │                                       │   │   │   └── ClusterRegionFSInfo.java
│   │                                       │   │   ├── shard/
│   │                                       │   │   │   └── Segment.java
│   │                                       │   │   ├── stats/
│   │                                       │   │   │   ├── CollectBean.java
│   │                                       │   │   │   ├── ECSegmentOnIp.java
│   │                                       │   │   │   ├── ESClusterStats.java
│   │                                       │   │   │   ├── ESClusterStatsCells.java
│   │                                       │   │   │   ├── ESClusterStatsResponse.java
│   │                                       │   │   │   ├── ESClusterTaskStats.java
│   │                                       │   │   │   ├── ESClusterTaskStatsResponse.java
│   │                                       │   │   │   ├── ESClusterThreadStats.java
│   │                                       │   │   │   ├── ESDataTempBean.java
│   │                                       │   │   │   ├── ESIndexDCDRStats.java
│   │                                       │   │   │   ├── ESIndexStats.java
│   │                                       │   │   │   ├── ESIndexToNodeStats.java
│   │                                       │   │   │   ├── ESIndexToNodeTempBean.java
│   │                                       │   │   │   ├── ESIngestStats.java
│   │                                       │   │   │   ├── ESNodeStats.java
│   │                                       │   │   │   ├── ESNodeToIndexStats.java
│   │                                       │   │   │   ├── ESNodeToIndexTempBean.java
│   │                                       │   │   │   ├── MonitorTaskInfo.java
│   │                                       │   │   │   └── dashboard/
│   │                                       │   │   │       ├── ClusterMetrics.java
│   │                                       │   │   │       ├── ClusterPhyHealthMetrics.java
│   │                                       │   │   │       ├── ClusterThreadPoolQueueMetrics.java
│   │                                       │   │   │       ├── DashBoardStats.java
│   │                                       │   │   │       ├── IndexMetrics.java
│   │                                       │   │   │       ├── NodeMetrics.java
│   │                                       │   │   │       └── TemplateMetrics.java
│   │                                       │   │   ├── task/
│   │                                       │   │   │   ├── OpTask.java
│   │                                       │   │   │   └── detail/
│   │                                       │   │   │       ├── AbstractTaskDetail.java
│   │                                       │   │   │       ├── DCDRSingleTemplateMasterSlaveSwitchDetail.java
│   │                                       │   │   │       ├── DCDRTaskDetail.java
│   │                                       │   │   │       └── DCDRTasksDetail.java
│   │                                       │   │   ├── template/
│   │                                       │   │   │   ├── DslMetrics.java
│   │                                       │   │   │   ├── DslTemplate.java
│   │                                       │   │   │   ├── ESPipeline.java
│   │                                       │   │   │   ├── GatewayJoin.java
│   │                                       │   │   │   ├── IndexTemplate.java
│   │                                       │   │   │   ├── IndexTemplateAlias.java
│   │                                       │   │   │   ├── IndexTemplateConfig.java
│   │                                       │   │   │   ├── IndexTemplateLogicAggregate.java
│   │                                       │   │   │   ├── IndexTemplateLogicWithClusterAndMasterTemplate.java
│   │                                       │   │   │   ├── IndexTemplatePhy.java
│   │                                       │   │   │   ├── IndexTemplatePhyAlias.java
│   │                                       │   │   │   ├── IndexTemplatePhyAliases.java
│   │                                       │   │   │   ├── IndexTemplatePhySetting.java
│   │                                       │   │   │   ├── IndexTemplatePhyWithLogic.java
│   │                                       │   │   │   ├── IndexTemplateType.java
│   │                                       │   │   │   ├── IndexTemplateWithCluster.java
│   │                                       │   │   │   ├── IndexTemplateWithLabels.java
│   │                                       │   │   │   ├── IndexTemplateWithMapping.java
│   │                                       │   │   │   ├── IndexTemplateWithPhyTemplates.java
│   │                                       │   │   │   ├── IndexTemplateWithStats.java
│   │                                       │   │   │   ├── ProjectTemplateAccessCount.java
│   │                                       │   │   │   ├── TemplateHealthDegreeRecord.java
│   │                                       │   │   │   ├── TemplateStatsInfo.java
│   │                                       │   │   │   ├── TemplateValueRecord.java
│   │                                       │   │   │   └── srv/
│   │                                       │   │   │       ├── TemplateSrv.java
│   │                                       │   │   │       └── UnavailableTemplateSrv.java
│   │                                       │   │   ├── weekly/
│   │                                       │   │   │   └── AppQuery.java
│   │                                       │   │   └── workorder/
│   │                                       │   │       ├── WorkOrder.java
│   │                                       │   │       ├── detail/
│   │                                       │   │       │   ├── AbstractOrderDetail.java
│   │                                       │   │       │   ├── BaseClusterHostOrderDetail.java
│   │                                       │   │       │   ├── ClusterDeleteOrderDetail.java
│   │                                       │   │       │   ├── ClusterLogicTransferOrderDetail.java
│   │                                       │   │       │   ├── ClusterOpIndecreaseDockerOrderDetail.java
│   │                                       │   │       │   ├── ClusterOpIndecreaseHostOrderDetail.java
│   │                                       │   │       │   ├── ClusterOpNewDockerOrderDetail.java
│   │                                       │   │       │   ├── ClusterOpNewHostOrderDetail.java
│   │                                       │   │       │   ├── ClusterOpOfflineOrderDetail.java
│   │                                       │   │       │   ├── ClusterOpUpdateOrderDetail.java
│   │                                       │   │       │   ├── DslTemplateQueryLimitDetail.java
│   │                                       │   │       │   ├── DslTemplateStatusDetail.java
│   │                                       │   │       │   ├── LogicClusterAuthOrderDetail.java
│   │                                       │   │       │   ├── LogicClusterCreateOrderDetail.java
│   │                                       │   │       │   ├── LogicClusterDeleteOrderDetail.java
│   │                                       │   │       │   ├── LogicClusterIndecreaseOrderDetail.java
│   │                                       │   │       │   ├── LogicClusterPlugOperationOrderDetail.java
│   │                                       │   │       │   ├── LogicClusterPluginOrderDetail.java
│   │                                       │   │       │   ├── OrderInfoDetail.java
│   │                                       │   │       │   ├── PhyClusterPluginOperationOrderDetail.java
│   │                                       │   │       │   ├── QueryDslLimitEditOrderDetail.java
│   │                                       │   │       │   ├── TemplateAuthOrderDetail.java
│   │                                       │   │       │   ├── TemplateCreateOrderDetail.java
│   │                                       │   │       │   ├── TemplateIndecreaseOrderDetail.java
│   │                                       │   │       │   ├── TemplateLogicStatusDetail.java
│   │                                       │   │       │   ├── TemplateQueryDslOrderDetail.java
│   │                                       │   │       │   ├── TemplateTransferOrderDetail.java
│   │                                       │   │       │   └── clusteroprestart/
│   │                                       │   │       │       ├── ClusterOpConfigRestartOrderDetail.java
│   │                                       │   │       │       └── ClusterOpRestartOrderDetail.java
│   │                                       │   │       └── ecm/
│   │                                       │   │           └── EcmTask.java
│   │                                       │   ├── po/
│   │                                       │   │   ├── BaseESPO.java
│   │                                       │   │   ├── BasePO.java
│   │                                       │   │   ├── cluster/
│   │                                       │   │   │   ├── ClusterLogicDiskUsedInfoPO.java
│   │                                       │   │   │   ├── ClusterLogicPO.java
│   │                                       │   │   │   ├── ClusterPhyPO.java
│   │                                       │   │   │   └── ClusterRegionPO.java
│   │                                       │   │   ├── config/
│   │                                       │   │   │   └── AriusConfigInfoPO.java
│   │                                       │   │   ├── dsl/
│   │                                       │   │   │   ├── DslAnalyzeResultQpsPO.java
│   │                                       │   │   │   ├── DslAnalyzeResultTypePO.java
│   │                                       │   │   │   ├── DslFieldUsePO.java
│   │                                       │   │   │   ├── DslMetricsPO.java
│   │                                       │   │   │   └── DslTemplatePO.java
│   │                                       │   │   ├── ecm/
│   │                                       │   │   │   ├── ESClusterRoleHostPO.java
│   │                                       │   │   │   ├── ESClusterRolePO.java
│   │                                       │   │   │   └── ESMachineNormsPO.java
│   │                                       │   │   ├── esconfig/
│   │                                       │   │   │   └── ESConfigPO.java
│   │                                       │   │   ├── espackage/
│   │                                       │   │   │   └── ESPackagePO.java
│   │                                       │   │   ├── esplugin/
│   │                                       │   │   │   └── PluginPO.java
│   │                                       │   │   ├── gateway/
│   │                                       │   │   │   ├── GatewayClusterNodePO.java
│   │                                       │   │   │   ├── GatewayClusterPO.java
│   │                                       │   │   │   └── GatewayJoinPO.java
│   │                                       │   │   ├── index/
│   │                                       │   │   │   ├── IndexCatCellPO.java
│   │                                       │   │   │   ├── IndexSizePO.java
│   │                                       │   │   │   └── healthdegree/
│   │                                       │   │   │       └── HealthDegreesPO.java
│   │                                       │   │   ├── metrics/
│   │                                       │   │   │   ├── MetricsDictionaryPO.java
│   │                                       │   │   │   └── UserConfigPO.java
│   │                                       │   │   ├── monitor/
│   │                                       │   │   │   └── AriusMetaJobClusterDistributePO.java
│   │                                       │   │   ├── operaterecord/
│   │                                       │   │   │   └── OperateRecordInfoPO.java
│   │                                       │   │   ├── order/
│   │                                       │   │   │   └── WorkOrderPO.java
│   │                                       │   │   ├── project/
│   │                                       │   │   │   ├── ESUserPO.java
│   │                                       │   │   │   ├── ProjectClusterLogicAuthPO.java
│   │                                       │   │   │   ├── ProjectConfigPO.java
│   │                                       │   │   │   └── ProjectTemplateAuthPO.java
│   │                                       │   │   ├── query/
│   │                                       │   │   │   ├── IndexNameAccessCountPO.java
│   │                                       │   │   │   ├── IndexNameQueryAvgRatePO.java
│   │                                       │   │   │   ├── ProjectQueryPO.java
│   │                                       │   │   │   ├── ProjectTemplateAccessCountPO.java
│   │                                       │   │   │   └── TemplateAccessCountPO.java
│   │                                       │   │   ├── quota/
│   │                                       │   │   │   └── ESTemplateQuotaUsagePO.java
│   │                                       │   │   ├── shard/
│   │                                       │   │   │   ├── SegmentPO.java
│   │                                       │   │   │   └── ShardCatCellPO.java
│   │                                       │   │   ├── stats/
│   │                                       │   │   │   ├── ClusterLogicStatsPO.java
│   │                                       │   │   │   ├── ESClusterThreadPO.java
│   │                                       │   │   │   └── TemplateTpsMetricPO.java
│   │                                       │   │   ├── task/
│   │                                       │   │   │   ├── OpTaskPO.java
│   │                                       │   │   │   └── ecm/
│   │                                       │   │   │       ├── EcmTaskDetailPO.java
│   │                                       │   │   │       └── EcmTaskPO.java
│   │                                       │   │   └── template/
│   │                                       │   │       ├── IndexTemplatePO.java
│   │                                       │   │       ├── IndexTemplatePhyPO.java
│   │                                       │   │       ├── TemplateAliasPO.java
│   │                                       │   │       ├── TemplateConfigPO.java
│   │                                       │   │       ├── TemplateFieldPO.java
│   │                                       │   │       ├── TemplateHealthDegreePO.java
│   │                                       │   │       ├── TemplateHealthDegreeRecordPO.java
│   │                                       │   │       ├── TemplateHitPO.java
│   │                                       │   │       ├── TemplateLabelPO.java
│   │                                       │   │       ├── TemplateNotifyESPO.java
│   │                                       │   │       ├── TemplateStatsInfoPO.java
│   │                                       │   │       ├── TemplateTypePO.java
│   │                                       │   │       ├── TemplateValuePO.java
│   │                                       │   │       └── TemplateValueRecordPO.java
│   │                                       │   └── vo/
│   │                                       │       ├── BaseVO.java
│   │                                       │       ├── README.md
│   │                                       │       ├── cluster/
│   │                                       │       │   ├── ClusterConnectionStatusWithTemplateVO.java
│   │                                       │       │   ├── ClusterLogicTemplateIndexCountVO.java
│   │                                       │       │   ├── ClusterLogicTemplateIndexDetailDTO.java
│   │                                       │       │   ├── ClusterLogicVO.java
│   │                                       │       │   ├── ClusterLogicVOWithProjects.java
│   │                                       │       │   ├── ClusterNodeInfoVO.java
│   │                                       │       │   ├── ClusterPhyVO.java
│   │                                       │       │   ├── ClusterPhyWithLogicClusterVO.java
│   │                                       │       │   ├── ClusterRegionVO.java
│   │                                       │       │   ├── ClusterRegionWithNodeInfoVO.java
│   │                                       │       │   ├── ConsoleClusterStatusVO.java
│   │                                       │       │   ├── ESClusterRoleHostVO.java
│   │                                       │       │   ├── ESClusterRoleHostWithRegionInfoVO.java
│   │                                       │       │   ├── ESClusterRoleVO.java
│   │                                       │       │   ├── ESClusterTemplateSrvVO.java
│   │                                       │       │   ├── PluginVO.java
│   │                                       │       │   ├── ThirdPartClusterVO.java
│   │                                       │       │   └── quickcommand/
│   │                                       │       │       ├── IndicesDistributionVO.java
│   │                                       │       │       ├── NodeStateVO.java
│   │                                       │       │       ├── PendingTaskAnalysisVO.java
│   │                                       │       │       ├── ShardAssignmenNodeVO.java
│   │                                       │       │       ├── ShardAssignmentDescriptionVO.java
│   │                                       │       │       ├── ShardDistributionVO.java
│   │                                       │       │       └── TaskMissionAnalysisVO.java
│   │                                       │       ├── config/
│   │                                       │       │   ├── AriusConfigInfoVO.java
│   │                                       │       │   └── ThirdpartConfigVO.java
│   │                                       │       ├── ecm/
│   │                                       │       │   ├── ESClusterNodeSepcVO.java
│   │                                       │       │   ├── ESConfigVO.java
│   │                                       │       │   ├── EcmTaskBasicVO.java
│   │                                       │       │   ├── EcmTaskDetailVO.java
│   │                                       │       │   └── EcmTaskVO.java
│   │                                       │       ├── espackage/
│   │                                       │       │   └── ESPackageVO.java
│   │                                       │       ├── gateway/
│   │                                       │       │   └── GatewayClusterNodeVO.java
│   │                                       │       ├── indices/
│   │                                       │       │   ├── IndexCatCellVO.java
│   │                                       │       │   ├── IndexCatCellWithTemplateVO.java
│   │                                       │       │   ├── IndexMappingVO.java
│   │                                       │       │   ├── IndexSettingVO.java
│   │                                       │       │   └── IndexShardInfoVO.java
│   │                                       │       ├── metrics/
│   │                                       │       │   ├── MetricsVO.java
│   │                                       │       │   ├── dictionary/
│   │                                       │       │   │   └── MetricsDictionaryVO.java
│   │                                       │       │   ├── list/
│   │                                       │       │   │   ├── MetricListContentVO.java
│   │                                       │       │   │   └── MetricListVO.java
│   │                                       │       │   ├── other/
│   │                                       │       │   │   ├── cluster/
│   │                                       │       │   │   │   ├── BigIndexMetricsVO.java
│   │                                       │       │   │   │   ├── BigShardMetricsVO.java
│   │                                       │       │   │   │   ├── CpuLoadFor15MinMetricsVO.java
│   │                                       │       │   │   │   ├── CpuLoadFor1MinMetricsVO.java
│   │                                       │       │   │   │   ├── CpuLoadFor5MinMetricsVO.java
│   │                                       │       │   │   │   ├── CpuUsageMetricsVO.java
│   │                                       │       │   │   │   ├── DiskInfoMetricsVO.java
│   │                                       │       │   │   │   ├── DiskUsageMetricsVO.java
│   │                                       │       │   │   │   ├── ESAggMetricsVO.java
│   │                                       │       │   │   │   ├── ESClusterOverviewMetricsVO.java
│   │                                       │       │   │   │   ├── ESClusterPhyBasicMetricsVO.java
│   │                                       │       │   │   │   ├── ESClusterTaskDetailVO.java
│   │                                       │       │   │   │   ├── IndexBelongNodeVO.java
│   │                                       │       │   │   │   ├── IndexingLatencyMetricsVO.java
│   │                                       │       │   │   │   ├── MovingShardMetricsVO.java
│   │                                       │       │   │   │   ├── NodeInfoForDiskUsageGte75PercentVO.java
│   │                                       │       │   │   │   ├── PendingTaskVO.java
│   │                                       │       │   │   │   ├── ReadQPSMetricsVO.java
│   │                                       │       │   │   │   ├── RecvTransMetricsVO.java
│   │                                       │       │   │   │   ├── SearchLatencyMetricsVO.java
│   │                                       │       │   │   │   ├── SendTransMetricsVO.java
│   │                                       │       │   │   │   ├── ShardInfoMetricsVO.java
│   │                                       │       │   │   │   ├── TaskCostMetricVO.java
│   │                                       │       │   │   │   ├── TaskCountMetricVO.java
│   │                                       │       │   │   │   ├── UnAssignShardMetricsVO.java
│   │                                       │       │   │   │   └── WriteTPSMetricsVO.java
│   │                                       │       │   │   ├── dashboard/
│   │                                       │       │   │   │   └── ClusterPhyHealthMetricsVO.java
│   │                                       │       │   │   └── gateway/
│   │                                       │       │   │       └── GatewayOverviewMetricsVO.java
│   │                                       │       │   ├── percentiles/
│   │                                       │       │   │   └── ESPercentileMetricsVO.java
│   │                                       │       │   └── top/
│   │                                       │       │       ├── MetricsContentCellVO.java
│   │                                       │       │       ├── MetricsContentVO.java
│   │                                       │       │       └── VariousLineChartMetricsVO.java
│   │                                       │       ├── operaterecord/
│   │                                       │       │   └── OperateRecordVO.java
│   │                                       │       ├── order/
│   │                                       │       │   ├── AriusWorkOrderInfoSubmittedVO.java
│   │                                       │       │   ├── OrderTypeVO.java
│   │                                       │       │   ├── WorkOrderVO.java
│   │                                       │       │   └── detail/
│   │                                       │       │       └── OrderDetailBaseVO.java
│   │                                       │       ├── project/
│   │                                       │       │   ├── ConsoleESUserVO.java
│   │                                       │       │   ├── ConsoleESUserWithVerifyCodeVO.java
│   │                                       │       │   ├── ESUserVO.java
│   │                                       │       │   ├── GatewayESUserVO.java
│   │                                       │       │   ├── ProjectBriefExtendVO.java
│   │                                       │       │   ├── ProjectConfigVO.java
│   │                                       │       │   ├── ProjectExtendVO.java
│   │                                       │       │   ├── ProjectLogicClusterAuthVO.java
│   │                                       │       │   ├── ProjectTemplateAuthVO.java
│   │                                       │       │   ├── RoleExtendVO.java
│   │                                       │       │   ├── SinkSdkESUserVO.java
│   │                                       │       │   ├── UserExtendVO.java
│   │                                       │       │   └── UserWithPwVO.java
│   │                                       │       ├── task/
│   │                                       │       │   ├── OpTaskVO.java
│   │                                       │       │   ├── TaskTypeVO.java
│   │                                       │       │   └── WorkTaskVO.java
│   │                                       │       └── template/
│   │                                       │           ├── AmsTemplatePhysicalConfVO.java
│   │                                       │           ├── BaseTemplateVO.java
│   │                                       │           ├── ConsoleTemplateClearVO.java
│   │                                       │           ├── ConsoleTemplateDeleteVO.java
│   │                                       │           ├── ConsoleTemplateDetailVO.java
│   │                                       │           ├── ConsoleTemplateFieldConvertVO.java
│   │                                       │           ├── ConsoleTemplatePhyVO.java
│   │                                       │           ├── ConsoleTemplateRateLimitVO.java
│   │                                       │           ├── ConsoleTemplateVO.java
│   │                                       │           ├── DCDRSingleTemplateMasterSlaveSwitchDetailVO.java
│   │                                       │           ├── DCDRTasksDetailVO.java
│   │                                       │           ├── DslMetricsVO.java
│   │                                       │           ├── DslTemplateVO.java
│   │                                       │           ├── GatewayJoinVO.java
│   │                                       │           ├── GatewayTemplateDeployInfoVO.java
│   │                                       │           ├── GatewayTemplatePhysicalDeployVO.java
│   │                                       │           ├── GatewayTemplatePhysicalVO.java
│   │                                       │           ├── GatewayTemplateVO.java
│   │                                       │           ├── IndexTemplatePhysicalVO.java
│   │                                       │           ├── ProjectIdTemplateAccessCountVO.java
│   │                                       │           ├── SearchDslTemplateResponseVO.java
│   │                                       │           ├── SinkSdkIDCTemplateDeployInfoVO.java
│   │                                       │           ├── SinkSdkTemplateDeployInfoVO.java
│   │                                       │           ├── SinkSdkTemplatePhysicalDeployVO.java
│   │                                       │           ├── SinkSdkTemplateVO.java
│   │                                       │           ├── TemplateCyclicalRollInfoVO.java
│   │                                       │           ├── TemplateDCDRInfoVO.java
│   │                                       │           ├── TemplateHealthDegreeRecordVO.java
│   │                                       │           ├── TemplateLabelVO.java
│   │                                       │           ├── TemplateMappingVO.java
│   │                                       │           ├── TemplateSettingVO.java
│   │                                       │           ├── TemplateStatsInfoVO.java
│   │                                       │           ├── TemplateValueRecordVO.java
│   │                                       │           ├── ThirdPartTemplateLogicWithMasterTemplateResourceVO.java
│   │                                       │           ├── ThirdpartTemplateLogicVO.java
│   │                                       │           ├── ThirdpartTemplatePhysicalVO.java
│   │                                       │           ├── ThirdpartTemplateVO.java
│   │                                       │           └── srv/
│   │                                       │               ├── TemplateSrvVO.java
│   │                                       │               ├── TemplateWithSrvVO.java
│   │                                       │               └── UnavailableTemplateSrvVO.java
│   │                                       ├── component/
│   │                                       │   ├── BaseHandle.java
│   │                                       │   └── RestTool.java
│   │                                       ├── constant/
│   │                                       │   ├── AdminConstant.java
│   │                                       │   ├── AdminESOpRetryConstants.java
│   │                                       │   ├── ApiVersion.java
│   │                                       │   ├── AriusConfigConstant.java
│   │                                       │   ├── AriusStatsEnum.java
│   │                                       │   ├── AuthConstant.java
│   │                                       │   ├── ClusterConstant.java
│   │                                       │   ├── ClusterPhyMetricsConstant.java
│   │                                       │   ├── DataCenterEnum.java
│   │                                       │   ├── ESClusterMethodNameEnum.java
│   │                                       │   ├── ESClusterVersionEnum.java
│   │                                       │   ├── ESConstant.java
│   │                                       │   ├── ESSettingConstant.java
│   │                                       │   ├── FileCompressionType.java
│   │                                       │   ├── GatewaySqlConstant.java
│   │                                       │   ├── IndicatorsType.java
│   │                                       │   ├── LevelEnum.java
│   │                                       │   ├── OperateRecordSortEnum.java
│   │                                       │   ├── PageSearchHandleTypeEnum.java
│   │                                       │   ├── PercentilesEnum.java
│   │                                       │   ├── PluginTypeEnum.java
│   │                                       │   ├── ProjectResourceEnum.java
│   │                                       │   ├── QueryDiagnosisTabNameEnum.java
│   │                                       │   ├── ResultLevel.java
│   │                                       │   ├── RunModeEnum.java
│   │                                       │   ├── SortConstant.java
│   │                                       │   ├── SortTermEnum.java
│   │                                       │   ├── TemplateConstant.java
│   │                                       │   ├── UpdateIndexTemplateLabelParam.java
│   │                                       │   ├── arius/
│   │                                       │   │   └── AriusUser.java
│   │                                       │   ├── cluster/
│   │                                       │   │   ├── ClusterConnectionStatus.java
│   │                                       │   │   ├── ClusterConnectionStatusWithTemplateEnum.java
│   │                                       │   │   ├── ClusterDynamicConfigsEnum.java
│   │                                       │   │   ├── ClusterDynamicConfigsTypeEnum.java
│   │                                       │   │   ├── ClusterHealthEnum.java
│   │                                       │   │   ├── ClusterQuickCommandMethodsEnum.java
│   │                                       │   │   ├── ClusterRegionStatusEnum.java
│   │                                       │   │   ├── ClusterResourceTypeEnum.java
│   │                                       │   │   └── PluginConstant.java
│   │                                       │   ├── config/
│   │                                       │   │   ├── AriusConfigDimensionEnum.java
│   │                                       │   │   ├── AriusConfigItemEnum.java
│   │                                       │   │   └── AriusConfigStatusEnum.java
│   │                                       │   ├── dcdr/
│   │                                       │   │   ├── DCDRStatusEnum.java
│   │                                       │   │   └── DCDRSwithTypeEnum.java
│   │                                       │   ├── ecm/
│   │                                       │   │   ├── EcmHostStatusEnum.java
│   │                                       │   │   └── EcmTaskStatusEnum.java
│   │                                       │   ├── esconfig/
│   │                                       │   │   └── EsConfigActionEnum.java
│   │                                       │   ├── espackage/
│   │                                       │   │   └── AriusESPackageEnum.java
│   │                                       │   ├── index/
│   │                                       │   │   ├── IndexBlockEnum.java
│   │                                       │   │   └── IndexStatusEnum.java
│   │                                       │   ├── metrics/
│   │                                       │   │   ├── AggMetricsTypeEnum.java
│   │                                       │   │   ├── ClusterPhyClusterMetricsEnum.java
│   │                                       │   │   ├── ClusterPhyIndicesMetricsEnum.java
│   │                                       │   │   ├── ClusterPhyNodeMetricsEnum.java
│   │                                       │   │   ├── ClusterPhyTypeMetricsEnum.java
│   │                                       │   │   ├── ConfigTypeEnum.java
│   │                                       │   │   ├── DashBoardMetricListTypeEnum.java
│   │                                       │   │   ├── DashBoardMetricListTypeWithExtendValueFieldEnum.java
│   │                                       │   │   ├── DashBoardMetricOtherTypeEnum.java
│   │                                       │   │   ├── DashBoardMetricThresholdValueNameEnum.java
│   │                                       │   │   ├── DashBoardMetricTopTypeEnum.java
│   │                                       │   │   ├── ESHttpRequestContent.java
│   │                                       │   │   ├── GatewayMetricsTypeEnum.java
│   │                                       │   │   ├── MetricsConstant.java
│   │                                       │   │   ├── OneLevelTypeEnum.java
│   │                                       │   │   └── UserConfigTypeEnum.java
│   │                                       │   ├── operaterecord/
│   │                                       │   │   ├── ModuleEnum.java
│   │                                       │   │   ├── OperateTypeEnum.java
│   │                                       │   │   ├── OperationEnum.java
│   │                                       │   │   ├── TemplateOperateRecordEnum.java
│   │                                       │   │   └── TriggerWayEnum.java
│   │                                       │   ├── project/
│   │                                       │   │   ├── ProjectClusterLogicAuthEnum.java
│   │                                       │   │   ├── ProjectSearchTypeEnum.java
│   │                                       │   │   └── ProjectTemplateAuthEnum.java
│   │                                       │   ├── resource/
│   │                                       │   │   ├── ESClusterCreateSourceEnum.java
│   │                                       │   │   ├── ESClusterImportRuleEnum.java
│   │                                       │   │   ├── ESClusterNodeRoleEnum.java
│   │                                       │   │   ├── ESClusterNodeStatusEnum.java
│   │                                       │   │   ├── ESClusterTypeEnum.java
│   │                                       │   │   └── ResourceLogicLevelEnum.java
│   │                                       │   ├── result/
│   │                                       │   │   └── ResultType.java
│   │                                       │   ├── routing/
│   │                                       │   │   └── ESRoutingConstant.java
│   │                                       │   ├── task/
│   │                                       │   │   ├── OpTaskDCDRProgressEnum.java
│   │                                       │   │   ├── OpTaskHandleEnum.java
│   │                                       │   │   ├── OpTaskStatusEnum.java
│   │                                       │   │   └── OpTaskTypeEnum.java
│   │                                       │   ├── template/
│   │                                       │   │   ├── DataTypeEnum.java
│   │                                       │   │   ├── SupportSrv.java
│   │                                       │   │   ├── TemplateDCDRStepEnum.java
│   │                                       │   │   ├── TemplateDeployRoleEnum.java
│   │                                       │   │   ├── TemplateDeployStatusEnum.java
│   │                                       │   │   ├── TemplateHealthEnum.java
│   │                                       │   │   ├── TemplateLabelAttributeEnum.java
│   │                                       │   │   ├── TemplateLabelEnum.java
│   │                                       │   │   ├── TemplateLabelLevelEnum.java
│   │                                       │   │   ├── TemplateLabelPeriodEnum.java
│   │                                       │   │   ├── TemplateLabelSourceEnum.java
│   │                                       │   │   ├── TemplatePhysicalStatusEnum.java
│   │                                       │   │   └── TemplateServiceEnum.java
│   │                                       │   └── workorder/
│   │                                       │       ├── BpmAuditTypeEnum.java
│   │                                       │       ├── OperationTypeEnum.java
│   │                                       │       ├── OrderStatusEnum.java
│   │                                       │       ├── OrderTypeEnum.java
│   │                                       │       └── WorkOrderTypeEnum.java
│   │                                       ├── event/
│   │                                       │   ├── auth/
│   │                                       │   │   ├── ProjectAuthEvent.java
│   │                                       │   │   ├── ProjectLogicClusterAuthAddEvent.java
│   │                                       │   │   ├── ProjectLogicClusterAuthDeleteEvent.java
│   │                                       │   │   ├── ProjectLogicClusterAuthEditEvent.java
│   │                                       │   │   ├── ProjectTemplateAuthAddEvent.java
│   │                                       │   │   ├── ProjectTemplateAuthDeleteEvent.java
│   │                                       │   │   └── ProjectTemplateAuthEditEvent.java
│   │                                       │   ├── ecm/
│   │                                       │   │   └── EcmTaskEditEvent.java
│   │                                       │   ├── index/
│   │                                       │   │   ├── IndexDeleteEvent.java
│   │                                       │   │   ├── ReBuildTomorrowIndexEvent.java
│   │                                       │   │   └── RefreshCatIndexInfoEvent.java
│   │                                       │   ├── metrics/
│   │                                       │   │   ├── MetaDataMetricsEvent.java
│   │                                       │   │   ├── MetricsMonitorClusterEvent.java
│   │                                       │   │   ├── MetricsMonitorCollectTimeEvent.java
│   │                                       │   │   ├── MetricsMonitorIndexEvent.java
│   │                                       │   │   ├── MetricsMonitorLogicClusterEvent.java
│   │                                       │   │   └── MetricsMonitorNodeEvent.java
│   │                                       │   ├── region/
│   │                                       │   │   ├── RegionBindEvent.java
│   │                                       │   │   ├── RegionCreateEvent.java
│   │                                       │   │   ├── RegionDeleteEvent.java
│   │                                       │   │   ├── RegionEditEvent.java
│   │                                       │   │   └── RegionUnbindEvent.java
│   │                                       │   ├── resource/
│   │                                       │   │   ├── ClusterEvent.java
│   │                                       │   │   ├── ClusterLogicEvent.java
│   │                                       │   │   ├── ClusterPhyEvent.java
│   │                                       │   │   └── ClusterPhyHealthEvent.java
│   │                                       │   └── template/
│   │                                       │       ├── DCDRLinkAbnormalIndicesRebuildEvent.java
│   │                                       │       ├── LogicTemplateCreatePipelineEvent.java
│   │                                       │       ├── LogicTemplateEvent.java
│   │                                       │       ├── LogicTemplateModifyEvent.java
│   │                                       │       ├── PhysicalTemplateAddEvent.java
│   │                                       │       ├── PhysicalTemplateDeleteEvent.java
│   │                                       │       ├── PhysicalTemplateEvent.java
│   │                                       │       ├── PhysicalTemplateModifyEvent.java
│   │                                       │       ├── TemplateCreateEvent.java
│   │                                       │       ├── TemplateEvent.java
│   │                                       │       └── physical/
│   │                                       │           └── metadata/
│   │                                       │               ├── PhysicalMetaDataModifyEvent.java
│   │                                       │               ├── PhysicalTemplateAliasModifyEvent.java
│   │                                       │               ├── PhysicalTemplatePropertiesTypesModifyEvent.java
│   │                                       │               └── PhysicalTemplateSettingsModifyEvent.java
│   │                                       ├── exception/
│   │                                       │   ├── AdminOperateException.java
│   │                                       │   ├── AdminTaskException.java
│   │                                       │   ├── AmsRemoteException.java
│   │                                       │   ├── AriusGatewayException.java
│   │                                       │   ├── BaseException.java
│   │                                       │   ├── ESOperateException.java
│   │                                       │   ├── EcmRemoteException.java
│   │                                       │   ├── EventException.java
│   │                                       │   ├── ExtendServiceNotSupportException.java
│   │                                       │   ├── NotFindSubclassException.java
│   │                                       │   ├── NullESClientException.java
│   │                                       │   ├── OperateForbiddenException.java
│   │                                       │   ├── ThirdPartRemoteException.java
│   │                                       │   ├── WorkOrderNotSupportException.java
│   │                                       │   └── WorkOrderOperateException.java
│   │                                       ├── function/
│   │                                       │   ├── BiFunctionWithESOperateException.java
│   │                                       │   └── FunctionWithESOperateException.java
│   │                                       ├── mapping/
│   │                                       │   ├── AnalyzerEnum.java
│   │                                       │   ├── AriusIndexTemplateSetting.java
│   │                                       │   ├── AriusTypeProperty.java
│   │                                       │   ├── Field.java
│   │                                       │   ├── IndexEnum.java
│   │                                       │   ├── SortEnum.java
│   │                                       │   ├── SpecialField.java
│   │                                       │   └── TypeEnum.java
│   │                                       ├── threadpool/
│   │                                       │   ├── AriusOpThreadPool.java
│   │                                       │   ├── AriusScheduleThreadPool.java
│   │                                       │   └── AriusTaskThreadPool.java
│   │                                       ├── tuple/
│   │                                       │   ├── TupleOne.java
│   │                                       │   ├── TupleThree.java
│   │                                       │   ├── TupleTwo.java
│   │                                       │   └── Tuples.java
│   │                                       └── util/
│   │                                           ├── AriusDateUtils.java
│   │                                           ├── AriusIndexMappingConfigUtils.java
│   │                                           ├── AriusJSON.java
│   │                                           ├── AriusObjUtils.java
│   │                                           ├── AriusOptional.java
│   │                                           ├── AriusUnitUtil.java
│   │                                           ├── AriusUserUtil.java
│   │                                           ├── BaseHttpUtil.java
│   │                                           ├── BatchConvert.java
│   │                                           ├── BatchProcessor.java
│   │                                           ├── ClusterDynamicConfigTypeCheckFunUtil.java
│   │                                           ├── ClusterUtils.java
│   │                                           ├── CommonUtils.java
│   │                                           ├── ConvertUtil.java
│   │                                           ├── DSLSearchUtils.java
│   │                                           ├── DateTimeUtil.java
│   │                                           ├── DiffUtil.java
│   │                                           ├── DslTermUtil.java
│   │                                           ├── ESVersionUtil.java
│   │                                           ├── EnvUtil.java
│   │                                           ├── EventRetryExecutor.java
│   │                                           ├── FutureUtil.java
│   │                                           ├── Getter.java
│   │                                           ├── HttpHostUtil.java
│   │                                           ├── IndexNameFactory.java
│   │                                           ├── IndexNameUtils.java
│   │                                           ├── IndexSettingsUtil.java
│   │                                           ├── ListUtils.java
│   │                                           ├── MapUtils.java
│   │                                           ├── MappingConfigUtil.java
│   │                                           ├── MetricsUtils.java
│   │                                           ├── ParsingExceptionUtils.java
│   │                                           ├── PercentUtils.java
│   │                                           ├── ProjectUtils.java
│   │                                           ├── RegexUtils.java
│   │                                           ├── RetryExecutor.java
│   │                                           ├── SizeUtil.java
│   │                                           ├── TemplateUtils.java
│   │                                           ├── TimeValue.java
│   │                                           ├── TimeValueUtil.java
│   │                                           ├── VerifyCodeFactory.java
│   │                                           └── YamlUtil.java
│   ├── arius-admin-core/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   └── core/
│   │                                       ├── component/
│   │                                       │   ├── BaseExtendFactory.java
│   │                                       │   ├── CacheSwitch.java
│   │                                       │   ├── HandleFactory.java
│   │                                       │   ├── RoleTool.java
│   │                                       │   └── SpringTool.java
│   │                                       ├── config/
│   │                                       │   ├── ProjectEventMultiConfig.java
│   │                                       │   └── RestTemplateConfig.java
│   │                                       └── service/
│   │                                           ├── cluster/
│   │                                           │   ├── ecm/
│   │                                           │   │   ├── ESClusterConfigService.java
│   │                                           │   │   ├── ESMachineNormsService.java
│   │                                           │   │   ├── ESPackageService.java
│   │                                           │   │   ├── ESPluginService.java
│   │                                           │   │   ├── EcmHandleService.java
│   │                                           │   │   └── impl/
│   │                                           │   │       ├── ESClusterConfigServiceImpl.java
│   │                                           │   │       ├── ESMachineNormsServiceImpl.java
│   │                                           │   │       ├── ESPackageServiceImpl.java
│   │                                           │   │       ├── ESPluginServiceImpl.java
│   │                                           │   │       ├── EcmHandleServiceImpl.java
│   │                                           │   │       └── handler/
│   │                                           │   │           ├── AbstractEcmBaseHandle.java
│   │                                           │   │           ├── EcmDockerHandler.java
│   │                                           │   │           └── EcmHostHandler.java
│   │                                           │   ├── logic/
│   │                                           │   │   ├── ClusterLogicService.java
│   │                                           │   │   └── impl/
│   │                                           │   │       └── ClusterLogicServiceImpl.java
│   │                                           │   ├── monitortask/
│   │                                           │   │   ├── AriusMetaJobClusterDistributeService.java
│   │                                           │   │   └── impl/
│   │                                           │   │       └── AriusMetaJobClusterDistributeServiceImpl.java
│   │                                           │   ├── physic/
│   │                                           │   │   ├── ClusterPhyService.java
│   │                                           │   │   ├── ClusterRoleHostService.java
│   │                                           │   │   ├── ClusterRoleService.java
│   │                                           │   │   └── impl/
│   │                                           │   │       ├── ClusterPhyServiceImpl.java
│   │                                           │   │       ├── ClusterRoleHostServiceImpl.java
│   │                                           │   │       └── ClusterRoleServiceImpl.java
│   │                                           │   └── region/
│   │                                           │       ├── ClusterRegionService.java
│   │                                           │       └── impl/
│   │                                           │           └── ClusterRegionServiceImpl.java
│   │                                           ├── common/
│   │                                           │   ├── AriusConfigInfoService.java
│   │                                           │   ├── OperateRecordService.java
│   │                                           │   └── impl/
│   │                                           │       ├── AriusConfigInfoServiceImpl.java
│   │                                           │       └── OperateRecordServiceImpl.java
│   │                                           ├── es/
│   │                                           │   ├── ESClusterNodeService.java
│   │                                           │   ├── ESClusterService.java
│   │                                           │   ├── ESIndexCatService.java
│   │                                           │   ├── ESIndexService.java
│   │                                           │   ├── ESShardCatService.java
│   │                                           │   ├── ESShardService.java
│   │                                           │   ├── ESTemplateService.java
│   │                                           │   └── impl/
│   │                                           │       ├── ESClusterNodeServiceImpl.java
│   │                                           │       ├── ESClusterServiceImpl.java
│   │                                           │       ├── ESIndexCatServiceImpl.java
│   │                                           │       ├── ESIndexServiceImpl.java
│   │                                           │       ├── ESShardCatServiceImpl.java
│   │                                           │       ├── ESShardServiceImpl.java
│   │                                           │       └── ESTemplateServiceImpl.java
│   │                                           ├── extend/
│   │                                           │   └── storage/
│   │                                           │       ├── FileStorageService.java
│   │                                           │       └── impl/
│   │                                           │           └── FileStorageServiceImpl.java
│   │                                           ├── gateway/
│   │                                           │   ├── GatewayService.java
│   │                                           │   └── impl/
│   │                                           │       └── GatewayServiceImpl.java
│   │                                           ├── metrics/
│   │                                           │   ├── MetricsDictionaryService.java
│   │                                           │   ├── UserConfigService.java
│   │                                           │   └── impl/
│   │                                           │       ├── MetricsDictionaryServiceImpl.java
│   │                                           │       └── UserConfigServiceImpl.java
│   │                                           ├── project/
│   │                                           │   ├── ESUserService.java
│   │                                           │   ├── ProjectClusterLogicAuthService.java
│   │                                           │   ├── ProjectConfigService.java
│   │                                           │   ├── ProjectLogicTemplateAuthService.java
│   │                                           │   └── impl/
│   │                                           │       ├── ESUserServiceImpl.java
│   │                                           │       ├── ProjectClusterLogicAuthServiceImpl.java
│   │                                           │       ├── ProjectConfigServiceImpl.java
│   │                                           │       └── ProjectLogicTemplateAuthServiceImpl.java
│   │                                           ├── task/
│   │                                           │   ├── OpTaskService.java
│   │                                           │   └── OpTaskServiceImpl.java
│   │                                           ├── template/
│   │                                           │   ├── dcdr/
│   │                                           │   │   ├── ESDCDRService.java
│   │                                           │   │   └── ESDCDRServiceImpl.java
│   │                                           │   ├── logic/
│   │                                           │   │   ├── IndexTemplateService.java
│   │                                           │   │   ├── TemplateLogicAliasService.java
│   │                                           │   │   └── impl/
│   │                                           │   │       ├── IndexTemplateServiceImpl.java
│   │                                           │   │       └── TemplateLogicAliasServiceImpl.java
│   │                                           │   ├── physic/
│   │                                           │   │   ├── IndexTemplatePhyService.java
│   │                                           │   │   └── impl/
│   │                                           │   │       └── IndexTemplatePhyServiceImpl.java
│   │                                           │   └── pipeline/
│   │                                           │       ├── ESPipelineService.java
│   │                                           │       └── ESPipelineServiceImpl.java
│   │                                           └── workorder/
│   │                                               ├── WorkOrderService.java
│   │                                               └── WorkOrderServiceImpl.java
│   ├── arius-admin-extend/
│   │   ├── arius-admin-rest-v2/
│   │   │   └── pom.xml
│   │   └── fast-index/
│   │       ├── pom.xml
│   │       └── src/
│   │           └── main/
│   │               └── java/
│   │                   └── com/
│   │                       └── didichuxing/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   └── extend/
│   │                                       └── fastindex/
│   │                                           ├── bean/
│   │                                           │   ├── FastIndexLoadDataParam.java
│   │                                           │   ├── entity/
│   │                                           │   │   ├── IndexFastIndexInfo.java
│   │                                           │   │   ├── IndexShardsVersion.java
│   │                                           │   │   ├── NodeVersion.java
│   │                                           │   │   ├── ShardDisk.java
│   │                                           │   │   ├── ShardNode.java
│   │                                           │   │   ├── ShardVersion.java
│   │                                           │   │   └── SpatialInfo.java
│   │                                           │   └── po/
│   │                                           │       ├── FastIndexLoadDataPO.java
│   │                                           │       ├── FastIndexMappingPO.java
│   │                                           │       ├── FastIndexOpIndexPO.java
│   │                                           │       ├── FastIndexTaskMetricPO.java
│   │                                           │       └── FastIndexTemplateConfigPO.java
│   │                                           ├── controller/
│   │                                           │   └── FastIndexController.java
│   │                                           ├── dao/
│   │                                           │   ├── FastIndexLoadDataESDAO.java
│   │                                           │   ├── FastIndexMappingESDAO.java
│   │                                           │   ├── FastIndexOpIndexESDAO.java
│   │                                           │   ├── FastIndexTaskMetricESDAO.java
│   │                                           │   └── FastIndexTemplateConfigESDAO.java
│   │                                           ├── job/
│   │                                           │   ├── FastIndexCleanMetaDataTask.java
│   │                                           │   ├── FastIndexLoadDataTask.java
│   │                                           │   └── FastIndexOpIndexTask.java
│   │                                           ├── limit/
│   │                                           │   ├── CocurrentLimiter.java
│   │                                           │   └── ShardLimiter.java
│   │                                           └── service/
│   │                                               └── FastIndexService.java
│   ├── arius-admin-integration-test/
│   │   ├── README.md
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── didichuxing/
│   │       │   │           └── datachannel/
│   │       │   │               └── arius/
│   │       │   │                   └── admin/
│   │       │   │                       ├── method/
│   │       │   │                       │   └── v3/
│   │       │   │                       │       └── op/
│   │       │   │                       │           └── metrics/
│   │       │   │                       │               └── GatewayMetricsControllerMethod.java
│   │       │   │                       ├── request/
│   │       │   │                       │   └── outer/
│   │       │   │                       │       └── ThirdpartGatewayControllerMethod.java
│   │       │   │                       ├── resource/
│   │       │   │                       │   └── CustomDataSource.java
│   │       │   │                       └── util/
│   │       │   │                           ├── AriusClient.java
│   │       │   │                           ├── CompareUtil.java
│   │       │   │                           ├── RandomConfig.java
│   │       │   │                           ├── RandomFilledBean.java
│   │       │   │                           └── RandomGenerator.java
│   │       │   └── resources/
│   │       │       └── template.thirdpart.gateway/
│   │       │           ├── gatewayappvo.json
│   │       │           ├── gatewaytemplatedeployinfovo.json
│   │       │           ├── gatewaytemplatephysicalvo.json
│   │       │           └── scrollDslTemplateResponse.json
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   ├── base/
│   │                                   │   ├── BaseContextTest.java
│   │                                   │   ├── BaseLogicClusterInfoTest.java
│   │                                   │   ├── BasePhyClusterInfoTest.java
│   │                                   │   ├── BasePhyClusterRegionInfoTest.java
│   │                                   │   └── BaseTemplateInfoTest.java
│   │                                   ├── request/
│   │                                   │   └── outer/
│   │                                   │       └── ThirdpartGatewayTest.java
│   │                                   ├── resource/
│   │                                   │   ├── LogicClusterInfoSource.java
│   │                                   │   ├── PhyClusterInfoSource.java
│   │                                   │   ├── PhyClusterRegionInfoSource.java
│   │                                   │   └── TemplateInfoSource.java
│   │                                   └── v3/
│   │                                       └── op/
│   │                                           └── cluster/
│   │                                               └── logic/
│   │                                                   └── ESLogicClusterRegionTest.java
│   ├── arius-admin-metadata/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   └── metadata/
│   │                                       ├── job/
│   │                                       │   ├── AbstractMetaDataJob.java
│   │                                       │   ├── cluster/
│   │                                       │   │   └── monitor/
│   │                                       │   │       ├── ClusterMonitorJobHandler.java
│   │                                       │   │       ├── LogicClusterMonitorJobHandler.java
│   │                                       │   │       └── esmonitorjob/
│   │                                       │   │           ├── MonitorClusterJob.java
│   │                                       │   │           ├── MonitorCollectMetrics.java
│   │                                       │   │           ├── MonitorJobHandler.java
│   │                                       │   │           ├── MonitorMetricsSender.java
│   │                                       │   │           ├── action/
│   │                                       │   │           │   ├── ESIndicesSimpleStatsAction.java
│   │                                       │   │           │   ├── ESIndicesSimpleStatsRequest.java
│   │                                       │   │           │   ├── ESIndicesSimpleStatsRequestBuilder.java
│   │                                       │   │           │   ├── ESIndicesSimpleStatsResponse.java
│   │                                       │   │           │   ├── SimpleCommonStat.java
│   │                                       │   │           │   └── SimpleIndexNode.java
│   │                                       │   │           ├── index/
│   │                                       │   │           │   ├── ESIndexStatsAction.java
│   │                                       │   │           │   ├── ESIndexStatsRequest.java
│   │                                       │   │           │   ├── ESIndexStatsRequestBuilder.java
│   │                                       │   │           │   └── ESIndexStatsResponse.java
│   │                                       │   │           ├── metrics/
│   │                                       │   │           │   ├── CollectMetrics.java
│   │                                       │   │           │   ├── DCDRMetrics.java
│   │                                       │   │           │   ├── DeriveComputer.java
│   │                                       │   │           │   ├── ESNodeToIndexComputer.java
│   │                                       │   │           │   ├── MetricsComputeType.java
│   │                                       │   │           │   ├── MetricsComputer.java
│   │                                       │   │           │   ├── MetricsRegister.java
│   │                                       │   │           │   └── SimpleComputer.java
│   │                                       │   │           └── node/
│   │                                       │   │               ├── BaseTimeoutRequest.java
│   │                                       │   │               ├── ESBroadcastTimeoutRequest.java
│   │                                       │   │               ├── ESBroadcastTimeoutRequestBuilder.java
│   │                                       │   │               ├── ESNodeAction.java
│   │                                       │   │               ├── ESNodeRequest.java
│   │                                       │   │               ├── ESNodeRequestBuilder.java
│   │                                       │   │               ├── ESNodeResponse.java
│   │                                       │   │               ├── ESNodeStatsAction.java
│   │                                       │   │               ├── ESNodeStatsRequest.java
│   │                                       │   │               ├── ESNodeStatsRequestBuilder.java
│   │                                       │   │               └── ESNodeStatsResponse.java
│   │                                       │   ├── dsl/
│   │                                       │   │   ├── DslTemplateDelExpiredJob.java
│   │                                       │   │   └── DslTemplateUpdateNearestQueryLimitJob.java
│   │                                       │   ├── index/
│   │                                       │   │   ├── IndexCatInfoCollector.java
│   │                                       │   │   └── healthdegree/
│   │                                       │   │       ├── AbstractDegreeIndicator.java
│   │                                       │   │       ├── IDegreeIndicator.java
│   │                                       │   │       └── degreeindicator/
│   │                                       │   │           ├── DegreeOffline.java
│   │                                       │   │           ├── DegreeParam.java
│   │                                       │   │           ├── DegreeRealTimeCpuUse.java
│   │                                       │   │           ├── DegreeRealTimeDiskUse.java
│   │                                       │   │           ├── DegreeRealTimeOldGC.java
│   │                                       │   │           ├── DegreeRealTimeSearch.java
│   │                                       │   │           ├── DegreeRealTimeWriter.java
│   │                                       │   │           └── DegreeSearchCost.java
│   │                                       │   └── shard/
│   │                                       │       └── ShardCatInfoCollector.java
│   │                                       ├── listen/
│   │                                       │   ├── MetaDataMonitorMetrics2PrometheusListener.java
│   │                                       │   └── MetaDataMonitorMetrics2ZHListener.java
│   │                                       ├── service/
│   │                                       │   ├── DashBoardMetricsService.java
│   │                                       │   ├── DslMetricsService.java
│   │                                       │   ├── DslStatisticsService.java
│   │                                       │   ├── DslTemplateService.java
│   │                                       │   ├── ESClusterLogicStatsService.java
│   │                                       │   ├── ESClusterPhyStatsService.java
│   │                                       │   ├── ESIndicesStatsService.java
│   │                                       │   ├── GatewayJoinLogService.java
│   │                                       │   ├── GatewayMetricsService.java
│   │                                       │   ├── NodeStatsService.java
│   │                                       │   └── TemplateStatsService.java
│   │                                       └── utils/
│   │                                           ├── MonitorUtil.java
│   │                                           └── ReadExprValueUtil.java
│   ├── arius-admin-persistence/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── didichuxing/
│   │           │           └── datachannel/
│   │           │               └── arius/
│   │           │                   └── admin/
│   │           │                       └── persistence/
│   │           │                           ├── component/
│   │           │                           │   ├── ESGatewayClient.java
│   │           │                           │   ├── ESOpClient.java
│   │           │                           │   ├── ESOpTimeoutRetry.java
│   │           │                           │   ├── ESUpdateClient.java
│   │           │                           │   └── ScrollResultVisitor.java
│   │           │                           ├── config/
│   │           │                           │   └── DruidDbConfig.java
│   │           │                           ├── constant/
│   │           │                           │   └── ESOperateConstant.java
│   │           │                           ├── es/
│   │           │                           │   ├── BaseESDAO.java
│   │           │                           │   ├── cluster/
│   │           │                           │   │   ├── ESClusterDAO.java
│   │           │                           │   │   ├── ESClusterNodeDAO.java
│   │           │                           │   │   ├── ESDCDRDAO.java
│   │           │                           │   │   ├── ESIndexDAO.java
│   │           │                           │   │   ├── ESPipelineDAO.java
│   │           │                           │   │   ├── ESSecurityRoleDAO.java
│   │           │                           │   │   ├── ESSecurityUserDAO.java
│   │           │                           │   │   ├── ESShardDAO.java
│   │           │                           │   │   └── ESTemplateDAO.java
│   │           │                           │   ├── index/
│   │           │                           │   │   ├── dao/
│   │           │                           │   │   │   ├── app/
│   │           │                           │   │   │   │   └── ProjectTemplateAccessESDAO.java
│   │           │                           │   │   │   ├── dsl/
│   │           │                           │   │   │   │   ├── DslAnalyzeResultQpsESDAO.java
│   │           │                           │   │   │   │   ├── DslAnalyzeResultTypeESDAO.java
│   │           │                           │   │   │   │   ├── DslMetricsESDAO.java
│   │           │                           │   │   │   │   └── DslTemplateESDAO.java
│   │           │                           │   │   │   ├── gateway/
│   │           │                           │   │   │   │   ├── GatewayAppMetricsDAO.java
│   │           │                           │   │   │   │   ├── GatewayDslMetricsDAO.java
│   │           │                           │   │   │   │   ├── GatewayIndexMetricsDAO.java
│   │           │                           │   │   │   │   ├── GatewayJoinESDAO.java
│   │           │                           │   │   │   │   ├── GatewayNodeMetricsDAO.java
│   │           │                           │   │   │   │   └── GatewayOverviewMetricsDAO.java
│   │           │                           │   │   │   ├── index/
│   │           │                           │   │   │   │   └── IndexCatESDAO.java
│   │           │                           │   │   │   ├── stats/
│   │           │                           │   │   │   │   ├── AriusStatsClusterInfoESDAO.java
│   │           │                           │   │   │   │   ├── AriusStatsClusterTaskInfoESDAO.java
│   │           │                           │   │   │   │   ├── AriusStatsDashBoardInfoESDAO.java
│   │           │                           │   │   │   │   ├── AriusStatsIndexInfoESDAO.java
│   │           │                           │   │   │   │   ├── AriusStatsNodeInfoESDAO.java
│   │           │                           │   │   │   │   └── BaseAriusStatsESDAO.java
│   │           │                           │   │   │   └── template/
│   │           │                           │   │   │       └── TemplateAccessESDAO.java
│   │           │                           │   │   ├── datacentre/
│   │           │                           │   │   │   └── DataCentreUtil.java
│   │           │                           │   │   └── dsls/
│   │           │                           │   │       ├── DslLoaderUtil.java
│   │           │                           │   │       └── DslsConstant.java
│   │           │                           │   └── metric/
│   │           │                           │       └── BaseTopNMetricsDAO.java
│   │           │                           └── mysql/
│   │           │                               ├── config/
│   │           │                               │   └── AriusConfigInfoDAO.java
│   │           │                               ├── ecm/
│   │           │                               │   ├── ESClusterConfigDAO.java
│   │           │                               │   ├── ESClusterRoleDAO.java
│   │           │                               │   ├── ESClusterRoleHostDAO.java
│   │           │                               │   ├── ESMachineNormsDAO.java
│   │           │                               │   ├── ESPackageDAO.java
│   │           │                               │   └── ESPluginDAO.java
│   │           │                               ├── gateway/
│   │           │                               │   ├── GatewayClusterDAO.java
│   │           │                               │   └── GatewayClusterNodeDAO.java
│   │           │                               ├── metrics/
│   │           │                               │   ├── MetricsDictionaryDAO.java
│   │           │                               │   └── UserConfigDAO.java
│   │           │                               ├── monitor/
│   │           │                               │   └── AriusMetaJobClusterDistributeDAO.java
│   │           │                               ├── optrecord/
│   │           │                               │   └── OperateRecordDAO.java
│   │           │                               ├── project/
│   │           │                               │   ├── ESUserDAO.java
│   │           │                               │   ├── ProjectConfigDAO.java
│   │           │                               │   ├── ProjectLogicClusterAuthDAO.java
│   │           │                               │   └── ProjectTemplateAuthDAO.java
│   │           │                               ├── region/
│   │           │                               │   └── ClusterRegionDAO.java
│   │           │                               ├── resource/
│   │           │                               │   ├── LogicClusterDAO.java
│   │           │                               │   └── PhyClusterDAO.java
│   │           │                               ├── task/
│   │           │                               │   ├── EcmTaskDAO.java
│   │           │                               │   ├── EcmTaskDetailDAO.java
│   │           │                               │   └── OpTaskDAO.java
│   │           │                               ├── template/
│   │           │                               │   ├── IndexTemplateAliasDAO.java
│   │           │                               │   ├── IndexTemplateConfigDAO.java
│   │           │                               │   ├── IndexTemplateDAO.java
│   │           │                               │   ├── IndexTemplatePhyDAO.java
│   │           │                               │   └── IndexTemplateTypeDAO.java
│   │           │                               └── workorder/
│   │           │                                   └── WorkOrderDAO.java
│   │           └── resources/
│   │               ├── dsl/
│   │               │   ├── AriusStatsClusterPhyInfoEsDao/
│   │               │   │   ├── getAggPercentilesMetricsByRange
│   │               │   │   ├── getClusterMetricsByRangeAndInterval
│   │               │   │   ├── getGatewayCount
│   │               │   │   └── getTimeDifferenceBetweenNearestPointAndNow
│   │               │   ├── AriusStatsClusterTaskInfoEsDao/
│   │               │   │   ├── aggClusterLogicTaskCostAvgAndPercentiles
│   │               │   │   ├── aggClusterNodesTaskCost
│   │               │   │   ├── aggClusterTaskCostAvgAndPercentiles
│   │               │   │   ├── aggClusterTaskCount
│   │               │   │   ├── getAggClusterPhyNodesTaskInfo
│   │               │   │   ├── getAggClusterPhySingleNodeTaskInfo
│   │               │   │   ├── getClusterPhySingleNodeTaskDetailInfo
│   │               │   │   ├── getHasNodeTaskInfoTime
│   │               │   │   └── getTopNNodeTaskAggMetricsInfo
│   │               │   ├── AriusStatsDashBoardInfoESDAO/
│   │               │   │   ├── fetchClusterHealthInfo
│   │               │   │   ├── fetchListFlagMetric
│   │               │   │   ├── fetchListThresholdsMetric
│   │               │   │   ├── fetchListValueMetrics
│   │               │   │   ├── getAggDashboardClusterTopNameInfo
│   │               │   │   ├── getAggDashboardNoClusterTopNameInfo
│   │               │   │   ├── getAggFilterFragment
│   │               │   │   ├── getHasDashboardMetricInfoTime
│   │               │   │   ├── getTopDashboardClusterAggMetricsInfo
│   │               │   │   └── getTopDashboardNoClusterAggMetricsInfo
│   │               │   ├── AriusStatsIndexInfoEsDao/
│   │               │   │   ├── getAggMultipleIndicesMetrics
│   │               │   │   ├── getAggMultipleIndicesMetricsWithStep
│   │               │   │   ├── getAggMultipleIndicesMetricsWithStepAndIndexList
│   │               │   │   ├── getAggMultipleTemplateMetrics
│   │               │   │   ├── getAggMultipleTemplateMetricsWithStep
│   │               │   │   ├── getAggMultipleTemplateMetricsWithStepAndLogicIds
│   │               │   │   ├── getAggSingleIndexMetrics
│   │               │   │   ├── getAggSingleTemplateMetrics
│   │               │   │   ├── getAvgTpsByLogicIdAndTimeRange
│   │               │   │   ├── getClusterLogicTpsQpsInfo
│   │               │   │   ├── getClusterTpsQpsInfo
│   │               │   │   ├── getHasIndexMetricsDataTime
│   │               │   │   ├── getHistoryMaxTpsByLogicIdAndTimeRange
│   │               │   │   ├── getIndexRealTimeInfoByTemplateAndCluster
│   │               │   │   ├── getIndexRealTimeStatisInfoByTemplateAndCluster
│   │               │   │   ├── getIndexStatsByTempalteId
│   │               │   │   ├── getMaxInfoByRangeTimeAndTemplate
│   │               │   │   ├── getQueryRateByIndexDateRange
│   │               │   │   ├── getSingleMetrics
│   │               │   │   ├── getTemplateMaxIndexDoc
│   │               │   │   ├── getTemplateMaxIndexSize
│   │               │   │   ├── getTemplateTotalDocNuByLogicTemplateIdAndTimeRange
│   │               │   │   ├── getTemplateTotalDocNuByTimeRange
│   │               │   │   ├── getTemplateTotalMaxTpsByTimeRange
│   │               │   │   ├── getTemplateTotalMaxTpsByTimeRangeNoPercent
│   │               │   │   ├── getTemplateTotalSizeByLogicTemplateId
│   │               │   │   ├── getTemplateTotalSizeByTemplateId
│   │               │   │   ├── getTemplateTotalSizeByTimeRange
│   │               │   │   ├── getTopNIndicesAggMetrics
│   │               │   │   └── getTopNTemplateAggMetrics
│   │               │   ├── AriusStatsIndexNodeInfoEsDao/
│   │               │   │   ├── getIndexToNodeStats
│   │               │   │   └── getIndexToNodeStatsByTemplateId
│   │               │   ├── AriusStatsIngestInfoEsDao/
│   │               │   │   └── getIngestFailCountByLogicIdAndTimeRange
│   │               │   ├── AriusStatsNodeInfoEsDao/
│   │               │   │   ├── aggClusterAvgAndPercentiles
│   │               │   │   ├── aggClusterAvgAndPercentilesForDiskFreeUsagePercent
│   │               │   │   ├── aggClusterIndexingOrSearchTimeSum
│   │               │   │   ├── aggClusterLogicAvgAndPercentiles
│   │               │   │   ├── aggClusterLogicAvgAndPercentilesForDiskFreeUsagePercent
│   │               │   │   ├── aggClusterLogicIndexingOrSearchTimeSum
│   │               │   │   ├── getAggClusterNodeInfoWithStep
│   │               │   │   ├── getAggClusterPhyNodesInfo
│   │               │   │   ├── getAggClusterPhySingleNodeInfo
│   │               │   │   ├── getAllClusterNodePhyStoreSize
│   │               │   │   ├── getClusterCpuAvgInfo
│   │               │   │   ├── getClusterIndexingLatency
│   │               │   │   ├── getClusterLogicRxTxInfo
│   │               │   │   ├── getClusterRxTxInfo
│   │               │   │   ├── getClusterSearchLatency
│   │               │   │   ├── getFieldSumAndRangeFieldTotal
│   │               │   │   ├── getHasNodeMetricInfoTime
│   │               │   │   ├── getNodeFieldSumAndRangeFieldTotal
│   │               │   │   └── getTopNNodeAggMetricsInfo
│   │               │   ├── DslAnalyzeResultQpsEsDao/
│   │               │   │   └── getMaxProjectIdTemplateQpsInfoByProjectIdTemplateMd5
│   │               │   ├── DslAnalyzeResultTypeEsDao/
│   │               │   │   ├── getDslAnalyzeResultByProjectId
│   │               │   │   └── getDslAnalyzeResultByProjectIdAndRange
│   │               │   ├── DslFieldUseEsDao/
│   │               │   │   ├── getFieldUseInfoByTemplateName
│   │               │   │   └── getFieldUseListByTemplateName
│   │               │   ├── DslMetricsEsDao/
│   │               │   │   ├── getDslDetailMetricByProjectIdAndDslTemplateMd5
│   │               │   │   ├── getMaxProjectIdTemplateQpsInfoByProjectIdTemplateMd5
│   │               │   │   ├── getNeariestDslMetricsByProjectIdTemplateMd5
│   │               │   │   ├── getProjectIdTemplateMd5Info
│   │               │   │   ├── getTotalSearchByProjectIdDate
│   │               │   │   └── queryTotalHitsByProjectIdDate
│   │               │   ├── DslTemplateEsDao/
│   │               │   │   ├── deleteExpiredDslTemplate
│   │               │   │   ├── getAllDslTemplatePoByProjectId
│   │               │   │   ├── getDslTemplateByCondition
│   │               │   │   ├── getDslTemplateByProjectIdAndRange
│   │               │   │   ├── getDslTemplatesByDateRange
│   │               │   │   ├── getEarliestDslTemplate
│   │               │   │   ├── getExpiredAndWillDeleteDslTemplate
│   │               │   │   ├── getIncreaseTemplateCountByProjectId
│   │               │   │   ├── getLongTimeNotUseDslTemplate
│   │               │   │   ├── getMissingAriusCreateTime
│   │               │   │   ├── getNearestDslTemplate
│   │               │   │   ├── getNearestDslTemplateAccessable
│   │               │   │   ├── getTemplateCountByProjectId
│   │               │   │   ├── getTemplateMD5ByIndexName
│   │               │   │   ├── getTemplateMD5ByIndexNameAndProjectId
│   │               │   │   ├── getTemplateMD5ByIndexNameAndProjectIdWithDayRange
│   │               │   │   ├── getTemplateMD5ByIndexNameWithDayRange
│   │               │   │   └── handleScrollDslTemplates
│   │               │   ├── GatewayAppMetricsDao/
│   │               │   │   ├── getAggField
│   │               │   │   ├── getAggFieldByProjectId
│   │               │   │   ├── getAggFieldCount
│   │               │   │   └── getAggFieldCountByProjectId
│   │               │   ├── GatewayDslMetricsDao/
│   │               │   │   ├── getDslCount
│   │               │   │   ├── getDslCountByFileld
│   │               │   │   ├── getDslCountByMd5
│   │               │   │   ├── getDslCountExtendedBoundsByFileld
│   │               │   │   ├── getDslMd5ByProjectId
│   │               │   │   ├── getDslTotalCost
│   │               │   │   ├── getDslTotalCostByMd5
│   │               │   │   ├── getHasMetricInfoTimeByField
│   │               │   │   ├── getTotalCostByField
│   │               │   │   └── getTotalCostExtendedBoundsByField
│   │               │   ├── GatewayIndexMetricsDao/
│   │               │   │   ├── getAggSearch
│   │               │   │   ├── getAggSearchByTemplateName
│   │               │   │   ├── getAggWrite
│   │               │   │   └── getAggWriteByTemplateName
│   │               │   ├── GatewayJoinEsDao/
│   │               │   │   ├── aggIndicesDslMd5ByRange
│   │               │   │   ├── getAccessGatewayInfoByProjectIdDate
│   │               │   │   ├── getAccessIndexNameByProjectId
│   │               │   │   ├── getCostInfoByProjectIdAndDate
│   │               │   │   ├── getDslByIndexAndTemplateMD5
│   │               │   │   ├── getErrorCntByTemplateName
│   │               │   │   ├── getErrorSearchCountAndErrorDetailByProjectIdDate
│   │               │   │   ├── getFailedDslTemplateCount
│   │               │   │   ├── getFailedDslTemplateSearchIndices
│   │               │   │   ├── getFirstByProjectIdAndTemplateMd5
│   │               │   │   ├── getGatewayErrorByCondition
│   │               │   │   ├── getGatewayErrorList
│   │               │   │   ├── getGatewayErrorListByProjectId
│   │               │   │   ├── getGatewaySlowByCondition
│   │               │   │   ├── getGatewaySlowList
│   │               │   │   ├── getGatewaySlowListByProjectId
│   │               │   │   ├── getIds
│   │               │   │   ├── getInfoByIds
│   │               │   │   ├── getOneDSLByProjectIdAndIndexName
│   │               │   │   ├── getPoByIndicesAndMd5
│   │               │   │   ├── getQpsInfoByProjectIdAndDate
│   │               │   │   ├── getQueryLimitErrorMd5
│   │               │   │   ├── getQueryRtByProjectId
│   │               │   │   ├── getQueryTopNumInfoByProjectId
│   │               │   │   ├── getRequestTypeByProjectId
│   │               │   │   ├── getSearchCountByProjectId
│   │               │   │   ├── getSearchRequestByIndexName
│   │               │   │   ├── getSearchTypesByLogicId
│   │               │   │   ├── getSlowCntByTemplateName
│   │               │   │   ├── getTemplateMD5ByIndexName
│   │               │   │   ├── getTotalSearchCountByProjectIdAndDate
│   │               │   │   ├── getWeekSearchCountByMd5
│   │               │   │   ├── matchIndices
│   │               │   │   ├── queryErrorDslByProjectIdExceptionAndDate
│   │               │   │   ├── queryErrorDslDetailByProjectIdTemplateAndDate
│   │               │   │   ├── queryMaxSearchQpsByProjectIdAndDslTemplate
│   │               │   │   ├── querySlowDslByProjectIdAndDate
│   │               │   │   ├── querySlowDslCountAndDetailByByProjectIdAndDslTemplate
│   │               │   │   ├── scrollMulityTypeByShardNo
│   │               │   │   └── scrollRequestLogByShardNo
│   │               │   ├── GatewayNodeMetricsDao/
│   │               │   │   ├── getAggField
│   │               │   │   ├── getAggFieldByIp
│   │               │   │   ├── getAggWriteAndGatewayNode
│   │               │   │   ├── getAggWriteAndGatewayNodeByIp
│   │               │   │   ├── getClientNodeAggField
│   │               │   │   ├── getClientNodeAggFieldByIp
│   │               │   │   ├── getClientNodeAggWrite
│   │               │   │   ├── getClientNodeAggWriteByIp
│   │               │   │   └── getClientNodeByGatewayNode
│   │               │   ├── GatewayOverviewMetricsDao/
│   │               │   │   ├── getCommonMetrics
│   │               │   │   ├── getReadCount
│   │               │   │   ├── getSearchType
│   │               │   │   └── getWriteMetrics
│   │               │   ├── IndexCatESDAO/
│   │               │   │   ├── getAllCatIndexInfoByTerms
│   │               │   │   ├── getAllCatIndexNameByClusters
│   │               │   │   ├── getCatIndexInfoByCondition
│   │               │   │   ├── getPlatformCreateCatIndex
│   │               │   │   ├── getPlatformCreateCatIndexById
│   │               │   │   ├── getPlatformCreateCatIndexByIndexProject
│   │               │   │   ├── getPlatformCreateCatIndexByIndexProjectAndFuzzyIndex
│   │               │   │   ├── getPlatformCreateCatIndexByIndexProjectAndFuzzyIndexAndClusterPhy
│   │               │   │   ├── getPlatformCreateCatIndexGroupByCluster
│   │               │   │   └── getTemplateIndicesHealth
│   │               │   ├── IndexHit/
│   │               │   │   ├── getIndexForNormal
│   │               │   │   └── getIndicesForAggs
│   │               │   ├── IndexNameAccessCountEsDao/
│   │               │   │   ├── getIndexNameAccessByTemplate
│   │               │   │   └── getIndexNameAccessByTemplateId
│   │               │   ├── IndexSizeEsDao/
│   │               │   │   ├── getIndexSizeByTemplateName
│   │               │   │   └── getYesterDayIndexSize
│   │               │   ├── IndexTemplateLabelESDao/
│   │               │   │   ├── getLabelByLabelId
│   │               │   │   └── getLabelByLogicTemplateId
│   │               │   ├── IndexTemplateValueEsDao/
│   │               │   │   └── listAll
│   │               │   ├── ProjectIdTemplateAccessCountEsDao/
│   │               │   │   ├── getAccessProjectIdByTemplateName
│   │               │   │   ├── getAccessProjectIdInfoByLogicTemplateId
│   │               │   │   └── getAccessProjectIdInfoByLogicTemplateIdAndDateRange
│   │               │   ├── ShardCatESDAO/
│   │               │   │   ├── getCatShardInfoByCondition
│   │               │   │   └── shouldTermCell
│   │               │   └── TemplateAccessCountEsDao/
│   │               │       ├── getAllTemplateAccessByDateRange
│   │               │       ├── getAllTemplateAccessByDateRangeAndCluster
│   │               │       ├── getAllTemplateAccessByTemplateDateRange
│   │               │       ├── getAllTemplateAccessHistoryByTemplate
│   │               │       ├── getAllTemplateAccessHistoryByTemplateId
│   │               │       ├── getTemplateAccessLast7DayByTemplateId
│   │               │       └── getTemplateAccessLastNDayByLogicTemplateId
│   │               └── mybatis/
│   │                   ├── AriusConfigInfo.xml
│   │                   ├── AriusMetaJobClusterDistributeDAO.xml
│   │                   ├── ClusterRegion.xml
│   │                   ├── ESClusterConfig.xml
│   │                   ├── ESClusterRoleDAO.xml
│   │                   ├── ESClusterRoleHostDAO.xml
│   │                   ├── ESMachineNorms.xml
│   │                   ├── ESPackage.xml
│   │                   ├── ESPlugin.xml
│   │                   ├── ESUser.xml
│   │                   ├── EcmTask.xml
│   │                   ├── EcmTaskDetail.xml
│   │                   ├── GatewayCluster.xml
│   │                   ├── GatewayNode.xml
│   │                   ├── IndexTemplateAlias.xml
│   │                   ├── IndexTemplateConfig.xml
│   │                   ├── IndexTemplateDAO.xml
│   │                   ├── IndexTemplatePhyDAO.xml
│   │                   ├── IndexTemplateType.xml
│   │                   ├── LogicCluster.xml
│   │                   ├── MetricsDictionaryDAO.xml
│   │                   ├── OpTaskDAO.xml
│   │                   ├── OperateRecord.xml
│   │                   ├── PhyClusterDAO.xml
│   │                   ├── ProjectConfigDAO.xml
│   │                   ├── ProjectLogicClusterAuthDAO.xml
│   │                   ├── ProjectTemplateAuth.xml
│   │                   ├── UserMetricsConfigDAO.xml
│   │                   └── WorkOrderDAO.xml
│   ├── arius-admin-remote/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   └── remote/
│   │                                       ├── storage/
│   │                                       │   ├── FileStorageHandle.java
│   │                                       │   ├── content/
│   │                                       │   │   └── FileStorageTypeEnum.java
│   │                                       │   └── s3/
│   │                                       │       └── S3FileStorageHandle.java
│   │                                       └── zeus/
│   │                                           ├── ZeusClusterRemoteService.java
│   │                                           ├── ZeusClusterRemoteServiceImpl.java
│   │                                           └── bean/
│   │                                               ├── ZeusAgentsList.java
│   │                                               ├── ZeusDat.java
│   │                                               ├── ZeusResult.java
│   │                                               ├── ZeusSubTaskLog.java
│   │                                               ├── ZeusTaskStatus.java
│   │                                               ├── constant/
│   │                                               │   ├── EcmActionEnum.java
│   │                                               │   └── ZeusClusterActionEnum.java
│   │                                               └── request/
│   │                                                   └── ZeusCreateTaskParam.java
│   ├── arius-admin-rest/
│   │   ├── APP_META/
│   │   │   ├── 990-startapp.required.sh
│   │   │   ├── 990-stopapp.sh
│   │   │   ├── 990-webterminal.sh
│   │   │   ├── Dockerfile
│   │   │   ├── DockerfileOffline
│   │   │   ├── clean_nginx_log.sh
│   │   │   ├── monit/
│   │   │   │   ├── monitrc
│   │   │   │   └── nginx.cfg
│   │   │   └── nginx/
│   │   │       └── conf/
│   │   │           ├── nginx-pre-v3-cn.conf
│   │   │           └── nginx.conf
│   │   ├── control.sh
│   │   ├── elevate/
│   │   │   ├── pipeline.3_test.yml
│   │   │   ├── pipeline.merge.yml
│   │   │   ├── pipeline.test.yml
│   │   │   └── pipeline.zhaoqingrong-dev.yml
│   │   ├── nginxfunc.sh
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── didichuxing/
│   │       │   │           └── datachannel/
│   │       │   │               └── arius/
│   │       │   │                   └── admin/
│   │       │   │                       └── rest/
│   │       │   │                           ├── AriusAdminApplication.java
│   │       │   │                           ├── config/
│   │       │   │                           │   └── AriusWebMvcConfigurer.java
│   │       │   │                           ├── controller/
│   │       │   │                           │   ├── HealthController.java
│   │       │   │                           │   └── v3/
│   │       │   │                           │       ├── normal/
│   │       │   │                           │       │   ├── NormalMachineNormsController.java
│   │       │   │                           │       │   ├── NormalOperateRecordController.java
│   │       │   │                           │       │   ├── NormalOrderController.java
│   │       │   │                           │       │   └── NormalPackageController.java
│   │       │   │                           │       ├── op/
│   │       │   │                           │       │   ├── cluster/
│   │       │   │                           │       │   │   ├── config/
│   │       │   │                           │       │   │   │   ├── ESClusterConfigController.java
│   │       │   │                           │       │   │   │   └── ESClusterDynamicConfigController.java
│   │       │   │                           │       │   │   ├── logic/
│   │       │   │                           │       │   │   │   ├── ClusterLogicTemplateSrvController.java
│   │       │   │                           │       │   │   │   ├── ESLogicClusterIndexController.java
│   │       │   │                           │       │   │   │   ├── ESLogicClusterNodeController.java
│   │       │   │                           │       │   │   │   ├── ESLogicClusterOpV3Controller.java
│   │       │   │                           │       │   │   │   └── ESLogicClusterRegionController.java
│   │       │   │                           │       │   │   ├── phy/
│   │       │   │                           │       │   │   │   ├── ESPhyClusterController.java
│   │       │   │                           │       │   │   │   ├── ESPhyClusterNodeController.java
│   │       │   │                           │       │   │   │   ├── ESPhyClusterQuickCommandController.java
│   │       │   │                           │       │   │   │   └── ESPhyClusterRegionController.java
│   │       │   │                           │       │   │   └── plugins/
│   │       │   │                           │       │   │       └── PhyClusterPluginController.java
│   │       │   │                           │       │   ├── config/
│   │       │   │                           │       │   │   └── AriusConfigV3Controller.java
│   │       │   │                           │       │   ├── dsl/
│   │       │   │                           │       │   │   ├── DslMetricsController.java
│   │       │   │                           │       │   │   └── DslTemplateController.java
│   │       │   │                           │       │   ├── gateway/
│   │       │   │                           │       │   │   ├── GatewayJoinController.java
│   │       │   │                           │       │   │   └── GatewaySqlController.java
│   │       │   │                           │       │   ├── indices/
│   │       │   │                           │       │   │   ├── BaseIndicesController.java
│   │       │   │                           │       │   │   ├── IndicesController.java
│   │       │   │                           │       │   │   └── IndicesSrvController.java
│   │       │   │                           │       │   ├── metrics/
│   │       │   │                           │       │   │   ├── ClusterPhyMetricsController.java
│   │       │   │                           │       │   │   ├── DashboardMetricsController.java
│   │       │   │                           │       │   │   ├── GatewayMetricsController.java
│   │       │   │                           │       │   │   └── MetricsDictionaryController.java
│   │       │   │                           │       │   ├── task/
│   │       │   │                           │       │   │   ├── OpTaskController.java
│   │       │   │                           │       │   │   ├── OpTaskDCDRController.java
│   │       │   │                           │       │   │   └── OpTaskEcmController.java
│   │       │   │                           │       │   └── template/
│   │       │   │                           │       │       ├── BaseTemplateController.java
│   │       │   │                           │       │       ├── TemplateAccessController.java
│   │       │   │                           │       │       ├── TemplateController.java
│   │       │   │                           │       │       ├── TemplateDCDRController.java
│   │       │   │                           │       │       ├── TemplateLogicV3Controller.java
│   │       │   │                           │       │       ├── TemplatePhysicalV3Controller.java
│   │       │   │                           │       │       ├── TemplateSchemaController.java
│   │       │   │                           │       │       ├── TemplateSettingController.java
│   │       │   │                           │       │       ├── TemplateSrvController.java
│   │       │   │                           │       │       └── TemplateStatisticsController.java
│   │       │   │                           │       ├── project/
│   │       │   │                           │       │   ├── ESUserV3Controller.java
│   │       │   │                           │       │   ├── LoginV3Controller.java
│   │       │   │                           │       │   ├── PermissionV3Controller.java
│   │       │   │                           │       │   ├── ProjectTemplateAuthV3Controller.java
│   │       │   │                           │       │   ├── ProjectV3Controller.java
│   │       │   │                           │       │   ├── RoleV3Controller.java
│   │       │   │                           │       │   └── UserV3Controller.java
│   │       │   │                           │       └── white/
│   │       │   │                           │           ├── ESPhyClusterWhiteController.java
│   │       │   │                           │           └── thirdpart/
│   │       │   │                           │               ├── ThirdpartCommonController.java
│   │       │   │                           │               ├── ThirdpartGatewayV3Controller.java
│   │       │   │                           │               └── ThirdpartZeusController.java
│   │       │   │                           ├── exception/
│   │       │   │                           │   └── ExceptionHandleController.java
│   │       │   │                           ├── filter/
│   │       │   │                           │   └── DruidStatFilter.java
│   │       │   │                           ├── interceptor/
│   │       │   │                           │   └── PermissionInterceptor.java
│   │       │   │                           ├── servlet/
│   │       │   │                           │   └── DruidStatViewServlet.java
│   │       │   │                           ├── swagger/
│   │       │   │                           │   └── SwaggerConfiguration.java
│   │       │   │                           └── web/
│   │       │   │                               ├── TranslateHttpServletRequestWrapper.java
│   │       │   │                               ├── TranslateServletInputStream.java
│   │       │   │                               ├── UrlHelper.java
│   │       │   │                               ├── WebConstant.java
│   │       │   │                               └── WebRequestLogFilter.java
│   │       │   └── resources/
│   │       │       ├── application-test.yml
│   │       │       ├── application.yml
│   │       │       ├── banner.txt
│   │       │       ├── log4j2-dev.xml
│   │       │       ├── log4j2-test-env.xml
│   │       │       └── observability.properties
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── didichuxing/
│   │                       └── datachannel/
│   │                           └── arius/
│   │                               └── admin/
│   │                                   ├── biz/
│   │                                   │   ├── cluster/
│   │                                   │   │   ├── ClusterNodeManagerImplTest.java
│   │                                   │   │   └── ClusterPhyManagerTest.java
│   │                                   │   ├── gateway/
│   │                                   │   │   └── GatewayManagerTest.java
│   │                                   │   ├── metrics/
│   │                                   │   │   ├── ClusterPhyMetricsManagerTest.java
│   │                                   │   │   ├── DashboardMetricsManagerTest.java
│   │                                   │   │   └── GatewayMetricsManagerTest.java
│   │                                   │   └── project/
│   │                                   │       ├── ESUserManagerTest.java
│   │                                   │       └── ProjectConfigManagerTest.java
│   │                                   ├── common/
│   │                                   │   └── util/
│   │                                   │       └── ClusterDynamicConfigTypeCheckFunUtilTest.java
│   │                                   ├── core/
│   │                                   │   └── service/
│   │                                   │       ├── cluster/
│   │                                   │       │   └── physic/
│   │                                   │       │       └── ClusterPhyServiceTest.java
│   │                                   │       ├── gateway/
│   │                                   │       │   └── GatewayServiceTest.java
│   │                                   │       ├── metrics/
│   │                                   │       │   └── UserMetricsConfigServiceTest.java
│   │                                   │       └── project/
│   │                                   │           ├── ESUserServiceTest.java
│   │                                   │           └── ProjectConfigServiceTest.java
│   │                                   ├── task/
│   │                                   │   └── JudgeTemplateBlockWriteTaskTest.java
│   │                                   └── util/
│   │                                       ├── CustomDataSource.java
│   │                                       ├── RandomGenerator.java
│   │                                       └── StatLineOfMethodTest.java
│   ├── arius-admin-task/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── didichuxing/
│   │       │               └── datachannel/
│   │       │                   └── arius/
│   │       │                       └── admin/
│   │       │                           └── task/
│   │       │                               ├── BaseConcurrentClusterLogicTask.java
│   │       │                               ├── BaseConcurrentClusterTask.java
│   │       │                               ├── BaseConcurrentTask.java
│   │       │                               ├── BaseConcurrentTemplateTask.java
│   │       │                               ├── TaskBatch.java
│   │       │                               ├── TaskConcurrentConstants.java
│   │       │                               ├── component/
│   │       │                               │   └── TaskResultBuilder.java
│   │       │                               ├── dashboard/
│   │       │                               │   ├── DashboardAllClusterCollectorRandomTask.java
│   │       │                               │   ├── DashboardSingleClusterCollectorBroadcastTask.java
│   │       │                               │   └── collector/
│   │       │                               │       ├── BaseDashboardCollector.java
│   │       │                               │       ├── ClusterDashBoardCollector.java
│   │       │                               │       ├── ClusterHealthDashBoardCollector.java
│   │       │                               │       ├── ClusterThreadPoolDashBoardCollector.java
│   │       │                               │       ├── IndexDashBoardCollector.java
│   │       │                               │       ├── NodeDashBoardCollector.java
│   │       │                               │       └── TemplateDashBoardCollector.java
│   │       │                               ├── ecmtask/
│   │       │                               │   └── SyncEcmTaskStatus.java
│   │       │                               ├── metadata/
│   │       │                               │   ├── DslTemplateDelExpiredRandomTask.java
│   │       │                               │   ├── DslTemplateUpdateNearestQueryLimitRandomTask.java
│   │       │                               │   ├── ESClusterMetricsCollectorBroadcastTask.java
│   │       │                               │   ├── ESLogicClusterMetricsCollectorBroadcastTask.java
│   │       │                               │   ├── ESNodeAndIndicesMetricsCollectorBroadcastTask.java
│   │       │                               │   ├── IndicesCatInfoCollectorRandomTask.java
│   │       │                               │   └── ShardsCatInfoCollectorRandomTask.java
│   │       │                               ├── resource/
│   │       │                               │   ├── ClusterLogicHealthCollectorRandomTask.java
│   │       │                               │   ├── ClusterNodeSettingCollectorRandomTask.java
│   │       │                               │   └── ClusterResourceInfoCollectorRandomTask.java
│   │       │                               └── template/
│   │       │                                   ├── CopyIndexMapping2TemplateRandomTask.java
│   │       │                                   ├── JudgeTemplateBlockWriteTask.java
│   │       │                                   ├── SyncTemplateMetadataRandomTask.java
│   │       │                                   └── srv/
│   │       │                                       ├── ColdDataMoveRandomTask.java
│   │       │                                       ├── DcdrInfoCollectorRandomTask.java
│   │       │                                       ├── DeleteDirtyDCDRLinksRandomTask.java
│   │       │                                       ├── DeleteExpireIndexRandomTask.java
│   │       │                                       ├── IndexRolloverRandomTask.java
│   │       │                                       ├── PreCreateIndexRandomTask.java
│   │       │                                       ├── ShardNumAdjustRandomTask.java
│   │       │                                       └── TemplateLogicHealthLogRandomTask.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── didichuxing/
│   │           │           └── datachannel/
│   │           │               └── arius/
│   │           │                   └── admin/
│   │           │                       └── task/
│   │           │                           ├── config/
│   │           │                           │   └── AriusAdminTaskConfiguration.java
│   │           │                           └── dashboard/
│   │           │                               └── IndexDashBoardCollectorTest.java
│   │           └── resources/
│   │               ├── application.properties
│   │               └── log4j2.xml
│   ├── build.sh
│   ├── coverage-report.sh
│   ├── deploy/
│   │   ├── knowsearch-init/
│   │   │   ├── 0.3.1/
│   │   │   │   ├── Readme.md
│   │   │   │   ├── cluster-phy-join
│   │   │   │   ├── init_knowsearch_linux.sh
│   │   │   │   ├── initializeSql.sql
│   │   │   │   └── template_in_arius/
│   │   │   │       ├── arius.appid.template.access
│   │   │   │       ├── arius.dsl.analyze.result
│   │   │   │       ├── arius.dsl.metrics
│   │   │   │       ├── arius.dsl.template
│   │   │   │       ├── arius.gateway.join
│   │   │   │       ├── arius.template.access
│   │   │   │       ├── arius_cat_index_info
│   │   │   │       ├── arius_gateway_metrics
│   │   │   │       ├── arius_stats_cluster_info
│   │   │   │       ├── arius_stats_cluster_task_info
│   │   │   │       ├── arius_stats_dashboard_info
│   │   │   │       ├── arius_stats_index_info
│   │   │   │       └── arius_stats_node_info
│   │   │   ├── 0.3.1.1/
│   │   │   │   ├── 0.3.1.1增量.sql
│   │   │   │   ├── cluster-phy-join
│   │   │   │   ├── init.sql
│   │   │   │   ├── init_knowsearch_linux.sh
│   │   │   │   ├── task
│   │   │   │   └── template_in_arius/
│   │   │   │       ├── arius.appid.template.access
│   │   │   │       ├── arius.dsl.analyze.result
│   │   │   │       ├── arius.dsl.metrics
│   │   │   │       ├── arius.dsl.template
│   │   │   │       ├── arius.gateway.join
│   │   │   │       ├── arius.template.access
│   │   │   │       ├── arius_cat_index_info
│   │   │   │       ├── arius_cat_shard_info
│   │   │   │       ├── arius_gateway_metrics
│   │   │   │       ├── arius_stats_cluster_info
│   │   │   │       ├── arius_stats_cluster_task_info
│   │   │   │       ├── arius_stats_dashboard_info
│   │   │   │       ├── arius_stats_index_info
│   │   │   │       └── arius_stats_node_info
│   │   │   ├── 0.3.1.2/
│   │   │   │   ├── 0.3.1.2.增量.sql
│   │   │   │   ├── init.sql
│   │   │   │   └── template_in_arius/
│   │   │   │       ├── arius.appid.template.access
│   │   │   │       ├── arius.dsl.analyze.result
│   │   │   │       ├── arius.dsl.metrics
│   │   │   │       ├── arius.dsl.template
│   │   │   │       ├── arius.gateway.join
│   │   │   │       ├── arius.template.access
│   │   │   │       ├── arius_cat_index_info
│   │   │   │       ├── arius_cat_shard_info
│   │   │   │       ├── arius_gateway_metrics
│   │   │   │       ├── arius_stats_cluster_info
│   │   │   │       ├── arius_stats_cluster_task_info
│   │   │   │       ├── arius_stats_dashboard_info
│   │   │   │       ├── arius_stats_index_info
│   │   │   │       ├── arius_stats_node_info
│   │   │   │       └── index_observability
│   │   │   ├── core_index_template/
│   │   │   │   └── index_template.sql
│   │   │   ├── es_manager.sql
│   │   │   ├── init_es_templates_to_arius_linux.sh
│   │   │   ├── init_es_templates_to_arius_mac.sh
│   │   │   ├── init_es_templates_to_cluster_linux.sh
│   │   │   ├── init_es_templates_to_cluster_mac.sh
│   │   │   ├── init_logi_em_linux.sh
│   │   │   ├── init_logi_em_mac.sh
│   │   │   ├── init_template.sql
│   │   │   ├── join_cluster_in_logi_em/
│   │   │   │   └── join_cluster_info
│   │   │   ├── security/
│   │   │   │   └── logi_sercurity.sql
│   │   │   ├── template_in_arius/
│   │   │   │   ├── arius.cat.index_info
│   │   │   │   ├── arius.dsl.metrics
│   │   │   │   ├── arius.dsl.template
│   │   │   │   ├── arius.gateway.join
│   │   │   │   ├── arius.stats.cluster_info
│   │   │   │   ├── arius.stats.cluster_task_info
│   │   │   │   ├── arius.stats.dashboard_info
│   │   │   │   ├── arius.stats.index_info
│   │   │   │   ├── arius.stats.node_info
│   │   │   │   └── index_observability
│   │   │   └── template_in_cluster/
│   │   │       ├── arius.cat.index_info
│   │   │       ├── arius.cat.shard_info
│   │   │       ├── arius.dsl.metrics
│   │   │       ├── arius.dsl.template
│   │   │       ├── arius.gateway.join
│   │   │       ├── arius.stats.cluster_info
│   │   │       ├── arius.stats.cluster_task_info
│   │   │       ├── arius.stats.dashboard.info
│   │   │       ├── arius.stats.index_info
│   │   │       ├── arius.stats.node_info
│   │   │       └── index_observability
│   │   ├── knowsearch-upgrade/
│   │   │   └── .gitignore
│   │   ├── zeus-init/
│   │   │   └── zeus_DeployES.sh
│   │   └── zh_update/
│   │       └── sql/
│   │           ├── app_id_rename_project_id.sql
│   │           ├── arius_user_transfer_logi_user.sql
│   │           ├── create_index.sql
│   │           ├── drop_index.sql
│   │           ├── drop_table_field.sql
│   │           ├── not_null_change_null.sql
│   │           ├── query_app_transfer_project.sql
│   │           ├── responsible_transfer_user_project.sql
│   │           ├── table_add_field.sql
│   │           └── table_rename.sql
│   ├── deploy_admin.sh
│   ├── didi-java-code-formatter.xml
│   ├── pom.xml
│   └── stop-server.sh
├── arius-console/
│   ├── .gitignore
│   ├── .gitkeep
│   ├── config/
│   │   ├── d1-webpack.base.js
│   │   ├── feConfig.json
│   │   ├── theme.js
│   │   └── webpack.dev.config.js
│   ├── contains.js
│   ├── d1.js
│   ├── d1.json
│   ├── fetk.config.js
│   ├── package.json
│   ├── patches/
│   │   └── text-diff+1.0.1.patch
│   ├── plugin/
│   │   └── AutoUpload.js
│   ├── readme.md
│   ├── src/
│   │   ├── @types/
│   │   │   ├── base-types.ts
│   │   │   ├── cluster/
│   │   │   │   ├── cluster-types.ts
│   │   │   │   ├── order-types.ts
│   │   │   │   └── physics-type.ts
│   │   │   ├── index-types.ts
│   │   │   ├── index.d.ts
│   │   │   ├── params-types.ts
│   │   │   ├── plug-types.ts
│   │   │   ├── task-types.ts
│   │   │   └── user-types.ts
│   │   ├── actions/
│   │   │   ├── actionTypes.ts
│   │   │   ├── app.ts
│   │   │   ├── cluster-base.ts
│   │   │   ├── cluster-kanban.ts
│   │   │   ├── create-index.ts
│   │   │   ├── dashBoard.ts
│   │   │   ├── full-screen.ts
│   │   │   ├── gateway-kanban.ts
│   │   │   ├── index.ts
│   │   │   ├── modal.ts
│   │   │   ├── phy-cluster-config.ts
│   │   │   ├── region.ts
│   │   │   ├── silderMenu.ts
│   │   │   ├── task.ts
│   │   │   └── user.ts
│   │   ├── api/
│   │   │   ├── Scheduling.ts
│   │   │   ├── app-api.ts
│   │   │   ├── cluster-api.ts
│   │   │   ├── cluster-index-api.ts
│   │   │   ├── cluster-kanban.ts
│   │   │   ├── cluster-node-api.ts
│   │   │   ├── common-api.ts
│   │   │   ├── dashboard.ts
│   │   │   ├── dcdr-api.ts
│   │   │   ├── gateway-kanban.ts
│   │   │   ├── index-admin.ts
│   │   │   ├── index.ts
│   │   │   ├── logi-security.ts
│   │   │   ├── op-cluster-config-api.ts
│   │   │   ├── op-cluster-index-api.ts
│   │   │   ├── op-cluster-region-api.ts
│   │   │   ├── order-api.ts
│   │   │   ├── plug-api.ts
│   │   │   ├── search-query.ts
│   │   │   ├── task-api.ts
│   │   │   └── user-api.ts
│   │   ├── app.tsx
│   │   ├── assets/
│   │   │   └── icon/
│   │   │       ├── demo.css
│   │   │       ├── demo_index.html
│   │   │       ├── iconfont.css
│   │   │       ├── iconfont.js
│   │   │       └── iconfont.json
│   │   ├── component/
│   │   │   ├── LogClusterEmpty/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── TimeRangePicker/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── UserSelect.tsx
│   │   │   ├── dantd/
│   │   │   │   ├── base-detail/
│   │   │   │   │   ├── base.less
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── readme.md
│   │   │   │   ├── dtable/
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── readme.md
│   │   │   │   ├── index.tsx
│   │   │   │   └── query-form/
│   │   │   │       ├── QueryForm.tsx
│   │   │   │       ├── context.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── readme.md
│   │   │   │       ├── style/
│   │   │   │       │   ├── index.less
│   │   │   │       │   └── index.tsx
│   │   │   │       ├── use-media-antd-query.ts
│   │   │   │       └── use-media.ts
│   │   │   ├── expand-card/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── filterColumns/
│   │   │   │   └── index.tsx
│   │   │   ├── info-item/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── infoTooltip/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── jsonEditor/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── jsonEditorWrapper/
│   │   │   │   ├── config.ts
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── left-menu-layout/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── render-title/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── x-form/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── x-form-wrapper/
│   │   │   │   ├── index.less
│   │   │   │   ├── index.tsx
│   │   │   │   └── types.ts
│   │   │   └── x-notification/
│   │   │       ├── index.less
│   │   │       └── index.tsx
│   │   ├── constants/
│   │   │   ├── api.ts
│   │   │   ├── common.ts
│   │   │   ├── menu.ts
│   │   │   ├── permission.ts
│   │   │   ├── reg.ts
│   │   │   ├── status-map.ts
│   │   │   ├── table.ts
│   │   │   └── time.ts
│   │   ├── container/
│   │   │   ├── AllModalInOne.tsx
│   │   │   ├── IndexSelect.tsx
│   │   │   ├── ProjectManager/
│   │   │   │   ├── AccessSetting.tsx
│   │   │   │   ├── MemberList.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   ├── detail.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── index.tsx
│   │   │   │   ├── resources-associated.tsx
│   │   │   │   ├── resources.tsx
│   │   │   │   └── types.ts
│   │   │   ├── RoleManager/
│   │   │   │   ├── authorized-list.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   ├── detail.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── index.tsx
│   │   │   │   ├── jurisdiction-list.tsx
│   │   │   │   └── types.ts
│   │   │   ├── Scheduling/
│   │   │   │   ├── config.tsx
│   │   │   │   ├── schedulinglog.tsx
│   │   │   │   └── taskList.tsx
│   │   │   ├── cluster/
│   │   │   │   ├── cluster-edition.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── index.tsx
│   │   │   │   ├── logic-detail/
│   │   │   │   │   ├── base-info.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── detail.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── logic-node-list.tsx
│   │   │   │   ├── logic.tsx
│   │   │   │   ├── physics-detail/
│   │   │   │   │   ├── base-info.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── detail.tsx
│   │   │   │   │   ├── edit-list/
│   │   │   │   │   │   ├── config.tsx
│   │   │   │   │   │   ├── edit-list-grid.tsx
│   │   │   │   │   │   ├── edit-list-item.tsx
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── readme.md
│   │   │   │   │   │   └── useClickOutSide.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── logic-list.tsx
│   │   │   │   │   ├── logic-node-list.tsx
│   │   │   │   │   ├── node-divide.tsx
│   │   │   │   │   ├── physics-config-info.tsx.tsx
│   │   │   │   │   ├── plugn-list.tsx
│   │   │   │   │   ├── region-task-item-modal.tsx
│   │   │   │   │   ├── searchProfiler.tsx
│   │   │   │   │   └── sense.tsx
│   │   │   │   └── physics.tsx
│   │   │   ├── custom-component.tsx
│   │   │   ├── custom-form/
│   │   │   │   ├── add-role-table.tsx
│   │   │   │   ├── base.tsx
│   │   │   │   ├── cost.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── index.ts
│   │   │   │   ├── logic-cluser-select.tsx
│   │   │   │   ├── region-transfer.tsx
│   │   │   │   ├── relevance-region.tsx
│   │   │   │   ├── step-select.tsx
│   │   │   │   ├── tpl-table-add-row/
│   │   │   │   │   ├── TableFormAddRow.tsx
│   │   │   │   │   ├── editTable.tsx
│   │   │   │   │   └── index.less
│   │   │   │   └── upload-file.tsx
│   │   │   ├── dashboard/
│   │   │   │   ├── Operation.tsx
│   │   │   │   ├── cluster.tsx
│   │   │   │   ├── components/
│   │   │   │   │   ├── echarts/
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── line.tsx
│   │   │   │   │   ├── metricsConfig.tsx
│   │   │   │   │   ├── pieCharts/
│   │   │   │   │   │   ├── constants.ts
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── pieChart.tsx
│   │   │   │   │   └── table/
│   │   │   │   │       ├── index.less
│   │   │   │   │       └── index.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   ├── index-view.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── index.tsx
│   │   │   │   └── node.tsx
│   │   │   ├── drawer/
│   │   │   │   ├── config-detail.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   ├── dsl-detail.tsx
│   │   │   │   ├── index-create.tsx
│   │   │   │   ├── index-mapping-edit.tsx
│   │   │   │   ├── index-setting-edit.tsx
│   │   │   │   ├── index-srv-forceMerge.tsx
│   │   │   │   ├── index-srv-rollover.tsx
│   │   │   │   ├── index-srv-shrinkSplit.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── mapping-diff.less
│   │   │   │   ├── mapping-diff.tsx
│   │   │   │   ├── node-monitor.tsx
│   │   │   │   ├── scheduling-detail.tsx
│   │   │   │   ├── scheduling-log.tsx
│   │   │   │   ├── shard-list/
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── tasklist-detail.tsx
│   │   │   │   ├── template-create.tsx
│   │   │   │   └── template-edit.tsx
│   │   │   ├── full-screen/
│   │   │   │   ├── index.less
│   │   │   │   └── index.tsx
│   │   │   ├── iframe-page.tsx
│   │   │   ├── index-admin/
│   │   │   │   ├── component/
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── mapping-index.tsx
│   │   │   │   │   ├── mapping.tsx
│   │   │   │   │   ├── setting-index.tsx
│   │   │   │   │   └── setting.tsx
│   │   │   │   ├── detail.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   ├── management/
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   └── service/
│   │   │   │       ├── config.tsx
│   │   │   │       ├── index.less
│   │   │   │       └── index.tsx
│   │   │   ├── index-tpl-management/
│   │   │   │   ├── component/
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── mapping-tpl.tsx
│   │   │   │   │   ├── mapping.tsx
│   │   │   │   │   ├── preview-tpl.tsx
│   │   │   │   │   ├── setting-tpl.tsx
│   │   │   │   │   └── setting.tsx
│   │   │   │   ├── create/
│   │   │   │   │   ├── basicInfo-preview.tsx
│   │   │   │   │   ├── basicInfo.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── constant.ts
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── last-step.tsx
│   │   │   │   │   ├── mapping.tsx
│   │   │   │   │   └── setting.tsx
│   │   │   │   ├── detail/
│   │   │   │   │   ├── base-info.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── partition.tsx
│   │   │   │   │   ├── record.tsx
│   │   │   │   │   └── shard.tsx
│   │   │   │   ├── edit/
│   │   │   │   │   ├── baseInfo.tsx
│   │   │   │   │   ├── jsonMapping.tsx
│   │   │   │   │   └── jsonSetting.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   ├── management/
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   └── service/
│   │   │   │       ├── config.tsx
│   │   │   │       ├── constants.ts
│   │   │   │       ├── filterModal.tsx
│   │   │   │       ├── index.less
│   │   │   │       └── index.tsx
│   │   │   ├── indicators-kanban/
│   │   │   │   ├── cluster-kanban/
│   │   │   │   │   ├── cluster-kanban.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── index-template-view-config.tsx
│   │   │   │   │   ├── index-template-view.tsx
│   │   │   │   │   ├── index-view-config.tsx
│   │   │   │   │   ├── index-view.tsx
│   │   │   │   │   ├── node-view-config.tsx
│   │   │   │   │   ├── node-view.tsx
│   │   │   │   │   ├── overview-line-shard.tsx
│   │   │   │   │   ├── overview-view-basic.tsx
│   │   │   │   │   ├── overview-view-config.tsx
│   │   │   │   │   └── overview-view.tsx
│   │   │   │   ├── components/
│   │   │   │   │   ├── contrast-figure-config.ts
│   │   │   │   │   ├── contrast-figure.tsx
│   │   │   │   │   ├── custom-time-picker.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── indicator-config.tsx
│   │   │   │   │   ├── kanban-form.tsx
│   │   │   │   │   ├── line.tsx
│   │   │   │   │   ├── operation-panel.tsx
│   │   │   │   │   ├── refresh-time.tsx
│   │   │   │   │   ├── render-line.tsx
│   │   │   │   │   ├── select-radio.tsx
│   │   │   │   │   ├── select-time.tsx
│   │   │   │   │   ├── shard.tsx
│   │   │   │   │   ├── state-config.tsx
│   │   │   │   │   └── style.less
│   │   │   │   ├── config.tsx
│   │   │   │   ├── gateway-kanban/
│   │   │   │   │   ├── clientnode-config.tsx
│   │   │   │   │   ├── clientnode-view.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── gateway-kanban.tsx
│   │   │   │   │   ├── index-view-config.tsx
│   │   │   │   │   ├── index-view.tsx
│   │   │   │   │   ├── node-view-config.tsx
│   │   │   │   │   ├── node-view.tsx
│   │   │   │   │   ├── overview-view-config.tsx
│   │   │   │   │   ├── overview-view.tsx
│   │   │   │   │   ├── project-view-config.tsx
│   │   │   │   │   ├── project-view.tsx
│   │   │   │   │   ├── query-template-config.tsx
│   │   │   │   │   └── query-template.tsx
│   │   │   │   ├── hooks/
│   │   │   │   │   └── useMouseoutOutSide.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   └── style/
│   │   │   │       ├── cluster-kanban.less
│   │   │   │       ├── contrast-figure.less
│   │   │   │       ├── gateway-kanban.less
│   │   │   │       ├── index.less
│   │   │   │       ├── index.ts
│   │   │   │       ├── kanban-form.less
│   │   │   │       ├── node-view.less
│   │   │   │       ├── refresh-time.less
│   │   │   │       ├── select-time.less
│   │   │   │       └── state-config.less
│   │   │   ├── modal/
│   │   │   │   ├── edition-cluster/
│   │   │   │   │   └── add-package.tsx
│   │   │   │   ├── index-admin/
│   │   │   │   │   ├── batch-execute.tsx
│   │   │   │   │   ├── delete-alias.tsx
│   │   │   │   │   ├── delete-index.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── set-alias.tsx
│   │   │   │   ├── indicators/
│   │   │   │   │   ├── big-picture.tsx
│   │   │   │   │   ├── chart-modal.less
│   │   │   │   │   ├── chart-tablemodal.tsx
│   │   │   │   │   ├── index-config.less
│   │   │   │   │   └── index-config.tsx
│   │   │   │   ├── logic-cluster/
│   │   │   │   │   ├── apply-authority.tsx
│   │   │   │   │   ├── apply-cluster.tsx
│   │   │   │   │   ├── deleteStyle.less
│   │   │   │   │   ├── edit-cluster.tsx
│   │   │   │   │   ├── expand-shrink-cluster.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── offlineLogicCluster.tsx
│   │   │   │   ├── physics-cluster/
│   │   │   │   │   ├── access-cluster.tsx
│   │   │   │   │   ├── apply-cluster.tsx
│   │   │   │   │   ├── bind-gateway.tsx
│   │   │   │   │   ├── deleteCluster.tsx
│   │   │   │   │   ├── deleteStyle.less
│   │   │   │   │   ├── docker-expand-shrink-cluster.tsx
│   │   │   │   │   ├── edit-cluster.tsx
│   │   │   │   │   ├── edit-config.tsx
│   │   │   │   │   ├── edit-gateway-url.tsx
│   │   │   │   │   ├── edit-plugin-desc.tsx
│   │   │   │   │   ├── expand-shrink-cluster.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── install.tsx
│   │   │   │   │   ├── new-config.tsx
│   │   │   │   │   ├── physicsClusterTask/
│   │   │   │   │   │   ├── codeMirror.tsx
│   │   │   │   │   │   ├── config.tsx
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── indicesTable.tsx
│   │   │   │   │   │   ├── shardDistributeTable.tsx
│   │   │   │   │   │   ├── shardTable.tsx
│   │   │   │   │   │   ├── svg.tsx
│   │   │   │   │   │   └── table.tsx
│   │   │   │   │   ├── region-admin.tsx
│   │   │   │   │   ├── region-divide.tsx
│   │   │   │   │   ├── restart-cluster.tsx
│   │   │   │   │   ├── senior.tsx
│   │   │   │   │   ├── unintallPlugn.tsx
│   │   │   │   │   ├── upgrade-cluster.tsx
│   │   │   │   │   └── userPassword.tsx
│   │   │   │   ├── plugn/
│   │   │   │   │   └── custom-plugn.tsx
│   │   │   │   ├── project/
│   │   │   │   │   ├── access-setting.tsx
│   │   │   │   │   ├── add-project.tsx
│   │   │   │   │   ├── delete-project.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── resources-associated.tsx
│   │   │   │   │   └── transfer-of-resources.tsx
│   │   │   │   ├── role/
│   │   │   │   │   └── add-or-edit-role.tsx
│   │   │   │   ├── sql-query/
│   │   │   │   │   └── mapping.tsx
│   │   │   │   ├── system/
│   │   │   │   │   ├── cluster-config.tsx
│   │   │   │   │   └── index.less
│   │   │   │   ├── template/
│   │   │   │   │   ├── DCDR-detail.tsx
│   │   │   │   │   ├── batch-update.tsx
│   │   │   │   │   ├── clear.tsx
│   │   │   │   │   ├── create-DCDR.tsx
│   │   │   │   │   ├── dcdr-timeout.tsx
│   │   │   │   │   ├── expand-shrink-capacity.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── open-separate.tsx
│   │   │   │   └── work-order/
│   │   │   │       ├── approval-drawer.tsx
│   │   │   │       ├── approval-modal.tsx
│   │   │   │       ├── index.less
│   │   │   │       └── task-log.tsx
│   │   │   ├── search-query/
│   │   │   │   ├── components/
│   │   │   │   │   ├── editLimit.less
│   │   │   │   │   ├── editLimit.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── search-query-form.less
│   │   │   │   │   ├── search-query-form.tsx
│   │   │   │   │   └── select-time.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   ├── dsl-page.tsx
│   │   │   │   ├── dsl-tpl.tsx
│   │   │   │   ├── error-query.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── kibana-page.tsx
│   │   │   │   ├── query-tpl.tsx
│   │   │   │   ├── slow-query.tsx
│   │   │   │   ├── sql-index.less
│   │   │   │   ├── sql-page.tsx
│   │   │   │   └── sql-query.tsx
│   │   │   ├── staff-select.tsx
│   │   │   ├── system/
│   │   │   │   ├── cluster-config.tsx
│   │   │   │   ├── config.tsx
│   │   │   │   └── operating-list.tsx
│   │   │   ├── tooltip.tsx
│   │   │   └── work-order/
│   │   │       ├── base-info.tsx
│   │   │       ├── config.tsx
│   │   │       ├── dcdr-detail.tsx
│   │   │       ├── dcdr-drawer.tsx
│   │   │       ├── dcdr-plan-speed.tsx
│   │   │       ├── dcdr.less
│   │   │       ├── index.less
│   │   │       ├── my-application.tsx
│   │   │       ├── my-approval.tsx
│   │   │       ├── order-detail.tsx
│   │   │       ├── plan-speed.tsx
│   │   │       ├── task-detail.tsx
│   │   │       └── task.tsx
│   │   ├── d1-packages/
│   │   │   ├── CommonComponents/
│   │   │   │   └── ProgressBar/
│   │   │   │       ├── NProgress.js
│   │   │   │       ├── index.less
│   │   │   │       └── index.ts
│   │   │   ├── CommonPages/
│   │   │   │   ├── Exception/
│   │   │   │   │   ├── Page401/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── Page403/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── Page404/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── Page500/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── style.less
│   │   │   │   ├── Login/
│   │   │   │   │   ├── LoginForm.tsx
│   │   │   │   │   ├── RegisterForm.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── crypto.ts
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── RenderTitle/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── RoleManage/
│   │   │   │   │   ├── BindUser.tsx
│   │   │   │   │   ├── PermissionTree.tsx
│   │   │   │   │   ├── RecycleUser.tsx
│   │   │   │   │   ├── config.tsx
│   │   │   │   │   ├── detail.less
│   │   │   │   │   ├── detail.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── service.ts
│   │   │   │   └── UserManage/
│   │   │   │       ├── config.tsx
│   │   │   │       ├── detail.less
│   │   │   │       ├── detail.tsx
│   │   │   │       ├── index.less
│   │   │   │       ├── index.tsx
│   │   │   │       └── service.ts
│   │   │   ├── GlobalStore.js
│   │   │   ├── Layout/
│   │   │   │   ├── CustomProjectSelect/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── HeaderConditionComponent.tsx
│   │   │   │   ├── LeftMenu.tsx
│   │   │   │   ├── MenuContent.tsx
│   │   │   │   ├── MsgPanel/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── ProjectSelect/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── UseCenter/
│   │   │   │   │   ├── config.ts
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── assets/
│   │   │   │   │   ├── iconfont-es/
│   │   │   │   │   │   ├── demo.css
│   │   │   │   │   │   ├── demo_index.html
│   │   │   │   │   │   ├── iconfont.css
│   │   │   │   │   │   ├── iconfont.js
│   │   │   │   │   │   └── iconfont.json
│   │   │   │   │   ├── iconfont-logi/
│   │   │   │   │   │   ├── demo.css
│   │   │   │   │   │   ├── demo_index.html
│   │   │   │   │   │   ├── iconfont.css
│   │   │   │   │   │   ├── iconfont.js
│   │   │   │   │   │   └── iconfont.json
│   │   │   │   │   └── style.less
│   │   │   │   ├── config.tsx
│   │   │   │   ├── index.less
│   │   │   │   ├── index.tsx
│   │   │   │   ├── interface.tsx
│   │   │   │   ├── style.less
│   │   │   │   └── utils.tsx
│   │   │   ├── ProForm/
│   │   │   │   ├── DrawerForm/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── ModalForm/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── QueryForm/
│   │   │   │   │   ├── QueryForm.tsx
│   │   │   │   │   ├── context.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── readme.md
│   │   │   │   │   ├── style/
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── use-media-antd-query.ts
│   │   │   │   │   └── use-media.ts
│   │   │   │   ├── StepForm/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── Submitter/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── XForm/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   └── index.ts
│   │   │   ├── ProTable/
│   │   │   │   ├── DTable/
│   │   │   │   │   ├── filterTableColumns.less
│   │   │   │   │   ├── filterTableColumns.tsx
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── readme.md
│   │   │   │   ├── RenderTableOpts/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── XTable/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── QueryForm/
│   │   │   │   ├── QueryForm.tsx
│   │   │   │   ├── context.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   ├── readme.md
│   │   │   │   ├── style/
│   │   │   │   │   ├── index.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── use-media-antd-query.ts
│   │   │   │   └── use-media.ts
│   │   │   ├── RouterGuard/
│   │   │   │   ├── README.md
│   │   │   │   ├── index.tsx
│   │   │   │   ├── route-guard-wrap.tsx
│   │   │   │   └── route-guard.tsx
│   │   │   ├── api.tsx
│   │   │   ├── config.js
│   │   │   ├── container/
│   │   │   │   ├── Grid/
│   │   │   │   │   ├── RowContext.tsx
│   │   │   │   │   ├── _util/
│   │   │   │   │   │   └── responsiveObserve.ts
│   │   │   │   │   ├── col.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── row.tsx
│   │   │   │   │   └── style/
│   │   │   │   │       ├── index.less
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       └── mixin.less
│   │   │   │   ├── demo/
│   │   │   │   │   └── base.md
│   │   │   │   ├── example/
│   │   │   │   │   ├── grid.less
│   │   │   │   │   └── grid.tsx
│   │   │   │   ├── index.md
│   │   │   │   └── index.tsx
│   │   │   ├── d-range-time/
│   │   │   │   ├── demo/
│   │   │   │   │   └── custom.md
│   │   │   │   ├── index.md
│   │   │   │   ├── index.tsx
│   │   │   │   └── style/
│   │   │   │       └── index.less
│   │   │   ├── dantd/
│   │   │   │   ├── DTable/
│   │   │   │   │   ├── index.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── readme.md
│   │   │   │   ├── QueryForm/
│   │   │   │   │   ├── QueryForm.tsx
│   │   │   │   │   ├── context.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── readme.md
│   │   │   │   │   ├── style/
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── use-media-antd-query.ts
│   │   │   │   │   └── use-media.ts
│   │   │   │   ├── components/
│   │   │   │   │   ├── config-provider/
│   │   │   │   │   │   ├── demo/
│   │   │   │   │   │   │   ├── direction.md
│   │   │   │   │   │   │   ├── locale.md
│   │   │   │   │   │   │   ├── prefixCls.md
│   │   │   │   │   │   │   └── size.md
│   │   │   │   │   │   ├── index.en-US.md
│   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── hook/
│   │   │   │   │   │   ├── create-global-state/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   ├── useEffectOnce.ts
│   │   │   │   │   │   │   └── useIsomorphicLayoutEffect.ts
│   │   │   │   │   │   ├── create-reducer-context/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── create-state-context/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── use-async/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── use-async-fn/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── use-async-retry/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── use-debounce/
│   │   │   │   │   │   │   ├── demo/
│   │   │   │   │   │   │   │   └── useDebounce.md
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── use-deep-compare-effect/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── useCustomCompareEffect.ts
│   │   │   │   │   │   ├── use-dynamic-list/
│   │   │   │   │   │   │   ├── demo/
│   │   │   │   │   │   │   │   └── basic.md
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── use-interval/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── use-mounted-state/
│   │   │   │   │   │   │   ├── index.md
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   └── use-timeout/
│   │   │   │   │   │       ├── index.md
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       ├── useTimeoutFn.ts
│   │   │   │   │   │       └── useUpdate.ts
│   │   │   │   │   ├── locale/
│   │   │   │   │   │   ├── en_US.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── zh_CN.tsx
│   │   │   │   │   ├── locale-provider/
│   │   │   │   │   │   ├── context.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── provider.tsx
│   │   │   │   │   │   ├── useIntl.tsx
│   │   │   │   │   │   └── withIntl.tsx
│   │   │   │   │   └── utils/
│   │   │   │   │       └── index.tsx
│   │   │   │   └── readme.md
│   │   │   ├── drag-group/
│   │   │   │   ├── DragGroup.tsx
│   │   │   │   ├── DragableContainer.tsx
│   │   │   │   ├── DragableItem.tsx
│   │   │   │   ├── demo/
│   │   │   │   │   ├── card.md
│   │   │   │   │   └── custom.md
│   │   │   │   ├── index.md
│   │   │   │   └── index.tsx
│   │   │   └── index.tsx
│   │   ├── index.html
│   │   ├── index.less
│   │   ├── index.tsx
│   │   ├── interface/
│   │   │   ├── common.ts
│   │   │   └── project.ts
│   │   ├── lib/
│   │   │   ├── api-cache.ts
│   │   │   ├── fetch.ts
│   │   │   ├── permission.ts
│   │   │   ├── url-parser.ts
│   │   │   └── utils.ts
│   │   ├── locales/
│   │   │   ├── en.tsx
│   │   │   └── zh.tsx
│   │   ├── pages/
│   │   │   ├── cachePage.tsx
│   │   │   ├── cluster-admin.tsx
│   │   │   ├── cluster-system.tsx
│   │   │   ├── dashboard.tsx
│   │   │   ├── index-admin.tsx
│   │   │   ├── index-tpl-management.tsx
│   │   │   ├── index.less
│   │   │   ├── index.tsx
│   │   │   ├── indicators-kanban.tsx
│   │   │   ├── scheduling.tsx
│   │   │   ├── search-query.tsx
│   │   │   ├── system-page.tsx
│   │   │   └── work-order.tsx
│   │   ├── reducers/
│   │   │   ├── app.ts
│   │   │   ├── cluster-base.ts
│   │   │   ├── cluster-kanban.ts
│   │   │   ├── create-index.ts
│   │   │   ├── dashboard.ts
│   │   │   ├── gateway-kanban.ts
│   │   │   ├── index.ts
│   │   │   ├── modal.ts
│   │   │   ├── phy-cluster-config.ts
│   │   │   ├── region.ts
│   │   │   ├── sliderMenu.ts
│   │   │   ├── task.ts
│   │   │   └── user.ts
│   │   ├── store/
│   │   │   ├── index.ts
│   │   │   └── type.d.ts
│   │   ├── style-addtion.less
│   │   └── styles/
│   │       ├── base.less
│   │       ├── common.less
│   │       ├── custom-component.less
│   │       ├── detail.less
│   │       ├── search-filter.less
│   │       ├── sense_overrides.less
│   │       └── table-filter.less
│   ├── tsconfig.json
│   └── webpack.config.js
├── arius-gateway/
│   ├── README.md
│   ├── arius-gateway-common/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── didi/
│   │                       └── arius/
│   │                           └── gateway/
│   │                               ├── common/
│   │                               │   ├── consts/
│   │                               │   │   ├── QueryConsts.java
│   │                               │   │   └── RestConsts.java
│   │                               │   ├── enums/
│   │                               │   │   ├── AggsTypeEnum.java
│   │                               │   │   ├── ClusterType.java
│   │                               │   │   ├── FlowStatus.java
│   │                               │   │   ├── FlowType.java
│   │                               │   │   ├── RunModeEnum.java
│   │                               │   │   ├── SearchType.java
│   │                               │   │   └── TemplateBlockTypeEnum.java
│   │                               │   ├── event/
│   │                               │   │   ├── ActionPostResponseEvent.java
│   │                               │   │   ├── PostResponseEvent.java
│   │                               │   │   └── QueryPostResponseEvent.java
│   │                               │   ├── exception/
│   │                               │   │   ├── AccessForbiddenException.java
│   │                               │   │   ├── AggsParseException.java
│   │                               │   │   ├── ClusterNotFoundException.java
│   │                               │   │   ├── DslForbiddenException.java
│   │                               │   │   ├── DslRateLimitException.java
│   │                               │   │   ├── FlowLimitException.java
│   │                               │   │   ├── IndexDateFieldException.java
│   │                               │   │   ├── IndexNotFoundException.java
│   │                               │   │   ├── IndexNotPermittedException.java
│   │                               │   │   ├── IndexRateLimitException.java
│   │                               │   │   ├── InvalidAppInfoException.java
│   │                               │   │   ├── InvalidParameterException.java
│   │                               │   │   ├── QueryDslLengthException.java
│   │                               │   │   ├── QueryException.java
│   │                               │   │   ├── ResponseTooLargeException.java
│   │                               │   │   ├── SQLNotPermittedException.java
│   │                               │   │   ├── ServerBusyException.java
│   │                               │   │   ├── ServerException.java
│   │                               │   │   ├── SettingsForbiddenException.java
│   │                               │   │   ├── TemplateBlockException.java
│   │                               │   │   ├── TooManyIndexException.java
│   │                               │   │   ├── UnauthorizedException.java
│   │                               │   │   └── UriNotFoundException.java
│   │                               │   ├── flowcontrol/
│   │                               │   │   ├── AreaFlow.java
│   │                               │   │   ├── AreaFlowCache.java
│   │                               │   │   ├── Flow.java
│   │                               │   │   ├── FlowController.java
│   │                               │   │   └── FlowLimit.java
│   │                               │   ├── metadata/
│   │                               │   │   ├── ActionContext.java
│   │                               │   │   ├── AggsAnalyzerContext.java
│   │                               │   │   ├── AggsBukcetInfo.java
│   │                               │   │   ├── AggsPath.java
│   │                               │   │   ├── AppDetail.java
│   │                               │   │   ├── AuthRequest.java
│   │                               │   │   ├── BaseContext.java
│   │                               │   │   ├── DSLTemplate.java
│   │                               │   │   ├── ESCluster.java
│   │                               │   │   ├── FetchFields.java
│   │                               │   │   ├── FieldInfo.java
│   │                               │   │   ├── FlowThreshold.java
│   │                               │   │   ├── IndexTemplate.java
│   │                               │   │   ├── JoinLogContext.java
│   │                               │   │   ├── MappingIndexNameWhiteAppIds.java
│   │                               │   │   ├── MetaVersion.java
│   │                               │   │   ├── QueryContext.java
│   │                               │   │   ├── RateLimitDetail.java
│   │                               │   │   ├── RateLimitStat.java
│   │                               │   │   ├── TemplateAlias.java
│   │                               │   │   ├── TemplateClusterInfo.java
│   │                               │   │   ├── TemplateInfo.java
│   │                               │   │   └── WrapESGetResponse.java
│   │                               │   ├── metrics/
│   │                               │   │   ├── ActionMetric.java
│   │                               │   │   ├── AppMetric.java
│   │                               │   │   ├── IndexMetrics.java
│   │                               │   │   ├── LoggerMetric.java
│   │                               │   │   ├── QueryMetrics.java
│   │                               │   │   ├── SearchMetric.java
│   │                               │   │   ├── StatusMetric.java
│   │                               │   │   └── log/
│   │                               │   │       ├── DslLogEntity.java
│   │                               │   │       └── DslMetricHelper.java
│   │                               │   └── utils/
│   │                               │       ├── AppUtil.java
│   │                               │       ├── CommonUtil.java
│   │                               │       ├── Convert.java
│   │                               │       ├── DateUtil.java
│   │                               │       ├── HttpClient.java
│   │                               │       ├── IndexTire.java
│   │                               │       ├── IndexTireBuilder.java
│   │                               │       ├── MetricUtil.java
│   │                               │       ├── PathTrie.java
│   │                               │       └── Regex.java
│   │                               └── elasticsearch/
│   │                                   └── client/
│   │                                       ├── ESClient.java
│   │                                       ├── gateway/
│   │                                       │   ├── direct/
│   │                                       │   │   ├── DirectAction.java
│   │                                       │   │   ├── DirectRequest.java
│   │                                       │   │
Download .txt
Showing preview only (1,394K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (13958 symbols across 2193 files)

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterContextManager.java
  type ClusterContextManager (line 15) | @Deprecated
    method flushClusterPhyContext (line 22) | ClusterPhyContext flushClusterPhyContext(String clusterPhyName);
    method flushClusterLogicContext (line 29) | ClusterLogicContext flushClusterLogicContext(Long clusterLogicId);
    method flushClusterContextByClusterRegion (line 35) | void flushClusterContextByClusterRegion(ClusterRegion clusterRegion);
    method canClusterLogicAssociatedPhyCluster (line 44) | Result<Boolean> canClusterLogicAssociatedPhyCluster(Long clusterLogicI...
    method getCanBeAssociatedClustersPhys (line 52) | Result<List<String>> getCanBeAssociatedClustersPhys(Integer clusterLog...
    method getClusterPhyAssociatedClusterLogicNames (line 58) | List<String> getClusterPhyAssociatedClusterLogicNames(String clusterPh...
    method getClusterPhyContext (line 65) | ClusterPhyContext getClusterPhyContext(String cluster);
    method getClusterPhyContextCache (line 72) | ClusterPhyContext getClusterPhyContextCache(String cluster);
    method listClusterPhyContextMap (line 78) | Map<String, ClusterPhyContext> listClusterPhyContextMap();
    method getClusterLogicContextCache (line 86) | ClusterLogicContext getClusterLogicContextCache(Long clusterLogicId);
    method getClusterLogicContext (line 93) | ClusterLogicContext getClusterLogicContext(Long clusterLogicId);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterIndexManager.java
  type ClusterIndexManager (line 15) | public interface ClusterIndexManager {
    method listClusterLogicIndices (line 23) | Result<List<ESClusterRoleHostVO>> listClusterLogicIndices(Integer clus...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterLogicManager.java
  type ClusterLogicManager (line 31) | public interface ClusterLogicManager {
    method buildClusterLogics (line 38) | List<ClusterLogicVO> buildClusterLogics(List<ClusterLogic> logicCluste...
    method buildClusterLogic (line 45) | ClusterLogicVO buildClusterLogic(ClusterLogic clusterLogic);
    method listProjectClusterLogicIdsAndNames (line 52) | Result<List<Tuple<Long/*逻辑集群Id*/, String/*逻辑集群名称*/>>> listProjectClust...
    method getLogicClustersByProjectId (line 60) | Result<List<ClusterLogicVO>> getLogicClustersByProjectId(Integer proje...
    method getProjectLogicClusterInfoByType (line 68) | Result<List<ClusterLogicVO>> getProjectLogicClusterInfoByType(Integer ...
    method listMachineSpec (line 76) | Result<List<ESClusterNodeSepcVO>> listMachineSpec();
    method clearIndices (line 85) | Result<Void> clearIndices(TemplateClearDTO clearDTO, String operator) ...
    method getLogicClusterAssignedPhysicalClusters (line 93) | ClusterPhy getLogicClusterAssignedPhysicalClusters(Long logicClusterId);
    method getClusterLogic (line 103) | ClusterLogicVO getClusterLogic(Long clusterLogicId, Integer currentPro...
    method addLogicClusterAndClusterRegions (line 112) | Result<Void> addLogicClusterAndClusterRegions(ESLogicClusterWithRegion...
    method deleteLogicCluster (line 123) | Result<Void> deleteLogicCluster(Long logicClusterId, String operator,
    method editLogicCluster (line 133) | Result<Void> editLogicCluster(ESLogicClusterDTO param, String operator...
    method pageGetClusterLogics (line 141) | PaginationResult<ClusterLogicVO> pageGetClusterLogics(ClusterLogicCond...
    method updateClusterLogicHealth (line 149) | boolean updateClusterLogicHealth(Long clusterLogicId);
    method indexTemplateCount (line 158) | Result<ClusterLogicTemplateIndexCountVO> indexTemplateCount(Long clust...
    method estimatedDiskSize (line 166) | Result<Long> estimatedDiskSize(Long clusterLogicId, Integer count);
    method getClusterDataNodeSpec (line 173) | Result<String> getClusterDataNodeSpec(Long clusterLogicId);
    method listClusterLogicNameByProjectId (line 180) | Result<List<String>> listClusterLogicNameByProjectId(Integer projectId);
    method getClusterRelationByProjectId (line 187) | Result<List<Tuple<String, ClusterPhyVO>>> getClusterRelationByProjectI...
    method getClusterLogicPlugins (line 194) | Result<List<PluginVO>> getClusterLogicPlugins(Long clusterId);
    method isLogicClusterRegionIsNotEmpty (line 202) | Result<Boolean> isLogicClusterRegionIsNotEmpty(Long logicClusterId);
    method getLogicClustersByLevel (line 210) | Result<List<ClusterLogicVO>> getLogicClustersByLevel(Integer level);
    method validateClusterLogicParams (line 220) | Result<Void> validateClusterLogicParams(ESLogicClusterDTO param, Opera...
    method joinClusterLogic (line 231) | Result<Void> joinClusterLogic(Long logicClusterId, Integer joinProject...
    method getClusterPhyAssociatedClusterLogicNames (line 239) | List<String> getClusterPhyAssociatedClusterLogicNames(String phyCluste...
    method listClusterLogicNameByPhyName (line 246) | List<String> listClusterLogicNameByPhyName(String phyClusterName);
    method listClusterLogicNameByApp (line 253) | List<String> listClusterLogicNameByApp(Integer projectId);
    method joinClusterPhyAndCreateLogicCluster (line 262) | Result<Long> joinClusterPhyAndCreateLogicCluster(ClusterJoinDTO param,...
    method listLogicClusterWithClusterPhyByProjectId (line 271) | Result<List<ClusterPhyWithLogicClusterVO>> listLogicClusterWithCluster...
    method listClusterLogicByPhyName (line 279) | Result<List<ClusterLogicVO>> listClusterLogicByPhyName(String phyClust...
    method deleteTemplatesIndicesInfo (line 288) | Result<Void> deleteTemplatesIndicesInfo(Long clusterLogicId,Integer pr...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterNodeManager.java
  type ClusterNodeManager (line 17) | public interface ClusterNodeManager {
    method listDivide2ClusterNodeInfo (line 23) | Result<List<ESClusterRoleHostWithRegionInfoVO>> listDivide2ClusterNode...
    method createMultiNode2Region (line 33) | Result<List<Long>> createMultiNode2Region(List<ClusterRegionWithNodeIn...
    method editMultiNode2Region (line 45) | Result<Boolean> editMultiNode2Region(List<ClusterRegionWithNodeInfoDTO...
    method listClusterPhyNode (line 54) | Result<List<ESClusterRoleHostVO>> listClusterPhyNode(Integer clusterId);
    method listClusterLogicNode (line 62) | Result<List<ESClusterRoleHostVO>> listClusterLogicNode(Integer cluster...
    method listClusterLogicNodeByName (line 69) | Result listClusterLogicNodeByName(String clusterLogicName);
    method listClusterLogicNodeInfosByName (line 76) | Result<List<ClusterNodeInfoVO>> listClusterLogicNodeInfosByName(String...
    method listClusterRoleHostByRegionId (line 83) | Result<List<ESClusterRoleHostVO>> listClusterRoleHostByRegionId(Long r...
    method collectNodeSettings (line 92) | boolean collectNodeSettings(String cluster) throws AdminTaskException;
    method delete (line 101) | Result<Void> delete(List<Integer> ids, Integer projectId, String opera...
    method checkMultiNode2Region (line 110) | Result<Boolean> checkMultiNode2Region(List<ClusterRegionWithNodeInfoDT...
    method listClusterPhyNodeInfosByName (line 117) | Result<List<ClusterNodeInfoVO>> listClusterPhyNodeInfosByName(String c...
    method listAllMachineSpecs (line 123) | Result<List<String>> listAllMachineSpecs();

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterPhyManager.java
  type ClusterPhyManager (line 29) | public interface ClusterPhyManager {
    method copyMapping (line 37) | boolean copyMapping(String cluster, int retryCount);
    method getDCDRAndPipelineAndColdRegionTupleByClusterPhyWithCache (line 38) | TupleThree</*dcdrExist*/Boolean,/*pipelineExist*/ Boolean,/*existColdR...
    method getClusterConnectionStatusWithCache (line 45) | ClusterConnectionStatusWithTemplateEnum getClusterConnectionStatusWith...
    method syncTemplateMetaData (line 54) | void syncTemplateMetaData(String cluster, int retryCount) throws ESOpe...
    method isClusterExists (line 62) | boolean isClusterExists(String clusterName);
    method listClusterPhys (line 69) | List<ClusterPhyVO> listClusterPhys(ClusterPhyDTO param);
    method buildClusterInfo (line 77) | List<ClusterPhyVO> buildClusterInfo(List<ClusterPhy> clusterPhyList);
    method getClusterPhyOverview (line 85) | ClusterPhyVO getClusterPhyOverview(Integer clusterId, Integer currentP...
    method listCanBeAssociatedRegionOfClustersPhys (line 94) | Result<List<String>> listCanBeAssociatedRegionOfClustersPhys(Integer c...
    method listCanBeAssociatedClustersPhys (line 102) | Result<List<String>> listCanBeAssociatedClustersPhys(Integer clusterLo...
    method joinCluster (line 112) | Result<ClusterPhyVO> joinCluster(ClusterJoinDTO param, String operator...
    method deleteClusterJoin (line 122) | Result<Void> deleteClusterJoin(Integer clusterId, String operator, Int...
    method listPlugins (line 130) | Result<List<PluginVO>> listPlugins(String cluster);
    method getPhyClusterDynamicConfigs (line 137) | Result<Map<ClusterDynamicConfigsTypeEnum, Map<String, Object>>> getPhy...
    method updatePhyClusterDynamicConfig (line 148) | Result<Boolean> updatePhyClusterDynamicConfig(ClusterSettingDTO param,...
    method getRoutingAllocationAwarenessAttributes (line 155) | Result<Set<String>> getRoutingAllocationAwarenessAttributes(String clu...
    method listClusterPhyNameByProjectId (line 163) | List<String> listClusterPhyNameByProjectId(Integer projectId);
    method getTemplateSameVersionClusterNamesByTemplateId (line 171) | Result<List<String>> getTemplateSameVersionClusterNamesByTemplateId(In...
    method getTemplateSameVersionClusterNamesByTemplateIdExistDCDR (line 173) | Result<List<String>> getTemplateSameVersionClusterNamesByTemplateIdExi...
    method listClusterPhyNodeName (line 181) | List<String> listClusterPhyNodeName(String clusterPhyName);
    method buildPhyClusterStatics (line 187) | void buildPhyClusterStatics(ClusterPhyVO cluster);
    method listNodeNameByProjectId (line 194) | List<String> listNodeNameByProjectId(Integer projectId);
    method deleteCluster (line 204) | Result<Boolean> deleteCluster(Integer clusterPhyId, String operator, I...
    method addCluster (line 214) | Result<Boolean> addCluster(ClusterPhyDTO param, String operator, Integ...
    method editCluster (line 223) | Result<Boolean> editCluster(ClusterPhyDTO param, String operator);
    method pageGetClusterPhys (line 231) | PaginationResult<ClusterPhyVO> pageGetClusterPhys(ClusterPhyConditionD...
    method listClusterPhyNameBySuperApp (line 239) | Result<List<String>> listClusterPhyNameBySuperApp(Integer projectId);
    method buildClusterRole (line 245) | void buildClusterRole(ClusterPhyVO cluster);
    method buildClusterRole (line 253) | void buildClusterRole(ClusterPhyVO cluster, List<ClusterRoleInfo> clus...
    method updateClusterHealth (line 261) | boolean updateClusterHealth(String clusterPhyName, String operator);
    method updateClusterInfo (line 269) | boolean updateClusterInfo(String cluster, String operator);
    method checkClusterHealth (line 277) | Result<Boolean> checkClusterHealth(String clusterPhyName, String opera...
    method checkClusterIsExit (line 285) | Result<Boolean> checkClusterIsExit(String clusterPhyName, String opera...
    method deleteClusterExit (line 294) | Result<Boolean> deleteClusterExit(String clusterPhyName, Integer proje...
    method getPhyClusterNameWithSameEsVersion (line 302) | Result<List<String>> getPhyClusterNameWithSameEsVersion(Integer cluste...
    method getPhyClusterNameWithSameEsVersionAfterBuildLogic (line 310) | Result<List<String>> getPhyClusterNameWithSameEsVersionAfterBuildLogic...
    method updateClusterGateway (line 319) | Result<ClusterPhyVO> updateClusterGateway(ClusterPhyDTO param, String ...
    method listClusterRolesByClusterId (line 327) | List<ClusterRoleInfo> listClusterRolesByClusterId(Integer clusterId);
    method listClusterRoleHostByCluster (line 335) | List<ClusterRoleHost> listClusterRoleHostByCluster(String cluster);
    method listClusterPhyNameByResourceType (line 343) | Result<List<String>> listClusterPhyNameByResourceType(Integer clusterR...
    method getClusterByName (line 345) | Result<ClusterPhy> getClusterByName(String masterCluster);
    method ensureDCDRRemoteCluster (line 347) | boolean ensureDCDRRemoteCluster(String cluster, String remoteCluster) ...
    method fuzzyClusterPhyHitByCondition (line 355) | Long fuzzyClusterPhyHitByCondition(ClusterPhyConditionDTO condition);
    method pagingGetClusterPhyByCondition (line 363) | List<ClusterPhy> pagingGetClusterPhyByCondition(ClusterPhyConditionDTO...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterPhyQuickCommandManager.java
  type ClusterPhyQuickCommandManager (line 25) | public interface ClusterPhyQuickCommandManager {
    method nodeStateAnalysis (line 33) | Result<List<NodeStateVO>> nodeStateAnalysis(String clusterId);
    method indicesDistribution (line 41) | Result<List<IndicesDistributionVO>> indicesDistribution(String cluster);
    method pendingTaskAnalysis (line 49) | Result<List<PendingTaskAnalysisVO>> pendingTaskAnalysis(String cluster);
    method taskMissionAnalysis (line 57) | Result<List<TaskMissionAnalysisVO>> taskMissionAnalysis(String cluster);
    method hotThreadAnalysis (line 65) | Result<String> hotThreadAnalysis(String cluster);
    method shardAssignmentDescription (line 73) | Result<ShardAssignmentDescriptionVO> shardAssignmentDescription(String...
    method abnormalShardAllocationRetry (line 81) | Result<Void> abnormalShardAllocationRetry(String cluster);
    method clearFieldDataMemory (line 89) | Result<Void> clearFieldDataMemory(String cluster);
    method indicesDistributionPage (line 98) | List<IndicesDistributionVO> indicesDistributionPage(ClusterPhyQuickCom...
    method shardDistributionPage (line 108) | List<ShardDistributionVO> shardDistributionPage(ClusterPhyQuickCommand...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterPluginManager.java
  type ClusterPluginManager (line 7) | public interface ClusterPluginManager {
    method addPlugins (line 16) | Result<Long> addPlugins(PluginDTO plugin, Integer projectId) throws No...
    method deletePluginById (line 26) | Result<Long> deletePluginById(Long id, String operator, Integer projec...
    method editPluginDesc (line 36) | Result<Void> editPluginDesc(PluginDTO pluginDTO, String operator, Inte...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterRegionManager.java
  type ClusterRegionManager (line 12) | public interface ClusterRegionManager {
    method buildLogicClusterRegionVO (line 19) | List<ClusterRegionVO> buildLogicClusterRegionVO(List<ClusterRegion> re...
    method listPhyClusterRegionsByLogicClusterTypeAndCluster (line 27) | @Deprecated
    method listPhyClusterRegionsByCondition (line 38) | Result<List<ClusterRegionVO>> listPhyClusterRegionsByCondition(String ...
    method buildLogicClusterRegionVO (line 47) | ClusterRegionVO buildLogicClusterRegionVO(ClusterRegion region);
    method batchBindRegionToClusterLogic (line 54) | Result<Void> batchBindRegionToClusterLogic(ESLogicClusterWithRegionDTO...
    method listClusterRegionWithNodeInfoByClusterName (line 62) | Result<List<ClusterRegionWithNodeInfoVO>> listClusterRegionWithNodeInf...
    method listNotEmptyClusterRegionByClusterName (line 70) | Result<List<ClusterRegionVO>> listNotEmptyClusterRegionByClusterName(S...
    method deletePhyClusterRegion (line 79) | Result<Void> deletePhyClusterRegion(Long regionId, String operator, In...
    method getColdRegionByPhyCluster (line 88) | List<ClusterRegion> getColdRegionByPhyCluster(String phyCluster);
    method listRegionByPhyCluster (line 95) | List<ClusterRegion> listRegionByPhyCluster(String phyCluster);
    method buildLogicClusterRegionVOByLogicClusterId (line 103) | Result<List<ClusterRegionVO>> buildLogicClusterRegionVOByLogicClusterI...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ESClusterConfigManager.java
  type ESClusterConfigManager (line 15) | public interface ESClusterConfigManager {
    method editConfigDesc (line 24) | Result<Void> editConfigDesc(ESConfigDTO param, String operator, Intege...
    method getEsClusterTemplateConfig (line 32) | Result<ESConfigVO> getEsClusterTemplateConfig(String type);
    method gainEsClusterRoles (line 34) | Result<Set<String>> gainEsClusterRoles(Long clusterId);
    method getEsClusterConfigById (line 42) | Result<ESConfigVO> getEsClusterConfigById(Long configId);
    method gainEsClusterConfigs (line 50) | Result<List<ESConfigVO>> gainEsClusterConfigs(Long clusterId);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterContextManagerImpl.java
  class ClusterContextManagerImpl (line 55) | @Component
    method init (line 92) | @PostConstruct
    method flushClusterPhyContext (line 98) | @Override
    method flushClusterLogicContext (line 115) | @Override
    method flushClusterContextByClusterRegion (line 135) | @Override
    method canClusterLogicAssociatedPhyCluster (line 150) | @Override
    method getCanBeAssociatedClustersPhys (line 179) | @Override
    method getClusterPhyAssociatedClusterLogicNames (line 202) | @Override
    method getClusterPhyContext (line 219) | @Override
    method getClusterPhyContextCache (line 237) | @Override
    method listClusterPhyContextMap (line 242) | @Override
    method getClusterLogicContextCache (line 247) | @Override
    method getClusterLogicContext (line 252) | @Override
    method flushClusterPhyContexts (line 270) | public void flushClusterPhyContexts() {
    method flushClusterLogicContexts (line 371) | public void flushClusterLogicContexts() {
    method getClusterLogicId2ClusterRegionListMap (line 447) | @NotNull
    method getRegionId2HostListMap (line 470) | @NotNull
    method buildInitESClusterLogicContextByType (line 486) | private ClusterLogicContext buildInitESClusterLogicContextByType(Clust...
    method setAssociatedClusterPhyInfo (line 507) | private void setAssociatedClusterPhyInfo(ClusterLogicContext build) {
    method setRegionAndAssociatedClusterPhyDataNodeInfo (line 520) | private void setRegionAndAssociatedClusterPhyDataNodeInfo(ClusterLogic...
    method setRegionAndClusterLogicInfoAndProjectId (line 547) | private void setRegionAndClusterLogicInfoAndProjectId(ClusterPhyContex...
    method setClusterPhyNodeInfo (line 585) | private void setClusterPhyNodeInfo(ClusterPhyContext build) {
    method doValid (line 602) | private Result<Boolean> doValid(int associatedPhyNumber, int associate...
    method canClusterLogicBoundRegion (line 640) | private boolean canClusterLogicBoundRegion(Long regionId, String clust...
    method checkForPrivate (line 661) | private boolean checkForPrivate(Long clusterLogicId, ClusterPhyContext...
    method checkForPublic (line 691) | private boolean checkForPublic(Long clusterLogicId, ClusterPhyContext ...
    method checkForExclusive (line 728) | private boolean checkForExclusive(Long clusterLogicId, ClusterPhyConte...
    method hasClusterPhyContextAssociatedLogicTypeIsCode (line 765) | private boolean hasClusterPhyContextAssociatedLogicTypeIsCode(ClusterP...
    method hasBelongClusterLogicContextAssociatedClusterNames (line 779) | private boolean hasBelongClusterLogicContextAssociatedClusterNames(Clu...
    method handleClusterLogicTypeExclusive (line 784) | private void handleClusterLogicTypeExclusive(Long clusterLogicId, List...
    method handleClusterLogicTypePublic (line 799) | private void handleClusterLogicTypePublic(Long clusterLogicId, List<St...
    method handleClusterLogicTypePrivate (line 814) | private void handleClusterLogicTypePrivate(Long clusterLogicId, List<S...
    method hasClusterPhyContextMapEmpty (line 829) | private boolean hasClusterPhyContextMapEmpty() {
    method hasClusterLogicContextMapEmpty (line 833) | private boolean hasClusterLogicContextMapEmpty() {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterIndexManagerImpl.java
  class ClusterIndexManagerImpl (line 27) | @Component
    method listClusterLogicIndices (line 43) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterLogicManagerImpl.java
  class ClusterLogicManagerImpl (line 107) | @Component
    method buildClusterLogics (line 181) | @Override
    method buildClusterLogic (line 201) | @Override
    method clearIndices (line 216) | @Override
    method getLogicClusterAssignedPhysicalClusters (line 271) | @Override
    method getLogicClustersByProjectId (line 281) | @Override
    method validateClusterLogicParams (line 302) | @Override
    method joinClusterLogic (line 317) | @Override
    method getLogicClustersByLevel (line 329) | @Override
    method listProjectClusterLogicIdsAndNames (line 344) | @Override
    method getProjectLogicClusterInfoByType (line 364) | @Override
    method listMachineSpec (line 378) | @Override
    method getClusterLogic (line 386) | @Override
    method addLogicClusterAndClusterRegions (line 401) | @Override
    method deleteLogicCluster (line 418) | @Transactional(rollbackFor = Exception.class)
    method getTemplateIndexVO (line 495) | private ClusterLogicTemplateIndexDetailDTO getTemplateIndexVO(ClusterL...
    method editLogicCluster (line 508) | @Override
    method pageGetClusterLogics (line 526) | @Override
    method updateClusterLogicHealth (line 540) | @Override
    method indexTemplateCount (line 568) | @Override
    method estimatedDiskSize (line 579) | @Override
    method getClusterDataNodeSpec (line 593) | @Override
    method listClusterLogicNameByProjectId (line 601) | @Override
    method getClusterRelationByProjectId (line 616) | @Override
    method getClusterLogicPlugins (line 634) | @Override
    method isLogicClusterRegionIsNotEmpty (line 640) | @Override
    method setClusterLogicInfo (line 661) | public void setClusterLogicInfo(ESLogicClusterDTO clusterDTO,ClusterRe...
    method getPhyNameByLogic (line 697) | private ClusterPhyVO getPhyNameByLogic(Long clusterLogicId) {
    method buildOpLogicClusterPermission (line 709) | private void buildOpLogicClusterPermission(ClusterLogicVO clusterLogic...
    method listClusterLogicNameByPhyName (line 730) | @Override
    method listClusterLogicNameByApp (line 750) | @Override
    method getClusterPhyAssociatedClusterLogicNames (line 766) | @Override
    method joinClusterPhyAndCreateLogicCluster (line 801) | @Override
    method listLogicClusterWithClusterPhyByProjectId (line 844) | @Override
    method listClusterLogicByPhyName (line 882) | @Override
    method buildConsoleClusterVersions (line 915) | private void buildConsoleClusterVersions(ClusterLogicVO logicCluster) {
    method buildLogicClusterPermission (line 935) | private void buildLogicClusterPermission(ClusterLogicVO logicClusterVO...
    method buildLogicClusterStatus (line 970) | private void buildLogicClusterStatus(ClusterLogicVO logicCluster, Clus...
    method buildDefaultLogicStatus (line 989) | private ClusterLogicStatis buildDefaultLogicStatus() {
    method buildLogicRole (line 999) | private void buildLogicRole(ClusterLogicVO logicCluster, ClusterLogic ...
    method buildESRoleClusterVOList (line 1027) | private List<ESClusterRoleVO> buildESRoleClusterVOList(ClusterLogic cl...
    method buildEsClusterRoleHostVOList (line 1054) | private void buildEsClusterRoleHostVOList(ClusterLogic clusterLogic, L...
    method buildClusterNodeInfo (line 1083) | private void buildClusterNodeInfo(ClusterLogicVO clusterLogicVO) {
    method checkIndices (line 1100) | private TupleTwo<Result<Void>, /*projectId*/Integer> checkIndices(List...
    method batchDeletePhysicalTemplateIndices (line 1126) | private Result<Void> batchDeletePhysicalTemplateIndices(List<IndexTemp...
    method batchDeletePhysicalTemplateIndicesByQuery (line 1156) | private Result<Void> batchDeletePhysicalTemplateIndicesByQuery(List<In...
    method genDeleteIndicesWithVersion (line 1175) | private List<String> genDeleteIndicesWithVersion(List<String> delIndic...
    method getClusterLogicStatus (line 1186) | private ClusterLogicStatis getClusterLogicStatus(Long logicClusterId) {
    method deleteTemplatesIndicesInfo (line 1228) | @Override
    method getClusterLogicStatus (line 1259) | private String getClusterLogicStatus(Set<String> statusSet) {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterNodeManagerImpl.java
  class ClusterNodeManagerImpl (line 55) | @Component
    method listDivide2ClusterNodeInfo (line 80) | @Override
    method checkMultiNode2Region (line 117) | @Override
    method listClusterPhyNodeInfosByName (line 136) | @Override
    method createMultiNode2Region (line 148) | @Override
    method editMultiNode2Region (line 188) | @Override
    method listClusterPhyNode (line 216) | @Override
    method listClusterLogicNode (line 226) | @Override
    method listClusterLogicNodeByName (line 244) | @Override
    method listClusterLogicNodeInfosByName (line 264) | @Override
    method collectNodeSettings (line 284) | @Override
    method delete (line 297) | @Override
    method listClusterRoleHostByRegionId (line 347) | @Override
    method listAllMachineSpecs (line 365) | @Override
    method machineSpecSort (line 387) | private int machineSpecSort(String s1, String s2) {
    method buildClusterRoleHostStats (line 406) | private List<ESClusterRoleHostVO> buildClusterRoleHostStats(String clu...
    method baseCheckParamValid (line 430) | private Result<Boolean> baseCheckParamValid(ClusterRegionWithNodeInfoD...
    method editNode2Region (line 460) | private Result<Boolean> editNode2Region(ClusterRegionWithNodeInfoDTO p...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterPhyManagerImpl.java
  class ClusterPhyManagerImpl (line 137) | @Component
    method init (line 229) | @PostConstruct
    method refreshClusterPhyInfoWithCache (line 240) | private synchronized void refreshClusterPhyInfoWithCache() {
    method getDCDRAndPipelineAndColdRegionTupleByClusterPhyWithCache (line 253) | @Override
    method getClusterConnectionStatusWithCache (line 264) | @Override
    method copyMapping (line 275) | @Override
    method syncTemplateMetaData (line 316) | @Override
    method isClusterExists (line 342) | @Override
    method listClusterPhys (line 347) | @Override
    method buildClusterInfo (line 353) | @Override
    method buildClusterPhyWithLogicAndRegion (line 387) | private long buildClusterPhyWithLogicAndRegion(List<ClusterPhyVO> clus...
    method getClusterPhyOverview (line 449) | @Override
    method listCanBeAssociatedRegionOfClustersPhys (line 463) | @Override
    method listCanBeAssociatedClustersPhys (line 482) | @Override
    method joinCluster (line 526) | @Override
    method deleteClusterJoin (line 590) | @Override
    method listPlugins (line 613) | @Override
    method getPhyClusterDynamicConfigs (line 618) | @Override
    method updatePhyClusterDynamicConfig (line 647) | @Override
    method getRoutingAllocationAwarenessAttributes (line 673) | @Override
    method listClusterPhyNameByProjectId (line 678) | @Override
    method getClusterByName (line 699) | @Override
    method ensureDCDRRemoteCluster (line 709) | @Override
    method listClusterPhyNameByResourceType (line 714) | @Override
    method getTemplateSameVersionClusterNamesByTemplateId (line 745) | @Override
    method getTemplateSameVersionClusterNamesByTemplateIdExistDCDR (line 793) | @Override
    method listClusterPhyNodeName (line 808) | @Override
    method listNodeNameByProjectId (line 817) | @Override
    method deleteCluster (line 828) | @Override
    method addCluster (line 866) | @Override
    method editCluster (line 878) | @Override
    method pageGetClusterPhys (line 895) | @Override
    method listClusterPhyNameBySuperApp (line 910) | @Override
    method buildPhyClusterStatics (line 927) | @Override
    method buildClusterRole (line 940) | @Override
    method buildClusterRole (line 951) | @Override
    method updateClusterHealth (line 972) | @Override
    method updateClusterInfo (line 1004) | @Override
    method checkClusterHealth (line 1040) | @Override
    method checkClusterIsExit (line 1056) | @Override
    method deleteClusterExit (line 1061) | @Override
    method getPhyClusterNameWithSameEsVersion (line 1075) | @Override
    method getPhyClusterNameWithSameEsVersionAfterBuildLogic (line 1095) | @Override
    method updateClusterGateway (line 1115) | @Override
    method listClusterRolesByClusterId (line 1134) | @Override
    method listClusterRoleHostByCluster (line 1139) | @Override
    method fuzzyClusterPhyHitByCondition (line 1150) | @Override
    method pagingGetClusterPhyByCondition (line 1161) | @Override
    method deleteClusterInner (line 1168) | private Result<Boolean> deleteClusterInner(Integer clusterPhyId, Integ...
    method setTemplateSettingSingleType (line 1220) | private boolean setTemplateSettingSingleType(String cluster, String te...
    method validLogicAndReturnPhyNamesWhenBindPhy (line 1239) | Result<List<String>> validLogicAndReturnPhyNamesWhenBindPhy(Long clust...
    method getPhyClusterNameWithSameEsVersion (line 1276) | private List<String> getPhyClusterNameWithSameEsVersion(String hasSele...
    method buildPhyCluster (line 1306) | private void buildPhyCluster(ClusterPhyVO clusterPhyVO,ClusterPhy clus...
    method saveClusterPhy (line 1315) | private Result<ClusterPhyVO> saveClusterPhy(ClusterJoinDTO param, Stri...
    method buildPhyClusters (line 1325) | private ClusterPhyDTO buildPhyClusters(ClusterJoinDTO param, String op...
    method checkClusterJoin (line 1364) | private Result<Void> checkClusterJoin(ClusterJoinDTO param, String ope...
    method checkClusterNodes (line 1393) | private Result<Void> checkClusterNodes(ClusterJoinDTO param) {
    method checkSameESClientHttpAddresses (line 1482) | private Result<Void> checkSameESClientHttpAddresses(String esClientHtt...
    method initClusterJoin (line 1510) | private Result<Void> initClusterJoin(ClusterJoinDTO param, String esCl...
    method checkClusterWithoutPasswd (line 1523) | private Result<Void> checkClusterWithoutPasswd(ClusterJoinDTO param, S...
    method checkSameCluster (line 1545) | private Result<Void> checkSameCluster(String passwd, List<String> esCl...
    method initESVersionForClusterJoin (line 1555) | private Result<Void> initESVersionForClusterJoin(ClusterJoinDTO param,...
    method doDeleteClusterJoin (line 1564) | private void doDeleteClusterJoin(ClusterPhy clusterPhy, String operator,
    method initClusterDynamicConfigs (line 1655) | private Map<ClusterDynamicConfigsTypeEnum, Map<String, Object>> initCl...
    method getESClusterStaticInfoTriple (line 1665) | private Triple<Long/*diskTotal*/, Long/*diskUsage*/, Double/*diskUsage...
    method getClusterStatsTriple (line 1677) | private Triple<Long, Long, Double> getClusterStatsTriple(String cluste...
    method buildInitTriple (line 1686) | private Triple<Long/*diskTotal*/, Long/*diskTotal*/, Double/*diskUsage...
    method postProcessingForClusterJoin (line 1694) | private void postProcessingForClusterJoin(ClusterJoinDTO param) throws...
    method refreshClusterDistInfo (line 1709) | private void refreshClusterDistInfo() {
    method refreshClusterStats (line 1718) | private void refreshClusterStats(String clusterName, Triple<Long, Long...
    method wrongPortDetect (line 1736) | private boolean wrongPortDetect(String port) {
    method getDCDRAndPipelineTupleByClusterPhy (line 1747) | private TupleThree</*dcdrExist*/Boolean,/*pipelineExist*/ Boolean,/*ex...
    method getClusterConnectionStatus (line 1753) | private ClusterConnectionStatusWithTemplateEnum getClusterConnectionSt...
    method getColdRegionByPhyCluster (line 1761) | public List<ClusterRegion> getColdRegionByPhyCluster(String phyCluster) {
    method ipListWithCache (line 1785) | private List<String> ipListWithCache() {
    method refreshWhitIpList (line 1789) | private void refreshWhitIpList() {
    method getIpList (line 1797) | private List<String> getIpList() {
    method buildSupportZeusByClusterPhy (line 1810) | private void buildSupportZeusByClusterPhy(ClusterPhyVO clusterPhyVO, L...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterPhyQuickCommandManagerImpl.java
  class ClusterPhyQuickCommandManagerImpl (line 42) | @Component
    method nodeStateAnalysis (line 67) | @Override
    method indicesDistribution (line 76) | @Override
    method pendingTaskAnalysis (line 87) | @Override
    method taskMissionAnalysis (line 100) | @Override
    method hotThreadAnalysis (line 113) | @Override
    method shardAssignmentDescription (line 122) | @Override
    method abnormalShardAllocationRetry (line 141) | @Override
    method clearFieldDataMemory (line 154) | @Override
    method indicesDistributionPage (line 167) | @Override
    method shardDistributionPage (line 188) | @Override
    method checkClusterExistence (line 209) | private Result<Void> checkClusterExistence(String cluster) {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterPluginManagerImpl.java
  class ClusterPluginManagerImpl (line 12) | @Component
    method addPlugins (line 17) | @Override
    method deletePluginById (line 26) | @Override
    method editPluginDesc (line 35) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterRegionManagerImpl.java
  class ClusterRegionManagerImpl (line 64) | @Component
    method buildLogicClusterRegionVO (line 99) | @Override
    method listPhyClusterRegionsByLogicClusterTypeAndCluster (line 115) | @Deprecated
    method listPhyClusterRegionsByCondition (line 151) | @Override
    method buildLogicClusterRegionVO (line 189) | @Override
    method batchBindRegionToClusterLogic (line 204) | @Override
    method listClusterRegionWithNodeInfoByClusterName (line 243) | @Override
    method listNotEmptyClusterRegionByClusterName (line 269) | @Override
    method deletePhyClusterRegion (line 294) | @Override
    method getColdRegionByPhyCluster (line 349) | @Override
    method listRegionByPhyCluster (line 363) | @Override
    method buildLogicClusterRegionVOByLogicClusterId (line 376) | @Override
    method checkRegionHostNumAndSpec (line 410) | private Boolean checkRegionHostNumAndSpec(Long regionId, ClusterLogicS...
    method boundPhyClusterVersionsCheck (line 437) | private Result<Void> boundPhyClusterVersionsCheck(ESLogicClusterWithRe...
    method checkCanBeBound (line 464) | private void checkCanBeBound(Long clusterLogicId, ClusterRegionDTO clu...
    method canClusterLogicAssociatedPhyCluster (line 472) | public Result<Boolean> canClusterLogicAssociatedPhyCluster(Long cluste...
    method getAssociatedLogicNumByClusterPhy (line 498) | private int getAssociatedLogicNumByClusterPhy(String clusterPhyName) {
    method getAssociatedPhyNumByLogicId (line 515) | private int getAssociatedPhyNumByLogicId(Long clusterLogicId) {
    method doValid (line 548) | private Result<Boolean> doValid(int associatedPhyNumber, int associate...
    method canClusterLogicBoundRegion (line 585) | private boolean canClusterLogicBoundRegion(Long regionId, String clust...
    method getClusterLogicContext (line 600) | private ClusterLogicContext getClusterLogicContext(Long clusterLogicId) {
    method buildInitESClusterLogicContextByType (line 621) | private ClusterLogicContext buildInitESClusterLogicContextByType(Clust...
    method setAssociatedClusterPhyInfo (line 642) | private void setAssociatedClusterPhyInfo(ClusterLogicContext build) {
    method setRegionAndAssociatedClusterPhyDataNodeInfo (line 655) | private void setRegionAndAssociatedClusterPhyDataNodeInfo(ClusterLogic...
    method getClusterPhyContext (line 683) | private ClusterPhyContext getClusterPhyContext(String clusterPhyName) {
    method setRegionAndClusterLogicInfoAndProjectId (line 699) | private void setRegionAndClusterLogicInfoAndProjectId(ClusterPhyContex...
    method setClusterPhyNodeInfo (line 736) | private void setClusterPhyNodeInfo(ClusterPhyContext build) {
    method doBindRegionToClusterLogic (line 745) | private Result<Void> doBindRegionToClusterLogic(ESLogicClusterWithRegi...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ESClusterConfigManagerImpl.java
  class ESClusterConfigManagerImpl (line 22) | @Component
    method editConfigDesc (line 39) | @Override
    method getEsClusterTemplateConfig (line 61) | @Override
    method gainEsClusterRoles (line 72) | @Override
    method getEsClusterConfigById (line 83) | @Override
    method gainEsClusterConfigs (line 95) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/component/MetricsValueConvertUtils.java
  class MetricsValueConvertUtils (line 18) | public class MetricsValueConvertUtils {
    method MetricsValueConvertUtils (line 20) | private MetricsValueConvertUtils() {
    method convertClusterOverviewMetricsPercent (line 28) | public static void convertClusterOverviewMetricsPercent(ESClusterOverv...
    method convertClusterPhyMetricsPercent (line 47) | public static void convertClusterPhyMetricsPercent(List<VariousLineCha...
    method doOptimizeForWriteTps (line 53) | public static void doOptimizeForWriteTps(List<WriteTPSMetricsVO> write...
    method doOptimizeForReadTps (line 85) | public static void doOptimizeForReadTps(List<ReadQPSMetricsVO> readTps...
    method doOptimizeForShardNu (line 117) | public static void doOptimizeForShardNu(List<ShardInfoMetricsVO> shard...
    method doOptimizeForDiskInfo (line 158) | public static void doOptimizeForDiskInfo(List<DiskInfoMetricsVO> diskI...
    method doOptimizeForSendTransSize (line 207) | public static void doOptimizeForSendTransSize(List<SendTransMetricsVO>...
    method doOptimizeForRecvTransSize (line 240) | public static void doOptimizeForRecvTransSize(List<RecvTransMetricsVO>...
    method doOptimizeForPercentiles (line 273) | public static void doOptimizeForPercentiles(List<? extends ESPercentil...
    method doOptimizeQueryBurrForNodeOrIndicesMetrics (line 340) | public static void doOptimizeQueryBurrForNodeOrIndicesMetrics(List<Var...
    method compensateAbnormalValue (line 366) | private static void compensateAbnormalValue(List<MetricsContentCell> m...
    method compute (line 389) | private static double compute(double currentValue, double frontValue, ...
    method convertCell (line 411) | private static void convertCell(VariousLineChartMetrics variousLineCha...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/dsl/DslMetricsManager.java
  type DslMetricsManager (line 10) | public interface DslMetricsManager {
    method getDSLMetricsInfoByProjectId (line 18) | Result<List<DslTemplateVO>> getDSLMetricsInfoByProjectId(Integer proje...
    method getDetailMetrics (line 28) | Result<List<DslMetricsVO>> getDetailMetrics(Integer projectId, String ...
    method getDslTemplateByCondition (line 38) | Result<SearchDslTemplateResponseVO> getDslTemplateByCondition(Integer ...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/dsl/DslTemplateManager.java
  type DslTemplateManager (line 16) | public interface DslTemplateManager {
    method updateDslTemplateQueryLimit (line 24) | Result<Boolean> updateDslTemplateQueryLimit(Integer projectId,String o...
    method changeDslTemplateStatus (line 33) | Result<Boolean> changeDslTemplateStatus(Integer projectId,String opera...
    method getDslTemplateDetail (line 41) | Result<DslTemplateVO> getDslTemplateDetail(Integer projectId, String d...
    method getDslTemplatePage (line 49) | PaginationResult<DslTemplateVO> getDslTemplatePage(Integer projectId,
    method listConfigDslTemplateFields (line 59) | List<String> listConfigDslTemplateFields(UserConfigInfoDTO param, Stri...
    method updateConfigDslTemplateFields (line 68) | Result<Integer> updateConfigDslTemplateFields(UserConfigInfoDTO userCo...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/dsl/impl/DslMetricsManagerImpl.java
  class DslMetricsManagerImpl (line 16) | @Component
    method getDSLMetricsInfoByProjectId (line 22) | @Override
    method getDetailMetrics (line 29) | @Override
    method getDslTemplateByCondition (line 37) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/dsl/impl/DslTemplateManagerImpl.java
  class DslTemplateManagerImpl (line 33) | @Component
    method updateDslTemplateQueryLimit (line 48) | @Override
    method changeDslTemplateStatus (line 63) | @Override
    method getDslTemplateDetail (line 75) | @Override
    method getDslTemplatePage (line 84) | @Override
    method listConfigDslTemplateFields (line 99) | @Override
    method updateConfigDslTemplateFields (line 107) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/espackage/ESPackageManager.java
  class ESPackageManager (line 24) | @Component
    method listESPackage (line 34) | public Result<List<ESPackageVO>> listESPackage() {
    method getESPackageById (line 48) | public Result<ESPackageVO> getESPackageById(Long id) {
    method addESPackage (line 61) | public Result<Long> addESPackage(ESPackageDTO esPackageDTO, String ope...
    method updateESPackage (line 77) | public Result<ESPackageVO> updateESPackage(ESPackageDTO esPackageDTO, ...
    method buildESPackageVO (line 92) | private ESPackageVO buildESPackageVO(ESPackage esPackage) {
    method deleteESPackage (line 110) | public Result<Long> deleteESPackage(Long id, String operator, Integer ...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/extend/foctory/ExtendServiceFactory.java
  class ExtendServiceFactory (line 26) | @Component
    method getExtend (line 35) | public <T> Result<T> getExtend(Class<T> tClass) throws ExtendServiceNo...
    method getDefault (line 55) | public <T> T getDefault(Class<T> tClass) throws ExtendServiceNotSuppor...
    method getAll (line 75) | public <T> List<T> getAll(Class<T> tClass) throws ExtendServiceNotSupp...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/gateway/GatewayJoinLogManager.java
  type GatewayJoinLogManager (line 11) | public interface GatewayJoinLogManager {
    method getGatewayErrorList (line 19) | Result<List<GatewayJoinVO>> getGatewayErrorList(Long projectId, Long s...
    method getGatewaySlowList (line 28) | Result<List<GatewayJoinVO>> getGatewaySlowList(Long projectId, Long st...
    method getSearchCountByProjectId (line 39) | Result<Long> getSearchCountByProjectId(String dataCenter, Long project...
    method getDSLByProjectIdAndIndexName (line 48) | Result<String> getDSLByProjectIdAndIndexName(Integer projectId, String...
    method getGatewayJoinPage (line 56) | PaginationResult<GatewayJoinVO> getGatewayJoinPage(Integer projectId, ...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/gateway/GatewayManager.java
  type GatewayManager (line 18) | public interface GatewayManager {
    method heartbeat (line 25) | Result<Void> heartbeat(GatewayHeartbeat heartbeat);
    method heartbeat (line 32) | Result<Integer> heartbeat(String clusterName);
    method getGatewayAliveNode (line 39) | Result<List<GatewayClusterNodeVO>> getGatewayAliveNode(String clusterN...
    method getGatewayAliveNodeNames (line 46) | Result<List<String>> getGatewayAliveNodeNames(String clusterName);
    method listESUserByProject (line 53) | Result<List<GatewayESUserVO>> listESUserByProject();
    method getTemplateMap (line 60) | Result<Map<String, GatewayTemplatePhysicalVO>> getTemplateMap(String c...
    method listDeployInfo (line 67) | Result<Map<String, GatewayTemplateDeployInfoVO>> listDeployInfo();
    method scrollSearchDslTemplate (line 74) | Result<ScrollDslTemplateResponse> scrollSearchDslTemplate(ScrollDslTem...
    method addAlias (line 81) | Result<Boolean> addAlias(IndexTemplateAliasDTO indexTemplateAliasDTO);
    method delAlias (line 88) | Result<Boolean> delAlias(IndexTemplateAliasDTO indexTemplateAliasDTO);
    method sqlExplain (line 98) | Result<String> sqlExplain(String sql, String phyClusterName, Integer p...
    method directSqlSearch (line 107) | Result<String> directSqlSearch(String sql, String phyClusterName, Inte...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/gateway/impl/GatewayJoinLogManagerImpl.java
  class GatewayJoinLogManagerImpl (line 30) | @Component
    method getGatewayErrorList (line 40) | @Override
    method getGatewaySlowList (line 46) | @Override
    method getSearchCountByProjectId (line 52) | @Override
    method getDSLByProjectIdAndIndexName (line 57) | @Override
    method getGatewayJoinPage (line 63) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/gateway/impl/GatewayManagerImpl.java
  class GatewayManagerImpl (line 69) | @Component
    method heartbeat (line 115) | @Override
    method heartbeat (line 120) | @Override
    method getGatewayAliveNode (line 125) | @Override
    method getGatewayAliveNodeNames (line 131) | @Override
    method listESUsers (line 141) | private List<ESUser> listESUsers() {
    method listProject (line 147) | private Map<Integer, String> listProject() {
    method listProjectWithCache (line 152) | private Map<Integer, String> listProjectWithCache() {
    method listESUserWithCache (line 160) | private List<ESUser> listESUserWithCache() {
    method listProjectConfig (line 168) | private Map<Integer/*projectId*/, ProjectConfig> listProjectConfig() {
    method listProjectConfigWithCache (line 173) | private Map<Integer/*projectId*/, ProjectConfig> listProjectConfigWith...
    method listESUserByProject (line 182) | @Override
    method getTemplateMap (line 233) | @Override
    method listDeployInfo (line 275) | @Override
    method scrollSearchDslTemplate (line 305) | @Override
    method addAlias (line 310) | @Override
    method delAlias (line 315) | @Override
    method sqlExplain (line 320) | @Override
    method directSqlSearch (line 333) | @Override
    method buildPhysicalDeployVO (line 346) | private GatewayTemplatePhysicalDeployVO buildPhysicalDeployVO(IndexTem...
    method buildESUserVO (line 371) | private GatewayESUserVO buildESUserVO(ESUser esUser,
    method fetchPermissionIndexExpressions (line 442) | private void fetchPermissionIndexExpressions(Integer esUserId,
    method buildGatewayTemplateDeployInfoVO (line 470) | private GatewayTemplateDeployInfoVO buildGatewayTemplateDeployInfoVO(I...
    method genMasterInfo (line 497) | private GatewayTemplatePhysicalDeployVO genMasterInfo(IndexTemplateWit...
    method genSlaveInfos (line 501) | private List<GatewayTemplatePhysicalDeployVO> genSlaveInfos(IndexTempl...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/indices/IndicesManager.java
  type IndicesManager (line 27) | public interface IndicesManager {
    method pageGetIndex (line 34) | PaginationResult<IndexCatCellVO> pageGetIndex(IndexQueryDTO condition,
    method createIndex (line 44) | Result<Void> createIndex(IndexCatCellWithConfigDTO indexCreateDTO, Int...
    method deleteIndex (line 54) | Result<Boolean> deleteIndex(List<IndexCatCellDTO> params, Integer proj...
    method batchOperateIndex (line 64) | <T, U, R> Result<Boolean> batchOperateIndex(List<IndexCatCellDTO> para...
    method openIndex (line 75) | Result<Boolean> openIndex(List<IndexCatCellDTO> params, Integer projec...
    method closeIndex (line 85) | Result<Boolean> closeIndex(List<IndexCatCellDTO> params, Integer proje...
    method updateIndexFlagInvalid (line 96) | Result<Void> updateIndexFlagInvalid(String cluster, List<String> index...
    method editIndexBlockSetting (line 106) | Result<Void> editIndexBlockSetting(List<IndicesBlockSettingDTO> params...
    method getMapping (line 116) | Result<IndexMappingVO> getMapping(String cluster, String indexName, In...
    method editMapping (line 126) | Result<Void> editMapping(IndexCatCellWithConfigDTO param, Integer proj...
    method getSetting (line 137) | Result<IndexSettingVO> getSetting(String cluster, String indexName, In...
    method editSetting (line 147) | Result<Void> editSetting(IndexCatCellWithConfigDTO param, Integer proj...
    method getIndexShardsInfo (line 157) | Result<List<IndexShardInfoVO>> getIndexShardsInfo(String cluster, Stri...
    method getIndexCatInfo (line 166) | Result<IndexCatCellVO> getIndexCatInfo(String cluster, String indexNam...
    method addIndexAliases (line 176) | Result<Void> addIndexAliases(IndexCatCellWithConfigDTO param, Integer ...
    method deleteIndexAliases (line 186) | Result<Void> deleteIndexAliases(IndexCatCellWithConfigDTO param, Integ...
    method getIndexAliases (line 196) | Result<List<String>> getIndexAliases(String cluster, String indexName,...
    method rollover (line 206) | Result<Void> rollover(IndexRolloverDTO param, String operator, Integer...
    method shrink (line 216) | Result<Void> shrink(IndexCatCellWithConfigDTO param, String operator, ...
    method split (line 226) | Result<Void> split(IndexCatCellWithConfigDTO param, String operator, I...
    method forceMerge (line 236) | Result<Void> forceMerge(IndexForceMergeDTO param, String operator, Int...
    method getClusterPhyIndexName (line 241) | Result<List<String>> getClusterPhyIndexName(String clusterPhyName, Int...
    method getClusterLogicIndexName (line 251) | Result<List<String>> getClusterLogicIndexName(String clusterLogicName,...
    method isExists (line 261) | Result<Boolean> isExists(String cluster, String indexName, Integer pro...
    method listIndexCatCellWithTemplateByTemplatePhyId (line 269) | List<IndexCatCellWithTemplateVO> listIndexCatCellWithTemplateByTemplat...
    method listIndexCatInfoByTemplatePhyId (line 277) | List<CatIndexResult> listIndexCatInfoByTemplatePhyId(Long physicalId);
    method deleteIndexByCLusterPhy (line 279) | Result<Void> deleteIndexByCLusterPhy(String clusterPhy, List<String> i...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/indices/IndicesManagerImpl.java
  class IndicesManagerImpl (line 76) | @Component
    method pageGetIndex (line 121) | @Override
    method createIndex (line 136) | @Override
    method deleteIndex (line 196) | @Override
    method batchOperateIndex (line 223) | @Override
    method openIndex (line 254) | @Override
    method closeIndex (line 285) | @Override
    method updateIndexFlagInvalid (line 315) | @Override
    method updateIndicesStatus (line 330) | private Result<Boolean> updateIndicesStatus(String cluster, List<Strin...
    method editIndexBlockSetting (line 341) | @Override
    method getMapping (line 396) | @Override
    method editMapping (line 415) | @Override
    method getSetting (line 466) | @Override
    method editSetting (line 499) | @Override
    method getIndexShardsInfo (line 544) | @Override
    method getIndexCatInfo (line 569) | @Override
    method addIndexAliases (line 589) | @Override
    method deleteIndexAliases (line 606) | @Override
    method getIndexAliases (line 622) | @Override
    method rollover (line 633) | @Override
    method shrink (line 675) | @Override
    method split (line 688) | @Override
    method forceMerge (line 701) | @Override
    method getClusterPhyIndexName (line 726) | @Override
    method getClusterLogicIndexName (line 735) | @Override
    method isExists (line 741) | @Override
    method listIndexCatCellWithTemplateByTemplatePhyId (line 766) | @Override
    method listIndexCatInfoByTemplatePhyId (line 775) | @Override
    method deleteIndexByCLusterPhy (line 797) | @Override
    method basicCheckParam (line 817) | private Result<Void> basicCheckParam(String cluster, String index, Int...
    method checkEditIndexBlockSetting (line 833) | private Result<Void> checkEditIndexBlockSetting(List<IndicesBlockSetti...
    method filterPrimaryShard (line 848) | private boolean filterPrimaryShard(IndexShardInfo indexShardInfo) {
    method coverUnit (line 861) | private IndexShardInfoVO coverUnit(IndexShardInfo indexShardInfo) {
    method getClusterPhyByClusterNameAndProjectId (line 873) | private Result<String> getClusterPhyByClusterNameAndProjectId(String c...
    method initIndexCreateDTO (line 894) | private Result<Void> initIndexCreateDTO(IndexCatCellWithConfigDTO inde...
    method checkValid (line 914) | private Result<Void> checkValid(IndexCatCellWithConfigDTO params, Stri...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/ApplicationRetryListener.java
  class ApplicationRetryListener (line 12) | public abstract class ApplicationRetryListener<E extends ApplicationEven...
    method onApplicationEvent (line 17) | @SneakyThrows
    method onApplicationRetryEvent (line 32) | public abstract void onApplicationRetryEvent(E event) throws EventExce...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/ClusterLogicChangeListener.java
  class ClusterLogicChangeListener (line 15) | @Component
    method onApplicationRetryEvent (line 23) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/ClusterPhyChangeListener.java
  class ClusterPhyChangeListener (line 17) | @Component
    method onApplicationEvent (line 28) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/ClusterPhyHealthListener.java
  class ClusterPhyHealthListener (line 14) | @Component
    method onApplicationEvent (line 25) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/DCDRLinkAbnormalIndicesRebuildListener.java
  class DCDRLinkAbnormalIndicesRebuildListener (line 19) | @Component
    method onApplicationEvent (line 29) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/LoggingListener.java
  class LoggingListener (line 16) | @Component
    method onApplicationEvent (line 22) | @Override
    method getOrder (line 35) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/LogicTemplateCreatePipelineListener.java
  class LogicTemplateCreatePipelineListener (line 20) | @Component
    method onApplicationEvent (line 31) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/ReBuildTomorrowIndexListener.java
  class ReBuildTomorrowIndexListener (line 11) | @Component
    method onApplicationEvent (line 20) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/RefreshCatIndexListener.java
  class RefreshCatIndexListener (line 27) | @Component
    method onApplicationEvent (line 37) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/RegionEditEventListener.java
  class RegionEditEventListener (line 33) | @Component
    method onApplicationEvent (line 62) | @Override
    method buildCluster2TemplateWithNodeNamesSetMap (line 122) | private void buildCluster2TemplateWithNodeNamesSetMap(Map<String, List...
    method updateIndicesAllocationSetting (line 155) | private void updateIndicesAllocationSetting(String cluster, String tem...
    method updateTemplateAllocationSetting (line 176) | private void updateTemplateAllocationSetting(String cluster, String te...
    class TemplateWithNodeNames (line 187) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/TemplateEventClearIndexListener.java
  class TemplateEventClearIndexListener (line 25) | @Component
    method onApplicationRetryEvent (line 32) | @Override
    method deleteIndexByCLusterPhy (line 42) | private void deleteIndexByCLusterPhy(String clusterPhy, List<String> i...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/TemplateEventPipelineListener.java
  class TemplateEventPipelineListener (line 24) | @Component
    method onApplicationEvent (line 37) | @Override
    method handlePhysicalTemplateModifyEvent (line 56) | private void handlePhysicalTemplateModifyEvent(PhysicalTemplateModifyE...
    method handleLogicTemplateModifyEvent (line 73) | private void handleLogicTemplateModifyEvent(LogicTemplateModifyEvent e...
    method handlePhysicalTemplateDeleteEvent (line 88) | private void handlePhysicalTemplateDeleteEvent(PhysicalTemplateDeleteE...
    method handlePhysicalTemplateAddEvent (line 102) | private void handlePhysicalTemplateAddEvent(PhysicalTemplateAddEvent e...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/TemplatePhyMetaChangedListener.java
  class TemplatePhyMetaChangedListener (line 13) | @Component
    method onApplicationEvent (line 18) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/TemplateProjectIdChangedListener.java
  class TemplateProjectIdChangedListener (line 17) | @Component
    method onApplicationEvent (line 24) | @Override
    method handleTemplateProjectId (line 38) | private void handleTemplateProjectId(IndexTemplate oldIndexTemplate, I...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/ClusterPhyMetricsManager.java
  type ClusterPhyMetricsManager (line 19) | public interface ClusterPhyMetricsManager {
    method getMetricsCode2TypeMap (line 27) | List<String> getMetricsCode2TypeMap(String type);
    method getClusterMetricsByMetricsType (line 37) | <T> Result<T> getClusterMetricsByMetricsType(MetricsClusterPhyDTO para...
    method getMultiClusterMetrics (line 48) | Result<List<VariousLineChartMetricsVO>> getMultiClusterMetrics(MultiMe...
    method getMultiClusterIndicesMetrics (line 61) | Result<List<VariousLineChartMetricsVO>> getMultiClusterIndicesMetrics(...
    method getMultiClusterTemplatesMetrics (line 73) | Result<List<VariousLineChartMetricsVO>> getMultiClusterTemplatesMetric...
    method listConfigMetricsByCondition (line 85) | List<String> listConfigMetricsByCondition(UserConfigInfoDTO param, Str...
    method updateConfigMetricsByCondition (line 94) | Result<Integer> updateConfigMetricsByCondition(UserConfigInfoDTO param...
    method getClusterPhyTaskDetail (line 105) | Result<List<ESClusterTaskDetailVO>> getClusterPhyTaskDetail(String clu...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/DashboardMetricsManager.java
  type DashboardMetricsManager (line 18) | public interface DashboardMetricsManager {
    method getClusterHealthInfo (line 25) | Result<ClusterPhyHealthMetricsVO> getClusterHealthInfo(Integer project...
    method getTopClusterMetricsInfo (line 33) | Result<List<VariousLineChartMetricsVO>> getTopClusterMetricsInfo(Metri...
    method getTopNodeMetricsInfo (line 35) | Result<List<VariousLineChartMetricsVO>> getTopNodeMetricsInfo(MetricsD...
    method getTopTemplateMetricsInfo (line 37) | Result<List<VariousLineChartMetricsVO>> getTopTemplateMetricsInfo(Metr...
    method getTopIndexMetricsInfo (line 39) | Result<List<VariousLineChartMetricsVO>> getTopIndexMetricsInfo(Metrics...
    method getTopClusterThreadPoolQueueMetricsInfo (line 41) | Result<List<VariousLineChartMetricsVO>> getTopClusterThreadPoolQueueMe...
    method getListClusterMetricsInfo (line 50) | Result<List<MetricListVO>> getListClusterMetricsInfo(MetricsDashboardL...
    method getListNodeMetricsInfo (line 52) | Result<List<MetricListVO>> getListNodeMetricsInfo(MetricsDashboardList...
    method getListTemplateMetricsInfo (line 54) | Result<List<MetricListVO>> getListTemplateMetricsInfo(MetricsDashboard...
    method getListIndexMetricsInfo (line 56) | Result<List<MetricListVO>> getListIndexMetricsInfo(MetricsDashboardLis...
    method dashboardThresholds (line 62) | List<AriusConfigInfoVO> dashboardThresholds();

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/GatewayMetricsManager.java
  type GatewayMetricsManager (line 16) | public interface GatewayMetricsManager {
    method getGatewayMetricsEnums (line 21) | Result<List<String>> getGatewayMetricsEnums(String group);
    method getDslMd5List (line 26) | Result<List<String>> getDslMd5List(Integer projectId, Long startTime, ...
    method getGatewayOverviewMetrics (line 31) | Result<List<GatewayOverviewMetricsVO>> getGatewayOverviewMetrics(Gatew...
    method getGatewayNodeMetrics (line 36) | Result<List<VariousLineChartMetricsVO>> getGatewayNodeMetrics(GatewayN...
    method getMultiGatewayNodesMetrics (line 41) | Result<List<VariousLineChartMetricsVO>> getMultiGatewayNodesMetrics(Mu...
    method getClientNodeMetrics (line 46) | Result<List<VariousLineChartMetricsVO>> getClientNodeMetrics(ClientNod...
    method getGatewayIndexMetrics (line 51) | Result<List<VariousLineChartMetricsVO>> getGatewayIndexMetrics(Gateway...
    method getGatewayAppMetrics (line 56) | Result<List<VariousLineChartMetricsVO>> getGatewayAppMetrics(GatewayPr...
    method getGatewayDslMetrics (line 61) | Result<List<VariousLineChartMetricsVO>> getGatewayDslMetrics(GatewayDs...
    method getClientNodeIdList (line 66) | Result<List<Tuple<String, String>>> getClientNodeIdList(String gateway...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/MetricsDictionaryManager.java
  type MetricsDictionaryManager (line 14) | public interface MetricsDictionaryManager {
    method listByCondition (line 21) | Result<List<MetricsDictionaryVO>> listByCondition(MetricDictionaryDTO ...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/BaseClusterMetricsHandle.java
  class BaseClusterMetricsHandle (line 32) | public abstract class BaseClusterMetricsHandle implements BaseHandle {
    method getClusterPhyRelatedCurveMetrics (line 51) | public Result<List<VariousLineChartMetricsVO>> getClusterPhyRelatedCur...
    method getOtherClusterPhyRelatedMetricsVO (line 83) | public Result<MetricsVO> getOtherClusterPhyRelatedMetricsVO(MetricsClu...
    method checkParamForClusterPhyMetrics (line 100) | private Result<Void> checkParamForClusterPhyMetrics(MetricsClusterPhyD...
    method checkCommonParam (line 115) | private Result<Void> checkCommonParam(MetricsClusterPhyDTO param, Inte...
    method init (line 126) | private void init(MetricsClusterPhyDTO param) {
    method initCommonParam (line 131) | private void initCommonParam(MetricsClusterPhyDTO param) {
    method buildClusterPhyMetricsVO (line 167) | protected MetricsVO buildClusterPhyMetricsVO(MetricsClusterPhyDTO para...
    method buildClusterLogicMetricsVO (line 177) | protected MetricsVO buildClusterLogicMetricsVO(MetricsClusterPhyDTO pa...
    method getAggClusterPhyMetrics (line 187) | protected List<VariousLineChartMetrics> getAggClusterPhyMetrics(Metric...
    method checkSpecialParam (line 197) | protected abstract Result<Void> checkSpecialParam(MetricsClusterPhyDTO...
    method initMetricsClusterPhy (line 204) | protected abstract void initMetricsClusterPhy(MetricsClusterPhyDTO par...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/ClusterLogicOverviewMetricsHandle.java
  class ClusterLogicOverviewMetricsHandle (line 56) | @Component
    method buildClusterLogicOverviewMetrics (line 112) | public ESClusterOverviewMetricsVO buildClusterLogicOverviewMetrics(Met...
    method filterESClusterOverviewMetricsVOByProjectIdAndClusterLogicName (line 139) | private void filterESClusterOverviewMetricsVOByProjectIdAndClusterLogi...
    method optimizeQueryBurrForClusterOverviewMetrics (line 169) | private void optimizeQueryBurrForClusterOverviewMetrics(ESClusterOverv...
    method initESClusterPhyOverviewMetricsVO (line 198) | private ESClusterOverviewMetricsVO initESClusterPhyOverviewMetricsVO(M...
    method aggClusterLogicOverviewMetrics (line 211) | private void aggClusterLogicOverviewMetrics(ESClusterOverviewMetricsVO...
    method getInvalidNodesMetrics (line 311) | private void getInvalidNodesMetrics(ESClusterOverviewMetricsVO metrics) {
    method getBigShardsMetrics (line 324) | private void getBigShardsMetrics(ESClusterOverviewMetricsVO metrics) t...
    method getBigIndicesMetrics (line 329) | private void getBigIndicesMetrics(ESClusterOverviewMetricsVO metrics) ...
    method getMovingShardsMetrics (line 334) | private void getMovingShardsMetrics(ESClusterOverviewMetricsVO metrics...
    method getUnassignedShardsMetrics (line 339) | private void getUnassignedShardsMetrics(ESClusterOverviewMetricsVO met...
    method getPendingTasksMetrics (line 344) | private void getPendingTasksMetrics(ESClusterOverviewMetricsVO metrics...
    method getElapsedTimeMetrics (line 349) | private void getElapsedTimeMetrics(ESClusterOverviewMetricsVO metrics) {
    method getBasicMetrics (line 356) | private void getBasicMetrics(ESClusterOverviewMetricsVO metrics,List<S...
    method buildBasicMetricsFromEsClusterMemInfo (line 370) | private void buildBasicMetricsFromEsClusterMemInfo(ESClusterPhyBasicMe...
    method buildBasicMetricsFromClusterStats (line 391) | private void buildBasicMetricsFromClusterStats(ESClusterPhyBasicMetric...
    method buildBasicMetricsFromEsClusterNodeInfo (line 454) | private void buildBasicMetricsFromEsClusterNodeInfo(ESClusterPhyBasicM...
    method buildBasicMetricsFromEsClusterTemplate (line 482) | private void buildBasicMetricsFromEsClusterTemplate(ESClusterPhyBasicM...
    method aggPercentilesMetrics (line 496) | private void aggPercentilesMetrics(ESClusterOverviewMetricsVO metrics,...
    method aggNodesForDiskUsageGte75PercentMetrics (line 507) | private void aggNodesForDiskUsageGte75PercentMetrics(ESClusterOverview...
    method aggDiskInfoMetrics (line 511) | private void aggDiskInfoMetrics(ESClusterOverviewMetricsVO metrics,lon...
    method aggShardNuMetrics (line 519) | private void aggShardNuMetrics(ESClusterOverviewMetricsVO metrics,long...
    method aggTaskCount (line 529) | private void aggTaskCount(ESClusterOverviewMetricsVO metrics,long clus...
    method aggWriteTpsMetrics (line 538) | private void aggWriteTpsMetrics(ESClusterOverviewMetricsVO metrics,lon...
    method aggReadTpsMetrics (line 547) | private void aggReadTpsMetrics(ESClusterOverviewMetricsVO metrics,long...
    method aggSendTransMetrics (line 556) | private void aggSendTransMetrics(ESClusterOverviewMetricsVO metrics,lo...
    method aggRecvTransMetrics (line 565) | private void aggRecvTransMetrics(ESClusterOverviewMetricsVO metrics,lo...
    method getNodeInfoForDiskUsageGte75Percent (line 578) | private List<NodeInfoForDiskUsageGte75PercentVO> getNodeInfoForDiskUsa...
    method getNonHeapUsedInBytes (line 610) | private long getNonHeapUsedInBytes(ClusterNodeStats clusterNodeStats) {
    method getHeapUsedInBytes (line 620) | private long getHeapUsedInBytes(ClusterNodeStats clusterNodeStats) {
    method getFreeInBytes (line 630) | private long getFreeInBytes(ClusterNodeStats clusterNodeStats) {
    method getAvailableInBytes (line 640) | private long getAvailableInBytes(ClusterNodeStats clusterNodeStats) {
    method getTotalInBytes (line 652) | private long getTotalInBytes(ClusterNodeStats clusterNodeStats) {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/ClusterOverviewMetricsHandle.java
  class ClusterOverviewMetricsHandle (line 94) | @Component
    method buildClusterPhyOverviewMetrics (line 138) | public ESClusterOverviewMetricsVO buildClusterPhyOverviewMetrics(Metri...
    method filterESClusterOverviewMetricsVOByProjectIdAndClusterLogicName (line 164) | private void filterESClusterOverviewMetricsVOByProjectIdAndClusterLogi...
    method optimizeQueryBurrForClusterOverviewMetrics (line 194) | private void optimizeQueryBurrForClusterOverviewMetrics(ESClusterOverv...
    method initESClusterPhyOverviewMetricsVO (line 223) | private ESClusterOverviewMetricsVO initESClusterPhyOverviewMetricsVO(M...
    method aggClusterPhyOverviewMetrics (line 236) | private void aggClusterPhyOverviewMetrics(ESClusterOverviewMetricsVO m...
    method getInvalidNodesMetrics (line 336) | private void getInvalidNodesMetrics(ESClusterOverviewMetricsVO metrics) {
    method getBigShardsMetrics (line 349) | private void getBigShardsMetrics(ESClusterOverviewMetricsVO metrics) t...
    method getBigIndicesMetrics (line 354) | private void getBigIndicesMetrics(ESClusterOverviewMetricsVO metrics) ...
    method getMovingShardsMetrics (line 359) | private void getMovingShardsMetrics(ESClusterOverviewMetricsVO metrics...
    method getUnassignedShardsMetrics (line 364) | private void getUnassignedShardsMetrics(ESClusterOverviewMetricsVO met...
    method getPendingTasksMetrics (line 369) | private void getPendingTasksMetrics(ESClusterOverviewMetricsVO metrics...
    method getElapsedTimeMetrics (line 374) | private void getElapsedTimeMetrics(ESClusterOverviewMetricsVO metrics) {
    method getBasicMetrics (line 383) | private void getBasicMetrics(ESClusterOverviewMetricsVO metrics) {
    method buildBasicMetricsFromEsClusterMemInfo (line 397) | private void buildBasicMetricsFromEsClusterMemInfo(ESClusterPhyBasicMe...
    method buildBasicMetricsFromClusterStats (line 418) | private void buildBasicMetricsFromClusterStats(ESClusterPhyBasicMetric...
    method buildBasicMetricsFromEsClusterNodeInfo (line 470) | private void buildBasicMetricsFromEsClusterNodeInfo(ESClusterPhyBasicM...
    method buildBasicMetricsFromEsClusterTemplate (line 498) | private void buildBasicMetricsFromEsClusterTemplate(ESClusterPhyBasicM...
    method aggPercentilesMetrics (line 505) | private void aggPercentilesMetrics(ESClusterOverviewMetricsVO metrics,...
    method aggNodesForDiskUsageGte75PercentMetrics (line 516) | private void aggNodesForDiskUsageGte75PercentMetrics(ESClusterOverview...
    method aggDiskInfoMetrics (line 520) | private void aggDiskInfoMetrics(ESClusterOverviewMetricsVO metrics,lon...
    method aggShardNuMetrics (line 528) | private void aggShardNuMetrics(ESClusterOverviewMetricsVO metrics,long...
    method aggTaskCount (line 538) | private void aggTaskCount(ESClusterOverviewMetricsVO metrics,long clus...
    method aggWriteTpsMetrics (line 547) | private void aggWriteTpsMetrics(ESClusterOverviewMetricsVO metrics,lon...
    method aggReadTpsMetrics (line 556) | private void aggReadTpsMetrics(ESClusterOverviewMetricsVO metrics,long...
    method aggSendTransMetrics (line 565) | private void aggSendTransMetrics(ESClusterOverviewMetricsVO metrics,lo...
    method aggRecvTransMetrics (line 574) | private void aggRecvTransMetrics(ESClusterOverviewMetricsVO metrics,lo...
    method getNodeInfoForDiskUsageGte75Percent (line 587) | private List<NodeInfoForDiskUsageGte75PercentVO> getNodeInfoForDiskUsa...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/handler/PhyIndicesClusterMetricsHandler.java
  class PhyIndicesClusterMetricsHandler (line 28) | @Service("clusterPhyIndicesMetricsHandler")
    method checkSpecialParam (line 34) | @Override
    method getAggClusterPhyMetrics (line 45) | @Override
    method initMetricsClusterPhy (line 65) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/handler/PhyNodeClusterMetricsHandler.java
  class PhyNodeClusterMetricsHandler (line 26) | @Service("clusterPhyNodeMetricsHandler")
    method checkSpecialParam (line 31) | @Override
    method getAggClusterPhyMetrics (line 42) | @Override
    method initMetricsClusterPhy (line 47) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/handler/PhyNodesTaskClusterMetricsHandler.java
  class PhyNodesTaskClusterMetricsHandler (line 26) | @Service("clusterPhyNodesTaskMetricsHandler")
    method checkSpecialParam (line 31) | @Override
    method getAggClusterPhyMetrics (line 42) | @Override
    method initMetricsClusterPhy (line 47) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/handler/PhyOverviewClusterMetricsHandler.java
  class PhyOverviewClusterMetricsHandler (line 23) | @Service("clusterPhyOverviewMetricsHandler")
    method checkSpecialParam (line 31) | @Override
    method initMetricsClusterPhy (line 42) | @Override
    method buildClusterPhyMetricsVO (line 51) | @Override
    method buildClusterLogicMetricsVO (line 56) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/handler/PhyTemplateClusterMetricsHandler.java
  class PhyTemplateClusterMetricsHandler (line 37) | @Service("clusterPhyTemplateMetricsHandler")
    method checkSpecialParam (line 50) | @Override
    method getAggClusterPhyMetrics (line 61) | @Override
    method initMetricsClusterPhy (line 84) | @Override
    method convertTemplateIdToName (line 101) | private void convertTemplateIdToName(List<VariousLineChartMetrics> agg...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/impl/ClusterPhyMetricsManagerImpl.java
  class ClusterPhyMetricsManagerImpl (line 48) | @Component
    method getMetricsCode2TypeMap (line 82) | @Override
    method getClusterMetricsByMetricsType (line 97) | @Override
    method getMultiClusterMetrics (line 152) | @Override
    method getMultiClusterIndicesMetrics (line 182) | @Override
    method getMultiClusterTemplatesMetrics (line 208) | @Override
    method listConfigMetricsByCondition (line 234) | @Override
    method updateConfigMetricsByCondition (line 242) | @Override
    method getClusterPhyTaskDetail (line 255) | @Override
    method buildItemsUnderClusterLogic (line 272) | private List<String> buildItemsUnderClusterLogic(ClusterPhyTypeMetrics...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/impl/DashboardMetricsManagerImpl.java
  class DashboardMetricsManagerImpl (line 48) | @Component
    method getTopClusterMetricsInfo (line 65) | @Override
    method getTopNodeMetricsInfo (line 73) | @Override
    method getTopTemplateMetricsInfo (line 81) | @Override
    method getTopIndexMetricsInfo (line 89) | @Override
    method getTopClusterThreadPoolQueueMetricsInfo (line 97) | @Override
    method getListClusterMetricsInfo (line 105) | @Override
    method getListNodeMetricsInfo (line 111) | @Override
    method getListTemplateMetricsInfo (line 117) | @Override
    method getListIndexMetricsInfo (line 123) | @Override
    method dashboardThresholds (line 129) | @Override
    method getClusterHealthInfo (line 135) | @Override
    method commonGetTopInfoByOneLevelType (line 168) | private Result<List<VariousLineChartMetricsVO>> commonGetTopInfoByOneL...
    method commonGetListInfoByOneLevelType (line 191) | private Result<List<MetricListVO>> commonGetListInfoByOneLevelType(Met...
    method filterBySystemConfiguration (line 224) | private void filterBySystemConfiguration(List<MetricList> listMetrics,...
    method judgeMetricListContent (line 250) | private boolean judgeMetricListContent(Double metricValue, Double conf...
    method getDashBoardMetricThresholdValues (line 273) | @NotNull
    method checkCommonParam (line 307) | private Result<Void> checkCommonParam(String oneLevelType, BaseDTO par...
    method conversionType (line 349) | private <R> R conversionType(String value, Function<String, R> convert...
    method setClusterIndexCount (line 363) | private void setClusterIndexCount(List<MetricList> listMetrics, String...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/impl/GatewayMetricsManagerImpl.java
  class GatewayMetricsManagerImpl (line 38) | @Component
    method getGatewayMetricsEnums (line 60) | @Override
    method getDslMd5List (line 65) | @Override
    method getGatewayOverviewMetrics (line 82) | @Override
    method getMultiGatewayNodesMetrics (line 148) | @Override
    method getClientNodeMetrics (line 172) | @Override
    method getGatewayNodeMetrics (line 191) | @Override
    method getGatewayIndexMetrics (line 209) | @Override
    method getGatewayAppMetrics (line 226) | @Override
    method getGatewayDslMetrics (line 246) | @Override
    method getClientNodeIdList (line 264) | @Override
    method fillSortData (line 292) | private void fillSortData(List<VariousLineChartMetrics> result, List<S...
    method getTimeRange (line 349) | private List<Long> getTimeRange(Long startTime, Long endTime) {
    method sortByList (line 369) | private void sortByList(List<String> orderList, List<GatewayOverviewMe...
    method commonGetTopInfoByOneLevelType (line 381) | private <T extends GatewayMetricsDTO> List<VariousLineChartMetrics> co...
    method commonGetTopInfoByOneLevelType (line 410) | private <T extends GatewayMetricsDTO> List<VariousLineChartMetrics> co...
    method getEnumByTypeAndGroupOptional (line 430) | private Optional<GatewayMetricsTypeEnum> getEnumByTypeAndGroupOptional...
    method getProjectIdIsNotAdmin (line 436) | private Integer getProjectIdIsNotAdmin(Integer projectId) {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/impl/MetricsDictionaryManagerImpl.java
  class MetricsDictionaryManagerImpl (line 21) | @Component
    method listByCondition (line 27) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/AbstractPageSearchHandle.java
  class AbstractPageSearchHandle (line 18) | public abstract class AbstractPageSearchHandle<T extends PageDTO, R> imp...
    method doPage (line 29) | public PaginationResult<R> doPage(T condition, Integer projectId) {
    method baseCheckCondition (line 47) | protected Result<Boolean> baseCheckCondition(T condition, Integer proj...
    method checkCondition (line 64) | protected abstract Result<Boolean> checkCondition(T condition, Integer...
    method initCondition (line 72) | protected abstract void initCondition(T condition, Integer projectId);
    method buildPageData (line 81) | protected abstract PaginationResult<R> buildPageData(T condition, Inte...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/ClusterLogicPageSearchHandle.java
  class ClusterLogicPageSearchHandle (line 34) | @Component
    method setClusterLogicBasicInfo (line 59) | private void setClusterLogicBasicInfo(ClusterLogicVO clusterLogicVO) {
    method setDiskUsedInfo (line 66) | private void setDiskUsedInfo(ClusterLogicVO clusterLogicVO) {
    method checkCondition (line 85) | @Override
    method initCondition (line 112) | @Override
    method buildPageData (line 125) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/ClusterPhyPageSearchHandle.java
  class ClusterPhyPageSearchHandle (line 36) | @Component
    method init (line 53) | @PostConstruct
    method checkCondition (line 57) | @Override
    method initCondition (line 77) | @Override
    method buildPageData (line 111) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/DslTemplatePageSearchHandle.java
  class DslTemplatePageSearchHandle (line 27) | @Component
    method checkCondition (line 33) | @Override
    method initCondition (line 44) | @Override
    method buildPageData (line 49) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/GatewayJoinPageSearchHandle.java
  class GatewayJoinPageSearchHandle (line 27) | @Component
    method checkCondition (line 36) | @Override
    method initCondition (line 50) | @Override
    method buildPageData (line 55) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/IndexPageSearchHandle.java
  class IndexPageSearchHandle (line 24) | @Component
    method checkCondition (line 36) | @Override
    method initCondition (line 57) | @Override
    method buildPageData (line 77) | @Override
    method batchFetchIndexAliasesAndBlockInfo (line 117) | private List<IndexCatCell> batchFetchIndexAliasesAndBlockInfo(List<Ind...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/OperateRecordPageSearchHandle.java
  class OperateRecordPageSearchHandle (line 27) | @Component
    method checkCondition (line 34) | @Override
    method initCondition (line 40) | @Override
    method buildPageData (line 53) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/QuickCommandIndicesDistributionPageSearchHandle.java
  class QuickCommandIndicesDistributionPageSearchHandle (line 27) | @Component
    method checkCondition (line 34) | @Override
    method initCondition (line 42) | @Override
    method buildPageData (line 57) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/QuickCommandShardsDistributionPageSearchHandle.java
  class QuickCommandShardsDistributionPageSearchHandle (line 26) | @Component
    method checkCondition (line 33) | @Override
    method initCondition (line 41) | @Override
    method buildPageData (line 56) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/TaskPageSearchHandle.java
  class TaskPageSearchHandle (line 17) | @Component
    method checkCondition (line 22) | @Override
    method initCondition (line 27) | @Override
    method buildPageData (line 32) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/TemplateLogicPageSearchHandle.java
  class TemplateLogicPageSearchHandle (line 31) | @Component
    method checkCondition (line 45) | @Override
    method initCondition (line 65) | @Override
    method buildPageData (line 73) | @Override
    method buildOtherInfo (line 91) | private List<ConsoleTemplateVO> buildOtherInfo(List<IndexTemplate> ind...
    method setTemplateClusterName (line 103) | private void setTemplateClusterName(List<ConsoleTemplateVO> consoleTem...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/TemplateSrvPageSearchHandle.java
  class TemplateSrvPageSearchHandle (line 47) | @Component
    method checkCondition (line 70) | @Override
    method initCondition (line 81) | @Override
    method buildPageData (line 86) | @Override
    method buildExtraAttribute (line 118) | private List<TemplateWithSrvVO> buildExtraAttribute(List<IndexTemplate...
    method buildTemplateWithSrvVO (line 150) | private TemplateWithSrvVO buildTemplateWithSrvVO(IndexTemplate templat...
    method filterFullDataByPage (line 200) | <T> List<T> filterFullDataByPage(List<T> source, PageDTO condition) {
    method getLastPageSize (line 214) | long getLastPageSize(PageDTO condition, Integer pageSizeFromDb) {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/ESUserManager.java
  type ESUserManager (line 19) | public interface ESUserManager {
    method listESUsersByProjectId (line 28) | Result<List<ESUserVO>> listESUsersByProjectId(String projectIdStr, Htt...
    method registerESUser (line 38) | Result<Integer> registerESUser(ESUserDTO appDTO, Integer projectId, St...
    method editESUser (line 47) | Result<Void> editESUser(ESUserDTO esUserDTO, String operator);
    method setDefaultDisplay (line 57) | Result<Void> setDefaultDisplay(int esUserName, int projectId, String o...
    method deleteESUserByProject (line 67) | Result<Void> deleteESUserByProject(int esUser, int projectId, String o...
    method deleteAllESUserByProject (line 76) | Result<Void> deleteAllESUserByProject(int projectId, String operator);
    method verifyAppCode (line 84) | Result<Void> verifyAppCode(Integer esUserName, String verifyCode);
    method get (line 92) | Result<ConsoleESUserVO> get(Integer esUser);
    method getNoCodeESUser (line 101) | Result<List<ConsoleESUserWithVerifyCodeVO>> getNoCodeESUser(Integer pr...
    method listClusterByAppInPrimitiveType (line 109) | Result<List<String>> listClusterByAppInPrimitiveType(Integer projectId);
    method listClusterByAppInClusterType (line 117) | Result<List<String>> listClusterByAppInClusterType(Integer projectId);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/LoginManager.java
  type LoginManager (line 18) | public interface LoginManager {
    method verifyLogin (line 27) | Result<UserBriefVO> verifyLogin(AccountLoginDTO loginDTO, HttpServletR...
    method logout (line 36) | Result<Boolean> logout(HttpServletRequest request, HttpServletResponse...
    method interceptorCheck (line 48) | boolean interceptorCheck(HttpServletRequest request, HttpServletRespon...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/OperateRecordManager.java
  type OperateRecordManager (line 12) | public interface OperateRecordManager {
    method pageOplogPage (line 20) | PaginationResult<OperateRecordVO> pageOplogPage(OperateRecordDTO query...
    method getOplogDetailByOplogId (line 29) | Result<OperateRecordVO> getOplogDetailByOplogId(Integer id);
    method listSenseOperateRecord (line 36) | Result<List<String>> listSenseOperateRecord(OperateRecordDTO queryDTO,...
    method updateSenseOperateRecord (line 45) | Result<Integer> updateSenseOperateRecord(OperateRecordDTO operateRecor...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/PermissionExtendManager.java
  type PermissionExtendManager (line 12) | public interface PermissionExtendManager {
    method buildPermissionTreeByResourceOwn (line 18) | Result<PermissionTreeVO> buildPermissionTreeByResourceOwn();

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/ProjectClusterLogicAuthManager.java
  type ProjectClusterLogicAuthManager (line 11) | public interface ProjectClusterLogicAuthManager {
    method getByClusterLogicListAndProjectId (line 19) | List<ProjectClusterLogicAuth> getByClusterLogicListAndProjectId(Intege...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/ProjectConfigManager.java
  type ProjectConfigManager (line 12) | public interface ProjectConfigManager {
    method get (line 19) | Result<ProjectConfigVO> get(int projectId);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/ProjectExtendManager.java
  type ProjectExtendManager (line 20) | public interface ProjectExtendManager {
    method createProject (line 29) | Result<ProjectExtendVO> createProject(ProjectExtendSaveDTO saveDTO, St...
    method getProjectDetailByProjectId (line 37) | Result<ProjectExtendVO> getProjectDetailByProjectId(Integer projectId);
    method getProjectBriefList (line 44) | Result<List<ProjectBriefExtendVO>> getProjectBriefList();
    method deleteProjectByProjectId (line 53) | Result<Void> deleteProjectByProjectId(Integer projectId, String operat...
    method getProjectBriefByProjectId (line 61) | Result<ProjectBriefExtendVO> getProjectBriefByProjectId(Integer projec...
    method getProjectPage (line 70) | PagingResult<ProjectExtendVO> getProjectPage(ProjectQueryExtendDTO que...
    method updateProject (line 78) | Result<Void> updateProject(ProjectExtendSaveDTO saveDTO, String operat...
    method changeProjectStatus (line 86) | Result<Void> changeProjectStatus(Integer projectId, String operator);
    method addProjectUser (line 95) | Result<Void> addProjectUser(Integer projectId, List<Integer> userIdLis...
    method delProjectUser (line 104) | Result<Void> delProjectUser(Integer projectId, Integer userId, String ...
    method addProjectOwner (line 113) | Result<Void> addProjectOwner(Integer projectId, List<Integer> ownerIdL...
    method delProjectOwner (line 122) | Result<Void> delProjectOwner(Integer projectId, Integer ownerId, Strin...
    method checkBeforeDelete (line 130) | Result<ProjectDeleteCheckVO> checkBeforeDelete(Integer projectId);
    method checkProjectExist (line 137) | Result<Void> checkProjectExist(Integer projectId);
    method unassignedByProjectId (line 146) | Result<List<UserBriefVO>> unassignedByProjectId(Integer projectId, Boo...
    method getProjectBriefByUserId (line 154) | Result<List<ProjectBriefExtendVO>> getProjectBriefByUserId(Integer use...
    method listUserListByProjectId (line 162) | Result<List<UserBriefVO>> listUserListByProjectId(Integer projectId);
    method checkResourcesByProjectId (line 176) | Result<Void> checkResourcesByProjectId(Integer projectId);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/ProjectLogicTemplateAuthManager.java
  type ProjectLogicTemplateAuthManager (line 12) | public interface ProjectLogicTemplateAuthManager {
    method updateTemplateAuth (line 21) | Result<Void> updateTemplateAuth(ProjectTemplateAuthDTO authDTO, String...
    method addTemplateAuth (line 31) | Result<Void> addTemplateAuth(ProjectTemplateAuthDTO authDTO, String op...
    method deleteTemplateAuth (line 41) | Result<Void> deleteTemplateAuth(Long authId, String operator, Integer ...
    method deleteRedundancyTemplateAuths (line 49) | Result<Void> deleteRedundancyTemplateAuths(boolean delete);
    method getProjectTemplateAuths (line 57) | Result<List<ProjectTemplateAuthVO>> getProjectTemplateAuths(Integer pr...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/RoleExtendManager.java
  type RoleExtendManager (line 20) | public interface RoleExtendManager {
    method deleteRoleByRoleId (line 28) | Result<Void> deleteRoleByRoleId(Integer id, HttpServletRequest request);
    method getRoleDetailByRoleId (line 35) | Result<RoleExtendVO> getRoleDetailByRoleId(Integer roleId);
    method getRolePage (line 43) | PagingResult<RoleExtendVO> getRolePage(RoleQueryDTO queryDTO);
    method createRole (line 50) | Result<Void> createRole(RoleSaveDTO saveDTO, HttpServletRequest request);
    method deleteUserFromRole (line 58) | Result<Void> deleteUserFromRole(Integer roleId, Integer userId, HttpSe...
    method updateRole (line 65) | Result<Void> updateRole(RoleSaveDTO saveDTO, HttpServletRequest request);
    method assignRoles (line 72) | Result<Void> assignRoles(RoleAssignDTO assignDTO, HttpServletRequest r...
    method getAssignInfoByRoleId (line 79) | Result<List<AssignInfoVO>> getAssignInfoByRoleId(Integer roleId);
    method getRoleBriefListByRoleName (line 86) | Result<List<RoleBriefVO>> getRoleBriefListByRoleName(String roleName);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/UserExtendManager.java
  type UserExtendManager (line 23) | public interface UserExtendManager {
    method addUser (line 31) | Result<Void> addUser(UserDTO param, String operator);
    method check (line 39) | Result<Void> check(Integer type, String value);
    method getUserPage (line 47) | PagingResult<UserExtendVO> getUserPage(UserQueryExtendDTO queryDTO);
    method getUserBriefPage (line 54) | PagingResult<UserBriefVO> getUserBriefPage(UserBriefQueryDTO queryDTO);
    method getUserDetailByUserId (line 64) | Result<UserWithPwVO> getUserDetailByUserId(Integer userId, Integer pro...
    method deleteByUserId (line 73) | Result<Void> deleteByUserId(Integer userId, Integer projectId, String ...
    method getUserBriefByUserName (line 80) | Result<UserBriefVO> getUserBriefByUserName(String userName);
    method getUserByUserName (line 87) | Result<User> getUserByUserName(String userName);
    method getUserBriefListByUserIdList (line 94) | Result<List<UserBriefVO>> getUserBriefListByUserIdList(List<Integer> u...
    method getUserBriefListByDeptId (line 101) | Result<List<UserBriefVO>> getUserBriefListByDeptId(Integer deptId);
    method getAssignDataByUserId (line 108) | Result<List<AssignInfoVO>> getAssignDataByUserId(Integer userId);
    method getUserBriefListByRoleId (line 115) | Result<List<UserBriefVO>> getUserBriefListByRoleId(Integer roleId);
    method getUserBriefListByUsernameOrRealName (line 123) | Result<List<UserBriefVO>> getUserBriefListByUsernameOrRealName(String ...
    method getAllUserBriefListOrderByCreateTime (line 130) | Result<List<UserBriefVO>> getAllUserBriefListOrderByCreateTime(boolean...
    method getUserIdListByUsernameOrRealName (line 137) | Result<List<Integer>> getUserIdListByUsernameOrRealName(String name);
    method getAllUserBriefList (line 143) | Result<List<UserBriefVO>> getAllUserBriefList();
    method editUser (line 151) | Result<Void> editUser(UserExtendDTO userDTO, String operator);
    method getUserDetailByUserIds (line 153) | Result<List<UserVO>> getUserDetailByUserIds(List<Integer> ids);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/ESUserManagerImpl.java
  class ESUserManagerImpl (line 59) | @Component
    method listESUsersByProjectId (line 83) | @Override
    method registerESUser (line 120) | @Override
    method setDefaultDisplay (line 156) | @Override
    method editESUser (line 196) | @Override
    method deleteESUserByProject (line 240) | @Override
    method deleteAllESUserByProject (line 277) | @Override
    method verifyAppCode (line 298) | @Override
    method get (line 303) | @Override
    method getNoCodeESUser (line 313) | @Override
    method saveOperateRecord (line 329) | private void saveOperateRecord(String content, Integer projectId, Stri...
    method listClusterByAppInPrimitiveType (line 339) | @Override
    method listClusterByAppInClusterType (line 364) | @Override
    method unBindDefaultDisplay (line 401) | private Result<Void> unBindDefaultDisplay(int esUserName, int projectI...
    method checkClusterAuthAndSetCluster (line 426) | private Result<Void> checkClusterAuthAndSetCluster(ESUserDTO esUserDTO) {
    method initESUser (line 475) | private static void initESUser(ESUserDTO appDTO, Integer projectId) {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/LoginManagerImpl.java
  class LoginManagerImpl (line 39) | @Component
    method verifyLogin (line 58) | @Override
    method logout (line 79) | @Override
    method interceptorCheck (line 92) | @Override
    method addCookieByKnowSearch (line 148) | private void addCookieByKnowSearch(String userName, HttpServletRespons...
    method hasLoginValidExtend (line 165) | private boolean hasLoginValidExtend(String userName, HttpServletReques...
    method getRequestByHead (line 183) | private TupleThree</*username*/String, /*userId*/Integer, /*projectId*...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/OperateRecordManagerImpl.java
  class OperateRecordManagerImpl (line 44) | @Component
    method scheduledDeletionOldOperateRecord (line 63) | @Scheduled(cron = "0 0 1 * * ?")
    method getSaveTime (line 82) | private Date getSaveTime() {
    method pageOplogPage (line 101) | @Override
    method getOplogDetailByOplogId (line 123) | @Override
    method listSenseOperateRecord (line 136) | @Override
    method updateSenseOperateRecord (line 161) | @Override
    method buildCommonOperateRecordDTO (line 179) | private void buildCommonOperateRecordDTO(Integer projectId, OperateRec...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/PermissionExtendManagerImpl.java
  class PermissionExtendManagerImpl (line 17) | @Component
    method buildPermissionTreeByResourceOwn (line 27) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/ProjectClusterLogicAuthManagerImpl.java
  class ProjectClusterLogicAuthManagerImpl (line 21) | @Component
    method getByClusterLogicListAndProjectId (line 29) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/ProjectConfigManagerImpl.java
  class ProjectConfigManagerImpl (line 17) | @Component
    method get (line 27) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/ProjectExtendManagerImpl.java
  class ProjectExtendManagerImpl (line 86) | @Component
    method checkResourcesByProjectId (line 123) | @Override
    method createProject (line 146) | @Override
    method addOwnerAndUsers (line 209) | private void addOwnerAndUsers(String operator, List<Integer> ownerIdLi...
    method getProjectDetailByProjectId (line 223) | @Override
    method buildProjectExtendVO (line 245) | private void buildProjectExtendVO(ProjectExtendVO projectExtendVO, Lis...
    method getProjectBriefList (line 272) | @Override
    method deleteProjectByProjectId (line 280) | @Override
    method getProjectBriefByProjectId (line 314) | @Override
    method getProjectPage (line 334) | @Override
    method updateProject (line 410) | @Override
    method operationProjectMemberOrOwner (line 444) | private Result<Void> operationProjectMemberOrOwner(String operator, Pr...
    method changeProjectStatus (line 477) | @Override
    method addProjectUser (line 494) | @Override
    method delProjectUser (line 518) | @Override
    method addProjectOwner (line 547) | @Override
    method delProjectOwner (line 573) | @Override
    method checkBeforeDelete (line 602) | @Override
    method checkProjectExist (line 613) | @Override
    method unassignedByProjectId (line 629) | @Override
    method listUserListByProjectId (line 658) | @Override
    method getProjectBriefByUserId (line 672) | @Override
    method getListResult (line 686) | @NotNull
    method createESUserDefault (line 703) | private void createESUserDefault(ProjectVO data, String operator) {
    method checkProject (line 720) | private Result<Void> checkProject(Integer projectId, List<Integer> use...
    method projectOwnerOrMemberChangeStr (line 766) | private TupleTwo</*beforeOwnerUserName*/String, /*afterOwnerUserName*/...
    method recordProjectOwnerOrUserChange (line 783) | private void recordProjectOwnerOrUserChange(TupleTwo</*beforeOwnerOrUs...
    method getTemplateIndexVO (line 800) | private ClusterLogicTemplateIndexDetailDTO getTemplateIndexVO(ClusterL...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/ProjectLogicTemplateAuthManagerImpl.java
  class ProjectLogicTemplateAuthManagerImpl (line 30) | @Component
    method addTemplateAuth (line 48) | @Override
    method deleteRedundancyTemplateAuths (line 71) | @Override
    method getProjectTemplateAuths (line 82) | @Override
    method deleteTemplateAuth (line 98) | @Override
    method updateTemplateAuth (line 114) | @Override
    method fillTemplateAuthVO (line 162) | private void fillTemplateAuthVO(List<ProjectTemplateAuthVO> templateAu...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/RoleExtendManagerImpl.java
  class RoleExtendManagerImpl (line 47) | @Component
    method deleteRoleByRoleId (line 65) | @Override
    method getRoleDetailByRoleId (line 88) | @Override
    method getRolePage (line 99) | @Override
    method createRole (line 120) | @Override
    method deleteUserFromRole (line 132) | @Override
    method updateRole (line 153) | @Override
    method assignRoles (line 163) | @Override
    method getAssignInfoByRoleId (line 198) | @Override
    method getRoleBriefListByRoleName (line 203) | @Override
    method saveOperateRecord (line 208) | private void saveOperateRecord(String operator, String content, Operat...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/UserExtendManagerImpl.java
  class UserExtendManagerImpl (line 53) | @Component
    method check (line 83) | @Override
    method getUserPage (line 98) | @Override
    method getUserBriefPage (line 202) | @Override
    method getUserDetailByUserId (line 216) | @Override
    method deleteByUserId (line 264) | @Override
    method getUserBriefByUserName (line 310) | @Override
    method getUserByUserName (line 322) | @Override
    method getUserBriefListByUserIdList (line 333) | @Override
    method getUserBriefListByDeptId (line 344) | @Override
    method getAssignDataByUserId (line 356) | @Override
    method getUserBriefListByRoleId (line 371) | @Override
    method getUserBriefListByUsernameOrRealName (line 382) | @Override
    method getAllUserBriefListOrderByCreateTime (line 393) | @Override
    method getUserIdListByUsernameOrRealName (line 404) | @Override
    method getAllUserBriefList (line 414) | @Override
    method editUser (line 426) | @Override
    method getUserDetailByUserIds (line 475) | @Override
    method addUser (line 487) | @Override
    method saveOperateRecord (line 500) | private void saveOperateRecord(String operator, Integer bizId, String ...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/security/resource/ResourceExtendManager.java
  class ResourceExtendManager (line 18) | @Component
    method getResourcePage (line 31) | @Override
    method getResourceList (line 44) | @Override
    method getResourceCnt (line 57) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/OpTaskHandler.java
  type OpTaskHandler (line 12) | public interface OpTaskHandler extends BaseHandle {
    method addTask (line 22) | Result<OpTask> addTask(OpTask opTask) throws NotFindSubclassException;
    method existUnClosedTask (line 31) | boolean existUnClosedTask(String key, Integer type);
    method process (line 41) | Result<Void> process(OpTask opTask, Integer step, String status, Strin...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/OpTaskManager.java
  type OpTaskManager (line 20) | public interface OpTaskManager {
    method addTask (line 30) | Result<OpTask> addTask(OpTaskDTO opTaskDTO, Integer projectId) throws ...
    method existUnClosedTask (line 38) | boolean existUnClosedTask(Integer key, Integer type) throws NotFindSub...
    method insert (line 45) | void insert(OpTask task);
    method updateTask (line 52) | void updateTask(OpTask task);
    method getById (line 60) | Result<OpTask> getById(Integer id);
    method list (line 67) | Result<List<OpTask>> list();
    method processTask (line 75) | Result<Void> processTask(OpTaskProcessDTO processDTO) throws NotFindSu...
    method getLatestTask (line 84) | Result<OpTask> getLatestTask(String businessKey, Integer taskType);
    method getPendingTaskByType (line 92) | List<OpTask> getPendingTaskByType(Integer taskType);
    method getSuccessTaskByType (line 99) | List<OpTask> getSuccessTaskByType(Integer taskType);
    method pageGetTasks (line 107) | PaginationResult<OpTaskVO> pageGetTasks(Integer projectId, OpTaskQuery...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterBaseContent.java
  class ClusterBaseContent (line 10) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterConfigRestartContent.java
  class ClusterConfigRestartContent (line 14) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterHostContent.java
  class ClusterHostContent (line 13) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterIndecreaseDockerContent.java
  class ClusterIndecreaseDockerContent (line 15) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterIndecreaseHostContent.java
  class ClusterIndecreaseHostContent (line 14) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterNewDockerContent.java
  class ClusterNewDockerContent (line 14) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterNewHostContent.java
  class ClusterNewHostContent (line 13) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterOfflineContent.java
  class ClusterOfflineContent (line 11) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterRestartContent.java
  class ClusterRestartContent (line 11) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterUpdateContent.java
  class ClusterUpdateContent (line 10) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/ecm/EcmTaskDetailManager.java
  type EcmTaskDetailManager (line 16) | public interface EcmTaskDetailManager {
    method replace (line 17) | int replace(EcmTaskDetail ecmTaskDetail);
    method saveEcmTaskDetail (line 24) | Result<Long> saveEcmTaskDetail(EcmTaskDetail esEcmTaskDetail);
    method updateByRoleAndOrderTaskId (line 31) | Result<Integer> updateByRoleAndOrderTaskId(Long workOrderTaskId, Strin...
    method getEcmTaskDetailInOrder (line 38) | List<EcmTaskDetail> getEcmTaskDetailInOrder(Long workOrderTaskId);
    method getByOrderIdAndRoleAndTaskId (line 46) | List<EcmTaskDetail> getByOrderIdAndRoleAndTaskId(Integer workOrderTask...
    method getTaskDetailLog (line 54) | Result<EcmSubTaskLog> getTaskDetailLog(Long detailId, String operator);
    method getEcmTaskDetailInfo (line 61) | Result<EcmTaskDetailProgress> getEcmTaskDetailInfo(Long workOrderTaskI...
    method buildInitialEcmTaskDetail (line 68) | EcmTaskDetailProgress buildInitialEcmTaskDetail(Long workOrderTaskId);
    method editEcmTaskDetail (line 75) | Result<Long> editEcmTaskDetail(EcmTaskDetail buildEcmTaskDetail);
    method getByWorkOderIdAndHostName (line 83) | EcmTaskDetail getByWorkOderIdAndHostName(Long workOrderId, String host...
    method deleteEcmTaskDetailsByTaskOrder (line 88) | Result<Void> deleteEcmTaskDetailsByTaskOrder(Long workOrderTaskId);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/ecm/EcmTaskManager.java
  type EcmTaskManager (line 21) | public interface EcmTaskManager {
    method existUnClosedEcmTask (line 27) | boolean existUnClosedEcmTask(Long phyClusterId);
    method saveEcmTask (line 34) | Result<Long> saveEcmTask(EcmTaskDTO ecmTaskDTO);
    method listEcmTask (line 41) | List<EcmTask> listEcmTask();
    method listRunningEcmTask (line 47) | List<EcmTask> listRunningEcmTask();
    method getEcmTaskBasicByTaskId (line 54) | Result<EcmTaskBasic> getEcmTaskBasicByTaskId(Long taskId);
    method savaAndActionEcmTask (line 62) | Result<EcmOperateAppBase> savaAndActionEcmTask(Long taskId, String ope...
    method retryClusterEcmTask (line 70) | Result<Void> retryClusterEcmTask(Long taskId, String operator);
    method actionClusterEcmTask (line 78) | Result<EcmOperateAppBase> actionClusterEcmTask(Long taskId, String ope...
    method actionClusterEcmTask (line 88) | Result<EcmOperateAppBase> actionClusterEcmTask(Long taskId, EcmActionE...
    method cancelClusterEcmTask (line 97) | Result<Void> cancelClusterEcmTask(Long taskId, String operator);
    method pauseClusterEcmTask (line 105) | Result<Void> pauseClusterEcmTask(Long taskId, String operator);
    method getEcmTask (line 112) | EcmTask getEcmTask(Long id);
    method refreshEcmTask (line 119) | EcmTaskStatusEnum refreshEcmTask(EcmTask ecmTask) throws AdminTaskExce...
    method updateEcmTask (line 126) | boolean updateEcmTask(EcmTask ecmTask);
    method getRunningEcmTaskByClusterId (line 133) | EcmTaskPO getRunningEcmTaskByClusterId(Integer physicClusterId);
    method actionClusterHostEcmTask (line 143) | Result<Void> actionClusterHostEcmTask(Long taskId, EcmActionEnum ecmAc...
    method getUsefulEcmTaskByClusterName (line 150) | Result<EcmTask> getUsefulEcmTaskByClusterName(String clusterName);
    method getEcmTaskOrderDetailInfo (line 157) | Result<String> getEcmTaskOrderDetailInfo(String cluster);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/ecm/impl/EcmTaskDetailManagerImpl.java
  class EcmTaskDetailManagerImpl (line 43) | @Service
    method replace (line 62) | @Override
    method saveEcmTaskDetail (line 67) | @Override
    method updateByRoleAndOrderTaskId (line 75) | @Override
    method getEcmTaskDetailInOrder (line 81) | @Override
    method getByOrderIdAndRoleAndTaskId (line 86) | @Override
    method getEcmTaskDetailInfo (line 96) | @Override
    method getTaskDetailLog (line 148) | @Override
    method getByWorkOderIdAndHostName (line 170) | @Override
    method deleteEcmTaskDetailsByTaskOrder (line 176) | @Override
    method editEcmTaskDetail (line 187) | @Override
    method buildInitialEcmTaskDetail (line 193) | @Override
    method getClusterHostNamesFromDbMap (line 246) | private Map</*角色属性*/String, /*角色对应的主机ip列表*/List<String>> getClusterHos...
    method initEcmTaskDetailParam (line 274) | private void initEcmTaskDetailParam(EcmTaskDetailPO ecmTaskDetailPo) {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/ecm/impl/EcmTaskManagerImpl.java
  class EcmTaskManagerImpl (line 99) | @Service
    method existUnClosedEcmTask (line 142) | @Override
    method saveEcmTask (line 148) | @Override
    method listEcmTask (line 174) | @Override
    method listRunningEcmTask (line 179) | @Override
    method getEcmTaskBasicByTaskId (line 184) | @Override
    method savaAndActionEcmTask (line 229) | @Override
    method retryClusterEcmTask (line 266) | @Override
    method actionClusterEcmTask (line 295) | @Override
    method actionClusterEcmTask (line 343) | @Override
    method cancelClusterEcmTask (line 384) | @Override
    method pauseClusterEcmTask (line 408) | @Override
    method getEcmTask (line 435) | @Override
    method updateEcmTask (line 440) | @Override
    method getRunningEcmTaskByClusterId (line 449) | @Override
    method actionClusterHostEcmTask (line 454) | @Override
    method getUsefulEcmTaskByClusterName (line 476) | @Override
    method getEcmTaskOrderDetailInfo (line 486) | @Override
    method refreshEcmTask (line 510) | @Override
    method actionEcmTaskForMasterNode (line 545) | private Result<EcmOperateAppBase> actionEcmTaskForMasterNode(List<EcmP...
    method runEcmTask (line 573) | private Result<EcmOperateAppBase> runEcmTask(EcmParamBase ecmParamBase...
    method doRefreshEcmTask (line 602) | private EcmTaskStatusEnum doRefreshEcmTask(EcmParamBase ecmParam, EcmT...
    method isTaskActed (line 639) | private boolean isTaskActed(EcmTaskStatusEnum ecmTaskStatusEnum, EcmPa...
    method updateTaskDetailByTaskStatus (line 657) | private void updateTaskDetailByTaskStatus(EcmParamBase ecmParam, List<...
    method postProcess (line 686) | private Result<Void> postProcess(EcmTask ecmTask, EcmTaskStatusEnum me...
    method saveOrEditHostInfoFromEcmTask (line 721) | private void saveOrEditHostInfoFromEcmTask(EcmTask ecmTask,
    method addHostInfoFromTaskOrder (line 740) | private void addHostInfoFromTaskOrder(EcmTask ecmTask) throws AdminTas...
    method updateClusterAddressWhenIsValid (line 770) | private Result<Void> updateClusterAddressWhenIsValid(EcmTask ecmTask, ...
    method delayCollectNodeSettingsTask (line 791) | private void delayCollectNodeSettingsTask(List<EcmParamBase> ecmParamB...
    method hasValidEsClusterReadAndWriteAddress (line 802) | private boolean hasValidEsClusterReadAndWriteAddress(EcmTask ecmTask, ...
    method getClusterPhyNameFromEcmParamBases (line 814) | private String getClusterPhyNameFromEcmParamBases(List<EcmParamBase> e...
    method updateClusterReadAndWriteAddress (line 825) | private void updateClusterReadAndWriteAddress(EcmTask ecmTask, List<Ec...
    method buildClusterReadAndWriteAddressForHost (line 840) | private List<String> buildClusterReadAndWriteAddressForHost(EcmTask ec...
    method buildClusterReadAndWriteAddressForHostWhenRestart (line 858) | private List<String> buildClusterReadAndWriteAddressForHostWhenRestart...
    method buildClusterReadAndWriteAddressForHostWhenCreate (line 868) | private List<String> buildClusterReadAndWriteAddressForHostWhenCreate(...
    method buildClusterReadAndWriteAddressForHostWhenScale (line 889) | private List<String> buildClusterReadAndWriteAddressForHostWhenScale(I...
    method getAddressesByByRoleAndClusterId (line 936) | private List<String> getAddressesByByRoleAndClusterId(Long clusterId, ...
    method filterValidHttpAddressEcmParamBase (line 946) | private boolean filterValidHttpAddressEcmParamBase(String role, HostPa...
    method hasRemoteTaskFailed (line 960) | private boolean hasRemoteTaskFailed(EcmTaskStatusEnum mergedStatusEnum) {
    method deleteRoleClusterAndHost (line 972) | private void deleteRoleClusterAndHost(EcmTaskStatusEnum mergedStatusEn...
    method updatePodNumbers (line 998) | private void updatePodNumbers(EcmTask ecmTask, ClusterRoleInfo cluster...
    method updateEsClusterVersion (line 1016) | private void updateEsClusterVersion(EcmTaskStatusEnum mergedStatusEnum...
    method getImageAndVersion (line 1071) | private <T> Tuple<String, String> getImageAndVersion(List<EcmParamBase...
    method buildEcmTaskDetail (line 1085) | private EcmTaskDetail buildEcmTaskDetail(EcmTaskStatus status, Long de...
    method hasCallBackAddress (line 1105) | private boolean hasCallBackAddress(EcmTaskStatusEnum mergedStatusEnum,...
    method updateRoleClusterNumber (line 1113) | private void updateRoleClusterNumber(EcmTask ecmTask, EcmParamBase ecm...
    method hasCallBackRoleNumber (line 1128) | private boolean hasCallBackRoleNumber(EcmTask ecmTask) {
    method convertStatus (line 1133) | private EcmTaskStatusEnum convertStatus(EcmHostStatusEnum ecmHostStatu...
    method checkEcmTaskStatusValid (line 1164) | private boolean checkEcmTaskStatusValid(List<EcmTaskStatus> ecmTaskSta...
    method saveTaskDetailInfoWithoutZeusTaskId (line 1174) | private void saveTaskDetailInfoWithoutZeusTaskId(EcmParamBase ecmParam...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/AbstractOpTaskHandler.java
  class AbstractOpTaskHandler (line 27) | public abstract class AbstractOpTaskHandler implements OpTaskHandler {
    method addTask (line 56) | @Override
    method existUnClosedTask (line 79) | @Override
    method process (line 84) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/DCDROpTaskHandler.java
  class DCDROpTaskHandler (line 22) | @Service("dcdrOpTaskHandler")
    method addTask (line 24) | @Override
    method existUnClosedTask (line 47) | @Override
    method process (line 70) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/ECMOpTaskHandler.java
  class ECMOpTaskHandler (line 46) | @Service("ecmOpTaskHandler")
    method onApplicationEvent (line 48) | @SneakyThrows
    method handlerRestartPostConfig (line 79) | private void handlerRestartPostConfig(EcmTask ecmTask) {
    method handleSuccessEcmConfigRestartTask (line 139) | private void handleSuccessEcmConfigRestartTask(Integer actionType, Lis...
    method handlerRestartPostPlugin (line 179) | private void handlerRestartPostPlugin(EcmTask ecmTask) {
    method handleSuccessEcmPluginRestartTask (line 213) | private void handleSuccessEcmPluginRestartTask(EcmTask ecmTask) throws...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/AbstractClusterTaskHandler.java
  class AbstractClusterTaskHandler (line 31) | public abstract class AbstractClusterTaskHandler extends AbstractOpTaskH...
    method addTask (line 46) | @Override
    method initParam (line 70) | Result<Void> initParam(OpTask opTask) {
    method validateParam (line 99) | Result<Void> validateParam(String param) throws NotFindSubclassExcepti...
    method buildOpTask (line 116) | Result<OpTask> buildOpTask(OpTask opTask) {
    method initHostParam (line 145) | Result<Void> initHostParam(OpTask opTask) {
    method initDockerParam (line 155) | Result<Void> initDockerParam(OpTask opTask) {
    method validateHostParam (line 165) | abstract Result<Void> validateHostParam(String param) throws NotFindSu...
    method buildHostEcmTaskDTO (line 175) | abstract Result<Void> buildHostEcmTaskDTO(EcmTaskDTO ecmTaskDTO, Strin...
    method buildDockerEcmTaskDTO (line 185) | Result<Void> buildDockerEcmTaskDTO(EcmTaskDTO ecmTaskDTO, String param...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/ClusterConfigRestartTaskHandler.java
  class ClusterConfigRestartTaskHandler (line 42) | @Service("clusterConfigRestartTaskHandler")
    method validateHostParam (line 45) | @Override
    method buildOpTask (line 83) | @Override
    method buildHostEcmTaskDTO (line 108) | @Override
    method saveEsConfigs (line 145) | private Multimap<String, Long> saveEsConfigs(ClusterConfigRestartConte...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/ClusterCreateTaskHandler.java
  class ClusterCreateTaskHandler (line 38) | @Service("clusterCreateTaskHandler")
    method initHostParam (line 43) | @Override
    method validateHostParam (line 73) | @Override
    method buildHostEcmTaskDTO (line 116) | @Override
    method buildDockerEcmTaskDTO (line 140) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/ClusterOfflineTaskHandler.java
  class ClusterOfflineTaskHandler (line 20) | @Service("clusterOfflineTaskHandler")
    method validateHostParam (line 22) | @Override
    method buildHostEcmTaskDTO (line 43) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/ClusterRestartTaskHandler.java
  class ClusterRestartTaskHandler (line 31) | @Service("clusterRestartTaskHandler")
    method initHostParam (line 33) | @Override
    method validateHostParam (line 42) | @Override
    method buildHostEcmTaskDTO (line 67) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/ClusterScaleTaskHandler.java
  class ClusterScaleTaskHandler (line 47) | @Service("clusterScaleTaskHandler")
    method initHostParam (line 50) | @Override
    method validateHostParam (line 71) | @Override
    method buildHostEcmTaskDTO (line 114) | @Override
    method buildDockerEcmTaskDTO (line 152) | @Override
    method getHostScaleParamBaseList (line 166) | private Result<List<EcmParamBase>> getHostScaleParamBaseList(Integer p...
    method buildHostScaleParamBaseList (line 186) | private List<EcmParamBase> buildHostScaleParamBaseList(List<ESClusterR...
    method getPortOfRoleMapFromHost (line 226) | private Map<String, String> getPortOfRoleMapFromHost(Long phyClusterId) {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/ClusterUpgradeTaskHandler.java
  class ClusterUpgradeTaskHandler (line 32) | @Service("clusterUpgradeTaskHandler")
    method initHostParam (line 34) | @Override
    method validateHostParam (line 44) | @Override
    method buildHostEcmTaskDTO (line 73) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/impl/OpTaskManagerImpl.java
  class OpTaskManagerImpl (line 35) | @Service
    method addTask (line 49) | @Override
    method existUnClosedTask (line 70) | @Override
    method insert (line 78) | @Override
    method updateTask (line 88) | @Override
    method getById (line 93) | @Override
    method pageGetTasks (line 102) | @Override
    method list (line 115) | @Override
    method processTask (line 122) | @Override
    method getLatestTask (line 142) | @Override
    method getPendingTaskByType (line 151) | @Override
    method getSuccessTaskByType (line 156) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/TemplateLogicManager.java
  type TemplateLogicManager (line 35) | @Component
    method getLogicTemplateProjectAccess (line 49) | List<ProjectBriefVO> getLogicTemplateProjectAccess(Integer logicId) th...
    method create (line 58) | @Transactional(rollbackFor = Exception.class)
    method getAllTemplatesAggregate (line 68) | List<IndexTemplateLogicAggregate> getAllTemplatesAggregate(Integer pro...
    method jointCluster (line 77) | String jointCluster(List<ClusterLogic> logicClusters);
    method fetchConsoleTemplates (line 84) | List<ConsoleTemplateVO> fetchConsoleTemplates(List<IndexTemplateLogicA...
    method fetchConsoleTemplate (line 91) | ConsoleTemplateVO fetchConsoleTemplate(IndexTemplateLogicAggregate agg...
    method getConsoleTemplatesVOS (line 96) | List<ConsoleTemplateVO> getConsoleTemplatesVOS(Integer projectId);
    method getTemplatesByProjectIdAndAuthType (line 105) | List<IndexTemplate> getTemplatesByProjectIdAndAuthType(Integer project...
    method getTemplateLogicNames (line 110) | List<String> getTemplateLogicNames(Integer projectId);
    method editTemplate (line 112) | Result<Void> editTemplate(IndexTemplateDTO param, String operator, Int...
    method delTemplate (line 114) | Result<Void> delTemplate(Integer logicTemplateId, String operator, Int...
    method pageGetConsoleTemplateVOS (line 122) | PaginationResult<ConsoleTemplateVO> pageGetConsoleTemplateVOS(Template...
    method checkTemplateValidForCreate (line 130) | Result<Void> checkTemplateValidForCreate(String templateName);
    method checkTemplateEditMapping (line 137) | Result<Boolean> checkTemplateEditMapping(Integer templateId);
    method switchRolloverStatus (line 148) | Result<Void> switchRolloverStatus(Integer templateLogicId, Integer sta...
    method checkTemplateEditService (line 158) | Result<Boolean> checkTemplateEditService(Integer templateId, Integer t...
    method checkProjectAuthOnLogicTemplate (line 166) | Result<Void> checkProjectAuthOnLogicTemplate(Integer logicId, Integer ...
    method updateDCDRInfo (line 173) | boolean updateDCDRInfo(Integer logicId);
    method getTemplateVOByPhyCluster (line 181) | Result<List<ConsoleTemplateVO>> getTemplateVOByPhyCluster(String phyCl...
    method clearIndices (line 186) | Result<Void> clearIndices(TemplateClearDTO clearDTO, String operator, ...
    method adjustShard (line 197) | Result<Void> adjustShard(Integer logicTemplateId, Integer shardNum, In...
    method upgrade (line 208) | Result<Void> upgrade(Integer templateId, String operator, Integer proj...
    method listTemplateVOByLogicCluster (line 210) | Result<List<ConsoleTemplateVO>> listTemplateVOByLogicCluster(String cl...
    method listLogicTemplatesByProjectId (line 212) | Result<List<Tuple<String, String>>> listLogicTemplatesByProjectId(Inte...
    method getCyclicalRollInfo (line 214) | Result<List<TemplateCyclicalRollInfoVO>> getCyclicalRollInfo(Integer l...
    method getTemplateRateLimit (line 216) | Result<ConsoleTemplateRateLimitVO> getTemplateRateLimit(Integer logicId);
    method getDetailVoByLogicId (line 218) | Result<ConsoleTemplateDetailVO> getDetailVoByLogicId(Integer logicId, ...
    method getLogicTemplateClearInfo (line 220) | Result<ConsoleTemplateClearVO> getLogicTemplateClearInfo(Integer logic...
    method getLogicTemplateDeleteInfo (line 222) | Result<ConsoleTemplateDeleteVO> getLogicTemplateDeleteInfo(Integer log...
    method updateTemplateWriteRateLimit (line 224) | Result<Void> updateTemplateWriteRateLimit(ConsoleTemplateRateLimitDTO ...
    method updateTemplateHealthByLogicId (line 233) | boolean updateTemplateHealthByLogicId(Integer logicId);
    method blockWrite (line 244) | Result<Void> blockWrite(Integer templateId, Boolean status, String ope...
    method blockRead (line 255) | Result<Void> blockRead(Integer templateId, Boolean status, String oper...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/TemplatePhyManager.java
  type TemplatePhyManager (line 17) | public interface TemplatePhyManager {
    method checkMeta (line 24) | boolean checkMeta();
    method syncMeta (line 32) | void syncMeta(Long physicalId, int retryCount) throws ESOperateException;
    method delTemplate (line 41) | @Transactional(rollbackFor = Exception.class)
    method delTemplateByLogicId (line 52) | Result<Void> delTemplateByLogicId(Integer logicId, String operator) th...
    method upgradeTemplate (line 64) | @Transactional(rollbackFor = Exception.class)
    method upgradeMultipleTemplate (line 68) | Result<Boolean> upgradeMultipleTemplate(List<TemplatePhysicalUpgradeDT...
    method rolloverUpgradeTemplate (line 71) | Result<Void> rolloverUpgradeTemplate(TemplatePhysicalUpgradeDTO param,...
    method copyTemplate (line 80) | Result<Void> copyTemplate(TemplatePhysicalCopyDTO param, String operat...
    method editTemplate (line 89) | Result<Void> editTemplate(IndexTemplatePhyDTO param, String operator) ...
    method editMultipleTemplate (line 91) | Result<Boolean> editMultipleTemplate(List<IndexTemplatePhyDTO> params,...
    method addTemplatesWithoutCheck (line 100) | @Transactional(rollbackFor = Exception.class)
    method addTemplateWithoutCheck (line 110) | @Transactional(rollbackFor = Exception.class)
    method switchMasterSlave (line 121) | @Transactional(rollbackFor = Exception.class)
    method editTemplateWithoutCheck (line 132) | Result<Void> editTemplateWithoutCheck(IndexTemplatePhyDTO param, Strin...
    method getHotAndColdIndexByBeforeDay (line 141) | Tuple</*存放冷存索引列表*/Set<String>, /*存放热存索引列表*/Set<String>> getHotAndColdI...
    method getIndexByBeforeDay (line 150) | Set<String> getIndexByBeforeDay(IndexTemplatePhyWithLogic physicalWith...
    method getConsoleTemplatePhyVOS (line 156) | List<ConsoleTemplatePhyVO> getConsoleTemplatePhyVOS(IndexTemplatePhyDT...
    method getTemplatePhyNames (line 161) | List<String> getTemplatePhyNames(Integer projectId);
    method getCanCopyTemplatePhyClusterPhyNames (line 166) | List<String> getCanCopyTemplatePhyClusterPhyNames(Long templatePhyId);
    method getTemplatePhies (line 173) | Result<List<IndexTemplatePhysicalVO>> getTemplatePhies(Integer logicId);
    method listByRegionId (line 175) | Result<List<IndexTemplatePhysicalVO>> listByRegionId(Integer regionId);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/TemplatePhyStaticsManager.java
  type TemplatePhyStaticsManager (line 15) | public interface TemplatePhyStaticsManager {
    method getAccessStatsInfoByTemplateIdAndDays (line 22) | Result<Map<Integer, Long>> getAccessStatsInfoByTemplateIdAndDays(int l...
    method getTemplateBaseStatisticalInfoByLogicTemplateId (line 29) | Result<TemplateStatsInfoVO> getTemplateBaseStatisticalInfoByLogicTempl...
    method getIndexStatics (line 38) | Result<List<ESIndexStats>> getIndexStatics(Long logicTemplateId, Long ...
    method getAccessAppInfos (line 47) | Result<List<ProjectIdTemplateAccessCountVO>> getAccessAppInfos(int log...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/impl/TemplateLogicManagerImpl.java
  class TemplateLogicManagerImpl (line 124) | @Component
    method getLogicTemplateProjectAccess (line 201) | @Override
    method create (line 216) | @Override
    method getAllTemplatesAggregate (line 283) | @Override
    method jointCluster (line 299) | @Override
    method fetchConsoleTemplates (line 313) | @Override
    method fetchConsoleTemplate (line 348) | @Override
    method getConsoleTemplatesVOS (line 383) | @Override
    method getTemplatesByProjectIdAndAuthType (line 388) | @Override
    method getTemplateLogicNames (line 442) | @Override
    method editTemplate (line 454) | @Override
    method delTemplate (line 483) | @Override
    method pageGetConsoleTemplateVOS (line 534) | @Override
    method checkTemplateValidForCreate (line 549) | @Override
    method checkTemplateEditMapping (line 569) | @Override
    method switchRolloverStatus (line 598) | @Override
    method checkTemplateEditService (line 636) | @Override
    method checkProjectAuthOnLogicTemplate (line 657) | @Override
    method updateDCDRInfo (line 684) | @Override
    method getTemplateVOByPhyCluster (line 740) | @Override
    method clearIndices (line 754) | @Override
    method adjustShard (line 798) | @Override
    method upgrade (line 833) | @Override
    method listTemplateVOByLogicCluster (line 887) | @Override
    method listLogicTemplatesByProjectId (line 918) | @Override
    method getCyclicalRollInfo (line 927) | @Override
    method getTemplateRateLimit (line 953) | @Override
    method getDetailVoByLogicId (line 972) | @Override
    method getLogicTemplateClearInfo (line 1022) | @Override
    method getLogicTemplateDeleteInfo (line 1049) | @Override
    method updateTemplateHealthByLogicId (line 1078) | @Override
    method updateTemplateWriteRateLimit (line 1134) | @Override
    method blockWrite (line 1177) | @Override
    method blockRead (line 1211) | @Override
    method getLogicTemplateIndices (line 1240) | private List<String> getLogicTemplateIndices(Integer logicId) {
    method checkLogicTemplateMeta (line 1258) | private Result<Void> checkLogicTemplateMeta(IndexTemplate templateLogi...
    method buildTemplateVO (line 1287) | private ConsoleTemplateVO buildTemplateVO(IndexTemplatePhyWithLogic pa...
    method fetchTemplateAggregate (line 1305) | private IndexTemplateLogicAggregate fetchTemplateAggregate(IndexTempla...
    method checkExistClusterNamePhy (line 1329) | private Result<Boolean> checkExistClusterNamePhy(String clusterPhyName) {
    method getDefaultTemplateConfig (line 1338) | private IndexTemplateConfig getDefaultTemplateConfig(Integer logicId) {
    method insertTemplateConfig (line 1357) | private Result<Void> insertTemplateConfig(IndexTemplateDTO param) {
    method buildTemplateDTO (line 1374) | private IndexTemplateDTO buildTemplateDTO(IndexTemplateWithCreateInfoD...
    method buildExtraField (line 1415) | private void buildExtraField(IndexTemplateDTO indexTemplateDTO) {
    method buildCyclicalRoll (line 1425) | private void buildCyclicalRoll(IndexTemplateDTO indexTemplateDTO, Inde...
    method buildPhysicalInfo (line 1461) | private void buildPhysicalInfo(IndexTemplateDTO indexTemplateDTO, Inde...
    method buildShardNum (line 1509) | private void buildShardNum(IndexTemplateDTO indexTemplateDTO, IndexTem...
    method genShardNumBySize (line 1529) | private Integer genShardNumBySize(Double size) {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/impl/TemplatePhyManagerImpl.java
  class TemplatePhyManagerImpl (line 80) | @Component
    method checkMeta (line 133) | @Override
    method syncMeta (line 182) | @Override
    method delTemplate (line 231) | @Override
    method delTemplateByLogicId (line 236) | @Override
    method upgradeTemplate (line 261) | @Override
    method rolloverUpgradeTemplate (line 282) | @Override
    method upgradeMultipleTemplate (line 290) | @Override
    method copyTemplate (line 307) | @Override
    method editTemplate (line 349) | @Override
    method editMultipleTemplate (line 374) | @Override
    method addTemplatesWithoutCheck (line 392) | @Override
    method addTemplateWithoutCheck (line 407) | @Override
    method switchMasterSlave (line 432) | @Override
    method editTemplateWithoutCheck (line 479) | @Override
    method getHotAndColdIndexByBeforeDay (line 498) | @Override
    method getIndexByBeforeDay (line 530) | @Override
    method getConsoleTemplatePhyVOS (line 561) | @Override
    method getTemplatePhyNames (line 571) | @Override
    method getCanCopyTemplatePhyClusterPhyNames (line 577) | @Override
    method getTemplatePhies (line 590) | @Override
    method listByRegionId (line 603) | @Override
    method initParamWhenAdd (line 613) | private void initParamWhenAdd(IndexTemplatePhyDTO param) {
    method checkUpgradeParam (line 652) | private Result<Void> checkUpgradeParam(TemplatePhysicalUpgradeDTO para...
    method upgradeTemplateWithCheck (line 678) | private Result<Void> upgradeTemplateWithCheck(TemplatePhysicalUpgradeD...
    method checkCopyParam (line 710) | private Result<Void> checkCopyParam(TemplatePhysicalCopyDTO param) {
    method checkMetaInner (line 744) | private Result<Void> checkMetaInner(IndexTemplatePhy templatePhysical,
    method checkIndexCreateAndExpire (line 777) | private int checkIndexCreateAndExpire(IndexTemplatePhy templatePhysical,
    method buildIndexTemplateLogicWithPhysicalForNew (line 807) | private IndexTemplateWithPhyTemplates buildIndexTemplateLogicWithPhysi...
    method isValidShardNum (line 823) | private boolean isValidShardNum(Integer shardNum) {
    method buildConsoleTemplatePhyVO (line 827) | private void buildConsoleTemplatePhyVO(List<ConsoleTemplatePhyVO> para...
    method handleIndexTemplateLogic (line 846) | private void handleIndexTemplateLogic(Integer currentProjectId, Map<In...
    method getFinalIndexSet (line 887) | private Set<String> getFinalIndexSet( int days,
    method syncCreateIndexTemplateWithEs (line 928) | private void syncCreateIndexTemplateWithEs(IndexTemplatePhyDTO param) ...
    method getSettingsMap (line 951) | private Map<String, String> getSettingsMap(Integer shard, Integer regi...
    method getHotAndColdIndexSet (line 979) | private Tuple</*存放冷存索引列表*/Set<String>, /*存放热存索引列表*/Set<String>> getHot...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/impl/TemplatePhyStaticsManagerImpl.java
  class TemplatePhyStaticsManagerImpl (line 21) | @Service
    method getAccessStatsInfoByTemplateIdAndDays (line 31) | @Override
    method getTemplateBaseStatisticalInfoByLogicTemplateId (line 36) | @Override
    method getIndexStatics (line 43) | @Override
    method getAccessAppInfos (line 48) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/TemplateSrvManager.java
  type TemplateSrvManager (line 19) | public interface TemplateSrvManager {
    method isTemplateSrvOpen (line 27) | boolean isTemplateSrvOpen(Integer logicTemplateId, Integer templateSrv...
    method getTemplateOpenSrv (line 34) | Result<List<TemplateSrv>> getTemplateOpenSrv(Integer logicTemplateId);
    method getUnavailableSrvByTemplateAndMasterPhy (line 42) | List<UnavailableTemplateSrv> getUnavailableSrvByTemplateAndMasterPhy(I...
    method pageGetTemplateWithSrv (line 51) | PaginationResult<TemplateWithSrvVO> pageGetTemplateWithSrv(TemplateQue...
    method openSrv (line 63) | Result<Void> openSrv(Integer srvCode, List<Integer> templateIdList, St...
    method closeSrv (line 75) | Result<Void> closeSrv(Integer srvCode, List<Integer> templateIdList, S...
    method getPhyClusterByOpenTemplateSrv (line 83) | List<String> getPhyClusterByOpenTemplateSrv(int srvId);
    method getIndexTemplateContainsSrv (line 91) | List<String> getIndexTemplateContainsSrv(int srvId);
    method blockWrite (line 102) | Result<Void> blockWrite(Integer templateId, Boolean status, String ope...
    method blockRead (line 113) | Result<Void> blockRead(Integer templateId, Boolean status, String oper...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/TemplateSrvManagerImpl.java
  class TemplateSrvManagerImpl (line 51) | @Service()
    method init (line 84) | @PostConstruct
    method getTemplateOpenSrv (line 98) | @Override
    method isTemplateSrvOpen (line 114) | @Override
    method getUnavailableSrvByTemplateAndMasterPhy (line 130) | @Override
    method pageGetTemplateWithSrv (line 184) | @Override
    method openSrv (line 197) | @Override
    method closeSrv (line 222) | @Override
    method getPhyClusterByOpenTemplateSrv (line 255) | @Override
    method getIndexTemplateContainsSrv (line 267) | @Override
    method blockWrite (line 285) | @Override
    method blockRead (line 319) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/aliases/TemplateLogicAliasManager.java
  type TemplateLogicAliasManager (line 13) | public interface TemplateLogicAliasManager {
    method listAlias (line 19) | List<IndexTemplateAlias> listAlias();
    method listAlias (line 25) | List<IndexTemplateAlias> listAlias(List<IndexTemplateWithPhyTemplates>...
    method fetchTemplateAliasesByLogicId (line 32) | Result<List<IndexTemplatePhyAlias>> fetchTemplateAliasesByLogicId(Inte...
    method createTemplateAliases (line 40) | Result<Void> createTemplateAliases(Integer logicId, List<ConsoleAliasD...
    method modifyTemplateAliases (line 48) | Result<Void> modifyTemplateAliases(Integer logicId, List<ConsoleAliasD...
    method deleteTemplateAliases (line 56) | Result<Void> deleteTemplateAliases(Integer logicId, List<String> alias...
    method getAliasesById (line 63) | List<IndexTemplateAlias> getAliasesById(Integer logicId);
    method getAliases (line 70) | Result<List<IndexTemplatePhyAlias>> getAliases(Integer logicId);
    method createAliases (line 78) | Result<Void> createAliases(ConsoleLogicTemplateAliasesDTO aliases, Str...
    method modifyAliases (line 86) | Result<Void> modifyAliases(ConsoleLogicTemplateAliasesDTO aliases, Str...
    method getAllTemplateAliasesByProjectId (line 93) | Result<List<Tuple<String/*index*/, String/*aliases*/>>> getAllTemplate...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/aliases/TemplatePhyAliasManager.java
  type TemplatePhyAliasManager (line 13) | public interface TemplatePhyAliasManager {
    method fetchTemplateAliases (line 20) | List<IndexTemplatePhyAlias> fetchTemplateAliases(String cluster, Strin...
    method fetchAllTemplateAliases (line 28) | Map<String, List<IndexTemplatePhyAlias>> fetchAllTemplateAliases(List<...
    method createTemplateAlias (line 37) | boolean createTemplateAlias(String cluster, String templateName,
    method batchCreateTemplateAliases (line 47) | boolean batchCreateTemplateAliases(String cluster, String templateName,
    method deleteTemplateAlias (line 58) | boolean deleteTemplateAlias(String cluster, String templateName, Strin...
    method deleteTemplateAliases (line 68) | boolean deleteTemplateAliases(String cluster, String templateName, Lis...
    method clearTemplateAliases (line 77) | boolean clearTemplateAliases(String cluster, String templateName) thro...
    method modifyTemplateAlias (line 87) | boolean modifyTemplateAlias(String cluster, String templateName,
    method modifyTemplateAliases (line 98) | boolean modifyTemplateAliases(String cluster, String templateName,

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/aliases/impl/TemplateLogicAliasManagerImpl.java
  class TemplateLogicAliasManagerImpl (line 41) | @Service
    method templateSrv (line 60) | @Override
    method listAlias (line 70) | @Override
    method listAlias (line 80) | @Override
    method fetchTemplateAliasesByLogicId (line 111) | @Override
    method createTemplateAliases (line 132) | @Override
    method modifyTemplateAliases (line 156) | @Override
    method deleteTemplateAliases (line 187) | @Override
    method getAliasesById (line 212) | @Override
    method getAliases (line 228) | @Override
    method createAliases (line 233) | @Override
    method modifyAliases (line 253) | @Override
    method getAllTemplateAliasesByProjectId (line 274) | @Override
    method fetchAnyOneLogicTemplateMasterPhysicalTemplate (line 309) | private Result<IndexTemplatePhy> fetchAnyOneLogicTemplateMasterPhysica...
    method fetchAlias (line 339) | private IndexTemplateAlias fetchAlias(Integer logicId, IndexTemplatePh...
    method convertAliases (line 355) | private List<IndexTemplatePhyAlias> convertAliases(List<ConsoleAliasDT...
    method convertAlias (line 370) | private IndexTemplatePhyAlias convertAlias(ConsoleAliasDTO aliasDTO) {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/aliases/impl/TemplatePhyAliasManagerImpl.java
  class TemplatePhyAliasManagerImpl (line 27) | @Service
    method fetchTemplateAliases (line 41) | @Override
    method fetchAllTemplateAliases (line 56) | @Override
    method createTemplateAlias (line 77) | @Override
    method batchCreateTemplateAliases (line 93) | @Override
    method deleteTemplateAlias (line 119) | @Override
    method deleteTemplateAliases (line 144) | @Override
    method clearTemplateAliases (line 169) | @Override
    method modifyTemplateAlias (line 186) | @Override
    method modifyTemplateAliases (line 212) | @Override
    method isValidAlias (line 246) | private boolean isValidAlias(String cluster, String templateName, Inde...
    method fetchTemplateConfig (line 262) | private TemplateConfig fetchTemplateConfig(String cluster, String temp...
    method fetchAllTemplateConfig (line 278) | private Map<String, TemplateConfig> fetchAllTemplateConfig(List<String...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/base/BaseTemplateSrv.java
  type BaseTemplateSrv (line 16) | public interface BaseTemplateSrv {
    method isTemplateSrvOpen (line 23) | boolean isTemplateSrvOpen(Integer logicTemplateId);
    method templateSrv (line 30) | TemplateServiceEnum templateSrv();
    method templateSrvName (line 36) | String templateSrvName();
    method openSrv (line 46) | Result<Void> openSrv(List<Integer> templateIdList, String operator, In...
    method closeSrv (line 56) | Result<Void> closeSrv(List<Integer> templateIdList, String operator,
    method isTemplateSrvOpen (line 67) | boolean isTemplateSrvOpen(List<IndexTemplatePhy> indexTemplatePhies);
    method templateServiceName (line 74) | String templateServiceName();
    method getSupportSrvByLogicTemplateAndMasterClusterPhy (line 79) | SupportSrv getSupportSrvByLogicTemplateAndMasterClusterPhy(IndexTempla...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/base/impl/BaseTemplateSrvImpl.java
  class BaseTemplateSrvImpl (line 46) | public abstract class BaseTemplateSrvImpl implements BaseTemplateSrv {
    method isTemplateSrvOpen (line 77) | @Override
    method templateSrvName (line 82) | @Override
    method openSrv (line 87) | @Override
    method closeSrv (line 108) | @Override
    method checkSrvIsValid (line 121) | protected Result<Void> checkSrvIsValid(Integer logicTemplateId) {
    method updateSrvStatus (line 153) | private Result<Void> updateSrvStatus(List<Integer> templateIdList, Boo...
    method addSrvCode (line 208) | private void addSrvCode(IndexTemplate indexTemplate, String addSrvCode) {
    method removeSrvCode (line 220) | private void removeSrvCode(IndexTemplate indexTemplate, String removeS...
    method updateTemplateConfigRollover (line 236) | private Result<Void> updateTemplateConfigRollover(Integer templateId, ...
    method isTemplateSrvOpen (line 251) | @Override
    method templateServiceName (line 265) | @Override
    method getSupportSrvByLogicTemplateAndMasterClusterPhy (line 270) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/cold/ColdManager.java
  type ColdManager (line 11) | public interface ColdManager {
    method move2ColdNode (line 19) | Result<Boolean> move2ColdNode(Integer logicTemplateId) throws ESOperat...
    method fetchClusterDefaultHotDay (line 26) | int fetchClusterDefaultHotDay(String phyCluster);
    method move2ColdNode (line 34) | @Deprecated
    method batchChangeHotDay (line 37) | Result<Integer> batchChangeHotDay(Integer coldSaveDays, String operato...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/cold/impl/ColdManagerImpl.java
  class ColdManagerImpl (line 44) | @Service
    method templateSrv (line 60) | @Override
    method move2ColdNode (line 65) | @Override
    method fetchClusterDefaultHotDay (line 111) | @Override
    method getDefaultHotDay (line 136) | private int getDefaultHotDay() {
    method movePerTemplate (line 158) | private Result<Void> movePerTemplate(IndexTemplatePhy templatePhysical,
    method getColdAndHotIndex (line 185) | private Tuple</*冷节点索引列表*/Set<String>, /*热节点索引列表*/Set<String>> getColdA...
    method getMinUsageColdRegion (line 209) | private ClusterRegion getMinUsageColdRegion(String cluster, List<Clust...
    method move2ColdNode (line 250) | @Override
    method batchChangeHotDay (line 299) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/dcdr/TemplateDCDRManager.java
  type TemplateDCDRManager (line 19) | public interface TemplateDCDRManager {
    method copyAndCreateDCDR (line 31) | Result<Void> copyAndCreateDCDR(Integer templateId, String targetCluste...
    method createPhyDCDR (line 41) | Result<Void> createPhyDCDR(TemplatePhysicalDCDRDTO param, String opera...
    method deleteDCDR (line 52) | Result<Void> deleteDCDR(Integer templateId, String operator, Integer p...
    method deletePhyDCDR (line 63) | Result<Void> deletePhyDCDR(TemplatePhysicalDCDRDTO param, String opera...
    method batchDCDRSwitchMaster2Slave (line 73) | Result<WorkTaskVO> batchDCDRSwitchMaster2Slave(DCDRMasterSlaveSwitchDT...
    method cancelDCDRSwitchMasterSlaveByTaskIdAndTemplateIds (line 87) | Result<Void> cancelDCDRSwitchMasterSlaveByTaskIdAndTemplateIds(Integer...
    method cancelDCDRSwitchMasterSlaveByTaskId (line 100) | Result<Void> cancelDCDRSwitchMasterSlaveByTaskId(Integer taskId, Strin...
    method refreshDCDRChannelState (line 112) | Result<Void> refreshDCDRChannelState(Integer taskId, Integer templateI...
    method asyncRefreshDCDRChannelState (line 123) | Result<Void> asyncRefreshDCDRChannelState(Integer taskId, Integer temp...
    method forceSwitchMasterSlave (line 134) | Result<Void> forceSwitchMasterSlave(Integer taskId, Integer templateId...
    method getDCDRMasterSlaveSwitchDetailVO (line 142) | Result<DCDRTasksDetailVO> getDCDRMasterSlaveSwitchDetailVO(Integer tas...
    method getDCDRSingleTemplateMasterSlaveSwitchDetailVO (line 150) | Result<DCDRSingleTemplateMasterSlaveSwitchDetailVO> getDCDRSingleTempl...
    method syncCreateTemplateDCDR (line 161) | boolean syncCreateTemplateDCDR(Long physicalId, String replicaCluster,...
    method syncDeleteTemplateDCDR (line 171) | boolean syncDeleteTemplateDCDR(Long physicalId, String replicaCluster,...
    method syncExistTemplateDCDR (line 179) | boolean syncExistTemplateDCDR(Long physicalId, String replicaCluster) ...
    method syncDeleteIndexDCDR (line 190) | boolean syncDeleteIndexDCDR(String cluster, String replicaCluster, Lis...
    method syncDCDRSetting (line 202) | boolean syncDCDRSetting(String cluster, List<String> indices, boolean ...
    method clusterSupport (line 210) | boolean clusterSupport(String cluster);
    method getMasterAndSlaveTemplateCheckPoint (line 217) | Tuple<Long/*主模板位点*/, Long/*从模板位点*/> getMasterAndSlaveTemplateCheckPoin...
    method getTemplateDCDRInfoVO (line 225) | Result<TemplateDCDRInfoVO> getTemplateDCDRInfoVO(Integer templateId) t...
    method rebuildDCDRLinkAbnormalIndices (line 235) | Result<Void> rebuildDCDRLinkAbnormalIndices(String cluster, String tar...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/dcdr/TemplateDCDRManagerImpl.java
  class TemplateDCDRManagerImpl (line 91) | @Service
    method templateSrv (line 165) | @Override
    method init (line 175) | @PostConstruct
    method copyAndCreateDCDR (line 185) | @Override
    method deleteDCDR (line 289) | @Override
    method createPhyDCDR (line 312) | @Override
    method createRemoteClusterAndCheckConnected (line 347) | private Result<Void> createRemoteClusterAndCheckConnected(String clust...
    method deletePhyDCDR (line 369) | @Override
    method batchDCDRSwitchMaster2Slave (line 402) | @Override
    method cancelDCDRSwitchMasterSlaveByTaskId (line 456) | @Override
    method cancelDCDRSwitchMasterSlaveByTaskIdAndTemplateIds (line 462) | @Override
    method refreshDCDRChannelState (line 509) | @Override
    method asyncRefreshDCDRChannelState (line 534) | @Override
    method forceSwitchMasterSlave (line 566) | @Override
    method getDCDRMasterSlaveSwitchDetailVO (line 613) | @Override
    method getDCDRSingleTemplateMasterSlaveSwitchDetailVO (line 636) | @Override
    method syncCreateTemplateDCDR (line 683) | @Override
    method syncDeleteTemplateDCDR (line 708) | @Override
    method syncExistTemplateDCDR (line 726) | @Override
    method syncDeleteIndexDCDR (line 746) | @Override
    method syncDCDRSetting (line 761) | @Override
    method clusterSupport (line 783) | @Override
    method getMasterAndSlaveTemplateCheckPoint (line 789) | @Override
    method getTemplateDCDRInfoVO (line 852) | @Override
    method rebuildDCDRLinkAbnormalIndices (line 924) | @Override
    method checkDCDRParam (line 938) | private Result<Void> checkDCDRParam(Integer logicId) {
    method checkDCDRParam (line 960) | private Result<Void> checkDCDRParam(TemplatePhysicalDCDRDTO param, Ope...
    method createDCDRMeta (line 1007) | private TemplatePhysicalDCDRDTO createDCDRMeta(Integer templateId,bool...
    method buildCreateDCDRParam (line 1043) | private TemplatePhysicalDCDRDTO buildCreateDCDRParam(IndexTemplatePhy ...
    method changeDCDRConfig (line 1051) | private Result<Void> changeDCDRConfig(String cluster, List<String> ind...
    method deleteSrcDCDR (line 1072) | private Result<Void> deleteSrcDCDR(IndexTemplatePhy masterTemplate, In...
    method executeDCDRForForce (line 1106) | private Result<List<String>> executeDCDRForForce(Integer workTaskId,
    method executeDCDRForSmooth (line 1182) | private Result<List<String>> executeDCDRForSmooth(Integer workTaskId,
    method hasFinishSwitchMasterSlave (line 1446) | private boolean hasFinishSwitchMasterSlave(DCDRSingleTemplateMasterSla...
    method sleep (line 1460) | private void sleep(long l) {
    method hasCancelSubTask (line 1474) | private boolean hasCancelSubTask(Integer workTaskId, Long templateId) {
    method buildInitTaskProgressInfo (line 1498) | @NotNull
    method buildStepMsg (line 1507) | private Result<List<String>> buildStepMsg(Integer swithType, Result<Vo...
    method buildSwitchStepMsgForFailedList (line 1538) | private void buildSwitchStepMsgForFailedList(List<String> stepMsgList,...
    method buildSwitchStepMsgForSuccessList (line 1545) | private void buildSwitchStepMsgForSuccessList(List<String> stepMsgList...
    method processDcdrTask (line 1550) | private Result<Void> processDcdrTask(Integer logicId, Result<Void> dcd...
    method buildTemplatePhysicalCopyDTO (line 1571) | private TemplatePhysicalCopyDTO buildTemplatePhysicalCopyDTO(Integer t...
    method getBusinessKey (line 1594) | @NotNull
    method checkValidForDCDRSwitch (line 1600) | private Result<Void> checkValidForDCDRSwitch(Integer logicId, Long exp...
    method batchCheckValidForDCDRSwitch (line 1639) | private Result<Void> batchCheckValidForDCDRSwitch(List<Long> templateI...
    method buildDCDRTasksDetail (line 1662) | private DCDRTasksDetail buildDCDRTasksDetail(DCDRMasterSlaveSwitchDTO ...
    method doRefreshDCDRChannelsState (line 1725) | private void doRefreshDCDRChannelsState(Integer taskId, Integer step, ...
    method syncRefreshStatus (line 1805) | @NotNull
    method saveNewestWorkTaskStatusToDB (line 1838) | private void saveNewestWorkTaskStatusToDB(OpTask taskForDCDRSwitch, DC...
    method deleteDCDRChannelForSuccForceSwitch (line 1888) | private void deleteDCDRChannelForSuccForceSwitch(OpTask taskForDCDRSwi...
    method setNextBatchDCDRTaskDetailStateToRunning (line 1918) | private void setNextBatchDCDRTaskDetailStateToRunning(DCDRTasksDetail ...
    method hasSkipForSingleDCDRRefresh (line 1961) | private boolean hasSkipForSingleDCDRRefresh(DCDRSingleTemplateMasterSl...
    method hasSkipForTask (line 1974) | private boolean hasSkipForTask(OpTask taskForDCDRSwitch, DCDRTasksDeta...
    method initSwitchTaskInfo (line 1991) | private void initSwitchTaskInfo(Integer templateId, DCDRTasksDetail dc...
    method hasSetNextBatch (line 2016) | private boolean hasSetNextBatch(int runingTaskSize, int failedTaskSize) {
    method getDCDRTaskTitle (line 2028) | private String getDCDRTaskTitle(List<Long> templateIdList, String dcdr...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/expire/ExpireManager.java
  type ExpireManager (line 11) | public interface ExpireManager {
    method deleteExpireIndex (line 18) | Result<Void> deleteExpireIndex(Integer logicTemplateId);
    method deleteExpireIndex (line 28) | @Deprecated
    method deleteExpireIndices (line 39) | boolean deleteExpireIndices(Long physicalId, int retryCount);
    method deleteTemplateDeletedIndices (line 48) | boolean deleteTemplateDeletedIndices(IndexTemplatePhy physical, int re...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/expire/impl/ExpireManagerImpl.java
  class ExpireManagerImpl (line 42) | @Service
    method templateSrv (line 55) | @Override
    method deleteExpireIndex (line 60) | @Override
    method deleteNormalTemplateExpireIndex (line 77) | private Boolean deleteNormalTemplateExpireIndex(Integer logicTemplateI...
    method deleteDeletingTemplateExpireIndex (line 131) | private Boolean deleteDeletingTemplateExpireIndex(Integer logicTemplat...
    method getExpireIndex (line 164) | private Tuple<String, Set<String>> getExpireIndex(Long physicalId) {
    method deleteTemplatePhyExpireIndex (line 206) | private Boolean deleteTemplatePhyExpireIndex(Long physicalId) {
    method deleteTemplatePhyDeletedIndex (line 231) | private Boolean deleteTemplatePhyDeletedIndex(IndexTemplatePhy physica...
    method updateIndexFlagInvalid (line 309) | private Result<Boolean> updateIndexFlagInvalid(String cluster, List<St...
    method deleteTemplateNuNormalStatusFromDB (line 323) | private boolean deleteTemplateNuNormalStatusFromDB(IndexTemplatePhy ph...
    method finishDeleteIndex (line 332) | private boolean finishDeleteIndex(Long physicalId) {
    method getNormalAndDeletingTemplateWithLogicById (line 336) | private IndexTemplatePhyWithLogic getNormalAndDeletingTemplateWithLogi...
    method deleteExpireIndices (line 350) | @Override
    method deleteTemplateDeletedIndices (line 390) | @Override
    method deleteExpireIndex (line 470) | @Override
    method deleteNormalTemplateExpireIndexByCluster (line 481) | private boolean deleteNormalTemplateExpireIndexByCluster(String cluste...
    method getExpireIndexByPhysicalId (line 528) | public Set<String> getExpireIndexByPhysicalId(Long physicalId) {
    method deleteDeletingTemplateExpireIndexByCluster (line 567) | private boolean deleteDeletingTemplateExpireIndexByCluster(String clus...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/indexplan/IndexPlanManager.java
  type IndexPlanManager (line 11) | public interface IndexPlanManager {
    method indexRollover (line 22) | Result<Void> indexRollover(Integer logicTemplateId);
    method adjustShardNum (line 30) | Result<Boolean> adjustShardNum(Integer logicTemplateId) throws ESOpera...
    method initShardRoutingAndAdjustShard (line 36) | void initShardRoutingAndAdjustShard(IndexTemplatePhyDTO param);
    method indexRollover (line 49) | @Deprecated
    method adjustShardCountByPhyClusterName (line 57) | Result<Void> adjustShardCountByPhyClusterName(String phyClusterName);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/indexplan/impl/IndexPlanManagerImpl.java
  class IndexPlanManagerImpl (line 39) | @Service("newIndexPlanManagerImpl")
    method templateSrv (line 56) | @Override
    method indexRollover (line 61) | @Override
    method adjustShardNum (line 116) | @Override
    method initShardRoutingAndAdjustShard (line 137) | @Override
    method getIndexNameByDateFormat (line 159) | private String getIndexNameByDateFormat(IndexTemplate logiTemplate, In...
    method getIndexNodes (line 178) | private IndexNodes getIndexNodes(String indexName, String clusterPhyNa...
    method updateTemplateVersion (line 189) | private void updateTemplateVersion(IndexTemplatePhy templatePhy) {
    method getMaxStoreInRecentSevenDayByTemplatePhyId (line 207) | private Long getMaxStoreInRecentSevenDayByTemplatePhyId(Long templateP...
    method getSizeInBytesMax (line 222) | private long getSizeInBytesMax(IndexTemplatePhy templatePhy) {
    method governPerTemplate (line 263) | private void governPerTemplate(Collection<IndexTemplatePhy> templatePh...
    method adjustShardCount (line 319) | private Result<String> adjustShardCount(IndexTemplatePhy templatePhy) ...
    method calculateShardCount (line 342) | private int calculateShardCount(IndexTemplatePhy templatePhy) {
    method editTemplateWithoutCheck (line 349) | private Result<Void> editTemplateWithoutCheck(IndexTemplatePhy templat...
    method calculateShardByShardRouting (line 373) | private Integer calculateShardByShardRouting(int shard, int shardRouti...
    method indexRollover (line 381) | @Override
    method adjustShardCountByPhyClusterName (line 450) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/mapping/TemplateLogicMappingManager.java
  type TemplateLogicMappingManager (line 18) | public interface TemplateLogicMappingManager {
    method getTemplateWithMapping (line 26) | Result<IndexTemplateWithMapping> getTemplateWithMapping(Integer logicId);
    method updateFields (line 37) | Result<Void> updateFields(Integer logicId, List<Field> fields, Set<Str...
    method checkFields (line 47) | Result<Void> checkFields(Integer logicId, List<Field> fields);
    method updateMappingForNew (line 55) | Result<Void> updateMappingForNew(Integer logicId, AriusTypeProperty ar...
    method updateProperties (line 64) | Result<Void> updateProperties(Integer logicId, List<AriusTypeProperty>...
    method fields2Mapping (line 71) | AriusTypeProperty fields2Mapping(List<Field> fields);
    method modifySchemaOptimize (line 81) | Result<Void> modifySchemaOptimize(ConsoleTemplateSchemaOptimizeDTO opt...
    method editMapping (line 91) | Result<Void> editMapping(ConsoleTemplateSchemaDTO schemaDTO, String op...
    method getSchema (line 99) | Result<TemplateMappingVO> getSchema(Integer logicId);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/mapping/TemplatePhyMappingManager.java
  type TemplatePhyMappingManager (line 14) | public interface TemplatePhyMappingManager {
    method updateMapping (line 23) | Result<Void> updateMapping(String cluster, String template, String map...
    method updateMappingAndMerge (line 25) | Result<Void> updateMappingAndMerge(String cluster, String template, St...
    method checkMapping (line 34) | Result<Void> checkMapping(String cluster, String template, String mapp...
    method getMapping (line 42) | Result<MappingConfig> getMapping(String cluster, String template);
    method syncTemplateMapping2Index (line 51) | Result<Void> syncTemplateMapping2Index(String cluster, String index, M...
    method syncMappingConfig (line 61) | Result<MappingConfig> syncMappingConfig(String cluster, String templat...
    method addIndexMapping (line 70) | Result<Void> addIndexMapping(String cluster, String expression, String...
    method checkMappingForNew (line 80) | Result<Void> checkMappingForNew(String template, AriusTypeProperty ari...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/mapping/impl/TemplateLogicMappingManagerImpl.java
  class TemplateLogicMappingManagerImpl (line 77) | @Service("templateLogicMappingManagerImpl")
    method templateSrv (line 105) | @Override
    method getTemplateWithMapping (line 116) | @Override
    method checkFields (line 169) | @Override
    method updateFields (line 207) | @Override
    method fields2Mapping (line 257) | @Override
    method modifySchemaOptimize (line 284) | @Override
    method updateMappingForNew (line 296) | @Override
    method updateProperties (line 341) | @Override
    method editMapping (line 426) | @Override
    method getSchema (line 479) | @Override
    method genAriusTypePropertyList (line 498) | private List<AriusTypeProperty> genAriusTypePropertyList(IndexTemplate...
    method getMasterTemplatePhysicalByLogicId (line 520) | private List<IndexTemplatePhy> getMasterTemplatePhysicalByLogicId(Inte...
    method checkFieldInternal (line 537) | private Result<Void> checkFieldInternal(List<Field> fields) {
    method checkField (line 548) | private Result<Void> checkField(Set<String> existName, Field field) {
    method checkFieldAnalyzerType (line 591) | private Result<Void> checkFieldAnalyzerType(Field field) {
    method checkFieldSortType (line 599) | private Result<Void> checkFieldSortType(Field field) {
    method checkfieldType (line 607) | private Result<Void> checkfieldType(Field field) {
    method handleCheckFieldString (line 624) | private Result<Void> handleCheckFieldString(Field field) {
    method checkFieldIsNull (line 642) | private Result<Void> checkFieldIsNull(Field field) {
    method getDiffMapping (line 661) | private Result<MappingConfig> getDiffMapping(String cluster, String te...
    method convert2Fields (line 694) | private List<Field> convert2Fields(MappingConfig mapping) {
    method getField (line 727) | private Field getField(String fieldName, JSONObject typeObj) {
    method handleTypeUnknown (line 749) | private void handleTypeUnknown(Field field) {
    method handleTypeNonString (line 756) | private void handleTypeNonString(JSONObject typeObj, Field field) {
    method handleTypeKeyword (line 774) | private void handleTypeKeyword(JSONObject typeObj, Field field) {
    method handleTypeText (line 792) | private void handleTypeText(JSONObject typeObj, Field field) {
    method convert2Mapping (line 818) | private MappingConfig convert2Mapping(String type, List<Field> fields) {
    method handleTypeNonString (line 850) | private void handleTypeNonString(TypeEnum typeEnum, IndexEnum indexEnu...
    method handleTypeString (line 876) | private void handleTypeString(IndexEnum indexEnum, SortEnum sortEnum, ...
    method diffField (line 908) | private List<Field> diffField(List<Field> src, List<Field> dst) {
    method buildDefaultType (line 930) | private AriusTypeProperty buildDefaultType(IndexTemplate templateLogic) {
    method buildOneType (line 948) | private AriusTypeProperty buildOneType(IndexTemplate templateLogic, Ma...
    method buildMultiType (line 995) | private List<AriusTypeProperty> buildMultiType(IndexTemplate templateL...
    method buildAriusTypeProperty (line 1027) | private List<AriusTypeProperty> buildAriusTypeProperty(List<MappingOpt...
    method saveSpecialField (line 1050) | private Result<Void> saveSpecialField(ConsoleTemplateSchemaDTO schemaD...
    method saveSpecialFieldByJSON (line 1060) | private Result<Void> saveSpecialFieldByJSON(ConsoleTemplateSchemaDTO s...
    method handleUpdateType (line 1085) | private Result<Void> handleUpdateType(ConsoleTemplateSchemaDTO schemaD...
    method handleTypeProperties (line 1115) | private Result<Void> handleTypeProperties(List<AriusTypeProperty> type...
    method saveSpecialFieldByField (line 1149) | private Result<Void> saveSpecialFieldByField(ConsoleTemplateSchemaDTO ...
    method clusterIsHighVersion (line 1160) | private boolean clusterIsHighVersion(Integer logicId) {
    method fillSpecialField (line 1177) | protected void fillSpecialField(IndexTemplateWithMapping templateLogic...
    method handleRoutingField (line 1197) | private void handleRoutingField(IndexTemplateWithMapping templateLogic...
    method handleIdField (line 1206) | private void handleIdField(IndexTemplateWithMapping templateLogicWithM...
    method handleDateField (line 1214) | private void handleDateField(IndexTemplateWithMapping templateLogicWit...
    method isSingleIndex (line 1227) | private boolean isSingleIndex(Integer logicId) {
    method syncTemplateMapping2Index (line 1239) | private void syncTemplateMapping2Index(Integer logicId) throws ESOpera...
    method isExistMappingChanged (line 1267) | private boolean isExistMappingChanged(Map<String, TypeDefine> src, Map...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/mapping/impl/TemplatePhyMappingManagerImpl.java
  class TemplatePhyMappingManagerImpl (line 40) | @Service
    method updateMapping (line 59) | @Override
    method updateMappingAndMerge (line 64) | @Override
    method getMapping (line 70) | @Override
    method syncTemplateMapping2Index (line 91) | @Override
    method checkMapping (line 99) | @Override
    method syncMappingConfig (line 115) | @Override
    method addIndexMapping (line 176) | @Override
    method checkMappingForNew (line 191) | @Override
    method checkMapping (line 210) | private Result<Void> checkMapping(String cluster, String template, Map...
    method isLowVersionCluster (line 225) | private boolean isLowVersionCluster(String cluster) {
    method preCreateIndexToCheckTemplateConfig (line 236) | private Result<Void> preCreateIndexToCheckTemplateConfig(String cluste...
    method createDefaultSettings (line 252) | private Map<String, String> createDefaultSettings(String indexName, Ma...
    method getIndexMappings (line 285) | private Result<List<MappingConfig>> getIndexMappings(String cluster, S...
    method mergeMultiTypePropertiesToUserDefinedType (line 320) | private void mergeMultiTypePropertiesToUserDefinedType(String indexTem...
    method fetchNonDefaultKey (line 359) | private String fetchNonDefaultKey(Map<String, TypeConfig> typeConfigs,...
    method clearDefaultMapping (line 378) | private void clearDefaultMapping(MappingConfig mappingConfig) {
    method getMappingObj (line 382) | private JSONObject getMappingObj(JSONObject obj) {
    method tryCreateIndex (line 394) | private Result<Void> tryCreateIndex(String clusterName, String indexNa...
    method updateMappingCore (line 436) | private Result<Void> updateMappingCore(String cluster, String template...
    method updateMapping (line 459) | private Result<Void> updateMapping(String cluster, String name, Mappin...
    method checkMappingFieldSize (line 509) | private boolean checkMappingFieldSize(String cluster, String template,...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/pipeline/PipelineManager.java
  type PipelineManager (line 13) | public interface PipelineManager {
    method createPipeline (line 20) | Result<Void> createPipeline(Integer templatePhyId);
    method editFromTemplateLogic (line 28) | Result<Void> editFromTemplateLogic(IndexTemplate oldTemplate, IndexTem...
    method createPipeline (line 40) | boolean createPipeline(IndexTemplatePhy indexTemplatePhysicalInfo,
    method editFromTemplatePhysical (line 50) | boolean editFromTemplatePhysical(IndexTemplatePhy oldTemplate, IndexTe...
    method getRateLimit (line 53) | Integer getRateLimit(IndexTemplatePhy indexTemplatePhysicalMasterInfo);
    method syncPipeline (line 60) | Result<Void> syncPipeline(Integer logicTemplateId);
    method deletePipeline (line 67) | Result<Void> deletePipeline(Integer templatePhyId);
    method editRateLimitByPercent (line 76) | boolean editRateLimitByPercent(IndexTemplatePhy indexTemplatePhysicalI...
    method repairPipeline (line 84) | Result<Void> repairPipeline(Integer logicId) throws ESOperateException;

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/pipeline/impl/PipelineManagerImpl.java
  class PipelineManagerImpl (line 47) | @Service
    method templateSrv (line 56) | @Override
    method createPipeline (line 61) | @Override
    method editFromTemplateLogic (line 81) | @Override
    method notConsistent (line 150) | private boolean notConsistent(IndexTemplatePhy indexTemplatePhy, Index...
    method isDateFieldEqual (line 217) | private boolean isDateFieldEqual(String logicWithPhysicalDateField, St...
    method isDateFieldFormatChange (line 230) | private boolean isDateFieldFormatChange(String dateFieldFormat, String...
    method isExpireDayChange (line 247) | private boolean isExpireDayChange(Integer expireTime, Integer hotTime,...
    method isRateLimitNoConsistent (line 257) | private boolean isRateLimitNoConsistent(IndexTemplatePhysicalConfig co...
    method doCreatePipeline (line 273) | private Result<Void> doCreatePipeline(IndexTemplatePhy indexTemplatePh...
    method saveRateLimitToDB (line 312) | private void saveRateLimitToDB(IndexTemplatePhy physical, Integer rate...
    method getDynamicRateLimit (line 330) | private Integer getDynamicRateLimit(IndexTemplatePhy indexTemplatePhy) {
    method createPipeline (line 363) | @Override
    method editFromTemplatePhysical (line 383) | @Override
    method getRateLimit (line 415) | @Override
    method syncPipeline (line 422) | @Override
    method deletePipeline (line 488) | @Override
    method editRateLimitByPercent (line 510) | @Override
    method repairPipeline (line 565) | @Override
    method getManualRateLimit (line 598) | private Integer getManualRateLimit(IndexTemplatePhysicalConfig physica...
    method getManualRateLimit (line 610) | private Integer getManualRateLimit(IndexTemplatePhy templatePhysical) {
    method getDynamicQuotaRateLimit (line 623) | private Integer getDynamicQuotaRateLimit(IndexTemplatePhy templatePhys...
    method doCreatePipeline (line 640) | private boolean doCreatePipeline(IndexTemplatePhy indexTemplatePhysica...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/precreate/PreCreateManager.java
  type PreCreateManager (line 11) | public interface PreCreateManager {
    method preCreateIndex (line 19) | Result<Boolean> preCreateIndex(Integer logicTemplateId) throws ESOpera...
    method asyncCreateTodayAndTomorrowIndexByPhysicalId (line 25) | void asyncCreateTodayAndTomorrowIndexByPhysicalId(Long physicalId);
    method syncCreateTodayIndexByPhysicalId (line 35) | boolean syncCreateTodayIndexByPhysicalId(Long physicalId, int version)...
    method preCreateIndex (line 45) | @Deprecated
    method reBuildTomorrowIndex (line 54) | boolean reBuildTomorrowIndex(Integer logicId, int retryCount) throws E...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/precreate/impl/PreCreateManagerImpl.java
  class PreCreateManagerImpl (line 31) | @Service
    method templateSrv (line 49) | @Override
    method preCreateIndex (line 55) | @Override
    method asyncCreateTodayAndTomorrowIndexByPhysicalId (line 84) | @Override
    method syncCreateTomorrowIndexByPhysicalId (line 108) | private boolean syncCreateTomorrowIndexByPhysicalId(Long physicalId) t...
    method syncCreateTodayIndexByPhysicalId (line 131) | @Override
    method syncCreateTodayIndexByPhysicalId (line 147) | private boolean syncCreateTodayIndexByPhysicalId(Long physicalId) thro...
    method createIndex (line 157) | private boolean createIndex(String indexName, IndexTemplatePhyWithLogi...
    method generateIndexConfig (line 169) | private IndexConfig generateIndexConfig(IndexTemplatePhyWithLogic phys...
    method syncDeleteTomorrowIndexByPhysicalId (line 190) | private boolean syncDeleteTomorrowIndexByPhysicalId(Long physicalId, i...
    method preCreateIndex (line 209) | @Override
    method reBuildTomorrowIndex (line 259) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/setting/TemplateLogicSettingsManager.java
  type TemplateLogicSettingsManager (line 15) | public interface TemplateLogicSettingsManager {
    method customizeSetting (line 35) | Result<Void> customizeSetting(TemplateSettingDTO settingDTO, String op...
    method getSettings (line 43) | Result<IndexTemplatePhySetting> getSettings(Integer logicId) throws Ad...
    method buildTemplateSettingVO (line 50) | Result<TemplateSettingVO> buildTemplateSettingVO(Integer logicId);
    method updateSettings (line 58) | @Deprecated
    method updateSettings (line 70) | Result<Void> updateSettings(Integer logicId, IndexTemplatePhySetting s...
    method getTemplateSettings (line 78) | Result<IndexTemplatePhySetting> getTemplateSettings(Integer logicId);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/setting/TemplatePhySettingManager.java
  type TemplatePhySettingManager (line 8) | public interface TemplatePhySettingManager {
    method validTemplateSettings (line 16) | boolean validTemplateSettings(String cluster, String template,
    method fetchTemplateSettings (line 25) | IndexTemplatePhySetting fetchTemplateSettings(String cluster, String t...
    method mergeTemplateSettings (line 34) | boolean mergeTemplateSettings(Integer logicId, String cluster, String ...
    method mergeTemplateSettingsCheckAllocationAndShard (line 46) | boolean mergeTemplateSettingsCheckAllocationAndShard(Integer logicId, ...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/setting/impl/TemplateLogicSettingsManagerImpl.java
  class TemplateLogicSettingsManagerImpl (line 51) | @Service
    method templateSrv (line 70) | @Override
    method customizeSetting (line 76) | @Override
    method getSettings (line 106) | @Override
    method buildTemplateSettingVO (line 111) | @Override
    method updateSettings (line 150) | @Override
    method updateSettings (line 179) | @Override
    method getTemplateSettings (line 235) | @Override
    method getDynamicTemplatesByLogicTemplate (line 267) | private JSONArray getDynamicTemplatesByLogicTemplate(Integer logicId) {
    method getAnalysisFromTemplateSettings (line 287) | private JSONObject getAnalysisFromTemplateSettings(IndexTemplatePhySet...
    method noPartitioningIndexSettingChanges (line 305) | private Result<Void> noPartitioningIndexSettingChanges(IndexTemplatePh...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/setting/impl/TemplatePhySettingManagerImpl.java
  class TemplatePhySettingManagerImpl (line 29) | @Service
    method validTemplateSettings (line 40) | @Override
    method fetchTemplateSettings (line 56) | @Override
    method mergeTemplateSettings (line 69) | @Override
    method mergeTemplateSettingsCheckAllocationAndShard (line 106) | @Override
    method fetchPreCreateTemplateName (line 131) | private String fetchPreCreateTemplateName(String templateName) {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/thardpart/CommonManager.java
  type CommonManager (line 9) | public interface CommonManager {
    method listDataCluster (line 15) | Result<List<ThirdPartClusterVO>> listDataCluster();
    method getDataCluster (line 22) | Result<ThirdPartClusterVO> getDataCluster(String cluster);
    method queryConfig (line 29) | Result<List<ThirdpartConfigVO>> queryConfig(AriusConfigInfoDTO param);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/thardpart/impl/CommonManagerImpl.java
  class CommonManagerImpl (line 20) | @Component
    method listDataCluster (line 33) | @Override
    method getDataCluster (line 49) | @Override
    method queryConfig (line 55) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/BaseWorkOrderHandler.java
  class BaseWorkOrderHandler (line 28) | public abstract class BaseWorkOrderHandler implements WorkOrderHandler {
    method submit (line 47) | @Override
    method processAgree (line 86) | @Override
    method processDisagree (line 108) | @Override
    method doProcessDisagree (line 120) | protected Result<Void> doProcessDisagree(WorkOrderPO orderPO, WorkOrde...
    method validDuplicateOrder (line 137) | protected Result<Void> validDuplicateOrder(WorkOrder workOrder) {
    method validateConsoleParam (line 167) | protected abstract Result<Void> validateConsoleParam(WorkOrder workOrd...
    method getTitle (line 174) | protected abstract String getTitle(WorkOrder workOrder);
    method validateConsoleAuth (line 181) | protected abstract Result<Void> validateConsoleAuth(WorkOrder workOrder);
    method validateParam (line 188) | protected abstract Result<Void> validateParam(WorkOrder workOrder);
    method doProcessAgree (line 197) | protected abstract Result<Void> doProcessAgree(WorkOrder workOrder, St...
    method getOPList (line 199) | protected List<UserBriefVO> getOPList() {
    method isOP (line 203) | protected boolean isOP(String userName) {
    method buildOrderPO (line 214) | private WorkOrderPO buildOrderPO(WorkOrder workOrder) {
    method handleProcessAgree (line 226) | private Result<Void> handleProcessAgree(WorkOrder workOrder, String ap...
    method updateWorkOrderStatus (line 240) | private Result<Void> updateWorkOrderStatus(WorkOrder workOrder, String...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/WorkOrderHandler.java
  type WorkOrderHandler (line 17) | public interface WorkOrderHandler extends BaseHandle {
    method submit (line 30) | Result<WorkOrderPO> submit(WorkOrder workOrder) throws AdminOperateExc...
    method processAgree (line 40) | Result<Void> processAgree(WorkOrder workOrder, String approver, String...
    method processDisagree (line 48) | Result<Void> processDisagree(WorkOrderPO orderPO, WorkOrderProcessDTO ...
    method canAutoReview (line 55) | boolean canAutoReview(WorkOrder workOrder);
    method getOrderDetail (line 62) | AbstractOrderDetail getOrderDetail(String extensions);
    method getApproverList (line 69) | List<UserBriefVO> getApproverList(AbstractOrderDetail detail);
    method checkAuthority (line 77) | Result<Void> checkAuthority(WorkOrderPO orderPO, String userName);

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/WorkOrderManager.java
  type WorkOrderManager (line 22) | public interface WorkOrderManager {
    method getOrderTypes (line 28) | Result<List<OrderTypeVO>> getOrderTypes();
    method submit (line 36) | Result<AriusWorkOrderInfoSubmittedVO> submit(WorkOrderDTO workOrderDTO...
    method process (line 45) | Result<Void> process(WorkOrderProcessDTO workOrderProcessDTO, Integer ...
    method insert (line 52) | int insert(WorkOrderPO orderDO);
    method updateOrderById (line 59) | int updateOrderById(WorkOrderPO orderDO);
    method getById (line 66) | Result<OrderDetailBaseVO> getById(Long id);
    method list (line 72) | List<WorkOrderPO> list();
    method cancelOrder (line 80) | Result<Void> cancelOrder(Long id, String userName);
    method processOrder (line 87) | Result<Void> processOrder(WorkOrderPO orderDO);
    method getOrderApplyList (line 96) | Result<List<WorkOrderVO>> getOrderApplyList(Integer status, Integer pr...
    method getOrderApplyList (line 98) | Result<List<WorkOrderVO>> getOrderApplyList(String applicant, Integer ...
    method getApprovalList (line 105) | List<WorkOrderPO> getApprovalList(String approver);
    method getPassApprovalList (line 112) | List<WorkOrderPO> getPassApprovalList(String approver);
    method getWaitApprovalList (line 119) | List<WorkOrderPO> getWaitApprovalList(String userName);
    method getBaseDetail (line 126) | OrderInfoDetail getBaseDetail(WorkOrderPO orderPO) throws NotFindSubcl...
    method getOrderApprovalListByStatus (line 133) | Result<List<WorkOrderVO>> getOrderApprovalListByStatus(Integer status)...
    method submitByJoinLogicCluster (line 135) | Result<AriusWorkOrderInfoSubmittedVO> submitByJoinLogicCluster(WorkOrd...
    method processByJoinLogicCluster (line 138) | Result<Void> processByJoinLogicCluster(WorkOrderProcessDTO processDTO,...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/BaseContent.java
  class BaseContent (line 7) | public class BaseContent {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/ClusterDeleteContent.java
  class ClusterDeleteContent (line 10) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/ClusterLogicTransferContent.java
  class ClusterLogicTransferContent (line 9) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/DslTemplateQueryLimitContent.java
  class DslTemplateQueryLimitContent (line 9) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/DslTemplateStatusContent.java
  class DslTemplateStatusContent (line 6) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/JoinLogicClusterContent.java
  class JoinLogicClusterContent (line 13) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/LogicClusterAuthContent.java
  class LogicClusterAuthContent (line 8) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/LogicClusterCreateContent.java
  class LogicClusterCreateContent (line 6) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/LogicClusterDeleteContent.java
  class LogicClusterDeleteContent (line 9) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/LogicClusterIndecreaseContent.java
  class LogicClusterIndecreaseContent (line 9) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/LogicClusterPlugOperationContent.java
  class LogicClusterPlugOperationContent (line 6) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/LogicClusterPluginContent.java
  class LogicClusterPluginContent (line 6) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/PhyClusterPluginOperationContent.java
  class PhyClusterPluginOperationContent (line 6) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/QueryDslLimitEditContent.java
  class QueryDslLimitEditContent (line 11) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/TemplateAuthContent.java
  class TemplateAuthContent (line 12) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/TemplateCreateContent.java
  class TemplateCreateContent (line 11) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/TemplateIndecreaseContent.java
  class TemplateIndecreaseContent (line 11) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/TemplateLogicStatusContent.java
  class TemplateLogicStatusContent (line 6) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/TemplateQueryDslContent.java
  class TemplateQueryDslContent (line 11) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/TemplateTransferContent.java
  class TemplateTransferContent (line 11) | @Data

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/ClusterDeleteHandler.java
  class ClusterDeleteHandler (line 34) | @Service
    method validateConsoleParam (line 52) | @Override
    method getTitle (line 77) | @Override
    method validateConsoleAuth (line 87) | @Override
    method validateParam (line 96) | @Override
    method doProcessAgree (line 101) | @Override
    method canAutoReview (line 118) | @Override
    method getOrderDetail (line 123) | @Override
    method getApproverList (line 128) | @Override
    method checkAuthority (line 133) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/ClusterOpIndecreaseHandler.java
  class ClusterOpIndecreaseHandler (line 61) | @Service("clusterOpIndecreaseHandler")
    method validateConsoleParam (line 84) | @Override
    method getTitle (line 155) | @Override
    method validateConsoleAuth (line 166) | @Override
    method validateParam (line 175) | @Override
    method doProcessAgree (line 180) | @Override
    method canAutoReview (line 229) | @Override
    method getOrderDetail (line 234) | @Override
    method getApproverList (line 253) | @Override
    method checkAuthority (line 258) | @Override
    method getHostScaleParamBaseList (line 266) | private List<EcmParamBase> getHostScaleParamBaseList(Integer phyCluste...
    method initParam (line 280) | private void initParam(WorkOrder workOrder) {
    method buildHostScaleParamBaseList (line 302) | private List<EcmParamBase> buildHostScaleParamBaseList(List<ESClusterR...
    method getPortOfRoleMapFromHost (line 337) | private Map<String/*角色名称*/, String/*端口号*/> getPortOfRoleMapFromHost(Lo...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/ClusterOpNewHandler.java
  class ClusterOpNewHandler (line 54) | @Service("clusterOpNewHandler")
    method validateConsoleParam (line 69) | @Override
    method getTitle (line 106) | @Override
    method validateConsoleAuth (line 116) | @Override
    method validateParam (line 125) | @Override
    method doProcessAgree (line 130) | @Override
    method canAutoReview (line 176) | @Override
    method getOrderDetail (line 181) | @Override
    method getApproverList (line 201) | @Override
    method checkAuthority (line 206) | @Override
    method validateClusterMasterNodeNumber (line 216) | private Result<Void> validateClusterMasterNodeNumber(ClusterBaseConten...
    method initParam (line 225) | private Result<Void> initParam(WorkOrder workOrder) {
    method validateClusterMasterNodeNumberESDocker (line 255) | private Result<Void> validateClusterMasterNodeNumberESDocker(WorkOrder...
    method validateClusterMasterNodeNumberESHost (line 279) | private Result<Void> validateClusterMasterNodeNumberESHost(WorkOrder w...
    method validRoleClusterPort (line 301) | private Result<Void> validRoleClusterPort(WorkOrder workOrder) {

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/ClusterOpOfflineHandler.java
  class ClusterOpOfflineHandler (line 35) | @Service("clusterOpOfflineHandler")
    method canAutoReview (line 53) | @Override
    method getOrderDetail (line 58) | @Override
    method getApproverList (line 65) | @Override
    method checkAuthority (line 70) | @Override
    method validateConsoleParam (line 86) | @Override
    method getTitle (line 108) | @Override
    method validateConsoleAuth (line 125) | @Override
    method validateParam (line 141) | @Override
    method doProcessAgree (line 152) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/ClusterOpUpdateHandler.java
  class ClusterOpUpdateHandler (line 49) | @Service("clusterOpUpdateHandler")
    method validateConsoleParam (line 70) | @Override
    method getTitle (line 95) | @Override
    method validateConsoleAuth (line 105) | @Override
    method validateParam (line 114) | @Override
    method doProcessAgree (line 119) | @Override
    method canAutoReview (line 179) | @Override
    method getOrderDetail (line 184) | @Override
    method getApproverList (line 191) | @Override
    method checkAuthority (line 196) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/DslTemplateQueryLimitHandler.java
  class DslTemplateQueryLimitHandler (line 28) | @Service("dslTemplateQueryLimitHandler")
    method canAutoReview (line 40) | @Override
    method getOrderDetail (line 45) | @Override
    method getApproverList (line 51) | @Override
    method checkAuthority (line 56) | @Override
    method validateConsoleParam (line 70) | @Override
    method getTitle (line 89) | @Override
    method validateConsoleAuth (line 110) | @Override
    method validateParam (line 121) | @Override
    method doProcessAgree (line 132) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/DslTemplateStatusChangeHandler.java
  class DslTemplateStatusChangeHandler (line 29) | @Service("dslTemplateStatusChangeHandler")
    method canAutoReview (line 41) | @Override
    method getOrderDetail (line 46) | @Override
    method getApproverList (line 53) | @Override
    method checkAuthority (line 58) | @Override
    method validateConsoleParam (line 72) | @Override
    method getTitle (line 91) | @Override
    method validateConsoleAuth (line 113) | @Override
    method validateParam (line 124) | @Override
    method doProcessAgree (line 135) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterAuthHandler.java
  class LogicClusterAuthHandler (line 25) | @Service("logicClusterAuthHandler")
    method validateConsoleParam (line 36) | @Override
    method getTitle (line 56) | @Override
    method validateConsoleAuth (line 67) | @Override
    method validateParam (line 72) | @Override
    method doProcessAgree (line 77) | @Override
    method canAutoReview (line 87) | @Override
    method getOrderDetail (line 92) | @Override
    method getApproverList (line 99) | @Override
    method checkAuthority (line 104) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterCreateHandler.java
  class LogicClusterCreateHandler (line 32) | @Service("logicClusterCreateHandler")
    method getOrderDetail (line 41) | @Override
    method getApproverList (line 48) | @Override
    method checkAuthority (line 53) | @Override
    method canAutoReview (line 67) | @Override
    method validateConsoleParam (line 80) | @Override
    method getTitle (line 94) | @Override
    method validateConsoleAuth (line 112) | @Override
    method doProcessAgree (line 120) | @Override
    method validateParam (line 146) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterIndecreaseHandler.java
  class LogicClusterIndecreaseHandler (line 39) | @Service("logicClusterIndecreaseHandler")
    method canAutoReview (line 58) | @Override
    method getOrderDetail (line 63) | @Override
    method getApproverList (line 76) | @Override
    method checkAuthority (line 81) | @Override
    method validateConsoleParam (line 97) | @Override
    method getTitle (line 114) | @Override
    method validateConsoleAuth (line 133) | @Override
    method validateParam (line 159) | @Override
    method doProcessAgree (line 170) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterJoinHandler.java
  class LogicClusterJoinHandler (line 26) | @Service("logicClusterJoinHandler")
    method getOrderDetail (line 31) | @Override
    method getApproverList (line 37) | @Override
    method checkAuthority (line 42) | @Override
    method canAutoReview (line 56) | @Override
    method validateConsoleParam (line 66) | @Override
    method getTitle (line 77) | @Override
    method validateConsoleAuth (line 95) | @Override
    method doProcessAgree (line 103) | @Override
    method validateParam (line 124) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterPlugOperationHandler.java
  class LogicClusterPlugOperationHandler (line 41) | @Service("logicClusterPlugOperationHandler")
    method validateConsoleParam (line 67) | @Override
    method getTitle (line 83) | @Override
    method validateConsoleAuth (line 96) | @Override
    method validateParam (line 116) | @Override
    method doProcessAgree (line 121) | @Override
    method canAutoReview (line 136) | @Override
    method getOrderDetail (line 141) | @Override
    method getApproverList (line 148) | @Override
    method checkAuthority (line 153) | @Override
    method editClusterAndSave2WorkOrderTask (line 161) | private Result<EcmTaskDTO> editClusterAndSave2WorkOrderTask(Integer cl...

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterPluginHandler.java
  class LogicClusterPluginHandler (line 23) | @Service("logicClusterPluginHandler")
    method validateConsoleParam (line 32) | @Override
    method getTitle (line 44) | @Override
    method validateConsoleAuth (line 56) | @Override
    method validateParam (line 76) | @Override
    method doProcessAgree (line 81) | @Override
    method canAutoReview (line 87) | @Override
    method getOrderDetail (line 92) | @Override
    method getApproverList (line 99) | @Override
    method checkAuthority (line 104) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterTransferHandler.java
  class LogicClusterTransferHandler (line 24) | @Service
    method validateConsoleParam (line 32) | @Override
    method getTitle (line 62) | @Override
    method validateConsoleAuth (line 74) | @Override
    method validateParam (line 104) | @Override
    method doProcessAgree (line 109) | @Override
    method canAutoReview (line 120) | @Override
    method getOrderDetail (line 125) | @Override
    method getApproverList (line 130) | @Override
    method checkAuthority (line 135) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/QueryDslLimitEditHandler.java
  class QueryDslLimitEditHandler (line 28) | @Service("queryDslLimitEditHandler")
    method canAutoReview (line 40) | @Override
    method getOrderDetail (line 45) | @Override
    method getApproverList (line 52) | @Override
    method checkAuthority (line 57) | @Override
    method validateConsoleParam (line 73) | @Override
    method getTitle (line 89) | @Override
    method validateConsoleAuth (line 107) | @Override
    method validateParam (line 118) | @Override
    method doProcessAgree (line 129) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/TemplateAuthHandler.java
  class TemplateAuthHandler (line 30) | @NoArgsConstructor
    method canAutoReview (line 44) | @Override
    method getOrderDetail (line 49) | @Override
    method getApproverList (line 55) | @Override
    method checkAuthority (line 60) | @Override
    method validateConsoleParam (line 76) | @Override
    method getTitle (line 113) | @Override
    method validateConsoleAuth (line 130) | @Override
    method validateParam (line 141) | @Override
    method doProcessAgree (line 152) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/TemplateLogicBlockReadHandler.java
  class TemplateLogicBlockReadHandler (line 29) | @Service("templateLogicBlockReadHandler")
    method canAutoReview (line 41) | @Override
    method getOrderDetail (line 46) | @Override
    method getApproverList (line 53) | @Override
    method checkAuthority (line 58) | @Override
    method validateConsoleParam (line 72) | @Override
    method getTitle (line 99) | @Override
    method validateConsoleAuth (line 121) | @Override
    method validateParam (line 132) | @Override
    method doProcessAgree (line 143) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/TemplateLogicBlockWriteHandler.java
  class TemplateLogicBlockWriteHandler (line 29) | @Service("templateLogicBlockWriteHandler")
    method canAutoReview (line 41) | @Override
    method getOrderDetail (line 46) | @Override
    method getApproverList (line 53) | @Override
    method checkAuthority (line 58) | @Override
    method validateConsoleParam (line 72) | @Override
    method getTitle (line 99) | @Override
    method validateConsoleAuth (line 121) | @Override
    method validateParam (line 132) | @Override
    method doProcessAgree (line 143) | @Override

FILE: arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/TemplateQueryDslHandler.java
  class TemplateQueryDslHandler (line 32) | @Service("templateQueryDslHandler")
    method canAutoReview (line 47) | @Override
    method getOrderDetail (line 52) | @Override
    method getApproverList (line 59) | @Override
    method checkAuthority (line 64) | @Override
    method validateConsoleParam (line 78) | @Override
  
Copy disabled (too large) Download .json
Condensed preview — 3025 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (13,262K chars).
[
  {
    "path": ".gitignore",
    "chars": 541,
    "preview": "#.gitignore for java\n*.class\n\n# Package Files #\n*.jar\n*.war\n*.ear\n**/target/\n**/output/\n**/META-INF/\n# logs\n/stacktrace."
  },
  {
    "path": "README.md",
    "chars": 1910,
    "preview": "<img src=\"./doc/file/KnowSearch.png\" width=\"300\"/>\n\n# 1.KnowSearch简介\n\nKnowSearch是面向Elasticsearch研发与运维人员,围绕集群、索引构建的零侵入、多租"
  },
  {
    "path": "Releases_Notes.md",
    "chars": 2949,
    "preview": "# v0.3.1\n\n版本上线时间:2022-12-30\n\n## 能力提升\n- KnowSearch工程,基于Metrics构建观测体系,指标通过Grafana展示\n- 物理集群接入流程加入Kibana/Cerebro外联地址,集群详情支持跳"
  },
  {
    "path": "arius-admin/README.md",
    "chars": 2185,
    "preview": "## 1. 项目背景\n    arius-admin-v2 致力于实现一套于对Elasticsearch元数据的管控平台,负责维护项目(APPID)、索引、Elasticsearch集群资源等信息的管理,并维护三者之前的关系;对外暴露res"
  },
  {
    "path": "arius-admin/arius-admin-biz/pom.xml",
    "chars": 2639,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xmlns=\"ht"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterContextManager.java",
    "chars": 2707,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterIndexManager.java",
    "chars": 670,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterLogicManager.java",
    "chars": 8776,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster;\n\nimport com.didichuxing.datachannel.arius.admin.common.Tupl"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterNodeManager.java",
    "chars": 3831,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterPhyManager.java",
    "chars": 10895,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterPhyQuickCommandManager.java",
    "chars": 3380,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterPluginManager.java",
    "chars": 1065,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ClusterRegionManager.java",
    "chars": 3702,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/ESClusterConfigManager.java",
    "chars": 1315,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterContextManagerImpl.java",
    "chars": 38343,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;\n\nimport static com.didichuxing.datachannel.arius.admin"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterIndexManagerImpl.java",
    "chars": 2805,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.cl"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterLogicManagerImpl.java",
    "chars": 60580,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;\n\nimport static com.didichuxing.datachannel.arius.admin"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterNodeManagerImpl.java",
    "chars": 23715,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;\n\nimport static com.didichuxing.datachannel.arius.admin"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterPhyManagerImpl.java",
    "chars": 88394,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;\n\nimport static com.didichuxing.datachannel.arius.admin"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterPhyQuickCommandManagerImpl.java",
    "chars": 9978,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.inter"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterPluginManagerImpl.java",
    "chars": 1990,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.cl"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ClusterRegionManagerImpl.java",
    "chars": 35486,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;\n\nimport static com.didichuxing.datachannel.arius.admin"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/cluster/impl/ESClusterConfigManagerImpl.java",
    "chars": 4094,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.cluster.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.cl"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/component/MetricsValueConvertUtils.java",
    "chars": 19144,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.component;\n\nimport static com.didichuxing.datachannel.arius.admin.co"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/dsl/DslMetricsManager.java",
    "chars": 1486,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.dsl;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean.com"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/dsl/DslTemplateManager.java",
    "chars": 2324,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.dsl;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean.com"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/dsl/impl/DslMetricsManagerImpl.java",
    "chars": 2404,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.dsl.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.dsl.Ds"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/dsl/impl/DslTemplateManagerImpl.java",
    "chars": 6025,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.dsl.impl;\n\nimport static com.didichuxing.datachannel.arius.admin.com"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/espackage/ESPackageManager.java",
    "chars": 4193,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.espackage;\n\nimport com.didichuxing.datachannel.arius.admin.common.be"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/extend/foctory/ExtendServiceFactory.java",
    "chars": 3178,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.extend.foctory;\n\nimport java.util.List;\nimport java.util.Map;\nimport"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/gateway/GatewayJoinLogManager.java",
    "chars": 1784,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.gateway;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/gateway/GatewayManager.java",
    "chars": 3270,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.gateway;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/gateway/impl/GatewayJoinLogManagerImpl.java",
    "chars": 3992,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.gateway.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.ds"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/gateway/impl/GatewayManagerImpl.java",
    "chars": 25598,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.gateway.impl;\n\nimport java.util.*;\nimport java.util.Map.Entry;\nimpor"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/indices/IndicesManager.java",
    "chars": 8398,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.indices;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/indices/IndicesManagerImpl.java",
    "chars": 45366,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.indices;\n\nimport com.alibaba.fastjson.JSON;\nimport com.alibaba.fastj"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/ApplicationRetryListener.java",
    "chars": 1089,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport com.didichuxing.datachannel.arius.admin.common.exc"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/ClusterLogicChangeListener.java",
    "chars": 1331,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport com.didichuxing.datachannel.arius.admin.biz.cluste"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/ClusterPhyChangeListener.java",
    "chars": 1681,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport com.didichuxing.datachannel.arius.admin.biz.cluste"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/ClusterPhyHealthListener.java",
    "chars": 1601,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport org.springframework.beans.factory.annotation.Autow"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/DCDRLinkAbnormalIndicesRebuildListener.java",
    "chars": 1760,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport com.didichuxing.datachannel.arius.admin.biz.templa"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/LoggingListener.java",
    "chars": 1526,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport org.apache.commons.lang3.StringUtils;\nimport org.s"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/LogicTemplateCreatePipelineListener.java",
    "chars": 2608,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport com.didichuxing.datachannel.arius.admin.biz.templa"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/ReBuildTomorrowIndexListener.java",
    "chars": 1556,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport com.didichuxing.datachannel.arius.admin.biz.templa"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/RefreshCatIndexListener.java",
    "chars": 2603,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport com.didichuxing.datachannel.arius.admin.common.bea"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/RegionEditEventListener.java",
    "chars": 9173,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport com.didichuxing.datachannel.arius.admin.common.bea"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/TemplateEventClearIndexListener.java",
    "chars": 2265,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport com.didichuxing.datachannel.arius.admin.biz.indice"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/TemplateEventPipelineListener.java",
    "chars": 5716,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport com.didichuxing.datachannel.arius.admin.biz.templa"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/TemplatePhyMetaChangedListener.java",
    "chars": 3208,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport com.alibaba.fastjson.JSON;\nimport com.didichuxing."
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/listener/TemplateProjectIdChangedListener.java",
    "chars": 2906,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.listener;\n\nimport com.alibaba.fastjson.JSON;\nimport com.didichuxing."
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/ClusterPhyMetricsManager.java",
    "chars": 3860,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics;\n\nimport java.util.List;\n\nimport com.didichuxing.datachannel"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/DashboardMetricsManager.java",
    "chars": 2579,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/GatewayMetricsManager.java",
    "chars": 2040,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics;\n\nimport java.util.List;\n\nimport com.didichuxing.datachannel"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/MetricsDictionaryManager.java",
    "chars": 651,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/BaseClusterMetricsHandle.java",
    "chars": 7355,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics.handle;\n\nimport com.didichuxing.datachannel.arius.admin.biz."
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/ClusterLogicOverviewMetricsHandle.java",
    "chars": 35695,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics.handle;\n\nimport com.baomidou.mybatisplus.core.toolkit.Collec"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/ClusterOverviewMetricsHandle.java",
    "chars": 35351,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics.handle;\n\nimport static com.didichuxing.datachannel.arius.adm"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/handler/PhyIndicesClusterMetricsHandler.java",
    "chars": 3663,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics.handle.handler;\n\nimport static com.didichuxing.datachannel.a"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/handler/PhyNodeClusterMetricsHandler.java",
    "chars": 2563,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics.handle.handler;\n\nimport static com.didichuxing.datachannel.a"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/handler/PhyNodesTaskClusterMetricsHandler.java",
    "chars": 2681,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics.handle.handler;\n\nimport static com.didichuxing.datachannel.a"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/handler/PhyOverviewClusterMetricsHandler.java",
    "chars": 2526,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics.handle.handler;\n\nimport static com.didichuxing.datachannel.a"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/handle/handler/PhyTemplateClusterMetricsHandler.java",
    "chars": 5891,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics.handle.handler;\n\nimport static com.didichuxing.datachannel.a"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/impl/ClusterPhyMetricsManagerImpl.java",
    "chars": 14372,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.me"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/impl/DashboardMetricsManagerImpl.java",
    "chars": 19009,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics.impl;\n\nimport com.alibaba.fastjson.JSONObject;\nimport com.di"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/impl/GatewayMetricsManagerImpl.java",
    "chars": 22027,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics.impl;\n\nimport java.util.*;\nimport java.util.stream.Collector"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/metrics/impl/MetricsDictionaryManagerImpl.java",
    "chars": 1256,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.metrics.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.me"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/AbstractPageSearchHandle.java",
    "chars": 2726,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.page;\n\nimport org.springframework.beans.factory.annotation.Autowired"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/ClusterLogicPageSearchHandle.java",
    "chars": 6137,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.page;\n\nimport com.didichuxing.datachannel.arius.admin.common.Triple;"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/ClusterPhyPageSearchHandle.java",
    "chars": 6107,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.page;\n\nimport com.didichuxing.datachannel.arius.admin.biz.cluster.Cl"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/DslTemplatePageSearchHandle.java",
    "chars": 3020,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.page;\n\nimport com.didichuxing.datachannel.arius.admin.common.Tuple;\n"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/GatewayJoinPageSearchHandle.java",
    "chars": 4145,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.page;\n\nimport com.didichuxing.datachannel.arius.admin.common.Tuple;\n"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/IndexPageSearchHandle.java",
    "chars": 6304,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.page;\n\nimport com.didichuxing.datachannel.arius.admin.common.Tuple;\n"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/OperateRecordPageSearchHandle.java",
    "chars": 2643,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.page;\n\nimport com.didichuxing.datachannel.arius.admin.common.Tuple;\n"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/QuickCommandIndicesDistributionPageSearchHandle.java",
    "chars": 4077,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.page;\n\nimport com.didichuxing.datachannel.arius.admin.common.Tuple;\n"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/QuickCommandShardsDistributionPageSearchHandle.java",
    "chars": 3446,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.page;\n\nimport com.didichuxing.datachannel.arius.admin.common.Tuple;\n"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/TaskPageSearchHandle.java",
    "chars": 1784,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.page;\n\nimport com.didichuxing.datachannel.arius.admin.common.Tuple;\n"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/TemplateLogicPageSearchHandle.java",
    "chars": 5908,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.page;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean.co"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/page/TemplateSrvPageSearchHandle.java",
    "chars": 12214,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.page;\n\nimport com.didichuxing.datachannel.arius.admin.biz.cluster.Cl"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/ESUserManager.java",
    "chars": 3727,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/LoginManager.java",
    "chars": 1545,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project;\n\nimport com.didichuxing.datachannel.arius.admin.common.exce"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/OperateRecordManager.java",
    "chars": 1576,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/PermissionExtendManager.java",
    "chars": 474,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project;\n\nimport com.didiglobal.knowframework.security.common.Result"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/ProjectClusterLogicAuthManager.java",
    "chars": 715,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/ProjectConfigManager.java",
    "chars": 485,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/ProjectExtendManager.java",
    "chars": 4535,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/ProjectLogicTemplateAuthManager.java",
    "chars": 1600,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/RoleExtendManager.java",
    "chars": 2382,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/UserExtendManager.java",
    "chars": 4126,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/ESUserManagerImpl.java",
    "chars": 21557,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project.impl;\n\nimport static com.didichuxing.datachannel.arius.admin"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/LoginManagerImpl.java",
    "chars": 8508,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project.impl;\n\nimport static com.didiglobal.knowframework.security.u"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/OperateRecordManagerImpl.java",
    "chars": 8220,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.pa"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/PermissionExtendManagerImpl.java",
    "chars": 1162,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.pr"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/ProjectClusterLogicAuthManagerImpl.java",
    "chars": 3037,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project.impl;\n\nimport com.baomidou.mybatisplus.core.toolkit.Collecti"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/ProjectConfigManagerImpl.java",
    "chars": 1158,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.pr"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/ProjectExtendManagerImpl.java",
    "chars": 37654,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project.impl;\n\nimport static com.didichuxing.datachannel.arius.admin"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/ProjectLogicTemplateAuthManagerImpl.java",
    "chars": 8279,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.pr"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/RoleExtendManagerImpl.java",
    "chars": 10185,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.pr"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/project/impl/UserExtendManagerImpl.java",
    "chars": 21592,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.project.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.pr"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/security/resource/ResourceExtendManager.java",
    "chars": 1911,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.security.resource;\n\nimport com.didiglobal.knowframework.security.com"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/OpTaskHandler.java",
    "chars": 1095,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean.co"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/OpTaskManager.java",
    "chars": 2735,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task;\n\nimport com.didichuxing.datachannel.arius.admin.common.bean.co"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterBaseContent.java",
    "chars": 370,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstructor;\n"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterConfigRestartContent.java",
    "chars": 726,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.content;\n\nimport com.didichuxing.datachannel.arius.admin.common"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterHostContent.java",
    "chars": 464,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.content;\n\nimport com.didichuxing.datachannel.arius.admin.common"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterIndecreaseDockerContent.java",
    "chars": 755,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.content;\n\nimport com.didichuxing.datachannel.arius.admin.common"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterIndecreaseHostContent.java",
    "chars": 741,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.content;\n\nimport com.didichuxing.datachannel.arius.admin.common"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterNewDockerContent.java",
    "chars": 1197,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.content;\n\nimport com.didichuxing.datachannel.arius.admin.common"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterNewHostContent.java",
    "chars": 1268,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.content;\n\nimport com.didichuxing.datachannel.arius.admin.common"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterOfflineContent.java",
    "chars": 468,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.content;\n\nimport com.didichuxing.datachannel.arius.admin.biz.wo"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterRestartContent.java",
    "chars": 495,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.content;\n\nimport lombok.AllArgsConstructor;\nimport lombok.Data;"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/content/ClusterUpdateContent.java",
    "chars": 499,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstructor;\n"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/ecm/EcmTaskDetailManager.java",
    "chars": 2447,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.ecm;\n\nimport com.didichuxing.datachannel.arius.admin.common.bea"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/ecm/EcmTaskManager.java",
    "chars": 4363,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.ecm;\n\nimport java.util.List;\n\nimport com.didichuxing.datachanne"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/ecm/impl/EcmTaskDetailManagerImpl.java",
    "chars": 13485,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.ecm.impl;\n\nimport java.util.List;\nimport java.util.Map;\nimport "
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/ecm/impl/EcmTaskManagerImpl.java",
    "chars": 55350,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.ecm.impl;\n\nimport static com.didichuxing.datachannel.arius.admi"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/AbstractOpTaskHandler.java",
    "chars": 4096,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.handler;\n\nimport com.alibaba.fastjson.JSON;\nimport com.didichux"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/DCDROpTaskHandler.java",
    "chars": 3632,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.handler;\n\nimport com.alibaba.fastjson.JSON;\nimport com.didichux"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/ECMOpTaskHandler.java",
    "chars": 12739,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.handler;\n\nimport java.util.List;\nimport java.util.Map;\nimport j"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/AbstractClusterTaskHandler.java",
    "chars": 6920,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.handler.cluster;\n\nimport static com.didichuxing.datachannel.ari"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/ClusterConfigRestartTaskHandler.java",
    "chars": 10076,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.handler.cluster;\n\nimport static com.didichuxing.datachannel.ari"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/ClusterCreateTaskHandler.java",
    "chars": 7705,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.handler.cluster;\n\nimport static com.didichuxing.datachannel.ari"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/ClusterOfflineTaskHandler.java",
    "chars": 2603,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.handler.cluster;\n\nimport com.didichuxing.datachannel.arius.admi"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/ClusterRestartTaskHandler.java",
    "chars": 4674,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.handler.cluster;\n\nimport static com.didichuxing.datachannel.ari"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/ClusterScaleTaskHandler.java",
    "chars": 12747,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.handler.cluster;\n\nimport static com.didichuxing.datachannel.ari"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/handler/cluster/ClusterUpgradeTaskHandler.java",
    "chars": 5024,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.handler.cluster;\n\nimport static com.didichuxing.datachannel.ari"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/task/impl/OpTaskManagerImpl.java",
    "chars": 6639,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.task.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.page."
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/TemplateLogicManager.java",
    "chars": 8369,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template;\n\nimport com.didichuxing.datachannel.arius.admin.common.Tup"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/TemplatePhyManager.java",
    "chars": 5723,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template;\n\nimport com.didichuxing.datachannel.arius.admin.common.Tup"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/TemplatePhyStaticsManager.java",
    "chars": 1531,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template;\n\nimport com.didichuxing.datachannel.arius.admin.common.bea"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/impl/TemplateLogicManagerImpl.java",
    "chars": 71358,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.impl;\n\nimport static com.didichuxing.datachannel.arius.admi"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/impl/TemplatePhyManagerImpl.java",
    "chars": 47491,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.impl;\n\nimport static com.didichuxing.datachannel.arius.admi"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/impl/TemplatePhyStaticsManagerImpl.java",
    "chars": 2449,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz.t"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/TemplateSrvManager.java",
    "chars": 3504,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv;\n\nimport com.didichuxing.datachannel.arius.admin.common"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/TemplateSrvManagerImpl.java",
    "chars": 15660,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv;\n\nimport static com.didichuxing.datachannel.arius.admin"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/aliases/TemplateLogicAliasManager.java",
    "chars": 2628,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.aliases;\n\nimport com.didichuxing.datachannel.arius.admi"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/aliases/TemplatePhyAliasManager.java",
    "chars": 2989,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.aliases;\n\nimport com.didichuxing.datachannel.arius.admi"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/aliases/impl/TemplateLogicAliasManagerImpl.java",
    "chars": 14991,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.aliases.impl;\n\nimport com.didichuxing.datachannel.arius"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/aliases/impl/TemplatePhyAliasManagerImpl.java",
    "chars": 11629,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.aliases.impl;\n\nimport com.alibaba.fastjson.JSONObject;\n"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/base/BaseTemplateSrv.java",
    "chars": 2319,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.base;\n\nimport com.didichuxing.datachannel.arius.admin.c"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/base/impl/BaseTemplateSrvImpl.java",
    "chars": 12930,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.base.impl;\n\nimport com.didichuxing.datachannel.arius.ad"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/cold/ColdManager.java",
    "chars": 994,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.cold;\n\nimport com.didichuxing.datachannel.arius.admin.c"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/cold/impl/ColdManagerImpl.java",
    "chars": 13790,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.cold.impl;\n\nimport static com.didichuxing.datachannel.a"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/dcdr/TemplateDCDRManager.java",
    "chars": 7569,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.dcdr;\n\nimport com.didichuxing.datachannel.arius.admin.c"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/dcdr/TemplateDCDRManagerImpl.java",
    "chars": 94766,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.dcdr;\n\nimport static com.didichuxing.datachannel.arius."
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/expire/ExpireManager.java",
    "chars": 1275,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.expire;\n\nimport com.didichuxing.datachannel.arius.admin"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/expire/impl/ExpireManagerImpl.java",
    "chars": 26303,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.expire.impl;\n\nimport static com.didichuxing.datachannel"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/indexplan/IndexPlanManager.java",
    "chars": 1592,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.indexplan;\n\nimport com.didichuxing.datachannel.arius.ad"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/indexplan/impl/IndexPlanManagerImpl.java",
    "chars": 21837,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.indexplan.impl;\n\nimport static com.didichuxing.datachan"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/mapping/TemplateLogicMappingManager.java",
    "chars": 2968,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.mapping;\n\nimport com.didichuxing.datachannel.arius.admi"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/mapping/TemplatePhyMappingManager.java",
    "chars": 2433,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.mapping;\n\nimport com.didichuxing.datachannel.arius.admi"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/mapping/impl/TemplateLogicMappingManagerImpl.java",
    "chars": 55680,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.mapping.impl;\n\nimport static com.didichuxing.datachanne"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/mapping/impl/TemplatePhyMappingManagerImpl.java",
    "chars": 22114,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.mapping.impl;\n\nimport com.alibaba.fastjson.JSON;\nimport"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/pipeline/PipelineManager.java",
    "chars": 2440,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.pipeline;\n\nimport com.didichuxing.datachannel.arius.adm"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/pipeline/impl/PipelineManagerImpl.java",
    "chars": 31496,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.pipeline.impl;\n\nimport static com.didichuxing.datachann"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/precreate/PreCreateManager.java",
    "chars": 1469,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.precreate;\n\nimport com.didichuxing.datachannel.arius.ad"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/precreate/impl/PreCreateManagerImpl.java",
    "chars": 11995,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.precreate.impl;\n\nimport java.util.List;\n\nimport org.apa"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/setting/TemplateLogicSettingsManager.java",
    "chars": 2478,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.setting;\n\nimport com.didichuxing.datachannel.arius.admi"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/setting/TemplatePhySettingManager.java",
    "chars": 1691,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.setting;\n\nimport com.didichuxing.datachannel.arius.admi"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/setting/impl/TemplateLogicSettingsManagerImpl.java",
    "chars": 14473,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.setting.impl;\n\nimport static com.didichuxing.datachanne"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/template/srv/setting/impl/TemplatePhySettingManagerImpl.java",
    "chars": 6889,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.template.srv.setting.impl;\n\nimport com.didichuxing.datachannel.arius"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/thardpart/CommonManager.java",
    "chars": 841,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.thardpart;\n\nimport com.didichuxing.datachannel.arius.admin.common.be"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/thardpart/impl/CommonManagerImpl.java",
    "chars": 2669,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.thardpart.impl;\n\nimport com.didichuxing.datachannel.arius.admin.biz."
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/BaseWorkOrderHandler.java",
    "chars": 9227,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder;\n\nimport com.alibaba.fastjson.JSON;\nimport com.didichuxing"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/WorkOrderHandler.java",
    "chars": 2289,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder;\n\nimport com.didichuxing.datachannel.arius.admin.common.be"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/WorkOrderManager.java",
    "chars": 4441,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder;\n\nimport com.didichuxing.datachannel.arius.admin.common.be"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/BaseContent.java",
    "chars": 145,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\n/**\n * @author d06679\n * @date 2019/5/7\n */\npubl"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/ClusterDeleteContent.java",
    "chars": 346,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport com.didichuxing.datachannel.arius.admin.b"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/ClusterLogicTransferContent.java",
    "chars": 440,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstruc"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/DslTemplateQueryLimitContent.java",
    "chars": 516,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport com.didichuxing.datachannel.arius.admin.c"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/DslTemplateStatusContent.java",
    "chars": 432,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstruc"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/JoinLogicClusterContent.java",
    "chars": 354,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport lombok.AllArgsConstructor;\nimport lombok."
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/LogicClusterAuthContent.java",
    "chars": 601,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport com.didichuxing.datachannel.arius.admin.c"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/LogicClusterCreateContent.java",
    "chars": 703,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstruc"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/LogicClusterDeleteContent.java",
    "chars": 421,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstruc"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/LogicClusterIndecreaseContent.java",
    "chars": 909,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport com.didichuxing.datachannel.arius.admin.c"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/LogicClusterPlugOperationContent.java",
    "chars": 664,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstruc"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/LogicClusterPluginContent.java",
    "chars": 468,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstruc"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/PhyClusterPluginOperationContent.java",
    "chars": 480,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstruc"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/QueryDslLimitEditContent.java",
    "chars": 516,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstruc"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/TemplateAuthContent.java",
    "chars": 624,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport com.didichuxing.datachannel.arius.admin.c"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/TemplateCreateContent.java",
    "chars": 2706,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport com.didichuxing.datachannel.arius.admin.c"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/TemplateIndecreaseContent.java",
    "chars": 1319,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstruc"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/TemplateLogicStatusContent.java",
    "chars": 488,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstruc"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/TemplateQueryDslContent.java",
    "chars": 397,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstruc"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/content/TemplateTransferContent.java",
    "chars": 486,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.content;\n\nimport lombok.Data;\nimport lombok.NoArgsConstruc"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/ClusterDeleteHandler.java",
    "chars": 6121,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport com.didichuxing.datachannel.arius.admin.b"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/ClusterOpIndecreaseHandler.java",
    "chars": 17175,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport static com.didichuxing.datachannel.arius."
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/ClusterOpNewHandler.java",
    "chars": 14913,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport static com.didichuxing.datachannel.arius."
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/ClusterOpOfflineHandler.java",
    "chars": 6619,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport com.alibaba.fastjson.JSON;\nimport com.did"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/ClusterOpUpdateHandler.java",
    "chars": 9475,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport static com.didichuxing.datachannel.arius."
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/DslTemplateQueryLimitHandler.java",
    "chars": 4930,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport com.alibaba.fastjson.JSON;\nimport com.did"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/DslTemplateStatusChangeHandler.java",
    "chars": 5653,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport com.alibaba.fastjson.JSON;\nimport com.did"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterAuthHandler.java",
    "chars": 4728,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport com.alibaba.fastjson.JSON;\nimport com.did"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterCreateHandler.java",
    "chars": 6113,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport com.alibaba.fastjson.JSON;\nimport com.did"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterIndecreaseHandler.java",
    "chars": 9207,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport com.alibaba.fastjson.JSON;\nimport com.did"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterJoinHandler.java",
    "chars": 5794,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport com.alibaba.fastjson.JSON;\nimport com.did"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterPlugOperationHandler.java",
    "chars": 9404,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport com.alibaba.fastjson.JSON;\nimport com.did"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterPluginHandler.java",
    "chars": 4597,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport com.alibaba.fastjson.JSON;\nimport com.did"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/LogicClusterTransferHandler.java",
    "chars": 5713,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport com.alibaba.fastjson.JSON;\nimport com.did"
  },
  {
    "path": "arius-admin/arius-admin-biz/src/main/java/com/didichuxing/datachannel/arius/admin/biz/workorder/handler/QueryDslLimitEditHandler.java",
    "chars": 5106,
    "preview": "package com.didichuxing.datachannel.arius.admin.biz.workorder.handler;\n\nimport com.alibaba.fastjson.JSON;\nimport com.did"
  }
]

// ... and 2825 more files (download for full content)

About this extraction

This page contains the full source code of the didi/LogiEM GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3025 files (11.3 MB), approximately 3.2M tokens, and a symbol index with 13958 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!