├── .gitignore ├── LICENSE.md ├── README.md ├── agent-manager ├── README.md ├── agent-manager-common │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── didichuxing │ │ └── datachannel │ │ └── agentmanager │ │ └── common │ │ ├── GlobalProperties.java │ │ ├── annotation │ │ └── CheckPermission.java │ │ ├── bean │ │ ├── common │ │ │ ├── CheckResult.java │ │ │ ├── DiagnosisMetric.java │ │ │ ├── DiagnosisResult.java │ │ │ ├── HealthCheckResult.java │ │ │ ├── ListCompareResult.java │ │ │ ├── PaginationResult.java │ │ │ ├── Pair.java │ │ │ └── Result.java │ │ ├── domain │ │ │ ├── BaseDO.java │ │ │ ├── agent │ │ │ │ ├── AgentDO.java │ │ │ │ ├── health │ │ │ │ │ └── AgentHealthDO.java │ │ │ │ ├── metrics │ │ │ │ │ └── DashBoardStatisticsDO.java │ │ │ │ ├── operationtask │ │ │ │ │ ├── AgentOperationSubTaskDO.java │ │ │ │ │ ├── AgentOperationTaskDO.java │ │ │ │ │ └── AgentOperationTaskPaginationQueryConditionDO.java │ │ │ │ └── version │ │ │ │ │ ├── AgentVersionDO.java │ │ │ │ │ └── AgentVersionPaginationQueryConditionDO.java │ │ │ ├── blacklist │ │ │ │ └── CollectDelayMonitorBlackListDO.java │ │ │ ├── dashboard │ │ │ │ └── DashBoardDO.java │ │ │ ├── globalconfig │ │ │ │ └── GlobalConfigDO.java │ │ │ ├── host │ │ │ │ ├── HostAgentDO.java │ │ │ │ ├── HostDO.java │ │ │ │ └── HostPaginationQueryConditionDO.java │ │ │ ├── k8s │ │ │ │ ├── K8sPodDO.java │ │ │ │ └── K8sPodHostDO.java │ │ │ ├── logcollecttask │ │ │ │ ├── AgentMetricQueryDO.java │ │ │ │ ├── CollectFileDO.java │ │ │ │ ├── DirectoryLogCollectPathDO.java │ │ │ │ ├── FileLogCollectPathDO.java │ │ │ │ ├── LogCollectPathDO.java │ │ │ │ ├── LogCollectTaskAdvanceConfiguration.java │ │ │ │ ├── LogCollectTaskDO.java │ │ │ │ ├── LogCollectTaskHealthDO.java │ │ │ │ ├── LogCollectTaskHealthDetailDO.java │ │ │ │ ├── LogCollectTaskPaginationQueryConditionDO.java │ │ │ │ ├── LogCollectTaskPaginationRecordDO.java │ │ │ │ ├── MetricQueryDO.java │ │ │ │ └── MetricsLogCollectTaskDO.java │ │ │ ├── metadata │ │ │ │ ├── HostInfo.java │ │ │ │ ├── MetaDataFileContent.java │ │ │ │ ├── MetaDataFileDO.java │ │ │ │ ├── MetaDataFilePaginationQueryConditionDO.java │ │ │ │ ├── MetadataResult.java │ │ │ │ ├── MetadataSyncResult.java │ │ │ │ └── MetadataSyncResultPerService.java │ │ │ ├── metatableversion │ │ │ │ └── MetaTableVersionDO.java │ │ │ ├── metrics │ │ │ │ ├── DiskIOStatisticMetricPoint.java │ │ │ │ ├── MinuteMetricPoint.java │ │ │ │ └── StatisticMetricPoint.java │ │ │ ├── operaterecord │ │ │ │ └── OperateRecordDO.java │ │ │ ├── receiver │ │ │ │ ├── ReceiverDO.java │ │ │ │ ├── ReceiverPaginationQueryConditionDO.java │ │ │ │ └── ReceiverTopicDO.java │ │ │ └── service │ │ │ │ ├── ServiceDO.java │ │ │ │ ├── ServicePaginationQueryConditionDO.java │ │ │ │ └── ServicePaginationRecordDO.java │ │ ├── dto │ │ │ ├── PaginationRequestDTO.java │ │ │ ├── agent │ │ │ │ ├── AgentDTO.java │ │ │ │ ├── AgentRegisterDTO.java │ │ │ │ ├── AgentUpdateDTO.java │ │ │ │ ├── operationtask │ │ │ │ │ ├── AgentOperationTaskDTO.java │ │ │ │ │ └── AgentOperationTaskPaginationRequestDTO.java │ │ │ │ └── version │ │ │ │ │ ├── AgentVersionDTO.java │ │ │ │ │ └── AgentVersionPaginationRequestDTO.java │ │ │ ├── dashboard │ │ │ │ └── DashboardRequestDTO.java │ │ │ ├── host │ │ │ │ ├── HostCreateDTO.java │ │ │ │ ├── HostPaginationRequestDTO.java │ │ │ │ └── HostUpdateDTO.java │ │ │ ├── logcollecttask │ │ │ │ ├── health │ │ │ │ │ └── LogCollectTaskHealthSolveErrorDetailDTO.java │ │ │ │ ├── logx │ │ │ │ │ ├── DirectoryLogCollectPathCreateDTO.java │ │ │ │ │ ├── FileLogCollectPathCreateDTO.java │ │ │ │ │ ├── FileLogCollectPathUpdateDTO.java │ │ │ │ │ ├── FileNameSuffixMatchRuleDTO.java │ │ │ │ │ ├── HostFilterRuleDTO.java │ │ │ │ │ ├── LogCollectPathCreateDTO.java │ │ │ │ │ ├── LogCollectPathUpdateDTO.java │ │ │ │ │ ├── LogCollectTaskCreateDTO.java │ │ │ │ │ ├── LogCollectTaskUpdateDTO.java │ │ │ │ │ ├── LogContentFilterRuleDTO.java │ │ │ │ │ └── LogSliceRuleDTO.java │ │ │ │ └── web │ │ │ │ │ ├── AgentMetricQueryDTO.java │ │ │ │ │ ├── DirectoryLogCollectPathCreateDTO.java │ │ │ │ │ ├── DirectoryLogCollectPathUpdateDTO.java │ │ │ │ │ ├── FileLogCollectPathCreateDTO.java │ │ │ │ │ ├── FileLogCollectPathUpdateDTO.java │ │ │ │ │ ├── FileNameSuffixMatchRuleDTO.java │ │ │ │ │ ├── HostFilterRuleDTO.java │ │ │ │ │ ├── ListFilesDTO.java │ │ │ │ │ ├── LogCollectPathCreateDTO.java │ │ │ │ │ ├── LogCollectPathUpdateDTO.java │ │ │ │ │ ├── LogCollectTaskCreateDTO.java │ │ │ │ │ ├── LogCollectTaskPaginationRequestDTO.java │ │ │ │ │ ├── LogCollectTaskUpdateDTO.java │ │ │ │ │ ├── LogContentFilterRuleDTO.java │ │ │ │ │ ├── LogSliceRuleDTO.java │ │ │ │ │ ├── SliceDTO.java │ │ │ │ │ └── SliceSampleDTO.java │ │ │ ├── metadata │ │ │ │ ├── MetaDataFilePaginationRequestDTO.java │ │ │ │ └── MetadataFileDTO.java │ │ │ ├── metrics │ │ │ │ ├── BaseMetricsQueryDTO.java │ │ │ │ ├── BusinessMetricsQueryDTO.java │ │ │ │ └── MultiMetricsQueryDTO.java │ │ │ ├── operaterecord │ │ │ │ └── OperateRecordDTO.java │ │ │ ├── receiver │ │ │ │ ├── ReceiverCreateDTO.java │ │ │ │ ├── ReceiverPaginationRequestDTO.java │ │ │ │ └── ReceiverUpdateDTO.java │ │ │ └── service │ │ │ │ ├── ServiceCreateDTO.java │ │ │ │ ├── ServicePaginationRequestDTO.java │ │ │ │ └── ServiceUpdateDTO.java │ │ ├── po │ │ │ ├── BasePO.java │ │ │ ├── agent │ │ │ │ ├── AgentPO.java │ │ │ │ ├── ErrorLogPO.java │ │ │ │ ├── health │ │ │ │ │ └── AgentHealthPO.java │ │ │ │ ├── operationtask │ │ │ │ │ ├── AgentOperationSubTaskPO.java │ │ │ │ │ └── AgentOperationTaskPO.java │ │ │ │ └── version │ │ │ │ │ └── AgentVersionPO.java │ │ │ ├── collectblacklist │ │ │ │ └── CollectDelayMonitorBlackListPO.java │ │ │ ├── globalconfig │ │ │ │ └── GlobalConfigPO.java │ │ │ ├── host │ │ │ │ ├── HostAgentPO.java │ │ │ │ └── HostPO.java │ │ │ ├── k8s │ │ │ │ ├── K8sPodHostPO.java │ │ │ │ └── K8sPodPO.java │ │ │ ├── logcollecttask │ │ │ │ ├── DirectoryLogCollectPathPO.java │ │ │ │ ├── FileLogCollectPathPO.java │ │ │ │ ├── LogCollectPathPO.java │ │ │ │ ├── LogCollectTaskHealthDetailPO.java │ │ │ │ ├── LogCollectTaskHealthPO.java │ │ │ │ ├── LogCollectTaskPO.java │ │ │ │ └── LogCollectTaskServicePO.java │ │ │ ├── metadata │ │ │ │ └── MetaDataFilePO.java │ │ │ ├── metatableversion │ │ │ │ └── MetaTableVersionPO.java │ │ │ ├── metrics │ │ │ │ ├── MetricsAgentPO.java │ │ │ │ ├── MetricsDiskIOPO.java │ │ │ │ ├── MetricsDiskIOTopPO.java │ │ │ │ ├── MetricsDiskPO.java │ │ │ │ ├── MetricsDiskTopPO.java │ │ │ │ ├── MetricsLogCollectTaskIdTopPO.java │ │ │ │ ├── MetricsLogCollectTaskPO.java │ │ │ │ ├── MetricsLogCollectTaskTopPO.java │ │ │ │ ├── MetricsNetCardPO.java │ │ │ │ ├── MetricsNetCardTopPO.java │ │ │ │ ├── MetricsProcessPO.java │ │ │ │ ├── MetricsServiceIdTopPO.java │ │ │ │ ├── MetricsServiceNamesTopPO.java │ │ │ │ └── MetricsSystemPO.java │ │ │ ├── operaterecord │ │ │ │ └── OperateRecordPO.java │ │ │ ├── receiver │ │ │ │ └── KafkaClusterPO.java │ │ │ └── service │ │ │ │ ├── ServiceHostPO.java │ │ │ │ ├── ServicePO.java │ │ │ │ └── ServiceProjectPO.java │ │ └── vo │ │ │ ├── agent │ │ │ ├── AgentVO.java │ │ │ ├── config │ │ │ │ ├── AgentCollectConfigDO.java │ │ │ │ ├── AgentConfigDO.java │ │ │ │ ├── DirectoryLogCollectPathConfigDO.java │ │ │ │ ├── FileLogCollectPathConfigDO.java │ │ │ │ ├── HostInfoDO.java │ │ │ │ ├── LogCollectPathConfigDO.java │ │ │ │ ├── LogCollectTaskConfiguration.java │ │ │ │ └── ReceiverConfigDO.java │ │ │ ├── health │ │ │ │ └── AgentHealthErrorDetailVO.java │ │ │ ├── http │ │ │ │ └── PathRequest.java │ │ │ ├── metrics │ │ │ │ ├── AgentBusinessMetrics.java │ │ │ │ └── AgentMetrics.java │ │ │ ├── operationtask │ │ │ │ ├── AgentOperationTaskDetailVO.java │ │ │ │ ├── AgentOperationTaskExecuteDetailListVO.java │ │ │ │ ├── AgentOperationTaskExecuteDetailVO.java │ │ │ │ └── AgentOperationTaskPaginationRecordVO.java │ │ │ └── version │ │ │ │ ├── AgentVersionDropdownVO.java │ │ │ │ └── AgentVersionPaginationRecordVO.java │ │ │ ├── dashboard │ │ │ ├── MaintenanceDashBoardVO.java │ │ │ └── OperatingDashBoardVO.java │ │ │ ├── host │ │ │ ├── HostAgentVO.java │ │ │ ├── HostFilterRuleVO.java │ │ │ ├── HostInfoVO.java │ │ │ └── HostVO.java │ │ │ ├── logcollecttask │ │ │ ├── AdvancedConfigItem.java │ │ │ ├── AdvancedConfigTips.java │ │ │ ├── CollectFileVO.java │ │ │ ├── CollectTaskMetricVO.java │ │ │ ├── DirectoryLogCollectPathVO.java │ │ │ ├── FileLogCollectPathVO.java │ │ │ ├── FileNameSuffixMatchRuleVO.java │ │ │ ├── LogCollectPathVO.java │ │ │ ├── LogCollectTaskMetrics2LogxVO.java │ │ │ ├── LogCollectTaskPaginationRecordVO.java │ │ │ ├── LogCollectTaskVO.java │ │ │ ├── LogContentFilterRuleVO.java │ │ │ ├── LogRecordVO.java │ │ │ ├── LogSliceRuleVO.java │ │ │ └── health │ │ │ │ ├── LogCollectTaskHealthErrorDetailPathHostsVO.java │ │ │ │ └── LogCollectTaskHealthErrorDetailVO.java │ │ │ ├── metadata │ │ │ └── MetaDataFilePaginationRecordVO.java │ │ │ ├── metrics │ │ │ ├── MetricNodeVO.java │ │ │ ├── MetricPanel.java │ │ │ ├── MetricPoint.java │ │ │ └── MetricPointLine.java │ │ │ ├── operaterecord │ │ │ └── OperateRecordVO.java │ │ │ ├── receiver │ │ │ └── ReceiverVO.java │ │ │ └── service │ │ │ ├── ServiceDetailVO.java │ │ │ ├── ServicePaginationRecordVO.java │ │ │ └── ServiceVO.java │ │ ├── chain │ │ ├── Context.java │ │ ├── HealthCheckProcessorAnnotation.java │ │ ├── Processor.java │ │ └── ProcessorChain.java │ │ ├── constant │ │ ├── AgentConstant.java │ │ ├── AgentHealthCheckConstant.java │ │ ├── ApiPrefix.java │ │ ├── ApiVersion.java │ │ ├── CommonConstant.java │ │ ├── LogCollectTaskConstant.java │ │ ├── LogCollectTaskHealthCheckConstant.java │ │ ├── LoginConstant.java │ │ ├── MetricConstant.java │ │ ├── PermissionConstant.java │ │ └── ProjectConstant.java │ │ ├── enumeration │ │ ├── ErrorCodeEnum.java │ │ ├── FileNameSuffixMatchTypeEnum.java │ │ ├── HealthCheckProcessorEnum.java │ │ ├── OperatorEnum.java │ │ ├── ResultTypeEnum.java │ │ ├── SourceEnum.java │ │ ├── YesOrNoEnum.java │ │ ├── agent │ │ │ ├── AgentCollectTypeEnum.java │ │ │ ├── AgentFileTypeEnum.java │ │ │ ├── AgentHealthInspectionResultEnum.java │ │ │ ├── AgentHealthLevelEnum.java │ │ │ └── AgentOperationTaskStatusEnum.java │ │ ├── dashboard │ │ │ └── DashboardMetricEnum.java │ │ ├── host │ │ │ ├── HostFilterRuleLogicEnum.java │ │ │ └── HostTypeEnum.java │ │ ├── logcollecttask │ │ │ ├── LogCollectTaskHealthInspectionResultEnum.java │ │ │ ├── LogCollectTaskHealthLevelEnum.java │ │ │ ├── LogCollectTaskLimitPriorityLevelEnum.java │ │ │ ├── LogCollectTaskOldDataFilterTypeEnum.java │ │ │ ├── LogCollectTaskStatusEnum.java │ │ │ └── LogCollectTaskTypeEnum.java │ │ ├── metrics │ │ │ ├── AgentErrorLogField.java │ │ │ ├── AggregationCalcFunctionEnum.java │ │ │ ├── MetricDisplayTypeEnum.java │ │ │ ├── MetricFieldEnum.java │ │ │ ├── MetricLevelEnum.java │ │ │ ├── MetricTypeEnum.java │ │ │ ├── MetricUnitEnum.java │ │ │ ├── MetricValueTypeEnum.java │ │ │ ├── SortTimeFieldEnum.java │ │ │ └── SortTypeEnum.java │ │ ├── operaterecord │ │ │ ├── ModuleEnum.java │ │ │ └── OperationEnum.java │ │ ├── receiver │ │ │ └── ReceiverTypeEnum.java │ │ └── service │ │ │ └── ServiceTypeEnum.java │ │ ├── exception │ │ └── ServiceException.java │ │ ├── metrics │ │ ├── AgentBusinessMetrics.java │ │ ├── AgentMetrics.java │ │ ├── DiskIOMetrics.java │ │ ├── DiskMetrics.java │ │ ├── MetricRecord.java │ │ ├── NetCardMetrics.java │ │ ├── ProcessMetrics.java │ │ ├── SystemMetrics.java │ │ └── TaskMetrics.java │ │ └── util │ │ ├── Comparator.java │ │ ├── ConvertUtil.java │ │ ├── DateUtils.java │ │ ├── EnvUtil.java │ │ ├── ExcelUtils.java │ │ ├── FileUtils.java │ │ ├── HttpUtils.java │ │ ├── ListCompareUtil.java │ │ ├── LogUtil.java │ │ ├── MetricUtils.java │ │ ├── NetworkUtil.java │ │ ├── SpringTool.java │ │ ├── TimeUtils.java │ │ └── ValidateUtils.java ├── agent-manager-console │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .npmrc │ ├── .prettierrc.js │ ├── config │ │ └── CountComponentWebpackPlugin.js │ ├── d1.js │ ├── d1.json │ ├── favicon.ico │ ├── package.json │ ├── pom.xml │ ├── readme.md │ ├── src │ │ ├── @types │ │ │ └── images.d.ts │ │ ├── api │ │ │ ├── agent.ts │ │ │ ├── agentApi.ts │ │ │ ├── api.ts │ │ │ ├── collect.ts │ │ │ └── index.ts │ │ ├── app.tsx │ │ ├── components │ │ │ ├── CustomComponent.tsx │ │ │ ├── CustomSelect │ │ │ │ └── index.tsx │ │ │ ├── DragItem │ │ │ │ └── index.tsx │ │ │ ├── DragItemChart │ │ │ │ ├── EnlargedChart.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── linkageTable.tsx │ │ │ │ ├── service.ts │ │ │ │ └── style │ │ │ │ │ └── index.less │ │ │ └── chart-container │ │ │ │ ├── DragableContainer.tsx │ │ │ │ ├── GroupItem.tsx │ │ │ │ ├── IndicatorDrawer.tsx │ │ │ │ ├── IndicatorModule.tsx │ │ │ │ ├── QueryModule.tsx │ │ │ │ ├── TimeModule.tsx │ │ │ │ ├── image │ │ │ │ └── empty.png │ │ │ │ ├── index.tsx │ │ │ │ └── style │ │ │ │ ├── index.less │ │ │ │ ├── indicator-drawer.less │ │ │ │ ├── query-module.less │ │ │ │ └── time-module.less │ │ ├── constants │ │ │ ├── common.ts │ │ │ ├── event-types.ts │ │ │ ├── menu.ts │ │ │ └── reg.ts │ │ ├── image │ │ │ ├── empty.png │ │ │ └── logo.png │ │ ├── index.html │ │ ├── index.less │ │ ├── index.tsx │ │ ├── interface │ │ │ ├── agent.ts │ │ │ ├── agentVersion.ts │ │ │ ├── collect.ts │ │ │ ├── common.ts │ │ │ ├── dataSource.ts │ │ │ ├── operationRecord.ts │ │ │ ├── operationTask.ts │ │ │ └── receivingTerminal.ts │ │ ├── lib │ │ │ ├── fetch.ts │ │ │ ├── url-parser.ts │ │ │ └── utils.ts │ │ ├── locales │ │ │ ├── en.tsx │ │ │ └── zh.tsx │ │ ├── packages │ │ │ └── module │ │ │ │ ├── tpl-autopage │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ │ ├── tpl-prodescription │ │ │ │ ├── index.tsx │ │ │ │ └── module │ │ │ │ │ └── Test.tsx │ │ │ │ ├── tpl-proform │ │ │ │ └── index.tsx │ │ │ │ └── tpl-protable │ │ │ │ ├── Test │ │ │ │ └── index.tsx │ │ │ │ ├── filtter.tsx │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ ├── modal-container │ │ │ │ └── ModalContainer.tsx │ │ │ │ ├── module.tsx │ │ │ │ └── package.json │ │ ├── pages │ │ │ ├── AgentDetail │ │ │ │ ├── config.tsx │ │ │ │ └── index.tsx │ │ │ ├── AgentKanban │ │ │ │ └── index.tsx │ │ │ ├── AgentList │ │ │ │ ├── filtter.tsx │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ ├── module.tsx │ │ │ │ ├── module │ │ │ │ │ ├── tpl-autopage │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── tpl-prodescription │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── module │ │ │ │ │ │ │ └── Test.tsx │ │ │ │ │ ├── tpl-proform │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── tpl-protable │ │ │ │ │ │ ├── Test │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── filtter.tsx │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── modal-container │ │ │ │ │ │ └── ModalContainer.tsx │ │ │ │ │ │ ├── module.tsx │ │ │ │ │ │ └── package.json │ │ │ │ └── pageTreeData.json │ │ │ ├── AgentVersion │ │ │ │ ├── filtter.tsx │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ ├── module.tsx │ │ │ │ └── pageTreeData.json │ │ │ ├── ApplicationList │ │ │ │ ├── filtter.tsx │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ ├── module.tsx │ │ │ │ └── pageTreeData.json │ │ │ ├── CollectDetail │ │ │ │ ├── AssociateHostDetail.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── CollectTaskKanban │ │ │ │ └── index.tsx │ │ │ ├── CollectTaskPage │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ ├── module │ │ │ │ │ ├── tpl-chartcontainer │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── tpl-prodescription │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── module │ │ │ │ │ │ │ └── Test.tsx │ │ │ │ │ ├── tpl-proform │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── tpl-protable │ │ │ │ │ │ ├── Test │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── filtter.tsx │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── modal-container │ │ │ │ │ │ └── ModalContainer.tsx │ │ │ │ │ │ ├── module.tsx │ │ │ │ │ │ └── package.json │ │ │ │ └── pageTreeData.json │ │ │ ├── CollectTasks │ │ │ │ ├── filtter.tsx │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ ├── module.tsx │ │ │ │ └── pageTreeData.json │ │ │ ├── DashBoard │ │ │ │ ├── BackToTop.tsx │ │ │ │ ├── BarCharts │ │ │ │ │ ├── Bar.tsx │ │ │ │ │ ├── index.less │ │ │ │ │ └── index.tsx │ │ │ │ ├── Devops.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── headerCard │ │ │ │ │ ├── config.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── lineCharts │ │ │ │ │ ├── Item.tsx │ │ │ │ │ ├── config.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── list.tsx │ │ │ │ │ └── style │ │ │ │ │ │ └── index.less │ │ │ │ ├── pieCharts │ │ │ │ │ ├── Pie.tsx │ │ │ │ │ ├── constants.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── pieChart.tsx │ │ │ │ │ └── style │ │ │ │ │ │ └── index.less │ │ │ │ ├── service.ts │ │ │ │ ├── style │ │ │ │ │ └── index.less │ │ │ │ └── utils.tsx │ │ │ ├── HomePage.tsx │ │ │ ├── IndexPage.tsx │ │ │ ├── IndicatorProbe │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── MetaVersion │ │ │ │ ├── filtter.tsx │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ ├── module.tsx │ │ │ │ └── pageTreeData.json │ │ │ ├── OperationRecord │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ ├── module │ │ │ │ │ ├── tpl-chartcontainer │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── tpl-prodescription │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── module │ │ │ │ │ │ │ └── Test.tsx │ │ │ │ │ ├── tpl-proform │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── tpl-protable │ │ │ │ │ │ ├── Test │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── filtter.tsx │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── modal-container │ │ │ │ │ │ ├── ModalContainer.tsx │ │ │ │ │ │ └── index.less │ │ │ │ │ │ ├── module.tsx │ │ │ │ │ │ └── package.json │ │ │ │ └── pageTreeData.json │ │ │ ├── ReceivingTerminal │ │ │ │ ├── filtter.tsx │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ ├── module.tsx │ │ │ │ └── pageTreeData.json │ │ │ ├── add-collect-task │ │ │ │ ├── CatalogPathList.tsx │ │ │ │ ├── ClientClearSelfMonitor.tsx │ │ │ │ ├── CollectLogConfiguration.tsx │ │ │ │ ├── CollectLogPathConfiguration.tsx │ │ │ │ ├── CollectLogRuleConfiguration.tsx │ │ │ │ ├── CollectObjectConfiguration.tsx │ │ │ │ ├── LogFileRule.tsx │ │ │ │ ├── LogFileType.tsx │ │ │ │ ├── LogRepeatForm.tsx │ │ │ │ ├── LoopAddLogFileType.tsx │ │ │ │ ├── LoopAddLogPath.tsx │ │ │ │ ├── ReceiverAdvancedConfiguration.tsx │ │ │ │ ├── config.tsx │ │ │ │ ├── dateRegAndGvar.ts │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── agent_detail │ │ │ │ ├── filtter.tsx │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ ├── module.tsx │ │ │ │ ├── package.json │ │ │ │ └── pageTreeData.json │ │ │ ├── collect_detail │ │ │ │ ├── filtter.tsx │ │ │ │ ├── index.less │ │ │ │ ├── index.tsx │ │ │ │ ├── module.tsx │ │ │ │ ├── package.json │ │ │ │ └── pageTreeData.json │ │ │ └── index.ts │ │ └── request │ │ │ ├── axiosConfig.ts │ │ │ ├── index.ts │ │ │ └── type.d.ts │ ├── tsconfig.json │ ├── webpack.dev.config.js │ └── webpack.prod.config.js ├── agent-manager-core │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── didichuxing │ │ │ └── datachannel │ │ │ └── agentmanager │ │ │ └── core │ │ │ ├── agent │ │ │ ├── configuration │ │ │ │ ├── AgentCollectConfigManageService.java │ │ │ │ └── impl │ │ │ │ │ └── AgentCollectConfigManageServiceImpl.java │ │ │ ├── health │ │ │ │ ├── AgentHealthManageService.java │ │ │ │ └── impl │ │ │ │ │ ├── AgentHealthManageServiceImpl.java │ │ │ │ │ └── chain │ │ │ │ │ ├── AgentCpuUsageMetricExceptionExistsCheckProcessor.java │ │ │ │ │ ├── AgentFdUsageMetricExceptionExistsCheckProcessor.java │ │ │ │ │ ├── AgentGcMetricExceptionExistsCheckProcessor.java │ │ │ │ │ ├── AgentHeartBeatCheckProcessor.java │ │ │ │ │ ├── AgentHostSystemTimeCheckProcessor.java │ │ │ │ │ ├── AgentNotRelateAnyLogCollectTaskExceptionExistsCheckProcessor.java │ │ │ │ │ ├── AgentStartupFrequentlyExistsCheckProcessor.java │ │ │ │ │ ├── BaseProcessor.java │ │ │ │ │ ├── ContextPropertiesInitProcessor.java │ │ │ │ │ ├── ErrorLogsExistsCheckProcessor.java │ │ │ │ │ ├── ErrorLogsSendFailedExistsCheckProcessor.java │ │ │ │ │ └── context │ │ │ │ │ └── AgentHealthCheckContext.java │ │ │ ├── manage │ │ │ │ ├── AgentManageService.java │ │ │ │ └── impl │ │ │ │ │ └── AgentManageServiceImpl.java │ │ │ └── version │ │ │ │ ├── AgentVersionManageService.java │ │ │ │ └── impl │ │ │ │ └── AgentVersionManageServiceImpl.java │ │ │ ├── common │ │ │ ├── OperateRecordService.java │ │ │ └── impl │ │ │ │ └── OperateRecordServiceImpl.java │ │ │ ├── dashboard │ │ │ ├── DashboardManageService.java │ │ │ └── impl │ │ │ │ └── DashboardManageServiceImpl.java │ │ │ ├── errorlogs │ │ │ ├── ErrorLogsManageService.java │ │ │ └── impl │ │ │ │ └── ErrorLogsManageServiceImpl.java │ │ │ ├── host │ │ │ ├── HostManageService.java │ │ │ └── impl │ │ │ │ └── HostManageServiceImpl.java │ │ │ ├── kafkacluster │ │ │ ├── KafkaClusterManageService.java │ │ │ └── impl │ │ │ │ └── KafkaClusterManageServiceImpl.java │ │ │ ├── logcollecttask │ │ │ ├── health │ │ │ │ ├── LogCollectTaskHealthDetailManageService.java │ │ │ │ ├── LogCollectTaskHealthManageService.java │ │ │ │ └── impl │ │ │ │ │ ├── LogCollectTaskHealthDetailManageServiceImpl.java │ │ │ │ │ ├── LogCollectTaskHealthManageServiceImpl.java │ │ │ │ │ └── chain │ │ │ │ │ ├── BaseProcessor.java │ │ │ │ │ ├── ByteLimitOnHostExistsCheckProcessor.java │ │ │ │ │ ├── CollectDelayCheckProcessor.java │ │ │ │ │ ├── ConcurrentCollectExistsCheckProcessor.java │ │ │ │ │ ├── ContextPropertiesInitProcessor.java │ │ │ │ │ ├── DataSendFailedCheckProcessor.java │ │ │ │ │ ├── FileDisorderCheckProcessor.java │ │ │ │ │ ├── FilePathExistsCheckProcessor.java │ │ │ │ │ ├── LogCollectTaskHealthDetailSaveProcessor.java │ │ │ │ │ ├── LogCollectTaskHeartbeatCheckProcessor.java │ │ │ │ │ ├── LogSliceErrorExistsCheckProcessor.java │ │ │ │ │ ├── TooLargeTruncateExistsCheckProcessor.java │ │ │ │ │ └── context │ │ │ │ │ └── LogCollectTaskHealthCheckContext.java │ │ │ ├── logcollectpath │ │ │ │ ├── DirectoryLogCollectPathManageService.java │ │ │ │ ├── FileLogCollectPathManageService.java │ │ │ │ └── impl │ │ │ │ │ ├── DirectoryLogCollectPathManageServiceImpl.java │ │ │ │ │ └── FileLogCollectPathManageServiceImpl.java │ │ │ └── manage │ │ │ │ ├── LogCollectTaskManageService.java │ │ │ │ └── impl │ │ │ │ └── LogCollectTaskManageServiceImpl.java │ │ │ ├── metadata │ │ │ ├── MetadataManageService.java │ │ │ └── impl │ │ │ │ └── MetadataManageServiceImpl.java │ │ │ ├── metrics │ │ │ ├── MetricsManageService.java │ │ │ └── impl │ │ │ │ └── MetricsManageServiceImpl.java │ │ │ └── service │ │ │ ├── ServiceHostManageService.java │ │ │ ├── ServiceLogCollectTaskManageService.java │ │ │ ├── ServiceManageService.java │ │ │ ├── ServiceProjectManageService.java │ │ │ └── impl │ │ │ ├── ServiceHostManageServiceImpl.java │ │ │ ├── ServiceLogCollectTaskManageServiceImpl.java │ │ │ ├── ServiceManageServiceImpl.java │ │ │ └── ServiceProjectManageServiceImpl.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── didichuxing │ │ │ └── datachannel │ │ │ └── agentmanager │ │ │ └── core │ │ │ ├── ApplicationTests.java │ │ │ ├── CoreSpringBootStartUp.java │ │ │ ├── agent │ │ │ ├── configuration │ │ │ │ └── AgentCollectConfigurationTest.java │ │ │ ├── manage │ │ │ │ └── AgentManageServiceTest.java │ │ │ ├── metrcis │ │ │ │ └── AgentMetrcisManageServiceTest.java │ │ │ └── version │ │ │ │ └── AgentVersionManageServiceTest.java │ │ │ ├── common │ │ │ ├── OperateRecordServiceTest.java │ │ │ └── UtilTest.java │ │ │ ├── host │ │ │ └── HostManageServiceTest.java │ │ │ ├── logcollecttask │ │ │ └── LogCollectTaskManageServiceTest.java │ │ │ ├── metrics │ │ │ ├── MetricsInsertTest.java │ │ │ └── MetricsManageServiceManageTest.java │ │ │ ├── receiver │ │ │ └── ReceiverManageServiceTest.java │ │ │ └── service │ │ │ └── ServiceManageServiceTest.java │ │ └── resources │ │ ├── application.yml │ │ ├── log4j2.xml │ │ └── log4j2.yaml ├── agent-manager-extends │ └── agent-manager-thirdpart │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── didichuxing │ │ └── datachannel │ │ └── agentmanager │ │ └── thirdpart │ │ ├── agent │ │ ├── collect │ │ │ └── configuration │ │ │ │ └── extension │ │ │ │ └── impl │ │ │ │ ├── BaseHostFilterRuleLogic.java │ │ │ │ ├── ExpressionHostFilterRuleLogic.java │ │ │ │ └── HostFilterRule.java │ │ ├── manage │ │ │ └── extension │ │ │ │ ├── AgentManageServiceExtension.java │ │ │ │ └── impl │ │ │ │ └── DefaultAgentManageServiceExtensionImpl.java │ │ └── version │ │ │ ├── AgentVersionManageServiceExtension.java │ │ │ └── impl │ │ │ └── AgentVersionManageServiceExtensionImpl.java │ │ ├── host │ │ └── extension │ │ │ ├── HostManageServiceExtension.java │ │ │ └── impl │ │ │ └── DefaultHostManageServiceExtensionImpl.java │ │ ├── kafkacluster │ │ └── extension │ │ │ ├── KafkaClusterManageServiceExtension.java │ │ │ └── impl │ │ │ └── DefaultKafkaClusterManageServiceExtensionImpl.java │ │ ├── logcollecttask │ │ ├── health │ │ │ └── extension │ │ │ │ ├── LogCollectTaskHealthManageServiceExtension.java │ │ │ │ └── impl │ │ │ │ └── DefaultLogCollectTaskHealthManageServiceExtensionImpl.java │ │ ├── logcollectpath │ │ │ └── extension │ │ │ │ ├── DirectoryLogCollectPathManageServiceExtension.java │ │ │ │ ├── FileLogCollectPathManageServiceExtension.java │ │ │ │ └── impl │ │ │ │ ├── DefaultDirectoryLogCollectPathManageServiceExtensionImpl.java │ │ │ │ └── DefaultFileLogCollectPathManageServiceExtensionImpl.java │ │ └── manage │ │ │ └── extension │ │ │ ├── LogCollectTaskManageServiceExtension.java │ │ │ └── impl │ │ │ └── DefaultLogCollectTaskManageServiceExtensionImpl.java │ │ └── service │ │ └── extension │ │ ├── ServiceHostManageServiceExtension.java │ │ ├── ServiceLogCollectTaskManageServiceExtension.java │ │ ├── ServiceManageServiceExtension.java │ │ └── impl │ │ ├── DefaultServiceManageServiceExtensionImpl.java │ │ ├── ServiceHostManageServiceExtensionImpl.java │ │ └── ServiceLogCollectTaskManageServiceExtensionImpl.java ├── agent-manager-persistence │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── didichuxing │ │ │ └── datachannel │ │ │ └── agentmanager │ │ │ └── persistence │ │ │ ├── AgentErrorLogDAO.java │ │ │ ├── ErrorLogsDAOFactory.java │ │ │ ├── MetricsAgentDAO.java │ │ │ ├── MetricsDAOFactory.java │ │ │ ├── MetricsDiskDAO.java │ │ │ ├── MetricsDiskIODAO.java │ │ │ ├── MetricsLogCollectTaskDAO.java │ │ │ ├── MetricsNetCardDAO.java │ │ │ ├── MetricsProcessDAO.java │ │ │ ├── MetricsSystemDAO.java │ │ │ ├── elasticsearch │ │ │ ├── ElasticsearchAgentErrorLogDAO.java │ │ │ ├── ElasticsearchMetricsAgentDAO.java │ │ │ ├── ElasticsearchMetricsDiskDAO.java │ │ │ ├── ElasticsearchMetricsDiskIODAO.java │ │ │ ├── ElasticsearchMetricsLogCollectTaskDAO.java │ │ │ ├── ElasticsearchMetricsNetCardDAO.java │ │ │ ├── ElasticsearchMetricsProcessDAO.java │ │ │ ├── ElasticsearchMetricsSystemDAO.java │ │ │ └── factory │ │ │ │ ├── ElasticsearchErrorLogsDAOFactory.java │ │ │ │ └── ElasticsearchMetricsDAOFactory.java │ │ │ └── mysql │ │ │ ├── AgentHealthMapper.java │ │ │ ├── AgentMapper.java │ │ │ ├── AgentOperationSubTaskMapper.java │ │ │ ├── AgentOperationTaskMapper.java │ │ │ ├── AgentVersionMapper.java │ │ │ ├── CollectDelayMonitorBlackListMapper.java │ │ │ ├── DirectoryLogCollectPathMapper.java │ │ │ ├── DruidDbConfig.java │ │ │ ├── ErrorLogMapper.java │ │ │ ├── FileLogCollectPathMapper.java │ │ │ ├── GlobalConfigMapper.java │ │ │ ├── HostMapper.java │ │ │ ├── K8sPodHostMapper.java │ │ │ ├── K8sPodMapper.java │ │ │ ├── KafkaClusterMapper.java │ │ │ ├── LogCollectTaskHealthDetailPOMapper.java │ │ │ ├── LogCollectTaskHealthMapper.java │ │ │ ├── LogCollectTaskMapper.java │ │ │ ├── LogCollectTaskServiceMapper.java │ │ │ ├── MetaDataFileMapper.java │ │ │ ├── MetaTableVersionMapper.java │ │ │ ├── MetricsAgentPOMapper.java │ │ │ ├── MetricsDiskIOPOMapper.java │ │ │ ├── MetricsDiskPOMapper.java │ │ │ ├── MetricsLogCollectTaskPOMapper.java │ │ │ ├── MetricsNetCardPOMapper.java │ │ │ ├── MetricsProcessPOMapper.java │ │ │ ├── MetricsSystemPOMapper.java │ │ │ ├── OperateRecordDAO.java │ │ │ ├── ServiceHostMapper.java │ │ │ ├── ServiceMapper.java │ │ │ ├── ServiceProjectMapper.java │ │ │ └── factory │ │ │ ├── MySQLErrorLogsDAOFactory.java │ │ │ └── MySQLMetricsDAOFactory.java │ │ └── resources │ │ ├── generatorConfig.xml │ │ └── mybatis │ │ ├── AgentHealthMapper.xml │ │ ├── AgentMapper.xml │ │ ├── AgentOperationSubTaskMapper.xml │ │ ├── AgentOperationTaskMapper.xml │ │ ├── AgentVersionMapper.xml │ │ ├── CollectDelayMonitorBlackListMapper.xml │ │ ├── DirectoryLogCollectPathMapper.xml │ │ ├── ErrorLogMapper.xml │ │ ├── FileLogCollectPathMapper.xml │ │ ├── GlobalConfigMapper.xml │ │ ├── HostMapper.xml │ │ ├── K8sPodHostMapper.xml │ │ ├── K8sPodMapper.xml │ │ ├── KafkaClusterMapper.xml │ │ ├── LogCollectTaskHealthDetailPOMapper.xml │ │ ├── LogCollectTaskHealthMapper.xml │ │ ├── LogCollectTaskMapper.xml │ │ ├── LogCollectTaskServiceMapper.xml │ │ ├── MetaDataFileMapper.xml │ │ ├── MetaTableVersionMapper.xml │ │ ├── MetricsAgentPOMapper.xml │ │ ├── MetricsDiskIOPOMapper.xml │ │ ├── MetricsDiskPOMapper.xml │ │ ├── MetricsLogCollectTaskPOMapper.xml │ │ ├── MetricsNetCardPOMapper.xml │ │ ├── MetricsProcessPOMapper.xml │ │ ├── MetricsSystemPOMapper.xml │ │ ├── OperateRecord.xml │ │ ├── ServiceHostMapper.xml │ │ ├── ServiceMapper.xml │ │ └── ServiceProjectMapper.xml ├── agent-manager-remote │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── didichuxing │ │ │ └── datachannel │ │ │ └── agentmanager │ │ │ └── remote │ │ │ └── kafkacluster │ │ │ ├── RemoteKafkaClusterService.java │ │ │ └── impl │ │ │ └── RemoteKafkaClusterServiceImpl.java │ │ └── resources │ │ └── lam_script.sh ├── agent-manager-rest │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── didichuxing │ │ │ └── datachannel │ │ │ └── agentmanager │ │ │ └── rest │ │ │ ├── AgentManagerApplication.java │ │ │ ├── StorageFactoryBuilder.java │ │ │ ├── api │ │ │ └── v1 │ │ │ │ ├── normal │ │ │ │ ├── DashboardController.java │ │ │ │ ├── MetricsController.java │ │ │ │ ├── NormalAgentHealthController.java │ │ │ │ ├── NormalHostController.java │ │ │ │ ├── NormalLogCollectTaskController.java │ │ │ │ ├── NormalLogCollectTaskHealthController.java │ │ │ │ ├── NormalReceiverController.java │ │ │ │ ├── NormalServiceController.java │ │ │ │ └── NormalSystemConfigController.java │ │ │ │ ├── op │ │ │ │ ├── OpAgentController.java │ │ │ │ ├── OpAgentVersionController.java │ │ │ │ ├── OpHostController.java │ │ │ │ ├── OpMetadataController.java │ │ │ │ ├── OpReceiverController.java │ │ │ │ ├── OpServiceController.java │ │ │ │ └── OperateRecordController.java │ │ │ │ ├── rd │ │ │ │ ├── RdAgentController.java │ │ │ │ ├── RdAgentVersionController.java │ │ │ │ └── RdHostController.java │ │ │ │ └── thirdpart │ │ │ │ └── agent │ │ │ │ └── AgentController.java │ │ │ ├── config │ │ │ └── WebMvcConfig.java │ │ │ ├── interceptor │ │ │ ├── GlobalExceptionProcessInterceptor.java │ │ │ ├── HeaderHandlerInterceptor.java │ │ │ └── InterceptorExceptionProcessInterceptor.java │ │ │ └── swagger │ │ │ └── SwaggerConfiguration.java │ │ └── resources │ │ ├── application.yml │ │ ├── files │ │ └── meta_data_excel_template.xlsx │ │ └── log4j2.xml ├── agent-manager-task │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── didichuxing │ │ └── datachannel │ │ └── agentmanager │ │ └── task │ │ └── resource │ │ ├── dashboard │ │ └── DashboardBuildTask.java │ │ ├── health │ │ └── check │ │ │ ├── agent │ │ │ └── AgentHealthCheckTask.java │ │ │ └── logcollecttask │ │ │ └── LogCollectTaskHealthCheckTask.java │ │ └── metric │ │ ├── MetricClearTask.java │ │ └── MetricConsumerResetTask.java ├── auv-job-spring-boot-starter │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── didiglobal │ │ │ └── logi │ │ │ └── auvjob │ │ │ ├── ApplicationCloseListener.java │ │ │ ├── AuvJobApplication.java │ │ │ ├── AuvJobAutoConfiguration.java │ │ │ ├── AuvJobProperties.java │ │ │ ├── TaskBeanPostProcessor.java │ │ │ ├── annotation │ │ │ └── Task.java │ │ │ ├── common │ │ │ ├── Result.java │ │ │ ├── ResultType.java │ │ │ ├── Tuple.java │ │ │ ├── bean │ │ │ │ ├── AuvJob.java │ │ │ │ ├── AuvJobLog.java │ │ │ │ ├── AuvTask.java │ │ │ │ ├── AuvTaskLock.java │ │ │ │ ├── AuvWorker.java │ │ │ │ ├── AuvWorkerBlacklist.java │ │ │ │ └── Beat.java │ │ │ ├── domain │ │ │ │ ├── JobInfo.java │ │ │ │ ├── TaskInfo.java │ │ │ │ └── WorkerInfo.java │ │ │ ├── dto │ │ │ │ ├── JobDto.java │ │ │ │ ├── JobLogDto.java │ │ │ │ ├── TaskDto.java │ │ │ │ └── TaskLockDto.java │ │ │ └── enums │ │ │ │ ├── JobStatusEnum.java │ │ │ │ └── TaskStatusEnum.java │ │ │ ├── configuration │ │ │ └── AuvDataSourceConfig.java │ │ │ ├── core │ │ │ ├── NodeManager.java │ │ │ ├── Scheduler.java │ │ │ ├── SimpleScheduler.java │ │ │ ├── WorkerSingleton.java │ │ │ ├── beat │ │ │ │ ├── BeatManager.java │ │ │ │ └── BeatManagerImpl.java │ │ │ ├── consensual │ │ │ │ ├── AbstractConsensual.java │ │ │ │ ├── BroadcastConsensual.java │ │ │ │ ├── Consensual.java │ │ │ │ ├── ConsensualConstant.java │ │ │ │ ├── ConsensualFactory.java │ │ │ │ └── RandomConsensual.java │ │ │ ├── job │ │ │ │ ├── Job.java │ │ │ │ ├── JobCallback.java │ │ │ │ ├── JobContext.java │ │ │ │ ├── JobExecutor.java │ │ │ │ ├── JobFactory.java │ │ │ │ ├── JobManager.java │ │ │ │ ├── JobManagerImpl.java │ │ │ │ └── SimpleJobFactory.java │ │ │ ├── monitor │ │ │ │ ├── BeatMonitor.java │ │ │ │ ├── MisfireMonitor.java │ │ │ │ ├── Monitor.java │ │ │ │ ├── SimpleBeatMonitor.java │ │ │ │ ├── SimpleMisfireMonitor.java │ │ │ │ ├── SimpleTaskMonitor.java │ │ │ │ └── TaskMonitor.java │ │ │ └── task │ │ │ │ ├── TaskCallback.java │ │ │ │ ├── TaskLockService.java │ │ │ │ ├── TaskLockServiceImpl.java │ │ │ │ ├── TaskManager.java │ │ │ │ └── TaskManagerImpl.java │ │ │ ├── mapper │ │ │ ├── AuvJobLogMapper.java │ │ │ ├── AuvJobMapper.java │ │ │ ├── AuvTaskLockMapper.java │ │ │ ├── AuvTaskMapper.java │ │ │ ├── AuvWorkerBlacklistMapper.java │ │ │ └── AuvWorkerMapper.java │ │ │ ├── rest │ │ │ ├── Constants.java │ │ │ ├── JobController.java │ │ │ ├── TaskController.java │ │ │ └── TaskLockController.java │ │ │ └── utils │ │ │ ├── Assert.java │ │ │ ├── BeanUtil.java │ │ │ ├── CronExpression.java │ │ │ ├── DateUtil.java │ │ │ ├── DefaultIdentifierGenerator.java │ │ │ ├── IdWorker.java │ │ │ ├── IdentifierGenerator.java │ │ │ ├── Sequence.java │ │ │ └── ThreadUtil.java │ │ └── resources │ │ ├── auv-job.sql │ │ └── mapper │ │ └── auv-job │ │ ├── AuvWorkerBlacklistMapper.xml │ │ ├── JobInfoMapper.xml │ │ ├── JobLogMapper.xml │ │ ├── TaskInfoMapper.xml │ │ ├── TaskLockMapper.xml │ │ └── WorkerInfoMapper.xml ├── build.sh ├── create_mysql_table.sql ├── create_mysql_table_test.sql ├── dockerfiles │ ├── Dockerfile │ ├── start.conf │ └── webterminal.sh ├── pom.xml ├── start.sh └── stop.sh ├── agent ├── .bigdata-datachannel-common │ ├── DataChannelFormatter.xml │ └── check_format.sh ├── agent-channel │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── didichuxing │ │ │ └── datachannel │ │ │ └── agent │ │ │ └── channel │ │ │ └── log │ │ │ ├── FileNodeOffset.java │ │ │ ├── LogChannel.java │ │ │ └── metrics │ │ │ └── LogChannelMetricsFields.java │ │ └── test │ │ └── java │ │ └── com │ │ └── didichuxing │ │ └── datachannel │ │ └── agent │ │ └── channel │ │ └── log │ │ └── LogChannelTest.java ├── agent-common │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── didichuxing │ │ └── datachannel │ │ └── agent │ │ └── common │ │ ├── api │ │ ├── CollectLocation.java │ │ ├── CollectType.java │ │ ├── ComponentStatus.java │ │ ├── FileMatchType.java │ │ ├── FileReadType.java │ │ ├── FileType.java │ │ ├── HdfsCompression.java │ │ ├── HdfsTransFormat.java │ │ ├── KafkaCompression.java │ │ ├── LogConfigConstants.java │ │ ├── MetricsFields.java │ │ ├── OrderFile.java │ │ ├── ServiceSwitch.java │ │ ├── StandardLogType.java │ │ ├── StandardRolledTimeType.java │ │ ├── TopicPartitionKeyTypeEnum.java │ │ └── TransFormate.java │ │ ├── beans │ │ └── LogPath.java │ │ ├── configs │ │ ├── v1 │ │ │ ├── LogConfig.java │ │ │ ├── OffsetConfig.java │ │ │ ├── ProducerConfig.java │ │ │ ├── collector │ │ │ │ ├── BusinessConfig.java │ │ │ │ ├── CollectorConfig.java │ │ │ │ ├── CommonConfig.java │ │ │ │ ├── EventMetricsConfig.java │ │ │ │ ├── MatchConfig.java │ │ │ │ ├── SourceConfig.java │ │ │ │ └── TargetConfig.java │ │ │ └── limit │ │ │ │ ├── LimitConfig.java │ │ │ │ └── LimitNodeConfig.java │ │ └── v2 │ │ │ ├── AgentConfig.java │ │ │ ├── ErrorLogConfig.java │ │ │ ├── LimitConfig.java │ │ │ ├── MetricConfig.java │ │ │ ├── OffsetConfig.java │ │ │ ├── ProducerConfig.java │ │ │ └── component │ │ │ ├── ChannelConfig.java │ │ │ ├── CommonConfig.java │ │ │ ├── ComponentConfig.java │ │ │ ├── EventMetricsConfig.java │ │ │ ├── ModelConfig.java │ │ │ ├── ModelLimitConfig.java │ │ │ ├── sourceConfig │ │ │ └── SourceConfig.java │ │ │ └── targetConfig │ │ │ └── TargetConfig.java │ │ └── constants │ │ ├── ComponentType.java │ │ └── Tags.java ├── agent-engine │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── didichuxing │ │ │ └── datachannel │ │ │ └── agent │ │ │ └── engine │ │ │ ├── AbstractModel.java │ │ │ ├── AbstractTask.java │ │ │ ├── bean │ │ │ ├── Event.java │ │ │ ├── GlobalProperties.java │ │ │ └── LogEvent.java │ │ │ ├── chain │ │ │ ├── Context.java │ │ │ ├── Processor.java │ │ │ ├── ProcessorChain.java │ │ │ └── processors │ │ │ │ ├── BaseProcessor.java │ │ │ │ └── EventContext.java │ │ │ ├── channel │ │ │ └── AbstractChannel.java │ │ │ ├── component │ │ │ ├── AgentComponent.java │ │ │ ├── Component.java │ │ │ └── TaskComponent.java │ │ │ ├── conf │ │ │ └── Configurable.java │ │ │ ├── limit │ │ │ ├── LimitNode.java │ │ │ ├── LimitService.java │ │ │ ├── TaskLimit.java │ │ │ ├── cpu │ │ │ │ └── LinuxCpuTime.java │ │ │ ├── io │ │ │ │ └── LinuxIORate.java │ │ │ ├── net │ │ │ │ └── LinuxNetFlow.java │ │ │ └── tune │ │ │ │ ├── TuneNode.java │ │ │ │ └── thread │ │ │ │ ├── AllocateQpsThread.java │ │ │ │ └── LimitCpuThread.java │ │ │ ├── loggather │ │ │ ├── LogDetail.java │ │ │ ├── LogGather.java │ │ │ └── LogSink.java │ │ │ ├── metrics │ │ │ ├── MetricService.java │ │ │ ├── metric │ │ │ │ ├── ChannelMetricsFields.java │ │ │ │ ├── MetricsField.java │ │ │ │ ├── MetricsFieldConstant.java │ │ │ │ ├── SinkMetricsFields.java │ │ │ │ ├── SourceMetricsFields.java │ │ │ │ └── TaskMetricsFields.java │ │ │ ├── sink │ │ │ │ └── AbstractMetricSink.java │ │ │ ├── source │ │ │ │ ├── AbstractStatistics.java │ │ │ │ ├── AgentStatistics.java │ │ │ │ ├── MetricMutablePeriodGaugeLong.java │ │ │ │ └── TaskPatternStatistics.java │ │ │ ├── stat │ │ │ │ ├── MetricMutablePeriodGaugeLong.java │ │ │ │ └── MetricMutableTimeStat.java │ │ │ └── system │ │ │ │ ├── Metric.java │ │ │ │ ├── MetricCounter.java │ │ │ │ ├── MetricGauge.java │ │ │ │ ├── MetricsBuilder.java │ │ │ │ ├── MetricsException.java │ │ │ │ ├── MetricsFilter.java │ │ │ │ ├── MetricsPlugin.java │ │ │ │ ├── MetricsRecord.java │ │ │ │ ├── MetricsRecordBuilder.java │ │ │ │ ├── MetricsSink.java │ │ │ │ ├── MetricsSource.java │ │ │ │ ├── MetricsSystem.java │ │ │ │ ├── MetricsSystemMXBean.java │ │ │ │ ├── MetricsTag.java │ │ │ │ ├── MetricsVisitor.java │ │ │ │ ├── impl │ │ │ │ ├── Consumer.java │ │ │ │ ├── MBeanInfoBuilder.java │ │ │ │ ├── MetricCounterInt.java │ │ │ │ ├── MetricCounterLong.java │ │ │ │ ├── MetricGaugeDouble.java │ │ │ │ ├── MetricGaugeFloat.java │ │ │ │ ├── MetricGaugeInt.java │ │ │ │ ├── MetricGaugeLong.java │ │ │ │ ├── MetricsBuffer.java │ │ │ │ ├── MetricsBufferBuilder.java │ │ │ │ ├── MetricsBuilderImpl.java │ │ │ │ ├── MetricsConfig.java │ │ │ │ ├── MetricsConfigException.java │ │ │ │ ├── MetricsRecordBuilderImpl.java │ │ │ │ ├── MetricsRecordFiltered.java │ │ │ │ ├── MetricsRecordImpl.java │ │ │ │ ├── MetricsSinkAdapter.java │ │ │ │ ├── MetricsSourceAdapter.java │ │ │ │ ├── MetricsSystemImpl.java │ │ │ │ └── SinkQueue.java │ │ │ │ ├── lib │ │ │ │ ├── AbstractMetricsSource.java │ │ │ │ ├── DefaultMetricsSystem.java │ │ │ │ ├── MetricMutable.java │ │ │ │ ├── MetricMutableCounter.java │ │ │ │ ├── MetricMutableCounterInt.java │ │ │ │ ├── MetricMutableCounterLong.java │ │ │ │ ├── MetricMutableFactory.java │ │ │ │ ├── MetricMutableGauge.java │ │ │ │ ├── MetricMutableGaugeInt.java │ │ │ │ ├── MetricMutableGaugeLong.java │ │ │ │ ├── MetricMutablePeriodGauge.java │ │ │ │ ├── MetricMutablePeriodGaugeInt.java │ │ │ │ ├── MetricMutablePeriodGaugeLong.java │ │ │ │ ├── MetricMutableReference.java │ │ │ │ ├── MetricMutableStat.java │ │ │ │ ├── MetricReference.java │ │ │ │ └── MetricsRegistry.java │ │ │ │ └── util │ │ │ │ ├── Contracts.java │ │ │ │ ├── MBeans.java │ │ │ │ ├── SampleStat.java │ │ │ │ └── TryIterator.java │ │ │ ├── monitor │ │ │ └── Monitor.java │ │ │ ├── service │ │ │ ├── DefaultThreadFactory.java │ │ │ └── TaskRunningPool.java │ │ │ ├── sinker │ │ │ └── AbstractSink.java │ │ │ ├── source │ │ │ └── AbstractSource.java │ │ │ └── utils │ │ │ ├── CollectUtils.java │ │ │ ├── CommonUtils.java │ │ │ ├── FileUtils.java │ │ │ ├── HttpUtils.java │ │ │ ├── HttpUtilsV2.java │ │ │ ├── OSTypeEnum.java │ │ │ ├── ProcessUtils.java │ │ │ ├── SystemUtils.java │ │ │ ├── TimeUtils.java │ │ │ └── monitor │ │ │ ├── AixOSResourceService.java │ │ │ ├── IOSResourceService.java │ │ │ ├── LinuxOSResourceService.java │ │ │ ├── MacOSResourceService.java │ │ │ ├── MetricValue.java │ │ │ └── WindowsOSResourceService.java │ │ └── test │ │ └── java │ │ └── com │ │ └── didichuxing │ │ └── datachannel │ │ └── agent │ │ └── engine │ │ └── utils │ │ └── CommonUtilsTest.java ├── agent-integration-test │ ├── README │ ├── pom.xml │ └── src │ │ └── main │ │ ├── assembly │ │ └── assembly.xml │ │ ├── bin │ │ ├── start.sh │ │ └── stop.sh │ │ ├── conf │ │ ├── logback_save.xml │ │ └── verify.properties │ │ ├── java │ │ └── com │ │ │ └── didichuxing │ │ │ └── datachannel │ │ │ └── agent │ │ │ └── integration │ │ │ └── test │ │ │ ├── IntegrationTest.java │ │ │ ├── basic │ │ │ ├── BasicUtil.java │ │ │ ├── KafkaConsumer.java │ │ │ ├── KafkaLocal.java │ │ │ └── ZooKeeperLocal.java │ │ │ ├── beans │ │ │ ├── Constants.java │ │ │ ├── DataTransEnum.java │ │ │ └── FileSuffixEnum.java │ │ │ ├── datasource │ │ │ ├── BasicDataSource.java │ │ │ ├── DailyFiveMinDataSource.java │ │ │ ├── FileSize10MBDataSouce.java │ │ │ ├── LogConfiguration.java │ │ │ └── MinDailyRollingFileAppender.java │ │ │ ├── format │ │ │ ├── Format.java │ │ │ ├── LogEventFormat.java │ │ │ └── OriginalFormat.java │ │ │ ├── utils │ │ │ └── Md5Util.java │ │ │ └── verify │ │ │ ├── DataVerifyConfig.java │ │ │ ├── DataVerifyTask.java │ │ │ └── VerifyConfig.java │ │ └── resources │ │ ├── kafka-server.properties │ │ └── zookeeper.properties ├── agent-node │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── assembly │ │ │ └── assembly.xml │ │ ├── bin │ │ │ ├── start.sh │ │ │ └── stop.sh │ │ ├── java │ │ │ └── com │ │ │ │ └── didichuxing │ │ │ │ └── datachannel │ │ │ │ └── agent │ │ │ │ └── node │ │ │ │ ├── Agent.java │ │ │ │ ├── ConfigService.java │ │ │ │ ├── LaunchService.java │ │ │ │ ├── am │ │ │ │ └── v2 │ │ │ │ │ ├── AgentAdvancedConfiguration.java │ │ │ │ │ ├── AgentCollectConfigDOImpl.java │ │ │ │ │ └── LogCollectTaskAdvancedConfiguration.java │ │ │ │ └── service │ │ │ │ ├── ModelManager.java │ │ │ │ ├── http │ │ │ │ ├── client │ │ │ │ │ └── HttpClient.java │ │ │ │ └── server │ │ │ │ │ ├── Command.java │ │ │ │ │ ├── FileContent.java │ │ │ │ │ ├── Handler.java │ │ │ │ │ ├── Heartbeat.java │ │ │ │ │ ├── HttpService.java │ │ │ │ │ ├── Path.java │ │ │ │ │ ├── Pid.java │ │ │ │ │ ├── Status.java │ │ │ │ │ └── Version.java │ │ │ │ └── metrics │ │ │ │ └── sink │ │ │ │ ├── KafkaMetricSink.java │ │ │ │ └── KafkaTopicSink.java │ │ └── resources │ │ │ ├── default.kafka-producer.properties │ │ │ ├── log4j2.xml │ │ │ ├── log4j_back.xml │ │ │ ├── metricsagent.properties │ │ │ └── settings.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── didichuxing │ │ │ └── datachannel │ │ │ └── agent │ │ │ └── node │ │ │ ├── ConfigServiceTest.java │ │ │ └── service │ │ │ ├── ModelManagerTest.java │ │ │ └── http │ │ │ └── server │ │ │ ├── CommandTest.java │ │ │ └── HttpServiceTest.java │ │ └── resources │ │ └── settings.properties ├── agent-sink │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── didichuxing │ │ │ │ └── datachannel │ │ │ │ └── agent │ │ │ │ └── sink │ │ │ │ ├── kafkaSink │ │ │ │ ├── KafkaCallBack.java │ │ │ │ ├── KafkaEvent.java │ │ │ │ ├── KafkaMessageProducer.java │ │ │ │ ├── KafkaProducerContainer.java │ │ │ │ ├── KafkaSink.java │ │ │ │ ├── KafkaTargetConfig.java │ │ │ │ ├── errorlog │ │ │ │ │ ├── ErrLogService.java │ │ │ │ │ ├── ErrorLogKafkaCallBack.java │ │ │ │ │ ├── ErrorLogSinker.java │ │ │ │ │ └── KafkaSender.java │ │ │ │ └── metrics │ │ │ │ │ └── KafkaMetricsFields.java │ │ │ │ └── utils │ │ │ │ ├── EventUtils.java │ │ │ │ ├── StringFilter.java │ │ │ │ ├── TimeType.java │ │ │ │ └── serializer │ │ │ │ ├── EventItemSerializer.java │ │ │ │ ├── EventListSerializer.java │ │ │ │ ├── JsonMqEventSerializer.java │ │ │ │ ├── LogEventSerializerObject.java │ │ │ │ └── MqEventSerializer.java │ │ └── resources │ │ │ └── kafka │ │ │ └── default.kafka-producer.properties │ │ └── test │ │ └── resources │ │ └── default.kafka-producer.properties ├── agent-source │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── didichuxing │ │ │ └── datachannel │ │ │ └── agent │ │ │ └── source │ │ │ └── log │ │ │ ├── LogSource.java │ │ │ ├── beans │ │ │ ├── FileDirNode.java │ │ │ ├── FileNode.java │ │ │ └── WorkingFileNode.java │ │ │ ├── config │ │ │ ├── LogSourceConfig.java │ │ │ └── MatchConfig.java │ │ │ ├── metrics │ │ │ ├── FileMetricsFields.java │ │ │ └── FileStatistic.java │ │ │ ├── monitor │ │ │ ├── FileCloseMonitor.java │ │ │ ├── RealTimeFileMonitor.java │ │ │ └── ScheduleFileMonitor.java │ │ │ ├── offset │ │ │ ├── FileOffSet.java │ │ │ └── OffsetManager.java │ │ │ ├── type │ │ │ ├── AbstractLogType.java │ │ │ └── PublicType.java │ │ │ └── utils │ │ │ ├── BufferedRandomAccessFile.java │ │ │ ├── EventParser.java │ │ │ ├── FileReader.java │ │ │ ├── FileUtils.java │ │ │ └── Md5ConfigService.java │ │ └── test │ │ └── java │ │ └── com │ │ └── didichuxing │ │ └── datachannel │ │ └── agent │ │ └── source │ │ └── log │ │ ├── FileTest.java │ │ ├── LogSourceTest.java │ │ ├── monitor │ │ ├── RealLogFileMonitorTest.java │ │ └── ScheduleFileMonitorTest.java │ │ ├── offset │ │ ├── FileNodeInfoTest.java │ │ └── OffsetManagerTest.java │ │ └── utils │ │ ├── FileReaderTest.java │ │ └── FileUtilsTest.java ├── agent-task │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── didichuxing │ │ │ └── datachannel │ │ │ └── agent │ │ │ └── task │ │ │ └── log │ │ │ ├── LogModel.java │ │ │ ├── ScheduleDirMonitor.java │ │ │ ├── ScheduleTaskMonitor.java │ │ │ ├── log2kafak │ │ │ ├── Log2KafkaModel.java │ │ │ └── Log2KafkaTask.java │ │ │ └── metrics │ │ │ └── ModelMetricsFields.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── didichuxing │ │ │ └── datachannel │ │ │ └── agent │ │ │ └── task │ │ │ └── log │ │ │ ├── LogFileUtils.java │ │ │ ├── LogModelTest.java │ │ │ ├── LogTaskTest.java │ │ │ ├── TestLogModel.java │ │ │ ├── TestTask.java │ │ │ └── log2kafak │ │ │ ├── Log2KafakTaskTest.java │ │ │ ├── Log2KafkaModelTest.java │ │ │ ├── TestLog2KafkaTask.java │ │ │ └── TestSink.java │ │ └── resources │ │ └── default.kafka-producer.properties ├── bin │ ├── control │ ├── start.sh │ └── stop.sh ├── build.sh ├── pom.xml └── properties │ ├── chishui.properties │ ├── ddcloud-cn.properties │ ├── ddcloud-us.properties │ ├── dev.properties │ ├── offline.properties │ ├── online.properties │ ├── pre.properties │ ├── stable.properties │ └── test.properties ├── doc ├── Agent、采集任务的健康度巡检与诊断.md ├── K8s安装使用及接入文档.md ├── Know Agent的特性.md ├── LogAgent如何实现超高性能下的at-least-once完整性.md ├── LogiAM安装部署手册.md ├── LogiAM开发手册.md ├── Q&A.md ├── assets │ ├── Know Agent一站式体验环境 Agent Metrics、Error Logs 流 kafka topic 创建.png │ ├── LogAgent健康度巡检流程.png │ ├── agent-manager maven 打包.png │ ├── agent-manager 启动.png │ ├── agent-manager 整体架构.png │ ├── agent-manager 浏览器访问.png │ ├── agent_manager_structure.png │ ├── agent_structure.png │ ├── application.yml storage 修改.png │ ├── development │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── 7.png │ │ ├── 8.png │ │ └── 9.png │ ├── experience-environment-build │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ └── 5.png │ ├── inode复用问题-agent解决方案.png │ ├── inode复用问题原因.png │ ├── install-deploy │ │ └── 1.png │ ├── know_agent_structure.png │ ├── logi-agent架构图.png │ ├── logi-am架构.png │ ├── logi开源用户交流群.png │ ├── logo_logi.png │ ├── store-extend │ │ ├── 1.png │ │ ├── 10.png │ │ ├── 11.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── 7.png │ │ ├── 8.png │ │ └── 9.png │ ├── streaming_compute.png │ ├── user-manual │ │ ├── 1.png │ │ ├── 10.png │ │ ├── 11.png │ │ ├── 12.png │ │ ├── 13.png │ │ ├── 14.png │ │ ├── 15.png │ │ ├── 16.png │ │ ├── 17.png │ │ ├── 18.png │ │ ├── 19.png │ │ ├── 2.png │ │ ├── 20.png │ │ ├── 21.png │ │ ├── 22.png │ │ ├── 23.png │ │ ├── 24.png │ │ ├── 25.png │ │ ├── 26.png │ │ ├── 27.png │ │ ├── 28.png │ │ ├── 29.png │ │ ├── 3.png │ │ ├── 30.png │ │ ├── 31.png │ │ ├── 32.png │ │ ├── 33.png │ │ ├── 34.png │ │ ├── 35.png │ │ ├── 36.png │ │ ├── 37.png │ │ ├── 38.png │ │ ├── 39.png │ │ ├── 4.png │ │ ├── 40.png │ │ ├── 41.png │ │ ├── 42.png │ │ ├── 43.png │ │ ├── 44.png │ │ ├── 45.png │ │ ├── 46.png │ │ ├── 47.png │ │ ├── 48.png │ │ ├── 49.png │ │ ├── 5.png │ │ ├── 50.png │ │ ├── 51.png │ │ ├── 52.png │ │ ├── 53.png │ │ ├── 54.png │ │ ├── 55.png │ │ ├── 56.png │ │ ├── 57.png │ │ ├── 58.png │ │ ├── 59.png │ │ ├── 6.png │ │ ├── 60.png │ │ ├── 61.png │ │ ├── 62.png │ │ ├── 63.png │ │ ├── 64.png │ │ ├── 65.png │ │ ├── 66.png │ │ ├── 67.png │ │ ├── 68.png │ │ ├── 69.png │ │ ├── 7.png │ │ ├── 70.png │ │ ├── 71.png │ │ ├── 72.png │ │ ├── 73.png │ │ ├── 74.png │ │ ├── 75.png │ │ ├── 76.png │ │ ├── 77.png │ │ ├── 78.png │ │ ├── 79.png │ │ ├── 8.png │ │ ├── 80.png │ │ ├── 81.png │ │ ├── 82.png │ │ ├── 83.png │ │ ├── 84.png │ │ ├── 85.png │ │ ├── 86.png │ │ ├── 87.png │ │ ├── 88.png │ │ ├── 89.png │ │ ├── 9.png │ │ ├── 90.png │ │ ├── 91.png │ │ ├── 92.png │ │ ├── 93.png │ │ ├── 94.png │ │ ├── 95.png │ │ ├── 96.png │ │ ├── 97.png │ │ └── 98.png │ ├── vectorization-acceleration │ │ ├── 1.png │ │ └── 2.png │ ├── 为何需要 Logi-AM?.md │ ├── 功能图.png │ ├── 向量化计算加速LogAgent采集-结果对比.png │ ├── 架构图.png │ ├── 线程模型对比.png │ ├── 采集任务健康度巡检流程.png │ └── 采集任务诊断流程.png ├── k8s容器采集接入手册.md ├── know_agent_contributing.md ├── know_agent_develop.md ├── know_agent_experience_environment_build.md ├── know_agent_install_deploy.md ├── know_agent_metrics_error_logs_store_extend.md ├── know_agent_summary.md ├── know_agent_user_manual.md ├── user_guide │ └── user_guide_cn.md └── 向量化计算加速Agent采集.md ├── know_agent_experience_environment_auto_install_script.sh ├── stream-pivot ├── dependency-reduced-pom.xml ├── deploy.sh ├── dockerfiles │ ├── Dockerfile │ └── rate.properties ├── error.json ├── frequent_start.sh ├── log_disorder.sh ├── metric.json ├── pom.xml ├── rate.properties ├── src │ └── main │ │ ├── java │ │ ├── com │ │ │ └── didi │ │ │ │ ├── CloudMetricConsumer.java │ │ │ │ ├── LogTest.java │ │ │ │ ├── MetricClient.java │ │ │ │ ├── SimpleConsumer.java │ │ │ │ └── SimpleProducer.java │ │ └── test │ │ │ ├── SimpleConsumer.java │ │ │ └── SimpleProducer.java │ │ └── resources │ │ └── logback.xml ├── test-pod.yml └── test.yaml └── system-metrcis ├── pom.xml └── src └── main ├── java └── com │ └── didichuxing │ └── datachannel │ └── system │ └── metrcis │ ├── Metrics.java │ ├── PeriodMetricAutoComputeComponent.java │ ├── annotation │ └── PeriodMethod.java │ ├── bean │ ├── DiskIOInfo.java │ ├── DiskInfo.java │ ├── NetCardInfo.java │ ├── PeriodStatistics.java │ ├── ProcMetrics.java │ └── SystemMetrics.java │ ├── constant │ ├── Constants.java │ ├── ExceptionCodeEnum.java │ └── OSTypeEnum.java │ ├── exception │ └── MetricsException.java │ ├── factory │ ├── MetricsServiceFactory.java │ └── linux │ │ ├── LinuxMetricsServiceFactory.java │ │ └── mac │ │ └── MacOSMetricsServiceFactory.java │ ├── service │ ├── DiskIOMetricsService.java │ ├── DiskMetricsService.java │ ├── NetCardMetricsService.java │ ├── ProcessMetricsService.java │ ├── SystemMetricsService.java │ ├── linux │ │ ├── LinuxCpuTime.java │ │ ├── LinuxDiskIOMetricsServiceImpl.java │ │ ├── LinuxDiskMetricsServiceImpl.java │ │ ├── LinuxIORate.java │ │ ├── LinuxMetricsService.java │ │ ├── LinuxNetCardMetricsServiceImpl.java │ │ ├── LinuxNetFlow.java │ │ ├── LinuxProcessMetricsServiceImpl.java │ │ └── LinuxSystemMetricsServiceImpl.java │ └── macos │ │ ├── MacOSDiskIOMetricsServiceImpl.java │ │ ├── MacOSDiskMetricsServiceImpl.java │ │ ├── MacOSNetCardMetricsServiceImpl.java │ │ ├── MacOSProcessMetricsServiceImpl.java │ │ └── MacOSSystemMetricsServiceImpl.java │ └── util │ ├── FileUtils.java │ ├── MathUtil.java │ └── StringUtils.java └── resources ├── mac-addresses.sh └── port-speed.sh /.gitignore: -------------------------------------------------------------------------------- 1 | #.gitignore for java 2 | *.class 3 | 4 | # Package Files # 5 | *.jar 6 | *.war 7 | *.ear 8 | **/META-INF/ 9 | # logs 10 | /stacktrace.log 11 | /test/reports 12 | logs/ 13 | *.log 14 | *.log.* 15 | 16 | ## .gitignore for intellij 17 | *.iml 18 | *.ipr 19 | *.iws 20 | .mvn/ 21 | 22 | ## .gitignore for eclipse 23 | *.pydevproject 24 | .metadata 25 | bin/** 26 | tmp/** 27 | tmp/**/* 28 | tmp 29 | temp 30 | *.tmp 31 | *.bak 32 | *~.nib 33 | local.properties 34 | .loadpath 35 | .project 36 | .*proj 37 | .svn/ 38 | *.swp 39 | *.swo 40 | *.pyc 41 | *.pyo 42 | 43 | .DS_Store 44 | node_modules/ 45 | npm-debug.log 46 | coverage 47 | .cache-loader 48 | pub 49 | package-lock.json 50 | 51 | *.http 52 | target/ 53 | test-output/ 54 | .classpath 55 | .settings/ 56 | .idea 57 | */conf.local 58 | .gitversion 59 | output 60 | output.* 61 | templates/ 62 | 63 | *.zip 64 | *.tar.gz 65 | *.tgz 66 | -------------------------------------------------------------------------------- /agent-manager/README.md: -------------------------------------------------------------------------------- 1 | # **agent manager** 2 | **一站式Logi-Agent集群监控指标与运维管控平台** 3 | 阅读本README文档,您可以了解到滴滴Logi-AgentManager的用户群体、产品定位等信息,并通过体验地址,快速体验Agent集群指标监控与运维管控的全流程。 4 | 若滴滴Logi-AgentManager已在贵司的生产环境进行使用,并想要获得官方更好地支持和指导,可以通过OCE认证,加入官方交流平台。 5 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/annotation/CheckPermission.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | /** 11 | * 检查是否拥有权限 12 | */ 13 | @Target({ElementType.METHOD}) 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface CheckPermission { 16 | String[] permission() default ""; 17 | } 18 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/common/DiagnosisMetric.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.common; 2 | 3 | /** 4 | * @author huqidong 5 | * @date 2020-09-21 6 | * 诊断指标 7 | */ 8 | public class DiagnosisMetric { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/common/DiagnosisResult.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.common; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @author huqidong 7 | * @date 2020-09-21 8 | * 诊断结果 9 | */ 10 | public class DiagnosisResult { 11 | 12 | /** 13 | * 出故障的主机对象 id 14 | */ 15 | private Long hostId; 16 | 17 | /** 18 | * 健康度 19 | */ 20 | private Integer healthLevel; 21 | /** 22 | * 诊断时间 23 | */ 24 | private Long diagnosisTime; 25 | 26 | /** 27 | * 诊断指标集 28 | */ 29 | private List diagnosisMetricList; 30 | 31 | } 32 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/common/Pair.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.common; 2 | 3 | /** 4 | * @author huqidong 5 | * @date 2020-09-21 6 | * 表示一个 对 7 | */ 8 | public class Pair { 9 | 10 | private K key; 11 | private V value; 12 | 13 | public Pair(K key, V value) { 14 | this.key = key; 15 | this.value = value; 16 | } 17 | 18 | public Pair() { 19 | 20 | } 21 | 22 | public K getKey() { 23 | return key; 24 | } 25 | public V getValue() { 26 | return value; 27 | } 28 | public void setKey(K key) { 29 | this.key = key; 30 | } 31 | public void setValue(V value) { 32 | this.value = value; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/domain/k8s/K8sPodHostDO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.domain.k8s; 2 | 3 | public class K8sPodHostDO { 4 | private Long id; 5 | 6 | private Long k8sPodId; 7 | 8 | private Long hostId; 9 | 10 | public Long getId() { 11 | return id; 12 | } 13 | 14 | public void setId(Long id) { 15 | this.id = id; 16 | } 17 | 18 | public Long getK8sPodId() { 19 | return k8sPodId; 20 | } 21 | 22 | public void setK8sPodId(Long k8sPodId) { 23 | this.k8sPodId = k8sPodId; 24 | } 25 | 26 | public Long getHostId() { 27 | return hostId; 28 | } 29 | 30 | public void setHostId(Long hostId) { 31 | this.hostId = hostId; 32 | } 33 | } -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/domain/logcollecttask/FileLogCollectPathDO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.domain.logcollecttask; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author huqidong 7 | * @date 2020-09-21 8 | * 文件类型日志采集路径 9 | */ 10 | @Data 11 | public class FileLogCollectPathDO extends LogCollectPathDO { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/domain/logcollecttask/LogCollectTaskHealthDetailDO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.domain.logcollecttask; 2 | 3 | import com.didichuxing.datachannel.agentmanager.common.bean.domain.BaseDO; 4 | import lombok.Data; 5 | 6 | @Data 7 | public class LogCollectTaskHealthDetailDO extends BaseDO { 8 | 9 | private Long id; 10 | 11 | private Long logCollectTaskId; 12 | 13 | private Long pathId; 14 | 15 | private String hostName; 16 | 17 | private Long collectDqualityTime; 18 | 19 | private Long tooLargeTruncateCheckHealthyHeartbeatTime; 20 | 21 | private Long filePathExistsCheckHealthyHeartbeatTime; 22 | 23 | private Long fileDisorderCheckHealthyHeartbeatTime; 24 | 25 | private Long logSliceCheckHealthyHeartbeatTime; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/domain/metadata/MetaDataFileContent.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.domain.metadata; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import io.swagger.annotations.ApiModel; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @JsonIgnoreProperties(ignoreUnknown = true) 10 | @ApiModel(value = "元数据内容") 11 | @Data 12 | public class MetaDataFileContent { 13 | 14 | /** 15 | * 主机信息 表 16 | */ 17 | private List> hostTable; 18 | 19 | /** 20 | * 应用信息 表 21 | */ 22 | private List> applicationTable; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/domain/metadata/MetaDataFileDO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.domain.metadata; 2 | 3 | import com.didichuxing.datachannel.agentmanager.common.bean.domain.BaseDO; 4 | import com.didichuxing.datachannel.agentmanager.common.bean.po.metadata.MetaDataFilePO; 5 | import com.didichuxing.datachannel.agentmanager.common.util.ConvertUtil; 6 | import lombok.Data; 7 | 8 | /** 9 | * 元数据文件 10 | */ 11 | @Data 12 | public class MetaDataFileDO extends BaseDO { 13 | 14 | private Long id; 15 | 16 | private String fileName; 17 | 18 | private String filePath; 19 | 20 | private String fileMd5; 21 | 22 | private String description; 23 | 24 | public MetaDataFilePO convert2MetaDataFilePO() { 25 | return ConvertUtil.obj2Obj(this, MetaDataFilePO.class); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/domain/metrics/DiskIOStatisticMetricPoint.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.domain.metrics; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | /** 7 | * 磁盘io统计类指标 8 | */ 9 | @Data 10 | public class DiskIOStatisticMetricPoint extends StatisticMetricPoint { 11 | 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/domain/metrics/MinuteMetricPoint.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.domain.metrics; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | /** 7 | * 以分钟为单位的指标点 8 | */ 9 | @Data 10 | public class MinuteMetricPoint { 11 | 12 | @ApiModelProperty(value = "以分钟为单位的时间戳位点") 13 | private Long timeStampMinute; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/dto/logcollecttask/health/LogCollectTaskHealthSolveErrorDetailDTO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.dto.logcollecttask.health; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @Data 8 | @ApiModel(value = "LogCollectTaskHealthSolveErrorDetailDTO", description = "日志采集任务健康度修复请求参数") 9 | public class LogCollectTaskHealthSolveErrorDetailDTO { 10 | 11 | @ApiModelProperty(value = "日志采集任务指标id") 12 | private Long logCollectTaskMetricId; 13 | 14 | @ApiModelProperty(value = "日志采集任务健康度巡检状态码") 15 | private Integer logCollectTaskHealthInspectionCode; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/dto/logcollecttask/logx/FileNameSuffixMatchRuleDTO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.dto.logcollecttask.logx; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @Data 8 | @ApiModel(value = "文件名后缀匹配规则", description = "") 9 | public class FileNameSuffixMatchRuleDTO { 10 | 11 | @ApiModelProperty(value = "文件名后缀匹配正则表达式") 12 | private String suffixMatchRegular; 13 | 14 | public String getSuffixMatchRegular() { 15 | return suffixMatchRegular; 16 | } 17 | 18 | public void setSuffixMatchRegular(String suffixMatchRegular) { 19 | this.suffixMatchRegular = suffixMatchRegular; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/dto/logcollecttask/web/FileLogCollectPathCreateDTO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.dto.logcollecttask.web; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @Data 8 | @ApiModel(value = "文件类型路径采集配置", description = "") 9 | public class FileLogCollectPathCreateDTO extends LogCollectPathCreateDTO { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/dto/logcollecttask/web/FileLogCollectPathUpdateDTO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.dto.logcollecttask.web; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @Data 8 | @ApiModel(value = "文件类型路径采集配置", description = "") 9 | public class FileLogCollectPathUpdateDTO extends LogCollectPathUpdateDTO { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/dto/logcollecttask/web/ListFilesDTO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.dto.logcollecttask.web; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | import org.springframework.web.bind.annotation.RequestParam; 7 | 8 | @Data 9 | @ApiModel(value = "ListFilesDTO", description = "文件集查找请求 body") 10 | public class ListFilesDTO { 11 | 12 | @ApiModelProperty(value = "主机名") 13 | private String hostName; 14 | 15 | @ApiModelProperty(value = "主文件路径") 16 | private String path; 17 | 18 | @ApiModelProperty(value = "文件名后缀匹配正则") 19 | private String suffixRegular; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/dto/logcollecttask/web/SliceDTO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.dto.logcollecttask.web; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @Data 8 | @ApiModel(value = "SliceDTO", description = "日志切片请求 body") 9 | public class SliceDTO { 10 | 11 | @ApiModelProperty(value = "待日志切片内容") 12 | private String content; 13 | 14 | @ApiModelProperty(value = "切片时间戳前缀字符串") 15 | private String sliceTimestampPrefixString; 16 | 17 | @ApiModelProperty(value = "切片时间戳前缀字符串左起第几个,index计数从1开始") 18 | private Integer sliceTimestampPrefixStringIndex; 19 | 20 | @ApiModelProperty(value = "切片 时间戳格式") 21 | private String sliceTimestampFormat; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/dto/logcollecttask/web/SliceSampleDTO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.dto.logcollecttask.web; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @Data 8 | @ApiModel(value = "SliceSampleDTO", description = "日志切片样本 body") 9 | public class SliceSampleDTO { 10 | 11 | @ApiModelProperty(value = "待日志切片内容") 12 | private String content; 13 | 14 | @ApiModelProperty(value = "切片 时间戳串开始位置索引") 15 | private Integer sliceDateTimeStringStartIndex; 16 | 17 | @ApiModelProperty(value = "切片 时间戳串结束位置索引") 18 | private Integer sliceDateTimeStringEndIndex; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/dto/metrics/BaseMetricsQueryDTO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.dto.metrics; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @Data 8 | @ApiModel(value = "指标请求参数", description = "") 9 | public class BaseMetricsQueryDTO { 10 | 11 | @ApiModelProperty(value = "开始时间") 12 | private Long startTime; 13 | 14 | @ApiModelProperty(value = "结束时间") 15 | private Long endTime; 16 | 17 | @ApiModelProperty(value = "指标代码") 18 | private Integer metricCode; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/dto/metrics/BusinessMetricsQueryDTO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.dto.metrics; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @Data 8 | @ApiModel(value = "业务指标请求参数", description = "") 9 | public class BusinessMetricsQueryDTO extends MultiMetricsQueryDTO { 10 | 11 | @ApiModelProperty(value = "日志采集任务id") 12 | private Long logCollectTaskId; 13 | 14 | @ApiModelProperty(value = "采集路径id") 15 | private Long pathId; 16 | 17 | @ApiModelProperty(value = "主机名") 18 | private String hostName; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/po/logcollecttask/FileLogCollectPathPO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.po.logcollecttask; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author huqidong 7 | * @date 2020-09-21 8 | * 文件类型日志采集路径 9 | */ 10 | @Data 11 | public class FileLogCollectPathPO extends LogCollectPathPO { 12 | 13 | } -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/po/metadata/MetaDataFilePO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.po.metadata; 2 | 3 | import com.didichuxing.datachannel.agentmanager.common.bean.po.BasePO; 4 | import lombok.Data; 5 | 6 | @Data 7 | public class MetaDataFilePO extends BasePO { 8 | 9 | private Long id; 10 | 11 | private String fileName; 12 | 13 | private String filePath; 14 | 15 | private String fileMd5; 16 | 17 | private String description; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/po/metrics/MetricsDiskIOTopPO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.po.metrics; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class MetricsDiskIOTopPO { 7 | 8 | private String device; 9 | private Double aggVal; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/po/metrics/MetricsDiskTopPO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.po.metrics; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class MetricsDiskTopPO { 7 | 8 | private String path; 9 | private Double aggVal; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/po/metrics/MetricsLogCollectTaskIdTopPO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.po.metrics; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class MetricsLogCollectTaskIdTopPO { 7 | 8 | private Long logCollectTaskId; 9 | private Double aggVal; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/po/metrics/MetricsLogCollectTaskTopPO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.po.metrics; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class MetricsLogCollectTaskTopPO { 7 | 8 | private String hostName; 9 | private Double aggVal; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/po/metrics/MetricsNetCardTopPO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.po.metrics; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class MetricsNetCardTopPO { 7 | 8 | private String macAddress; 9 | private Double aggVal; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/po/metrics/MetricsServiceIdTopPO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.po.metrics; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class MetricsServiceIdTopPO { 7 | 8 | private Long serviceId; 9 | private Double aggVal; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/po/metrics/MetricsServiceNamesTopPO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.po.metrics; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class MetricsServiceNamesTopPO { 7 | 8 | private String serviceNames; 9 | private Double aggVal; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/vo/agent/config/FileLogCollectPathConfigDO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.vo.agent.config; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | 5 | /** 6 | * @author huqidong 7 | * @date 2020-09-21 8 | * 文件类型日志采集路径配置信息 9 | */ 10 | @JsonIgnoreProperties(ignoreUnknown = true) 11 | public class FileLogCollectPathConfigDO extends LogCollectPathConfigDO { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/vo/agent/health/AgentHealthErrorDetailVO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.vo.agent.health; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | @Data 9 | public class AgentHealthErrorDetailVO { 10 | 11 | @ApiModelProperty(value = "主机名") 12 | private String hostName; 13 | 14 | @ApiModelProperty(value = "错误日志发送条数") 15 | private Long errorLogsCount; 16 | 17 | @ApiModelProperty(value = "错误日志信息") 18 | private List errorLogs; 19 | 20 | @ApiModelProperty(value = "心跳时间") 21 | private String heartbeatTime; 22 | 23 | @ApiModelProperty(value = "agent 业务指标 id") 24 | private Long agentMetricId; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/vo/agent/metrics/AgentBusinessMetrics.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.vo.agent.metrics; 2 | 3 | /** 4 | * @author william. 5 | * agent 上报业务指标定义 6 | */ 7 | public class AgentBusinessMetrics { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/vo/agent/metrics/AgentMetrics.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.vo.agent.metrics; 2 | 3 | import com.didichuxing.datachannel.system.metrcis.bean.ProcMetrics; 4 | import com.didichuxing.datachannel.system.metrcis.bean.SystemMetrics; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author william. 9 | * agent 上报指标定义 10 | */ 11 | @Data 12 | public class AgentMetrics { 13 | 14 | /** 15 | * agent 业务级指标 16 | */ 17 | private AgentBusinessMetrics agentBusinessMetrics; 18 | /** 19 | * 系统级指标 20 | */ 21 | private SystemMetrics systemMetrics; 22 | /** 23 | * 当前进程级指标 24 | */ 25 | private ProcMetrics procMetrics; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/vo/logcollecttask/AdvancedConfigItem.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.vo.logcollecttask; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | @Data 7 | public class AdvancedConfigItem { 8 | 9 | @ApiModelProperty(value = "配置项名") 10 | private String name; 11 | 12 | @ApiModelProperty(value = "配置项描述信息") 13 | private String description; 14 | 15 | @ApiModelProperty(value = "配置项默认值") 16 | private String defaultValue; 17 | 18 | public AdvancedConfigItem(String name, String description, String defaultValue) { 19 | this.name = name; 20 | this.description = description; 21 | this.defaultValue = defaultValue; 22 | } 23 | 24 | public AdvancedConfigItem() { 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/vo/logcollecttask/AdvancedConfigTips.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.vo.logcollecttask; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @ApiModel(value = "AdvancedConfigTips", description = "高级配置提示信息") 11 | public class AdvancedConfigTips { 12 | 13 | @ApiModelProperty(value = "概述信息") 14 | private String summary; 15 | 16 | @ApiModelProperty(value = "各高级配置项信息") 17 | private List advancedConfigItemList; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/vo/logcollecttask/FileLogCollectPathVO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.vo.logcollecttask; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @Data 8 | @ApiModel(value = "文件类型路径采集配置", description = "") 9 | public class FileLogCollectPathVO extends LogCollectPathVO { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/vo/logcollecttask/LogRecordVO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.vo.logcollecttask; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @Data 8 | @ApiModel(value = "表示一条日志记录", description = "") 9 | public class LogRecordVO { 10 | 11 | @ApiModelProperty(value = "日志内容") 12 | private String record; 13 | 14 | @ApiModelProperty(value = "是否为一条正确日志记录 正确表示具备合法日期-格式串 0:否 1:是") 15 | private Integer valid; 16 | 17 | public LogRecordVO(String record, Integer valid) { 18 | this.record = record; 19 | this.valid = valid; 20 | } 21 | 22 | public LogRecordVO() { 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/vo/logcollecttask/health/LogCollectTaskHealthErrorDetailPathHostsVO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.vo.logcollecttask.health; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | @Data 9 | public class LogCollectTaskHealthErrorDetailPathHostsVO { 10 | 11 | @ApiModelProperty(value = "采集路径id") 12 | private Long pathId; 13 | 14 | @ApiModelProperty(value = "采集路径") 15 | private String path; 16 | 17 | @ApiModelProperty(value = "采集路径关联的主机名集") 18 | private List hostNameList; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/vo/metadata/MetaDataFilePaginationRecordVO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.vo.metadata; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @JsonIgnoreProperties(ignoreUnknown = true) 8 | @Data 9 | public class MetaDataFilePaginationRecordVO { 10 | 11 | @ApiModelProperty(value = "id", notes="") 12 | private Long id; 13 | 14 | @ApiModelProperty(value = "文件名", notes="") 15 | private String fileName; 16 | 17 | @ApiModelProperty(value = "文件 md5 信息", notes="") 18 | private String fileMd5; 19 | 20 | @ApiModelProperty(value = "描述信息", notes="") 21 | private String description; 22 | 23 | @ApiModelProperty(value = "上传时间", notes="") 24 | private Long uploadTime; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/vo/metrics/MetricNodeVO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.vo.metrics; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | @Data 9 | public class MetricNodeVO { 10 | 11 | @ApiModelProperty(value = "指标/指标类型代码") 12 | private Integer code; 13 | 14 | @ApiModelProperty(value = "指标/指标类型名") 15 | private String metricName; 16 | 17 | @ApiModelProperty(value = "指标(类型)描述") 18 | private String metricDesc; 19 | 20 | @ApiModelProperty(value = "子节点集") 21 | private List children; 22 | 23 | @ApiModelProperty(value = "指标级别 1:一级指标,黄金指标 2:二级指标,表示用户较为关注的指标 3:三级指标,普通指标") 24 | private Integer metricLevel; 25 | 26 | @ApiModelProperty(value = "是否叶节点") 27 | private Boolean isLeafNode; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/vo/metrics/MetricPointLine.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.vo.metrics; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import io.swagger.annotations.ApiModel; 5 | import io.swagger.annotations.ApiModelProperty; 6 | import lombok.Data; 7 | 8 | import java.util.List; 9 | 10 | @JsonIgnoreProperties(ignoreUnknown = true) 11 | @ApiModel(value = "单根指标线") 12 | @Data 13 | public class MetricPointLine { 14 | 15 | @ApiModelProperty(value = "指标点集") 16 | private List metricPointList; 17 | 18 | @ApiModelProperty(value = "名称") 19 | private String name; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/bean/vo/service/ServiceVO.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.bean.vo.service; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import io.swagger.annotations.ApiModelProperty; 5 | 6 | @JsonIgnoreProperties(ignoreUnknown = true) 7 | public class ServiceVO { 8 | 9 | @ApiModelProperty(value = "服务对象id", notes="") 10 | private Long id; 11 | @ApiModelProperty(value = "服务名", notes="") 12 | private String servicename; 13 | 14 | public void setId(Long id) { 15 | this.id = id; 16 | } 17 | 18 | public Long getId() { 19 | return id; 20 | } 21 | 22 | public void setServicename(String servicename) { 23 | this.servicename = servicename; 24 | } 25 | 26 | public String getServicename() { 27 | return servicename; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/chain/Context.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.chain; 2 | 3 | public class Context { 4 | } 5 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/chain/HealthCheckProcessorAnnotation.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.chain; 2 | 3 | import com.didichuxing.datachannel.agentmanager.common.enumeration.HealthCheckProcessorEnum; 4 | 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Target(ElementType.TYPE) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface HealthCheckProcessorAnnotation { 13 | 14 | public int seq(); 15 | 16 | public HealthCheckProcessorEnum type(); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/chain/Processor.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.chain; 2 | 3 | public interface Processor { 4 | void process(Context context, ProcessorChain chain); 5 | } 6 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/chain/ProcessorChain.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.chain; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class ProcessorChain implements Processor { 7 | 8 | private List processorList = new ArrayList<>(); 9 | private int index = 0; 10 | 11 | public ProcessorChain addProcessor(Processor processor) { 12 | processorList.add(processor); 13 | return this; 14 | } 15 | 16 | @Override 17 | public void process(Context context, ProcessorChain chain) { 18 | if(index == processorList.size()) { 19 | return; 20 | } 21 | Processor processor = processorList.get(index); 22 | index++; 23 | processor.process(context, chain); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/constant/ApiVersion.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.constant; 2 | 3 | /** 4 | * @author huqidong 5 | * @date 2020-09-21 6 | * API 版本类 7 | */ 8 | public class ApiVersion { 9 | 10 | public static final String V1 = "/v1"; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/constant/LoginConstant.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.constant; 2 | 3 | /** 4 | * 登录常量 5 | * @author zengqiao 6 | * @date 20/5/8 7 | */ 8 | public class LoginConstant { 9 | public static final String SESSION_USERNAME_KEY = "username"; 10 | 11 | public static final String COOKIE_CHINESE_USERNAME_KEY = "chineseName"; 12 | 13 | public static final Integer COOKIE_OR_SESSION_MAX_AGE_UNIT_MS = 24 * 60 * 60 * 1000; 14 | } -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/constant/MetricConstant.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.constant; 2 | 3 | public interface MetricConstant { 4 | int HEARTBEAT_PERIOD = 30000; 5 | 6 | int QUERY_INTERVAL = 60000; 7 | } 8 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/constant/ProjectConstant.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.constant; 2 | 3 | public class ProjectConstant { 4 | 5 | /** 6 | * 项目 id 在请求头 key 名 7 | */ 8 | public static final String PROJECT_ID_KEY_IN_HTTP_REQUEST_HEADER = "X-AGENT-APP-ID"; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/FileNameSuffixMatchTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration; 2 | 3 | public enum FileNameSuffixMatchTypeEnum { 4 | 5 | LENGTH(0, "长度"), 6 | REGULAR(1, "正则"); 7 | 8 | FileNameSuffixMatchTypeEnum(Integer code, String desc) { 9 | this.code = code; 10 | this.desc = desc; 11 | } 12 | 13 | private Integer code; 14 | 15 | private String desc; 16 | 17 | public Integer getCode() { 18 | return code; 19 | } 20 | 21 | public String getDesc() { 22 | return desc; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/HealthCheckProcessorEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration; 2 | 3 | public enum HealthCheckProcessorEnum { 4 | LOGCOLLECTTASK, 5 | AGENT; 6 | } 7 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/OperatorEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration; 2 | 3 | public enum OperatorEnum { 4 | 5 | GT(">", 0), 6 | GE(">=", 1), 7 | LT("<", 2), 8 | LE("<=", 3), 9 | EQ("=", 4) 10 | 11 | ; 12 | 13 | OperatorEnum(String operator, Integer operatorType) { 14 | this.operator = operator; 15 | this.operatorType = operatorType; 16 | } 17 | 18 | public String getOperator() { 19 | return operator; 20 | } 21 | 22 | public Integer getOperatorType() { 23 | return operatorType; 24 | } 25 | 26 | private String operator; 27 | private Integer operatorType; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/SourceEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration; 2 | 3 | public enum SourceEnum { 4 | MANUAL(0L, "人为添加"), K8S(1L, "k8s集群获取"); 5 | 6 | private long code; 7 | private String desc; 8 | 9 | SourceEnum(long code, String desc) { 10 | this.code = code; 11 | this.desc = desc; 12 | } 13 | 14 | public long getCode() { 15 | return code; 16 | } 17 | 18 | public String getDesc() { 19 | return desc; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/agent/AgentCollectTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration.agent; 2 | 3 | /** 4 | * @author huqidong 5 | * @date 2020-09-21 6 | * Agent采集方式枚举类 7 | */ 8 | public enum AgentCollectTypeEnum { 9 | 10 | COLLECT_HOST_ONLY(0, "仅采集宿主机日志"), 11 | COLLECT_CONTAINERS_ONLY(1, "仅采集宿主机挂载的所有容器日志"), 12 | COLLECT_HOST_AND_CONTAINERS(2, "采集宿主机日志 & 宿主机挂载的所有容器日志"); 13 | 14 | private Integer code; 15 | private String description; 16 | 17 | AgentCollectTypeEnum(Integer code, String description) { 18 | this.code = code; 19 | description = description; 20 | } 21 | 22 | public Integer getCode() { 23 | return code; 24 | } 25 | 26 | public String getDescription() { 27 | return description; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/agent/AgentFileTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration.agent; 2 | 3 | /** 4 | * @author huqidong 5 | * @date 2020-09-21 6 | * 文件类型枚举类 7 | */ 8 | public enum AgentFileTypeEnum { 9 | 10 | AGENT_INSTALL_FILE(0, "agent安装文件"), 11 | AGENT_CONFIGURATION_FILE(1, "agent配置文件"); 12 | 13 | private Integer code; 14 | private String description; 15 | 16 | AgentFileTypeEnum(Integer code, String description) { 17 | this.code = code; 18 | description = description; 19 | } 20 | 21 | public Integer getCode() { 22 | return code; 23 | } 24 | 25 | public String getDescription() { 26 | return description; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/host/HostFilterRuleLogicEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration.host; 2 | 3 | /** 4 | * @author huqidong 5 | * @date 2020-09-21 6 | * 主机过滤规则逻辑枚举 7 | */ 8 | public enum HostFilterRuleLogicEnum { 9 | 10 | ExpressionHostFilterRuleLogic(0, "表达式类型的主机过滤规则逻辑"); 11 | 12 | private int code; 13 | private String description; 14 | 15 | HostFilterRuleLogicEnum(int code, String description) { 16 | this.code = code; 17 | this.description = description; 18 | } 19 | 20 | public int getCode() { 21 | return code; 22 | } 23 | public String getDescription() { 24 | return description; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/host/HostTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration.host; 2 | 3 | /** 4 | * @author huqidong 5 | * @date 2020-09-21 6 | * 主机类型枚举类 7 | */ 8 | public enum HostTypeEnum { 9 | 10 | HOST(0, "物理机"), 11 | CONTAINER(1, "容器"); 12 | 13 | private Integer code; 14 | private String description; 15 | 16 | HostTypeEnum(Integer code, String description) { 17 | this.code = code; 18 | this.description = description; 19 | } 20 | 21 | public Integer getCode() { 22 | return code; 23 | } 24 | 25 | public String getDescription() { 26 | return description; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/logcollecttask/LogCollectTaskLimitPriorityLevelEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration.logcollecttask; 2 | 3 | /** 4 | * @author huqidong 5 | * @date 2020-09-21 6 | * 日志采集任务限流等级枚举 7 | */ 8 | public enum LogCollectTaskLimitPriorityLevelEnum { 9 | HIGH(0, "高:最高等级保障"), 10 | MIDDLE(1, "中:正常等级保障"), 11 | LOW(2, "低:最低等级保障"); 12 | 13 | private Integer code; 14 | private String description; 15 | 16 | LogCollectTaskLimitPriorityLevelEnum(Integer code, String description) { 17 | this.code = code; 18 | this.description = description; 19 | } 20 | 21 | public Integer getCode() { 22 | return code; 23 | } 24 | public String getDescription() { 25 | return description; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/logcollecttask/LogCollectTaskOldDataFilterTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration.logcollecttask; 2 | 3 | /** 4 | * @author huqidong 5 | * @date 2020-09-21 6 | * 日志采集任务历史数据过滤类型枚举 7 | */ 8 | public enum LogCollectTaskOldDataFilterTypeEnum { 9 | NO(0, "不过滤"), 10 | FROM_CURRENT_TIME(1, "从当前时间开始采集"), 11 | CUSTOM_TIME(2, "从自定义时间开始采集"); 12 | 13 | private int code; 14 | private String description; 15 | 16 | LogCollectTaskOldDataFilterTypeEnum(int code, String description) { 17 | this.code = code; 18 | this.description = description; 19 | } 20 | 21 | public int getCode() { 22 | return code; 23 | } 24 | public String getDescription() { 25 | return description; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/logcollecttask/LogCollectTaskTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration.logcollecttask; 2 | 3 | /** 4 | * @author huqidong 5 | * @date 2020-09-21 6 | * 日志采集任务类型枚举 7 | */ 8 | public enum LogCollectTaskTypeEnum { 9 | NORMAL_COLLECT(0, "常规流式采集"), 10 | TIME_SCOPE_COLLECT(1, "按指定时间范围采集"); 11 | 12 | private Integer code; 13 | private String description; 14 | 15 | LogCollectTaskTypeEnum(Integer code, String description) { 16 | this.code = code; 17 | this.description = description; 18 | } 19 | 20 | public Integer getCode() { 21 | return code; 22 | } 23 | public String getDescription() { 24 | return description; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/metrics/MetricDisplayTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration.metrics; 2 | 3 | /** 4 | * 指标展示类型 5 | */ 6 | public enum MetricDisplayTypeEnum { 7 | 8 | LABLE(1,"lable类型指标"), 9 | MULTI_LINE_CHAT(2, "折线图-多根类型指标"), 10 | SINGLE_LINE_CHAT(3,"折线图-单根类型指标"), 11 | HISTOGRAM_CHAT(4, "柱状图") 12 | ; 13 | 14 | public Integer getCode() { 15 | return code; 16 | } 17 | 18 | public String getDesc() { 19 | return desc; 20 | } 21 | 22 | MetricDisplayTypeEnum(Integer code, String desc) { 23 | this.code = code; 24 | this.desc = desc; 25 | } 26 | 27 | /** 28 | * 指标展示类型代码 29 | */ 30 | private Integer code; 31 | 32 | /** 33 | * 指标展示类型描述 34 | */ 35 | private String desc; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/metrics/MetricValueTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration.metrics; 2 | 3 | public enum MetricValueTypeEnum { 4 | STATISTICS, 5 | CURRENT; 6 | } 7 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/metrics/SortTimeFieldEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration.metrics; 2 | 3 | public enum SortTimeFieldEnum { 4 | 5 | HEARTBEAT_TIME_MINUTE("heartbeatTimeMinute"), 6 | HEARTBEAT_TIME_HOUR("heartbeatTimeHour"), 7 | HEARTBEAT_TIME_DAY("heartbeatTimeDay") 8 | 9 | ; 10 | 11 | private String fieldName; 12 | 13 | SortTimeFieldEnum(String fieldName) { 14 | this.fieldName = fieldName; 15 | } 16 | 17 | public String getFieldName() { 18 | return fieldName; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/enumeration/metrics/SortTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.enumeration.metrics; 2 | 3 | public enum SortTypeEnum { 4 | 5 | DESC("desc"), 6 | ASC("asc") 7 | ; 8 | 9 | private String type; 10 | 11 | SortTypeEnum(String type) { 12 | this.type = type; 13 | } 14 | 15 | public String getType() { 16 | return type; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/util/Comparator.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.util; 2 | 3 | /** 4 | * @author huqidong 5 | * @date 2020-09-21 6 | * 对象比较器 7 | */ 8 | public interface Comparator { 9 | 10 | /** 11 | * @param t 12 | * @return 返回对象 t 唯一标识,如两个 t 对象对应该标识相同,则表示两个对象可比较 13 | */ 14 | K getKey(T t); 15 | 16 | /** 17 | * @param t1 18 | * @param t2 19 | * @return 对象 t1 & t2 待对比字段是否一致,如一致 return true,否则 return false 20 | */ 21 | boolean compare(T t1, T t2); 22 | 23 | /** 24 | * 源对象 source & 目标对象 target 对应 getKey 值一样,须将 source 更新为 target 25 | * @param source 待更新源对象 source 26 | * @param target 待更新目标对象 target 27 | * @return 返回根据待更新源对象 source & 待更新目标对象 target 进行merge,得到最终的待更新对象 28 | */ 29 | T getModified(T source, T target); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/util/LogUtil.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.util; 2 | 3 | public class LogUtil { 4 | 5 | public static String defaultLogFormat() { 6 | String className = Thread.currentThread().getStackTrace()[2].getClassName(); 7 | String[] slices = className.split("."); 8 | String simpleName = slices[slices.length - 1]; 9 | String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); 10 | return "class=" + simpleName + "||method=" + methodName + "||errorMsg={%s}"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-common/src/main/java/com/didichuxing/datachannel/agentmanager/common/util/ValidateUtils.java: -------------------------------------------------------------------------------- 1 | package com.didichuxing.datachannel.agentmanager.common.util; 2 | 3 | import org.apache.commons.lang3.StringUtils; 4 | 5 | import java.util.List; 6 | import java.util.Map; 7 | import java.util.Set; 8 | 9 | /** 10 | * @author zengqiao 11 | * @date 20/4/16 12 | */ 13 | public class ValidateUtils { 14 | /** 15 | * 为空 16 | */ 17 | public static boolean isNull(Object object) { 18 | if (object instanceof String) { 19 | String str = (String) object; 20 | return isBlank(str); 21 | } 22 | 23 | return object == null; 24 | } 25 | 26 | /** 27 | * 是空字符串或者空 28 | */ 29 | public static boolean isBlank(String str) { 30 | return StringUtils.isBlank(str); 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /agent-manager/agent-manager-console/.eslintignore: -------------------------------------------------------------------------------- 1 | test/ 2 | scripts/ 3 | build/ 4 | public/ 5 | types/ -------------------------------------------------------------------------------- /agent-manager/agent-manager-console/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | browser: true, 4 | node: true, 5 | es2021: true, 6 | }, 7 | extends: [ 8 | 'eslint:recommended', 9 | 'plugin:react/recommended', 10 | 'plugin:@typescript-eslint/recommended', 11 | 'plugin:prettier/recommended', // 如果同时使用了eslint和prettier发生冲突了,会关闭掉与prettier有冲突的规则,也就是使用prettier认为对的规则 12 | ], 13 | parser: '@typescript-eslint/parser', 14 | parserOptions: { 15 | ecmaFeatures: { 16 | jsx: true, 17 | }, 18 | ecmaVersion: 12, 19 | sourceType: 'module', 20 | }, 21 | plugins: [ 22 | 'react', 23 | '@typescript-eslint', 24 | 'prettier', // eslint 会使用pretter的规则对代码格式化 25 | ], 26 | rules: { 27 | '@typescript-eslint/no-var-requires': 0, 28 | 'prettier/prettier': 2, // 这项配置 对于不符合prettier规范的写法,eslint会提示报错 29 | }, 30 | }; 31 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-console/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist/ 3 | pub/ 4 | build/ 5 | .sass-cache/ 6 | .DS_Store 7 | .idea/ 8 | .vscode/ 9 | coverage 10 | versions/ 11 | debug.log 12 | package-lock.json 13 | yarn.lock 14 | .d1-workspace.json 15 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-console/.npmrc: -------------------------------------------------------------------------------- 1 | @didi:registry=http://registry.npm.xiaojukeji.com -------------------------------------------------------------------------------- /agent-manager/agent-manager-console/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "printWidth": 140, // 指定代码长度,超出换行 3 | "tabWidth": 2, // tab 键的宽度 4 | "semi": true, // 结尾加上分号 5 | "trailingComma": "es5", // 确保对象的最后一个属性后有逗号 6 | singleQuote: true, 7 | "bracketSpacing": true, // 大括号有空格 { name: 'rose' } 8 | "insertPragma": false, // 是否在格式化的文件顶部插入Pragma标记,以表明该文件被prettier格式化过了 9 | "htmlWhitespaceSensitivity": "ignore", // html文件的空格敏感度,控制空格是否影响布局 10 | } -------------------------------------------------------------------------------- /agent-manager/agent-manager-console/d1.json: -------------------------------------------------------------------------------- 1 | { 2 | "appConfig": { 3 | "appName": "Logi-AM", 4 | "ident": "agent", 5 | "port": "8001", 6 | "webpackCustom": "", 7 | "entry": [ 8 | { 9 | "title": "agent首页", 10 | "name": "agent", 11 | "src": "./src/index.tsx", 12 | "template": "./src/index.html" 13 | } 14 | ] 15 | }, 16 | "preset": "@didi/d1-preset-opensource", 17 | "builderType": "@didi/d1-preset-opensource", 18 | "localBuilderVersion": true, 19 | "mockDir": "../../" 20 | } -------------------------------------------------------------------------------- /agent-manager/agent-manager-console/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/didi/KnowAgent/688c0f6255beeedc273a0c3de375cfd04ddd58ba/agent-manager/agent-manager-console/favicon.ico -------------------------------------------------------------------------------- /agent-manager/agent-manager-console/src/@types/images.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.png' { 2 | const value: any; 3 | export = value; 4 | } 5 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-console/src/api/index.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ 2 | function getApi(sys: string, path: string) { 3 | const prefix = "/api/v1"; 4 | return `${prefix}${sys}${path}`; 5 | } 6 | 7 | const api = { 8 | getData: (id: number) => getApi("", `/${id}`), 9 | }; 10 | 11 | export default api; 12 | -------------------------------------------------------------------------------- /agent-manager/agent-manager-console/src/components/CustomSelect/index.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import { Select, IconFont } from 'knowdesign'; 3 | interface MiniSelectInterface extends React.FC { 4 | Option: typeof Select.Option; 5 | } 6 | 7 | const CustomSelect: MiniSelectInterface = (props) => { 8 | return ( 9 | <> 10 | 每页显示 11 |