├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── bin ├── check │ ├── check.sh │ ├── check_cmd_exist.exp │ ├── check_command.sh │ ├── check_env.exp │ ├── check_file_exist.exp │ └── check_process.sh ├── clean │ └── clean.sh ├── common │ ├── common.sh │ ├── const.sh │ ├── delete.exp │ ├── exclude_sync.exp │ ├── exec.exp │ ├── exec_sql.exp │ ├── getback_files.exp │ ├── kill.exp │ ├── lib.sh │ ├── sync.exp │ ├── sync_files.exp │ └── verify.exp ├── compile │ ├── compile.sh │ ├── compile_redis.exp │ └── compile_roaring.exp ├── config │ ├── cluster-config.json │ ├── cluster-deploy.json │ ├── nodelist │ ├── sourcelist │ ├── standalone-config.json │ └── standalone-deploy.json ├── deploy │ ├── create_mysqldb.exp │ ├── create_topic.exp │ ├── del_zk_node.exp │ ├── deploy.sh │ ├── deploy_hadoop.exp │ ├── deploy_kafka.exp │ ├── deploy_mysql.exp │ ├── deploy_redis.exp │ └── redis_cluster.exp ├── easy-deploy.sh ├── install │ ├── base_install.sh │ ├── dependency.sh │ ├── install.sh │ └── install_ice.sh ├── offline │ └── package.sh ├── prepare │ ├── basic.sh │ ├── init_hosts.exp │ ├── init_path.sh │ ├── init_pre.exp │ ├── init_system.sh │ ├── prepare.sh │ ├── ssh_keygen.exp │ └── stop_firewall.sh ├── restart-all.sh ├── restart.sh ├── run │ ├── reload.sh │ ├── start.sh │ ├── start_hadoop.exp │ ├── start_hbase.exp │ ├── start_ice.exp │ ├── start_kafka.exp │ ├── start_lighthouse_ice.exp │ ├── start_mysql.exp │ ├── start_redis.exp │ ├── start_spark.exp │ ├── start_zookeeper.exp │ ├── stop.sh │ ├── stop_hadoop.exp │ ├── stop_hbase.exp │ ├── stop_kafka.exp │ ├── stop_mysql.exp │ ├── stop_redis.exp │ ├── stop_spark.exp │ └── stop_zookeeper.exp ├── start-all.sh ├── start.sh ├── stop-all.sh ├── stop.sh ├── templates │ ├── hadoop │ │ └── etc │ │ │ └── hadoop │ │ │ ├── capacity-scheduler.xml │ │ │ ├── configuration.xsl │ │ │ ├── container-executor.cfg │ │ │ ├── core-site.xml │ │ │ ├── hadoop-env.cmd │ │ │ ├── hadoop-env.sh │ │ │ ├── hadoop-metrics2.properties │ │ │ ├── hadoop-policy.xml │ │ │ ├── hadoop-user-functions.sh.example │ │ │ ├── hdfs-rbf-site.xml │ │ │ ├── hdfs-site.xml │ │ │ ├── httpfs-env.sh │ │ │ ├── httpfs-log4j.properties │ │ │ ├── httpfs-site.xml │ │ │ ├── kms-acls.xml │ │ │ ├── kms-env.sh │ │ │ ├── kms-log4j.properties │ │ │ ├── kms-site.xml │ │ │ ├── log4j.properties │ │ │ ├── mapred-env.cmd │ │ │ ├── mapred-env.sh │ │ │ ├── mapred-queues.xml.template │ │ │ ├── mapred-site.xml │ │ │ ├── ssl-client.xml.example │ │ │ ├── ssl-server.xml.example │ │ │ ├── user_ec_policies.xml.template │ │ │ ├── workers │ │ │ ├── yarn-env.cmd │ │ │ ├── yarn-env.sh │ │ │ ├── yarn-site.xml │ │ │ └── yarnservice-log4j.properties │ ├── hbase │ │ └── conf │ │ │ ├── hadoop-metrics2-hbase.properties │ │ │ ├── hbase-env.cmd │ │ │ ├── hbase-env.sh │ │ │ ├── hbase-policy.xml │ │ │ ├── hbase-site.xml │ │ │ ├── log4j2-hbtop.properties │ │ │ ├── log4j2.properties │ │ │ └── regionservers │ ├── kafka │ │ ├── bin │ │ │ └── kafka-server-start.sh │ │ └── config │ │ │ ├── connect-console-sink.properties │ │ │ ├── connect-console-source.properties │ │ │ ├── connect-distributed.properties │ │ │ ├── connect-file-sink.properties │ │ │ ├── connect-file-source.properties │ │ │ ├── connect-log4j.properties │ │ │ ├── connect-mirror-maker.properties │ │ │ ├── connect-standalone.properties │ │ │ ├── consumer.properties │ │ │ ├── log4j.properties │ │ │ ├── producer.properties │ │ │ ├── server.properties │ │ │ ├── tools-log4j.properties │ │ │ ├── trogdor.conf │ │ │ └── zookeeper.properties │ ├── lighthouse │ │ ├── conf │ │ │ ├── ice_app.xml │ │ │ ├── ice_node.cfg │ │ │ ├── ice_registry_master.cfg │ │ │ ├── ice_registry_slaver.cfg │ │ │ ├── ldp-site-cluster.xml │ │ │ ├── ldp-site-standalone.xml │ │ │ ├── ldp_db.sql │ │ │ ├── ldp_upgrade.sql │ │ │ ├── lighthouse-insights.yml │ │ │ ├── log4j2-ice.xml │ │ │ ├── log4j2-insights.xml │ │ │ ├── log4j2-standalone.xml │ │ │ └── log4j2-tasks.xml │ │ └── light-webapps │ │ │ └── public │ │ │ └── config.json │ ├── mysql │ │ └── support-files │ │ │ └── my.cnf │ ├── nginx │ │ └── conf │ │ │ └── nginx.conf │ ├── redis │ │ └── conf │ │ │ └── redis.conf │ ├── spark │ │ └── conf │ │ │ ├── fairscheduler.xml.template │ │ │ ├── log4j2.properties.template │ │ │ ├── metrics.properties.template │ │ │ ├── spark-defaults.conf │ │ │ ├── spark-env.sh │ │ │ └── workers │ └── zookeeper │ │ ├── bin │ │ └── zkEnv.sh │ │ ├── conf │ │ ├── configuration.xsl │ │ ├── log4j.properties │ │ └── zoo.cfg │ │ └── data │ │ └── myid └── tools │ ├── examples │ ├── start_example.sh │ └── stop_example.sh │ ├── logpack │ ├── collect.sh │ └── logpack.sh │ ├── redisfix │ ├── redis_clear.sh │ ├── redis_fix.exp │ └── redis_fix.sh │ ├── snapshot │ ├── restore.sh │ └── snapshot.sh │ └── track.exp ├── light-webapps ├── index.html ├── package.json ├── public │ ├── config.json │ └── logo.png ├── scripts │ └── follow_process.js ├── src │ ├── api │ │ ├── authorize.ts │ │ ├── caller.ts │ │ ├── component.ts │ │ ├── data.ts │ │ ├── department.ts │ │ ├── export.ts │ │ ├── favorites.ts │ │ ├── filter.ts │ │ ├── group.ts │ │ ├── home.ts │ │ ├── metricset.ts │ │ ├── order.ts │ │ ├── permission.ts │ │ ├── project.ts │ │ ├── record.ts │ │ ├── stat.ts │ │ ├── track.ts │ │ └── user.ts │ ├── assets │ │ ├── dark-logo.svg │ │ ├── dark.svg │ │ ├── light-logo.svg │ │ ├── light.svg │ │ ├── logo.png │ │ ├── logo.svg │ │ └── world.json │ ├── components │ │ ├── Chart │ │ │ ├── customer-tooltip.tsx │ │ │ ├── lib.ts │ │ │ ├── style │ │ │ │ └── index.module.less │ │ │ └── themes │ │ │ │ ├── dark1-theme.json │ │ │ │ └── light1-theme.json │ │ ├── Footer │ │ │ ├── index.tsx │ │ │ └── style │ │ │ │ └── index.module.less │ │ ├── MessageBox │ │ │ ├── index.tsx │ │ │ ├── list.tsx │ │ │ └── style │ │ │ │ └── index.module.less │ │ ├── NavBar │ │ │ ├── IconButton.tsx │ │ │ ├── index.tsx │ │ │ └── style │ │ │ │ ├── icon-button.module.less │ │ │ │ └── index.module.less │ │ ├── Panel │ │ │ ├── index.tsx │ │ │ └── style │ │ │ │ └── index.module.less │ │ ├── PermissionWrapper │ │ │ └── index.tsx │ │ └── Settings │ │ │ ├── block.tsx │ │ │ ├── color.tsx │ │ │ ├── index.tsx │ │ │ └── style │ │ │ ├── block.module.less │ │ │ └── color-panel.module.less │ ├── context.tsx │ ├── declaration.d.ts │ ├── layout.tsx │ ├── locale │ │ ├── common.ts │ │ └── index.ts │ ├── main.tsx │ ├── mock │ │ ├── index.ts │ │ └── message-box.ts │ ├── pages │ │ ├── caller │ │ │ ├── create │ │ │ │ ├── index.tsx │ │ │ │ └── locale │ │ │ │ │ └── index.ts │ │ │ ├── list │ │ │ │ ├── Constants.tsx │ │ │ │ ├── forms.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── list.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── manage │ │ │ │ ├── CallerMangePanel.tsx │ │ │ │ ├── Constants.tsx │ │ │ │ ├── apply │ │ │ │ │ ├── project_apply.tsx │ │ │ │ │ └── stat_apply.tsx │ │ │ │ ├── auth_add.tsx │ │ │ │ ├── auth_extension.tsx │ │ │ │ ├── auth_list.tsx │ │ │ │ ├── header.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── secret_key.tsx │ │ │ ├── preview │ │ │ │ ├── CallerPreview.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── search_form.tsx │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ └── update │ │ │ │ ├── index.tsx │ │ │ │ └── locale │ │ │ │ └── index.ts │ │ ├── common │ │ │ ├── context.tsx │ │ │ ├── date │ │ │ │ ├── ProStatViewDatePicker.tsx │ │ │ │ └── StatViewDatePicker.tsx │ │ │ ├── desc │ │ │ │ └── base.tsx │ │ │ ├── editable_v2 │ │ │ │ ├── EditTableV2.tsx │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── edittable │ │ │ │ ├── EditTable.tsx │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── error.tsx │ │ │ ├── popmenu │ │ │ │ ├── PopMenu.tsx │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── prompt.ts │ │ │ ├── redirect │ │ │ │ └── useNavigateTo.tsx │ │ │ └── selector │ │ │ │ ├── TreeSelectorExtend.tsx │ │ │ │ └── locale │ │ │ │ └── index.ts │ │ ├── component │ │ │ ├── create │ │ │ │ ├── ComponentCreateModal.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── list │ │ │ │ ├── constants.tsx │ │ │ │ ├── form.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── mock │ │ │ │ └── index.ts │ │ │ └── update │ │ │ │ ├── ComponentUpdateModal.tsx │ │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ └── index.module.less │ │ ├── components │ │ │ ├── common.ts │ │ │ └── transfer │ │ │ │ ├── department_transfer │ │ │ │ ├── index.tsx │ │ │ │ ├── style │ │ │ │ │ └── index.module.less │ │ │ │ └── tree_transfer.tsx │ │ │ │ └── user_transfer │ │ │ │ ├── index.tsx │ │ │ │ ├── style │ │ │ │ └── index.module.less │ │ │ │ └── tree_transfer.tsx │ │ ├── dashboard │ │ │ ├── monitor │ │ │ │ ├── chat-panel.tsx │ │ │ │ ├── data-statistic-list.tsx │ │ │ │ ├── data-statistic.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── message-list │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── item.tsx │ │ │ │ │ └── style │ │ │ │ │ │ └── index.module.less │ │ │ │ ├── mock │ │ │ │ │ └── index.ts │ │ │ │ ├── quick-operation.tsx │ │ │ │ ├── studio-information.tsx │ │ │ │ ├── studio-status.tsx │ │ │ │ ├── studio.tsx │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ └── workplace │ │ │ │ ├── StatPieChart.tsx │ │ │ │ ├── announcement.tsx │ │ │ │ ├── assets │ │ │ │ ├── calendar.svg │ │ │ │ ├── comments.svg │ │ │ │ ├── content.svg │ │ │ │ └── increase.svg │ │ │ │ ├── carousel.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ │ ├── mock │ │ │ │ └── index.ts │ │ │ │ ├── overview.tsx │ │ │ │ ├── popular-contents.tsx │ │ │ │ ├── shortcuts.tsx │ │ │ │ └── style │ │ │ │ ├── announcement.module.less │ │ │ │ ├── docs.module.less │ │ │ │ ├── index.module.less │ │ │ │ ├── overview.module.less │ │ │ │ ├── popular-contents.module.less │ │ │ │ └── shortcuts.module.less │ │ ├── department │ │ │ ├── base.ts │ │ │ ├── common │ │ │ │ └── depart.tsx │ │ │ ├── manage │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── manage.tsx │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ └── mock │ │ │ │ └── index.ts │ │ ├── exception │ │ │ ├── 100 │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── 403 │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── 404 │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ └── 500 │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ └── index.module.less │ │ ├── form │ │ │ ├── group │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── mock │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ └── step │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ │ ├── mock │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ └── index.module.less │ │ ├── group │ │ │ ├── basic │ │ │ │ ├── constants.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── secret_key.tsx │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── create │ │ │ │ ├── group_create.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── dimens │ │ │ │ ├── DimensManageModal.tsx │ │ │ │ └── locale │ │ │ │ │ └── index.ts │ │ │ ├── limiting │ │ │ │ ├── LimitingSettingsModal.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── manage │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── mock │ │ │ │ └── index.ts │ │ │ └── update │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ └── index.module.less │ │ ├── license │ │ │ ├── index.tsx │ │ │ └── license.md │ │ ├── list │ │ │ ├── card │ │ │ │ ├── card-add.tsx │ │ │ │ ├── card-block.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── interface.ts │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── mock │ │ │ │ │ └── index.ts │ │ │ │ ├── style │ │ │ │ │ └── index.module.less │ │ │ │ └── useRequest.ts │ │ │ └── search-table │ │ │ │ ├── constants.tsx │ │ │ │ ├── form.tsx │ │ │ │ ├── icons │ │ │ │ ├── horizontal.svg │ │ │ │ ├── text.svg │ │ │ │ └── vertical.svg │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ │ ├── mock │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ └── index.module.less │ │ ├── login │ │ │ ├── form.tsx │ │ │ ├── index.tsx │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ └── style │ │ │ │ └── index.module.less │ │ ├── metricset │ │ │ ├── binded │ │ │ │ ├── binded │ │ │ │ │ ├── binded_project.tsx │ │ │ │ │ ├── binded_stat.tsx │ │ │ │ │ ├── constants.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── locale │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── style │ │ │ │ │ │ └── index.module.less │ │ │ │ ├── list │ │ │ │ │ ├── constants.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── locale │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── style │ │ │ │ │ │ └── index.module.less │ │ │ │ └── reverse-binded │ │ │ │ │ ├── constants.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── common │ │ │ │ ├── MetricNavModal.tsx │ │ │ │ ├── MetricSetStar.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── style │ │ │ │ │ └── index.module.less │ │ │ │ └── tree │ │ │ │ │ └── index.tsx │ │ │ ├── create │ │ │ │ ├── index.tsx │ │ │ │ └── locale │ │ │ │ │ └── index.ts │ │ │ ├── list │ │ │ │ ├── MetricSetCardBox.tsx │ │ │ │ ├── card-add.tsx │ │ │ │ ├── card-block.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── interface.ts │ │ │ │ ├── list.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── mock │ │ │ │ └── index.ts │ │ │ ├── preview │ │ │ │ ├── dataview │ │ │ │ │ ├── MetricSetDataViewMenu.tsx │ │ │ │ │ └── MetricSetDataViewPanel.tsx │ │ │ │ ├── detail.tsx │ │ │ │ ├── header.tsx │ │ │ │ ├── history.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── preview.tsx │ │ │ │ └── style │ │ │ │ │ ├── index.module.less │ │ │ │ │ └── shortcuts.module.less │ │ │ ├── structure │ │ │ │ ├── MetricRepositoryModal.tsx │ │ │ │ ├── constants.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── structure.tsx │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ └── update │ │ │ │ ├── index.tsx │ │ │ │ └── locale │ │ │ │ └── index.ts │ │ ├── order │ │ │ ├── apply │ │ │ │ ├── list │ │ │ │ │ ├── constants.tsx │ │ │ │ │ ├── form.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── locale │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── style │ │ │ │ │ │ └── index.module.less │ │ │ │ ├── mock │ │ │ │ │ └── index.ts │ │ │ │ └── modal │ │ │ │ │ └── ApplyModal.tsx │ │ │ ├── approve │ │ │ │ └── list │ │ │ │ │ ├── constants.tsx │ │ │ │ │ ├── form.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ │ ├── process_modal.tsx │ │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── common │ │ │ │ ├── constants.tsx │ │ │ │ ├── detail.tsx │ │ │ │ ├── detail_modal.tsx │ │ │ │ └── locale │ │ │ │ │ └── index.ts │ │ │ └── index.tsx │ │ ├── permission │ │ │ ├── PermissionManageModal.tsx │ │ │ ├── PermissionPanel.tsx │ │ │ ├── constants.tsx │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ └── styles │ │ │ │ └── index.module.less │ │ ├── privilege │ │ │ └── mock │ │ │ │ └── index.ts │ │ ├── profile │ │ │ └── basic │ │ │ │ ├── index.tsx │ │ │ │ ├── item.tsx │ │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ │ ├── mock │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ └── index.module.less │ │ ├── project │ │ │ ├── apply │ │ │ │ ├── index.tsx │ │ │ │ └── locale │ │ │ │ │ └── index.ts │ │ │ ├── card │ │ │ │ ├── ProjectCardBox.tsx │ │ │ │ ├── card-block.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── common │ │ │ │ ├── ProjectLabel.tsx │ │ │ │ ├── ProjectNavModal.tsx │ │ │ │ ├── ProjectStar.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── project-tree.tsx │ │ │ │ ├── projectTermQuery.tsx │ │ │ │ └── styles │ │ │ │ │ └── index.module.less │ │ │ ├── create │ │ │ │ ├── index.tsx │ │ │ │ └── locale │ │ │ │ │ └── index.ts │ │ │ ├── list │ │ │ │ ├── ProjectListPanel.tsx │ │ │ │ ├── constants.tsx │ │ │ │ ├── detail.tsx │ │ │ │ ├── form.tsx │ │ │ │ ├── icons │ │ │ │ │ ├── horizontal.svg │ │ │ │ │ ├── text.svg │ │ │ │ │ └── vertical.svg │ │ │ │ ├── index.tsx │ │ │ │ ├── list.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── manage │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── menu.tsx │ │ │ │ ├── message-list │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── item.tsx │ │ │ │ │ └── style │ │ │ │ │ │ └── index.module.less │ │ │ │ ├── mock │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── mock │ │ │ │ └── index.ts │ │ │ ├── preview │ │ │ │ ├── head.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── menu.tsx │ │ │ │ ├── preview.tsx │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ └── update │ │ │ │ ├── index.tsx │ │ │ │ └── locale │ │ │ │ └── index.ts │ │ ├── record │ │ │ ├── common.ts │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ └── records_panel.tsx │ │ ├── register │ │ │ ├── form.tsx │ │ │ ├── index.tsx │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ └── style │ │ │ │ └── index.module.less │ │ ├── result │ │ │ ├── error │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ └── success │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ └── index.module.less │ │ ├── stat │ │ │ ├── apply │ │ │ │ ├── index.tsx │ │ │ │ └── locale │ │ │ │ │ └── index.ts │ │ │ ├── common │ │ │ │ ├── StatLabel.tsx │ │ │ │ ├── lib.tsx │ │ │ │ └── locale │ │ │ │ │ └── index.tsx │ │ │ ├── create │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── stat_create.tsx │ │ │ ├── filter │ │ │ │ ├── custom_component.tsx │ │ │ │ ├── filter_set.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── style │ │ │ │ │ └── index.module.less │ │ │ │ └── system_component.tsx │ │ │ ├── limiting │ │ │ │ ├── StatLimitingModal.tsx │ │ │ │ ├── limit_records_panel.tsx │ │ │ │ └── locale │ │ │ │ │ └── index.ts │ │ │ ├── list │ │ │ │ ├── constants.tsx │ │ │ │ ├── detail.tsx │ │ │ │ ├── form.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── list.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── stat_list.tsx │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── mock │ │ │ │ └── index.ts │ │ │ ├── preview │ │ │ │ ├── basic.tsx │ │ │ │ ├── chart_panel.tsx │ │ │ │ ├── common.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── line_chart_v1.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ ├── preview.tsx │ │ │ │ ├── search_form.tsx │ │ │ │ ├── settings │ │ │ │ │ ├── StatPreviewSettingsModal.tsx │ │ │ │ │ └── locale │ │ │ │ │ │ └── index.ts │ │ │ │ ├── style │ │ │ │ │ └── index.module.less │ │ │ │ └── timeline_bar_chart.tsx │ │ │ └── update │ │ │ │ ├── index.tsx │ │ │ │ └── locale │ │ │ │ └── index.ts │ │ ├── temp │ │ │ └── index.tsx │ │ ├── track │ │ │ ├── index.tsx │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ └── style │ │ │ │ └── index.module.less │ │ ├── user │ │ │ ├── common │ │ │ │ ├── groups.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── userTermQuery.tsx │ │ │ ├── list │ │ │ │ ├── constants.tsx │ │ │ │ ├── form.tsx │ │ │ │ ├── icons │ │ │ │ │ ├── horizontal.svg │ │ │ │ │ ├── text.svg │ │ │ │ │ └── vertical.svg │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ │ └── index.ts │ │ │ │ └── style │ │ │ │ │ └── index.module.less │ │ │ ├── mock │ │ │ │ └── index.ts │ │ │ └── settings │ │ │ │ ├── basic.tsx │ │ │ │ ├── header.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── locale │ │ │ │ └── index.ts │ │ │ │ ├── mock │ │ │ │ └── index.ts │ │ │ │ ├── security.tsx │ │ │ │ └── style │ │ │ │ ├── header.module.less │ │ │ │ └── index.module.less │ │ └── view │ │ │ └── common │ │ │ ├── ViewLabel.tsx │ │ │ └── locale │ │ │ └── index.tsx │ ├── routes.ts │ ├── settings.json │ ├── store │ │ └── index.ts │ ├── style │ │ ├── global.less │ │ └── layout.module.less │ ├── types │ │ ├── alarm.ts │ │ ├── caller.ts │ │ ├── insights-common.ts │ │ ├── insights-web.ts │ │ ├── rollback.ts │ │ └── stat.ts │ ├── utils │ │ ├── aes.ts │ │ ├── authentication.ts │ │ ├── changeTheme.ts │ │ ├── checkLogin.tsx │ │ ├── clipboard.ts │ │ ├── configLoader.ts │ │ ├── constants.ts │ │ ├── date.ts │ │ ├── getUrlParams.ts │ │ ├── is.ts │ │ ├── lazyload.tsx │ │ ├── localCache.ts │ │ ├── request.ts │ │ ├── setupMock.ts │ │ ├── useLocale.ts │ │ ├── useSingleAndDoubleClick.ts │ │ ├── useStorage.ts │ │ └── util.ts │ └── vite-env.d.ts ├── tsconfig.json └── vite.config.ts ├── lighthouse-assembly ├── pom.xml └── src │ └── main │ └── resources │ ├── assembly-all.xml │ └── assembly.xml ├── lighthouse-build-configuration └── pom.xml ├── lighthouse-client ├── dependency-reduced-pom.xml ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── dtstep │ │ └── lighthouse │ │ └── client │ │ ├── AuxHandler.java │ │ ├── Consumer.java │ │ ├── DelayRunnable.java │ │ ├── LightHouse.java │ │ ├── Producer.java │ │ └── rpc │ │ ├── RPCClient.java │ │ ├── RPCClientProxy.java │ │ ├── ice │ │ ├── ICEHandler.java │ │ └── ICERPCClientImpl.java │ │ └── standalone │ │ ├── StandaloneClientImpl.java │ │ └── StandaloneHandler.java │ └── test │ ├── java │ └── com │ │ └── dtstep │ │ └── lighthouse │ │ └── client │ │ ├── cluster │ │ ├── ClientBaseTest.java │ │ ├── TestClient.java │ │ ├── TestDataQuery.java │ │ ├── TestICE.java │ │ └── TestQueryGroupInfo.java │ │ └── standalone │ │ ├── StandaloneBaseTest.java │ │ ├── TestQueryGroupInfo.java │ │ └── TestStat.java │ └── resources │ └── log4j2.xml ├── lighthouse-common ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── dtstep │ │ └── lighthouse │ │ └── common │ │ ├── aggregator │ │ ├── BlockingEventPool.java │ │ ├── EventPool.java │ │ └── SlotsGroup.java │ │ ├── annotation │ │ ├── BLengthValidation.java │ │ └── BLengthValidator.java │ │ ├── constant │ │ ├── FormulaConst.java │ │ ├── RedisConst.java │ │ ├── StatConst.java │ │ └── SysConst.java │ │ ├── counter │ │ └── CycleCounterAdvisor.java │ │ ├── entity │ │ ├── AlarmExtEntity.java │ │ ├── AlarmNotification.java │ │ ├── AlarmTemplateExtEntity.java │ │ ├── ApiResultCode.java │ │ ├── ApiResultData.java │ │ ├── FlowNode.java │ │ ├── IndicatorQuery.java │ │ ├── ListData.java │ │ ├── NotificationMessage.java │ │ ├── Owner.java │ │ ├── ResultCode.java │ │ ├── Role.java │ │ ├── ServiceResult.java │ │ ├── annotation │ │ │ ├── DBColumnAnnotation.java │ │ │ ├── DBNameAnnotation.java │ │ │ ├── TemplateAttrAnnotation.java │ │ │ └── valid │ │ │ │ ├── S_Email.java │ │ │ │ ├── S_Illegal.java │ │ │ │ ├── S_Integer.java │ │ │ │ ├── S_Length.java │ │ │ │ ├── S_NotNull.java │ │ │ │ ├── S_Numeric.java │ │ │ │ ├── S_Pattern.java │ │ │ │ └── S_Phone.java │ │ ├── authorize │ │ │ ├── LicenceEntity.java │ │ │ ├── LicenceViewEntity.java │ │ │ ├── VoucherEntity.java │ │ │ └── VoucherViewEntity.java │ │ ├── calculate │ │ │ ├── MicroBucket.java │ │ │ └── MicroCalculateEnum.java │ │ ├── event │ │ │ ├── AlarmEvent.java │ │ │ ├── DimensBucket.java │ │ │ ├── IceEvent.java │ │ │ ├── LimitBucket.java │ │ │ ├── SimpleSlotEvent.java │ │ │ └── SlotEvent.java │ │ ├── group │ │ │ ├── GroupExtEntity.java │ │ │ └── GroupVerifyEntity.java │ │ ├── list │ │ │ └── IListEntity.java │ │ ├── message │ │ │ └── LightMessage.java │ │ ├── monitor │ │ │ └── ClusterInfo.java │ │ ├── rpc │ │ │ ├── RpcMsgType.java │ │ │ ├── RpcRequest.java │ │ │ └── RpcResponse.java │ │ ├── stat │ │ │ ├── FilterParam.java │ │ │ ├── FilterParamElement.java │ │ │ ├── StatExtEntity.java │ │ │ ├── StatVariableEntity.java │ │ │ ├── StatVerifyEntity.java │ │ │ ├── TemplateEntity.java │ │ │ └── TimeParam.java │ │ ├── state │ │ │ ├── StatState.java │ │ │ └── StatUnit.java │ │ ├── tree │ │ │ ├── EChartTreeNode.java │ │ │ ├── ZTreeNode.java │ │ │ └── ZTreeViewNode.java │ │ └── view │ │ │ ├── LimitValue.java │ │ │ ├── OperatorValue.java │ │ │ ├── StatDataSeries.java │ │ │ ├── StatValue.java │ │ │ ├── StateValue.java │ │ │ └── WidgetDataObject.java │ │ ├── enums │ │ ├── AlarmChannelType.java │ │ ├── AlarmMatchEnum.java │ │ ├── AlarmStateEnum.java │ │ ├── ApproveStateEnum.java │ │ ├── AuthRoleTypeEnum.java │ │ ├── CalculateMethod.java │ │ ├── CallerStateEnum.java │ │ ├── ChartTypeEnum.java │ │ ├── ColumnTypeEnum.java │ │ ├── Component.java │ │ ├── ComponentTypeEnum.java │ │ ├── DocumentTypeEnum.java │ │ ├── GroupStateEnum.java │ │ ├── LanguageEnum.java │ │ ├── LimitTypeEnum.java │ │ ├── LimitingStrategyEnum.java │ │ ├── MetaTableStateEnum.java │ │ ├── MetaTableTypeEnum.java │ │ ├── NotificationStateEnum.java │ │ ├── NotificationTypeEnum.java │ │ ├── NumberCompareType.java │ │ ├── OrderStateEnum.java │ │ ├── OrderTypeEnum.java │ │ ├── OwnerTypeEnum.java │ │ ├── PrivateTypeEnum.java │ │ ├── RecordTypeEnum.java │ │ ├── RelationTypeEnum.java │ │ ├── ResourceTypeEnum.java │ │ ├── RoleTypeEnum.java │ │ ├── RollbackStateEnum.java │ │ ├── RollbackTypeEnum.java │ │ ├── RunningMode.java │ │ ├── StatStateEnum.java │ │ ├── SwitchStateEnum.java │ │ ├── UserStateEnum.java │ │ ├── ViewStateEnum.java │ │ ├── authorize │ │ │ └── AuthorizeStateEnum.java │ │ ├── formula │ │ │ └── CharTypeEnum.java │ │ ├── function │ │ │ ├── EmbedFunctionEnum.java │ │ │ └── FunctionEnum.java │ │ ├── fusing │ │ │ └── FusingRules.java │ │ ├── limiting │ │ │ └── LimitingRelationTypeEnum.java │ │ ├── relations │ │ │ └── RelationTypeEnum.java │ │ ├── result │ │ │ ├── MessageCaptchaEnum.java │ │ │ └── RequestCodeEnum.java │ │ ├── variable │ │ │ └── EmbedVariableEnum.java │ │ └── volume │ │ │ └── DataVolumeEnums.java │ │ ├── exception │ │ ├── AbnormalStateException.java │ │ ├── Attempt.java │ │ ├── AuthorizeException.java │ │ ├── BlockException.java │ │ ├── CheckedFunction.java │ │ ├── ComponentsCheckException.java │ │ ├── ConfigParseException.java │ │ ├── FormulaCalculateException.java │ │ ├── FunctionFormatException.java │ │ ├── InitializationException.java │ │ ├── KeyVerificationFailedException.java │ │ ├── LDPUncaughtExceptionHandler.java │ │ ├── LightSendException.java │ │ ├── LightTimeOutException.java │ │ ├── LightViewIllegalException.java │ │ ├── LimitingException.java │ │ ├── LoginException.java │ │ ├── PermissionException.java │ │ ├── ProcessException.java │ │ ├── RoleDefendException.java │ │ ├── StateValidException.java │ │ ├── StatisticNotFoundException.java │ │ ├── SystemException.java │ │ ├── TableNotExistException.java │ │ ├── TemplateParseException.java │ │ └── TokenNotExistException.java │ │ ├── fusing │ │ ├── FusingSwitch.java │ │ └── FusingToken.java │ │ ├── hash │ │ ├── CityHash.java │ │ ├── HashUtil.java │ │ └── MurmurHash.java │ │ ├── ice │ │ ├── LightRpcException.java │ │ ├── LongListHelper.java │ │ ├── RemoteLightServer.java │ │ ├── RemoteLightServerPrx.java │ │ ├── StringListHelper.java │ │ ├── _Marker.java │ │ └── _RemoteLightServerPrxI.java │ │ ├── lru │ │ ├── Cache.java │ │ ├── LRU.java │ │ └── impl │ │ │ └── LDPCache.java │ │ ├── modal │ │ ├── Alarm.java │ │ ├── AlarmChannel.java │ │ ├── AlarmCondition.java │ │ ├── AlarmQueryParam.java │ │ ├── AlarmSettings.java │ │ ├── AlarmTemplate.java │ │ ├── AliyunAlarmChannel.java │ │ ├── AuthApplyParam.java │ │ ├── AuthRecord.java │ │ ├── Caller.java │ │ ├── CallerQueryParam.java │ │ ├── Column.java │ │ ├── CommonTreeNode.java │ │ ├── Component.java │ │ ├── CustomAlarmChannel.java │ │ ├── DBStatistics.java │ │ ├── DebugParam.java │ │ ├── Department.java │ │ ├── Document.java │ │ ├── Domain.java │ │ ├── FlatTreeNode.java │ │ ├── Group.java │ │ ├── GroupExtendConfig.java │ │ ├── IDParam.java │ │ ├── IDParams.java │ │ ├── Indicator.java │ │ ├── KV.java │ │ ├── LimitDataObject.java │ │ ├── LimitedRecord.java │ │ ├── LimitingParam.java │ │ ├── ListSearchObject.java │ │ ├── MetaTable.java │ │ ├── MetricBindElement.java │ │ ├── MetricSet.java │ │ ├── Notification.java │ │ ├── Order.java │ │ ├── OrderDetail.java │ │ ├── Pagination.java │ │ ├── Permission.java │ │ ├── PermissionEnum.java │ │ ├── Project.java │ │ ├── Record.java │ │ ├── Relation.java │ │ ├── RenderChartConfig.java │ │ ├── RenderConfig.java │ │ ├── RenderDateConfig.java │ │ ├── RenderFilterConfig.java │ │ ├── ResourceDto.java │ │ ├── Role.java │ │ ├── RolePair.java │ │ ├── RollbackModal.java │ │ ├── Stat.java │ │ ├── StatDataObject.java │ │ ├── SystemEnv.java │ │ ├── TreeNode.java │ │ ├── User.java │ │ ├── UserView.java │ │ ├── View.java │ │ └── ViewQueryParam.java │ │ ├── queue │ │ └── BoundedPriorityBlockingQueue.java │ │ ├── random │ │ ├── RandomID.java │ │ └── SnowFlake.java │ │ ├── rpc │ │ ├── BasicRemoteLightServerPrx.java │ │ └── netty │ │ │ ├── CustomIdleServerHandler.java │ │ │ ├── NettyClientAdapter.java │ │ │ ├── NettyClientHandler.java │ │ │ ├── ProcessedFuture.java │ │ │ ├── RemoteProxy.java │ │ │ ├── RpcDecoder.java │ │ │ └── RpcEncoder.java │ │ ├── sbr │ │ └── StringBuilderHolder.java │ │ ├── schedule │ │ ├── DelaySchedule.java │ │ └── ScheduledThreadPoolBuilder.java │ │ ├── serializer │ │ ├── JDKSerializer.java │ │ ├── KryoSerializer.java │ │ ├── Serializer.java │ │ └── SerializerProxy.java │ │ └── util │ │ ├── AesUtil.java │ │ ├── Base64.java │ │ ├── BeanCopyUtil.java │ │ ├── BinaryUtil.java │ │ ├── BitSetUtil.java │ │ ├── CalculateUtil.java │ │ ├── CopierUtil.java │ │ ├── DateUtil.java │ │ ├── Encode64.java │ │ ├── EncryptUtil.java │ │ ├── FileUtil.java │ │ ├── HttpUtil.java │ │ ├── IpUtils.java │ │ ├── JsonUtil.java │ │ ├── ListUtil.java │ │ ├── Md5Util.java │ │ ├── MessageHelper.java │ │ ├── NumberUtil.java │ │ ├── OkHttpUtil.java │ │ ├── PropertiesUtil.java │ │ ├── ReflectUtil.java │ │ ├── SnappyUtil.java │ │ ├── StopWatch.java │ │ ├── StringUtil.java │ │ ├── SystemUtil.java │ │ ├── TreeViewUtil.java │ │ └── ZipUtil.java │ ├── resources │ └── log4j2.xml │ └── test │ └── com │ └── dtstep │ └── lighthouse │ └── common │ ├── base │ └── BaseTest.java │ ├── fusing │ └── FusingTest.java │ ├── key │ ├── KeyGeneratorTest.java │ └── RandomIDTest.java │ ├── lru │ └── LRUCacheTest.java │ ├── protobuf │ └── ProtobufTest.java │ ├── sbr │ └── StringBuilderHolderTest.java │ ├── schedule │ └── ScheduleTest.java │ └── util │ ├── BinaryUtilTest.java │ ├── CityHashTest.java │ ├── CopyUtil.java │ ├── DateUtilTest.java │ ├── EncryptUtilTest.java │ ├── HttpClientUtil.java │ ├── HttpUtilTest.java │ ├── JsonUtilTest.java │ ├── LangUtilTest.java │ ├── LockTest.java │ ├── Md5UtilTest.java │ ├── MessageHelperTest.java │ ├── NumberUtilTest.java │ ├── OKhttpTest.java │ ├── RandomUtilTest.java │ ├── SnappyUtilTest.java │ ├── StringTest.java │ ├── StringUtilTest.java │ └── ZipUtilTest.java ├── lighthouse-core ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ ├── dtstep │ │ │ └── lighthouse │ │ │ │ └── core │ │ │ │ ├── batch │ │ │ │ ├── BatchAdapter.java │ │ │ │ ├── BatchInterface.java │ │ │ │ ├── IntervalBatchHandler.java │ │ │ │ └── quartz │ │ │ │ │ ├── CronSequenceGenerator.java │ │ │ │ │ ├── Nullable.java │ │ │ │ │ └── StringUtils.java │ │ │ │ ├── builtin │ │ │ │ ├── BuiltinLoader.java │ │ │ │ ├── CallerStat.java │ │ │ │ └── builtin-stats.xml │ │ │ │ ├── callback │ │ │ │ ├── CacheValue.java │ │ │ │ ├── CaffeineExpiry.java │ │ │ │ ├── CallBack.java │ │ │ │ └── CallBackMain.java │ │ │ │ ├── config │ │ │ │ └── LDPConfig.java │ │ │ │ ├── consumer │ │ │ │ ├── AggregateEvent.java │ │ │ │ ├── ExpandedConsumer.java │ │ │ │ ├── ExpandedEventRunnable.java │ │ │ │ └── RealTimeProcessor.java │ │ │ │ ├── dao │ │ │ │ ├── DBConnectionSource.java │ │ │ │ └── RDBMSConfiguration.java │ │ │ │ ├── distinct │ │ │ │ └── RedisRoaringFilter.java │ │ │ │ ├── expression │ │ │ │ ├── embed │ │ │ │ │ ├── AviatorHandler.java │ │ │ │ │ ├── EmbedFunction.java │ │ │ │ │ └── aviator │ │ │ │ │ │ ├── ContainsFunction.java │ │ │ │ │ │ ├── DateFormatFunction.java │ │ │ │ │ │ ├── DateParseFunction.java │ │ │ │ │ │ ├── DaySubFunction.java │ │ │ │ │ │ ├── EndsWithFunction.java │ │ │ │ │ │ ├── HashCodeFunction.java │ │ │ │ │ │ ├── HourSubFunction.java │ │ │ │ │ │ ├── IsEmptyFunction.java │ │ │ │ │ │ ├── IsInFunction.java │ │ │ │ │ │ ├── IsNullFunction.java │ │ │ │ │ │ ├── IsNumericFunction.java │ │ │ │ │ │ ├── LeftFunction.java │ │ │ │ │ │ ├── LenFunction.java │ │ │ │ │ │ ├── LowerFunction.java │ │ │ │ │ │ ├── MD5Function.java │ │ │ │ │ │ ├── MinuteSubFunction.java │ │ │ │ │ │ ├── ReplaceFunction.java │ │ │ │ │ │ ├── ReverseFunction.java │ │ │ │ │ │ ├── RightFunction.java │ │ │ │ │ │ ├── SectionFunction.java │ │ │ │ │ │ ├── SplitFunction.java │ │ │ │ │ │ ├── StartWithFunction.java │ │ │ │ │ │ ├── SubStrFunction.java │ │ │ │ │ │ ├── TrimFunction.java │ │ │ │ │ │ └── UpperFunction.java │ │ │ │ └── variable │ │ │ │ │ └── EmbedVariable.java │ │ │ │ ├── formula │ │ │ │ ├── FormulaCalculate.java │ │ │ │ ├── FormulaTranslate.java │ │ │ │ ├── ImitateCompile.java │ │ │ │ ├── TemplateUtil.java │ │ │ │ └── VariableEvaluate.java │ │ │ │ ├── functions │ │ │ │ ├── BitCountStatProcess.java │ │ │ │ ├── CountStatProcess.java │ │ │ │ ├── DimensStatProcess.java │ │ │ │ ├── DimensStorageThread.java │ │ │ │ ├── LimitStatProcess.java │ │ │ │ ├── LimitStorageThread.java │ │ │ │ ├── MaxStatProcess.java │ │ │ │ ├── MinStatProcess.java │ │ │ │ ├── Process.java │ │ │ │ ├── ResultStorageThread.java │ │ │ │ ├── SeqStatProcess.java │ │ │ │ ├── StatProcess.java │ │ │ │ └── SumStatProcess.java │ │ │ │ ├── http │ │ │ │ ├── HttpProcessor.java │ │ │ │ ├── HttpServiceHandler.java │ │ │ │ └── LightHouseHttpService.java │ │ │ │ ├── ipc │ │ │ │ ├── DisruptorEventHandler.java │ │ │ │ ├── DisruptorEventProducer.java │ │ │ │ ├── RPCServer.java │ │ │ │ └── impl │ │ │ │ │ └── RPCServerImpl.java │ │ │ │ ├── kafka │ │ │ │ ├── KafkaProducerFactory.java │ │ │ │ └── KafkaProducerPool.java │ │ │ │ ├── limiting │ │ │ │ ├── LimitingContext.java │ │ │ │ ├── RedisLimitingAspect.java │ │ │ │ ├── device │ │ │ │ │ ├── CountingDevice.java │ │ │ │ │ └── impl │ │ │ │ │ │ └── DefaultLimitingCountingDevice.java │ │ │ │ ├── strategy │ │ │ │ │ ├── AbstractStrategy.java │ │ │ │ │ ├── Strategy.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── GroupMsgStrategyService.java │ │ │ │ │ │ └── StatResultStrategyService.java │ │ │ │ └── trigger │ │ │ │ │ ├── Trigger.java │ │ │ │ │ └── impl │ │ │ │ │ ├── GroupLimitingTrigger.java │ │ │ │ │ └── StatLimitingTrigger.java │ │ │ │ ├── lock │ │ │ │ └── RedissonLock.java │ │ │ │ ├── message │ │ │ │ └── RetrenchMessage.java │ │ │ │ ├── plugins │ │ │ │ ├── NotificationPlugin.java │ │ │ │ ├── Plugin.java │ │ │ │ ├── PluginManager.java │ │ │ │ └── StatAlarmPlugin.java │ │ │ │ ├── preparing │ │ │ │ ├── handler │ │ │ │ │ ├── expand │ │ │ │ │ │ ├── DefaultExpandHandler.java │ │ │ │ │ │ ├── ExpandEvent.java │ │ │ │ │ │ └── ExpandHandler.java │ │ │ │ │ ├── translate │ │ │ │ │ │ ├── DefaultTranslateHandler.java │ │ │ │ │ │ └── TranslateHandler.java │ │ │ │ │ └── valid │ │ │ │ │ │ ├── DefaultValidHandler.java │ │ │ │ │ │ ├── MessageValid.java │ │ │ │ │ │ └── ValidHandler.java │ │ │ │ └── pipe │ │ │ │ │ ├── Pipeline.java │ │ │ │ │ ├── PipelineBuilder.java │ │ │ │ │ ├── PreparingCollector.java │ │ │ │ │ ├── PreparingInput.java │ │ │ │ │ └── stage │ │ │ │ │ ├── ExpandStageImpl.java │ │ │ │ │ ├── PreparingStage.java │ │ │ │ │ ├── TranslateStageImpl.java │ │ │ │ │ └── ValidStageImpl.java │ │ │ │ ├── redis │ │ │ │ ├── RedisClient.java │ │ │ │ ├── RedisOperator.java │ │ │ │ ├── cluster │ │ │ │ │ └── RedisClusterOperator.java │ │ │ │ └── standalone │ │ │ │ │ └── RedisStandaloneOperator.java │ │ │ │ ├── roaring │ │ │ │ ├── BitSetFilterSupplier.java │ │ │ │ └── service │ │ │ │ │ ├── RoaringBitMapEmbed.java │ │ │ │ │ └── RoaringBitMapExtend.java │ │ │ │ ├── rowkey │ │ │ │ ├── KeyGenerator.java │ │ │ │ └── impl │ │ │ │ │ └── DefaultKeyGenerator.java │ │ │ │ ├── sort │ │ │ │ └── SortOperator.java │ │ │ │ ├── sql │ │ │ │ └── SqlBinder.java │ │ │ │ ├── storage │ │ │ │ ├── cmdb │ │ │ │ │ ├── CMDBStorageEngine.java │ │ │ │ │ ├── CMDBStorageEngineProxy.java │ │ │ │ │ └── mysql │ │ │ │ │ │ └── MySQLCMDBStorageEngine.java │ │ │ │ ├── common │ │ │ │ │ ├── CompareOperator.java │ │ │ │ │ ├── IndicatorGet.java │ │ │ │ │ ├── LdpGet.java │ │ │ │ │ ├── LdpIncrement.java │ │ │ │ │ ├── LdpPut.java │ │ │ │ │ └── LdpResult.java │ │ │ │ ├── dimens │ │ │ │ │ ├── DimensStorageHandler.java │ │ │ │ │ ├── DimensStorageSelector.java │ │ │ │ │ └── impl │ │ │ │ │ │ └── DefaultDimensStorageHandler.java │ │ │ │ ├── limit │ │ │ │ │ ├── LimitStorageEngine.java │ │ │ │ │ ├── LimitStorageSelector.java │ │ │ │ │ └── impl │ │ │ │ │ │ └── RedisLimitStorageEngine.java │ │ │ │ ├── result │ │ │ │ │ ├── ResultStorageHandler.java │ │ │ │ │ ├── ResultStorageSelector.java │ │ │ │ │ └── impl │ │ │ │ │ │ └── DefaultResultStorageHandler.java │ │ │ │ └── warehouse │ │ │ │ │ ├── WarehouseStorageEngine.java │ │ │ │ │ ├── WarehouseStorageEngineProxy.java │ │ │ │ │ ├── hbase │ │ │ │ │ └── HBaseWarehouseStorageEngine.java │ │ │ │ │ └── mysql │ │ │ │ │ └── MySQLWarehouseStorageEngine.java │ │ │ │ ├── tasks │ │ │ │ ├── EventSender.java │ │ │ │ ├── EventSenderFactory.java │ │ │ │ ├── kafka │ │ │ │ │ └── KafkaEventSender.java │ │ │ │ └── standalone │ │ │ │ │ └── StandaloneEventSender.java │ │ │ │ ├── template │ │ │ │ ├── ImitateCompile.java │ │ │ │ ├── IterativeParsePattern.java │ │ │ │ ├── Parser.java │ │ │ │ ├── TemplateContext.java │ │ │ │ └── TemplateParser.java │ │ │ │ ├── tools │ │ │ │ ├── CMDBUtil.java │ │ │ │ ├── HBaseTableRegionMerge.java │ │ │ │ └── ObjectSize.java │ │ │ │ └── wrapper │ │ │ │ ├── AlarmDBWrapper.java │ │ │ │ ├── CallerDBWrapper.java │ │ │ │ ├── DimensDBWrapper.java │ │ │ │ ├── GroupDBWrapper.java │ │ │ │ ├── LimitingWrapper.java │ │ │ │ ├── MetaTableWrapper.java │ │ │ │ ├── NotificationDBWrapper.java │ │ │ │ ├── PermissionDBWrapper.java │ │ │ │ ├── RoleDBWrapper.java │ │ │ │ ├── StatDBWrapper.java │ │ │ │ └── UserDBWrapper.java │ │ │ └── google │ │ │ └── common │ │ │ └── hash_snp │ │ │ ├── AbstractByteHasher.java │ │ │ ├── AbstractCompositeHashFunction.java │ │ │ ├── AbstractHasher.java │ │ │ ├── AbstractNonStreamingHashFunction.java │ │ │ ├── AbstractStreamingHashFunction.java │ │ │ ├── BloomFilter.java │ │ │ ├── BloomFilterStrategies.java │ │ │ ├── ChecksumHashFunction.java │ │ │ ├── Funnel.java │ │ │ ├── Funnels.java │ │ │ ├── HashCode.java │ │ │ ├── HashFunction.java │ │ │ ├── Hasher.java │ │ │ ├── Hashing.java │ │ │ ├── HashingInputStream.java │ │ │ ├── HashingOutputStream.java │ │ │ ├── MessageDigestHashFunction.java │ │ │ ├── Murmur3_128HashFunction.java │ │ │ ├── Murmur3_32HashFunction.java │ │ │ ├── PrimitiveSink.java │ │ │ ├── SipHashFunction.java │ │ │ └── package-info.java │ └── resources │ │ └── log4j2.xml │ └── test │ ├── java │ └── com │ │ └── dtstep │ │ └── lighthouse │ │ └── core │ │ └── test │ │ ├── CoreBaseTest.java │ │ ├── api │ │ ├── HttpDataQueryTest.java │ │ ├── HttpStatTest.java │ │ ├── RpcDataQueryTest.java │ │ └── RpcStatTest.java │ │ ├── builtin │ │ └── BuiltinLoaderTest.java │ │ ├── config │ │ └── TestLDPConfig.java │ │ ├── dimens │ │ └── ArrangementTest.java │ │ ├── engine │ │ ├── HBaseStorageEngineTest.java │ │ ├── dimens │ │ │ └── DimensStorageHandlerTest.java │ │ └── warehouse │ │ │ └── MySQLWarehouseEngineTest.java │ │ ├── formula │ │ └── TestFormula.java │ │ ├── hbase │ │ ├── TestHbaseAdmin.java │ │ └── TestPrePartition.java │ │ ├── http │ │ └── HttpProcessorTest.java │ │ ├── limit │ │ └── LimitTest.java │ │ ├── limiting │ │ └── LimitingTest.java │ │ ├── preparing │ │ └── TestPipeline.java │ │ ├── redis │ │ └── RedisHandlerTest.java │ │ ├── redisson │ │ └── RedissonTest.java │ │ ├── result │ │ └── ResultStorageHandler.java │ │ ├── rowkey │ │ └── KeyGeneratorTest.java │ │ ├── stat │ │ ├── HelloWorld.java │ │ └── TestClient.java │ │ ├── template │ │ └── TestTemplate.java │ │ ├── track │ │ └── TrackTest.java │ │ ├── utils │ │ ├── CMDBUtilTest.java │ │ ├── JolUtilTest.java │ │ └── PatternUtil.java │ │ └── wrapper │ │ ├── AlarmDBWrapperTest.java │ │ ├── CallerDBWrapperTest.java │ │ ├── GroupDBWrapperTest.java │ │ ├── NotificationDBWrapperTest.java │ │ ├── PermissionDBWrapperTest.java │ │ ├── RoleDBWrapperTest.java │ │ ├── StatDBWrapperTest.java │ │ └── UserDBWrapperTest.java │ └── resources │ └── log4j2.xml ├── lighthouse-ice ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── dtstep │ │ │ └── lighthouse │ │ │ └── ice │ │ │ └── servant │ │ │ └── rpc │ │ │ └── ice │ │ │ ├── ICELightHouseService.java │ │ │ └── ICERemoteLightServerImpl.java │ └── resources │ │ ├── assembly.xml │ │ └── lighthouse.ice │ └── test │ └── java │ └── com │ └── dtstep │ └── lighthouse │ └── ice │ └── test │ └── servant │ └── rpc │ └── http │ ├── CoreBaseTest.java │ ├── TestHttpService.java │ └── TestStartHttpService.java ├── lighthouse-insights ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── dtstep │ │ │ └── lighthouse │ │ │ └── insights │ │ │ ├── LightHouseInsightsApplication.java │ │ │ ├── aspect │ │ │ └── RecordAspect.java │ │ │ ├── config │ │ │ ├── AuthenticationTokenFilter.java │ │ │ ├── CaffeineCacheConfig.java │ │ │ ├── CallerKeyAuthenticationToken.java │ │ │ ├── CorsConfig.java │ │ │ ├── DefaultAccessDeniedHandler.java │ │ │ ├── DefaultAuthenticationProvider.java │ │ │ ├── DefaultUnauthorizedHandler.java │ │ │ ├── LocalDateTimeSerdeConfig.java │ │ │ ├── MyBatisConfig.java │ │ │ ├── PermissionInterceptor.java │ │ │ ├── RepeatableRequestWrapper.java │ │ │ ├── RepeatableResponseWrapper.java │ │ │ ├── SecurityConfig.java │ │ │ ├── SeedAuthenticationToken.java │ │ │ └── WebConfig.java │ │ │ ├── controller │ │ │ ├── ApplyController.java │ │ │ ├── ApproveController.java │ │ │ ├── CallerController.java │ │ │ ├── ComponentController.java │ │ │ ├── DataController.java │ │ │ ├── DefaultExceptionHandler.java │ │ │ ├── DepartmentController.java │ │ │ ├── GroupController.java │ │ │ ├── HomePageController.java │ │ │ ├── LoginController.java │ │ │ ├── MetricSetController.java │ │ │ ├── OrderController.java │ │ │ ├── PermissionController.java │ │ │ ├── ProjectController.java │ │ │ ├── RecordsController.java │ │ │ ├── StatController.java │ │ │ ├── TrackController.java │ │ │ ├── UserController.java │ │ │ └── annotation │ │ │ │ ├── AllowCallerAccess.java │ │ │ │ ├── AuthPermission.java │ │ │ │ ├── AuthPermissions.java │ │ │ │ ├── AuthResourcePermission.java │ │ │ │ └── RecordAnnotation.java │ │ │ ├── dao │ │ │ ├── AlarmDao.java │ │ │ ├── AlarmTemplateDao.java │ │ │ ├── CallerDao.java │ │ │ ├── ComponentDao.java │ │ │ ├── DepartmentDao.java │ │ │ ├── DomainDao.java │ │ │ ├── GroupDao.java │ │ │ ├── MetaTableDao.java │ │ │ ├── MetricSetDao.java │ │ │ ├── NotificationDao.java │ │ │ ├── OrderDao.java │ │ │ ├── OrderDetailDao.java │ │ │ ├── PermissionDao.java │ │ │ ├── ProjectDao.java │ │ │ ├── RecordDao.java │ │ │ ├── RelationDao.java │ │ │ ├── RoleDao.java │ │ │ ├── RollbackDao.java │ │ │ ├── StatDao.java │ │ │ ├── SystemEnvDao.java │ │ │ ├── UserDao.java │ │ │ └── ViewDao.java │ │ │ ├── dto │ │ │ ├── ActivationParam.java │ │ │ ├── AlarmTemplateCreateParam.java │ │ │ ├── AlarmTemplateUpdateParam.java │ │ │ ├── AlarmTestingParam.java │ │ │ ├── ApplyOrderQueryParam.java │ │ │ ├── ApproveOrderQueryParam.java │ │ │ ├── CallerCreateParam.java │ │ │ ├── CallerUpdateParam.java │ │ │ ├── ChangeCallerStateParam.java │ │ │ ├── ChangePasswordParam.java │ │ │ ├── ChangeStatStateParam.java │ │ │ ├── ChangeUserStateParam.java │ │ │ ├── CommonlyFilterConfigParam.java │ │ │ ├── CommonlyFilterRemoveParam.java │ │ │ ├── ComponentCreateParam.java │ │ │ ├── ComponentQueryParam.java │ │ │ ├── ComponentUpdateParam.java │ │ │ ├── ComponentVerifyParam.java │ │ │ ├── DataStatQueryParam.java │ │ │ ├── DeleteParam.java │ │ │ ├── DimensValueDeleteParam.java │ │ │ ├── FilterQueryParam.java │ │ │ ├── GroupCreateParam.java │ │ │ ├── GroupDimensQueryParam.java │ │ │ ├── GroupQueryParam.java │ │ │ ├── GroupUpdateLimitingParam.java │ │ │ ├── GroupUpdateParam.java │ │ │ ├── LimitStatQueryParam.java │ │ │ ├── LoginParam.java │ │ │ ├── MetaTableQueryParam.java │ │ │ ├── MetricBindParam.java │ │ │ ├── MetricBindQueryParam.java │ │ │ ├── MetricBindRemoveParam.java │ │ │ ├── MetricPendQueryParam.java │ │ │ ├── MetricSetCreateParam.java │ │ │ ├── MetricSetQueryParam.java │ │ │ ├── MetricSetUpdateParam.java │ │ │ ├── MetricUpdateStructureParam.java │ │ │ ├── NotificationQueryParam.java │ │ │ ├── OrderCreateParam.java │ │ │ ├── OrderProcessParam.java │ │ │ ├── PermissionGrantParam.java │ │ │ ├── PermissionListQueryParam.java │ │ │ ├── PermissionQueryParam.java │ │ │ ├── PermissionReleaseParam.java │ │ │ ├── ProjectCreateParam.java │ │ │ ├── ProjectQueryParam.java │ │ │ ├── QueryParam.java │ │ │ ├── RecordQueryParam.java │ │ │ ├── RelationDeleteParam.java │ │ │ ├── RelationQueryParam.java │ │ │ ├── RollbackCreateParam.java │ │ │ ├── RollbackQueryParam.java │ │ │ ├── StatFilterConfigParam.java │ │ │ ├── StatQueryParam.java │ │ │ ├── StatRenderConfigParam.java │ │ │ ├── TextParam.java │ │ │ ├── TrackParam.java │ │ │ ├── UserCreateParam.java │ │ │ ├── UserQueryParam.java │ │ │ ├── UserUpdateParam.java │ │ │ ├── ViewCreateParam.java │ │ │ ├── ViewInfoQueryParam.java │ │ │ └── ViewPublishParam.java │ │ │ ├── exception │ │ │ └── UserNotExistException.java │ │ │ ├── init │ │ │ └── InitialListener.java │ │ │ ├── service │ │ │ ├── BaseService.java │ │ │ ├── CallerService.java │ │ │ ├── ComponentService.java │ │ │ ├── DataService.java │ │ │ ├── DepartmentService.java │ │ │ ├── DomainService.java │ │ │ ├── FilterService.java │ │ │ ├── GroupService.java │ │ │ ├── HomePageService.java │ │ │ ├── InitService.java │ │ │ ├── MetaTableService.java │ │ │ ├── MetricSetService.java │ │ │ ├── OrderDetailService.java │ │ │ ├── OrderService.java │ │ │ ├── PermissionService.java │ │ │ ├── ProjectService.java │ │ │ ├── RecordService.java │ │ │ ├── RelationService.java │ │ │ ├── ResourceService.java │ │ │ ├── RoleService.java │ │ │ ├── RollbackService.java │ │ │ ├── StatService.java │ │ │ ├── SystemEnvService.java │ │ │ ├── UserService.java │ │ │ ├── ViewService.java │ │ │ └── impl │ │ │ │ ├── AuthUserDetails.java │ │ │ │ ├── BaseServiceImpl.java │ │ │ │ ├── CallerServiceImpl.java │ │ │ │ ├── ComponentServiceImpl.java │ │ │ │ ├── DataServiceImpl.java │ │ │ │ ├── DepartmentServiceImpl.java │ │ │ │ ├── DomainServiceImpl.java │ │ │ │ ├── FilterServiceImpl.java │ │ │ │ ├── GroupServiceImpl.java │ │ │ │ ├── HomePageServiceImpl.java │ │ │ │ ├── InitServiceImpl.java │ │ │ │ ├── MetaTableServiceImpl.java │ │ │ │ ├── MetricSetServiceImpl.java │ │ │ │ ├── OrderDetailServiceImpl.java │ │ │ │ ├── OrderServiceImpl.java │ │ │ │ ├── PermissionServiceImpl.java │ │ │ │ ├── ProjectServiceImpl.java │ │ │ │ ├── RecordServiceImpl.java │ │ │ │ ├── RelationServiceImpl.java │ │ │ │ ├── ResourceServiceImpl.java │ │ │ │ ├── RoleServiceImpl.java │ │ │ │ ├── RollbackServiceImpl.java │ │ │ │ ├── StatServiceImpl.java │ │ │ │ ├── SystemEnvServiceImpl.java │ │ │ │ ├── UserDetailsServiceImpl.java │ │ │ │ ├── UserServiceImpl.java │ │ │ │ └── ViewServiceImpl.java │ │ │ ├── types │ │ │ ├── AlarmMatchEnumTypeHandler.java │ │ │ ├── AlarmStateEnumTypeHandler.java │ │ │ ├── ApproveStateEnumTypeHandler.java │ │ │ ├── BaseObjectTypeHandler.java │ │ │ ├── BooleanTypeHandler.java │ │ │ ├── CallerStateEnumTypeHandler.java │ │ │ ├── ComponentTypeEnumTypeHandler.java │ │ │ ├── DebugParamTypeHandler.java │ │ │ ├── GroupColumnArrayTypeHandler.java │ │ │ ├── GroupExtendConfigTypeHandler.java │ │ │ ├── GroupStateEnumTypeHandler.java │ │ │ ├── LimitingParamTypeHandler.java │ │ │ ├── ListConfigTypeHandler.java │ │ │ ├── ListIntegerTypeHandler.java │ │ │ ├── ListTreeNodeTypeHandler.java │ │ │ ├── MapConfigTypeHandler.java │ │ │ ├── MetaTableStateEnumTypeHandler.java │ │ │ ├── MetaTableTypeEnumTypeHandler.java │ │ │ ├── NotificationStateTypeHandler.java │ │ │ ├── NotificationTypeHandler.java │ │ │ ├── OrderStateEnumTypeHandler.java │ │ │ ├── OrderTypeEnumTypeHandler.java │ │ │ ├── OwnerTypeEnumTypeHandler.java │ │ │ ├── PrivateTypeEnumTypeHandler.java │ │ │ ├── RecordTypeEnumTypeHandler.java │ │ │ ├── RelationTypeEnumTypeHandler.java │ │ │ ├── RenderConfigTypeHandler.java │ │ │ ├── ResourceTypeEnumTypeHandler.java │ │ │ ├── RoleTypeEnumTypeHandler.java │ │ │ ├── RollbackStateEnumTypeHandler.java │ │ │ ├── RollbackTypeEnumTypeHandler.java │ │ │ ├── StatStateEnumTypeHandler.java │ │ │ ├── SwitchStateEnumTypeHandler.java │ │ │ ├── TreeNodeTypeHandler.java │ │ │ ├── UserStateEnumTypeHandler.java │ │ │ └── ViewStateEnumTypeHandler.java │ │ │ ├── util │ │ │ ├── SpringUtil.java │ │ │ └── TreeUtil.java │ │ │ └── vo │ │ │ ├── AlarmTemplateVO.java │ │ │ ├── AlarmVO.java │ │ │ ├── CallerVO.java │ │ │ ├── ComponentVO.java │ │ │ ├── DebugModeSwitchVO.java │ │ │ ├── ExportVO.java │ │ │ ├── GroupVO.java │ │ │ ├── HomeVO.java │ │ │ ├── MetricSetVO.java │ │ │ ├── NotificationVO.java │ │ │ ├── OrderDetailVO.java │ │ │ ├── OrderVO.java │ │ │ ├── PermissionVO.java │ │ │ ├── ProjectVO.java │ │ │ ├── RelationVO.java │ │ │ ├── ResourceVO.java │ │ │ ├── ResultData.java │ │ │ ├── StatExtendVO.java │ │ │ ├── StatVO.java │ │ │ ├── TrackMessageVO.java │ │ │ ├── UserVO.java │ │ │ ├── VersionVO.java │ │ │ └── ViewVO.java │ └── resources │ │ ├── Dump20231220.sql │ │ ├── i18n │ │ ├── messages.properties │ │ ├── messages_en_US.properties │ │ └── messages_zh_CN.properties │ │ ├── light-insights │ │ └── .husky │ │ │ └── pre-commit │ │ ├── lighthouse-insights.yml │ │ ├── log4j2.xml │ │ ├── mybatis-config.xml │ │ └── mybatis │ │ └── mapper │ │ ├── AlarmMapper.xml │ │ ├── AlarmTemplateMapper.xml │ │ ├── CallerMapper.xml │ │ ├── ComponentMapper.xml │ │ ├── DepartmentMapper.xml │ │ ├── DomainMapper.xml │ │ ├── GroupMapper.xml │ │ ├── MetaTableMapper.xml │ │ ├── MetricSetMapper.xml │ │ ├── NotificationMapper.xml │ │ ├── OrderDetailMapper.xml │ │ ├── OrderMapper.xml │ │ ├── PermissionMapper.xml │ │ ├── ProjectMapper.xml │ │ ├── RecordMapper.xml │ │ ├── RelationMapper.xml │ │ ├── RoleMapper.xml │ │ ├── RollbackMapper.xml │ │ ├── StatMapper.xml │ │ ├── SystemEnvMapper.xml │ │ ├── UserMapper.xml │ │ └── ViewMapper.xml │ └── test │ └── java │ └── com │ └── dtstep │ └── lighthouse │ └── insights │ └── test │ ├── components │ └── ComponentUtil.java │ ├── dao │ ├── TestAlarmDao.java │ ├── TestAlarmTemplateDao.java │ ├── TestDepartmentDao.java │ ├── TestGroupDao.java │ ├── TestNotificationDao.java │ ├── TestOrderDao.java │ ├── TestOrderDetail.java │ ├── TestOrderDetailDao.java │ ├── TestPermissionInfoDao.java │ ├── TestProjectDao.java │ ├── TestRecordDao.java │ ├── TestRelationDao.java │ ├── TestRoleDao.java │ ├── TestStatDao.java │ ├── TestUserDao.java │ └── TestViewDao.java │ ├── dbupdate │ └── TestDBUpdate.java │ ├── listener │ └── SpringTestExecutionListener.java │ ├── service │ ├── TestAlarmService.java │ ├── TestCallerService.java │ ├── TestComponentService.java │ ├── TestDataService.java │ ├── TestDepartmentService.java │ ├── TestDomainService.java │ ├── TestGroupService.java │ ├── TestInitService.java │ ├── TestLoginService.java │ ├── TestMetricSetService.java │ ├── TestOrderDetailService.java │ ├── TestOrderService.java │ ├── TestPermissionService.java │ ├── TestProjectService.java │ ├── TestRelationService.java │ ├── TestResultData.java │ ├── TestStatService.java │ └── TestSystemEnvService.java │ └── utils │ ├── TestAviator.java │ ├── TestCopyUtil.java │ ├── TestDateUtil.java │ ├── TestJson.java │ ├── TestJwt.java │ ├── TestMd5Util.java │ ├── TestPattern.java │ ├── TestPbkdfUtil.java │ ├── TestTreeUtil.java │ └── TestUtil.java ├── lighthouse-shaded-client ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── dtstep │ └── lighthouse │ └── client │ └── shade │ └── Shade.java ├── lighthouse-standalone ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── dtstep │ │ └── lighthouse │ │ └── standalone │ │ ├── executive │ │ ├── LightStandaloneEntrance.java │ │ └── LightStandaloneService.java │ │ └── rpc │ │ ├── NettyServerHandler.java │ │ ├── ServerInitializer.java │ │ └── provider │ │ └── StandaloneRemoteServiceImpl.java │ └── resources │ └── log4j2.xml ├── lighthouse-tasks ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── dtstep │ │ └── lighthouse │ │ └── tasks │ │ ├── executive │ │ └── LightHouseEntrance.scala │ │ ├── extract │ │ ├── DefaultMessageExtract.scala │ │ └── MessageExtract.scala │ │ ├── init │ │ └── InitialServant.scala │ │ ├── listener │ │ └── ListenerTrigger.scala │ │ ├── part │ │ ├── ItemStatPartition.scala │ │ └── Partition.scala │ │ ├── stream │ │ ├── NormalStream.scala │ │ └── Stream.scala │ │ ├── transform │ │ ├── PreTransform.scala │ │ └── Transform.scala │ │ └── valid │ │ ├── DefaultValidHandler.scala │ │ └── ValidHandler.scala │ ├── resources │ └── assembly.xml │ └── test │ └── com │ └── dtstep │ └── lighthouse │ └── tasks │ └── test │ └── HBaseStorageEngineTest.java ├── lighthouse-test ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── dtstep │ │ └── lighthouse │ │ └── test │ │ ├── LDPFlowTestInstance.java │ │ ├── LDPOnceTestInstance.java │ │ ├── LDPSimulationInstance.java │ │ ├── config │ │ └── TestConfigContext.java │ │ ├── dao │ │ ├── DaoBase.java │ │ ├── DaoHandler.java │ │ ├── DaoHelper.java │ │ └── IDao.java │ │ ├── entity │ │ ├── BehaviorSampleEntity.java │ │ └── SampleEntity.java │ │ ├── example │ │ ├── StartExample.java │ │ └── StopExample.java │ │ ├── impl │ │ ├── FlowModeTestImpl.java │ │ ├── OnceModeTestImpl.java │ │ └── TestModel.java │ │ ├── local │ │ └── LocalUtil.java │ │ ├── mode │ │ ├── AiShortVideoTrainMonitorSample.java │ │ ├── BehaviorModalSample.java │ │ ├── BizHousePriceChangeDTSample.java │ │ ├── BizOrderConversionRateSample.java │ │ ├── BizOrderStatSample.java │ │ ├── FeAppStartAdvStatSample.java │ │ ├── ITKVDBRequestMonitorSample.java │ │ ├── ModalSample.java │ │ ├── OmAppStartDauStatSample.java │ │ ├── OmDauPromoteMonitor.java │ │ ├── OpsNodesLoadStateMonitorSample.java │ │ ├── OpsNodesLoginStateDTSample.java │ │ ├── OpsNodesRunStatusMonitorSample.java │ │ ├── PMFeedNewsBehaviorStatSample.java │ │ ├── PMSocialPrichatEnvelopeSample.java │ │ ├── PMSocialPrivateChatMsgStat.java │ │ ├── RDShortRecallCostSample.java │ │ ├── RDShortVideoRecallSizeSample.java │ │ ├── RDShortVideoRequestStatSample.java │ │ └── SimulationModalSample.java │ │ ├── relation │ │ ├── ExampleContext.java │ │ ├── GroupHandler.java │ │ ├── MetaHandler.java │ │ ├── PermissionHandler.java │ │ ├── ProjectHandler.java │ │ ├── RoleHandler.java │ │ ├── StatHandler.java │ │ └── UserHandler.java │ │ └── util │ │ └── BeanUtil.java │ └── resources │ ├── ldp-db.sql │ └── log4j2.xml ├── lighthouse-upgrade ├── fix_upgrade.sh ├── pom.xml ├── src │ └── main │ │ └── resources │ │ └── assembly.xml └── upgrade.sh ├── plugins ├── hadoop-auth │ └── hadoop-auth-ldp-3.3.5.jar └── redis-roaring-2.0.tar.gz └── pom.xml /.gitattributes: -------------------------------------------------------------------------------- 1 | *.js linguist-language=java 2 | *.css linguist-language=java 3 | *.java linguist-language=java 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | *.iml 3 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 4 | 5 | # dependencies 6 | /node_modules 7 | light-webapps/node_modules 8 | light-webapps/node 9 | light-webapps/build 10 | light-webapps/yarn.lock 11 | dependency-reduced-pom.xml 12 | /.pnp 13 | /.idea 14 | /target 15 | target/ 16 | **/target/ 17 | .flattened-pom.xml 18 | .pnp.js 19 | 20 | # testing 21 | /coverage 22 | 23 | # next.js 24 | /.next/ 25 | /out/ 26 | 27 | # production 28 | /build 29 | 30 | # misc 31 | .DS_Store 32 | *.pem 33 | *.lst 34 | *.lock 35 | 36 | # debug 37 | npm-debug.log* 38 | yarn-debug.log* 39 | yarn-error.log* 40 | 41 | # local env files 42 | .env.local 43 | .env.development.local 44 | .env.test.local 45 | .env.production.local 46 | 47 | # vercel 48 | .vercel 49 | 50 | # typescript 51 | *.tsbuildinfo 52 | 53 | 54 | # eslint 55 | .eslintcache 56 | 57 | # stylelint 58 | .stylelintcache -------------------------------------------------------------------------------- /bin/check/check_file_exist.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set path [lindex $argv 3] 18 | if { $user == "root" } { 19 | set prompt "*${user}@*#" 20 | } 21 | spawn ssh ${user}@${ip} 22 | set timeout -1 23 | expect { 24 | -nocase "yes/no" {send "yes\n";exp_continue} 25 | -nocase "password" {send "$passwd\n"} 26 | "${prompt}" {send "\r"} 27 | } 28 | expect "${prompt}" 29 | send "export LANG=\"en_US.UTF-8\"\r" 30 | expect "${prompt}" 31 | send "stat ${path}\r" 32 | expect { 33 | -nocase "*cannot stat*" {exit 102;} 34 | -nocase "*File" {exit 0;} 35 | } 36 | expect eof; 37 | -------------------------------------------------------------------------------- /bin/common/const.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | _DEPLOY_LIGHTHOUSE_ICE=true 9 | _DEPLOY_LIGHTHOUSE_INSIGHTS=true 10 | _DEPLOY_LIGHTHOUSE_TASKS=true 11 | _REDIS_NUM_PIDS_PER_NODE=2 12 | _KAFKA_NUM_PARTITIONS=64 13 | _KAFKA_REPLICATION_FACTOR=2 14 | _CLEAR_CLUSTER_LOGFILES_AT_STARTUP=true 15 | _CLEAR_KAFKA_OFFSET_AT_STARTUP=true 16 | _CLEAR_REDIS_BACKDATA_AT_STARTUP=false 17 | _REDIS_CLUSTER_FIX_AT_STARTUP=false 18 | _CDN_PACKAGE_MIRROR_IP=123.207.64.67 19 | _CDN_PACKAGE_MIRROR_PORT=39192 20 | 21 | 22 | -------------------------------------------------------------------------------- /bin/common/delete.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set path [lindex $argv 3] 18 | set prompt "*${user}@*\\\$" 19 | if { $user == "root" } { 20 | set prompt "*${user}@*#" 21 | } 22 | spawn ssh ${user}@${ip} 23 | set timeout -1 24 | expect { 25 | -nocase "yes/no" {send "yes\n";exp_continue} 26 | -nocase "password" {send "$passwd\n"} 27 | "${prompt}" {send "\r"} 28 | } 29 | expect "${prompt}" 30 | send "rm -rf ${path}\r" 31 | expect "${prompt}" 32 | send "exit\r" 33 | expect eof 34 | -------------------------------------------------------------------------------- /bin/common/exec.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set cmd [lindex $argv 3] 18 | spawn ssh ${user}@${ip} 19 | set prompt "*${user}@*\\\$" 20 | if { $user == "root" } { 21 | set prompt "*${user}@*#" 22 | } 23 | 24 | set timeout -1 25 | expect { 26 | -nocase "yes/no" {send "yes\n";exp_continue} 27 | -nocase "password" {send "$passwd\n"} 28 | "${prompt}" {send "\r"} 29 | } 30 | expect "${prompt}" 31 | send "${cmd}\r" 32 | expect "${prompt}" 33 | send "exit\r" 34 | expect eof 35 | -------------------------------------------------------------------------------- /bin/common/verify.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set cmd [lindex $argv 3] 18 | spawn ssh ${user}@${ip} 19 | set timeout -1 20 | expect { 21 | -nocase "*yes/no" {send "yes\n";exp_continue} 22 | -nocase "*password" {send "$passwd\n"} 23 | } 24 | expect { 25 | -nocase "*password" {exit 101} 26 | "*#" {exit 0} 27 | "*${user}@*" {exit 0} 28 | } 29 | -------------------------------------------------------------------------------- /bin/config/cluster-deploy.json: -------------------------------------------------------------------------------- 1 | { 2 | "lighthouse": { 3 | "deploy_user": "work", 4 | "deploy_user_passwd": "test123456", 5 | "ice_nodes_size": 3, 6 | "insights_nodes_size": 1 7 | }, 8 | "zookeeper": { 9 | "nodes_size": 3 10 | }, 11 | "hadoop": { 12 | "nodes_size": 3 13 | }, 14 | "hbase": { 15 | "nodes_size": 3 16 | }, 17 | "spark": { 18 | "nodes_size": 3 19 | }, 20 | "kafka": { 21 | "nodes_size": 3, 22 | "topic_name": "lighthouse-topic-v1" 23 | }, 24 | "mysql": { 25 | "nodes_size": 1, 26 | "root_passwd": "root", 27 | "operate_user": "lighthouse", 28 | "operate_user_passwd": "cXvsaGWExxG0082sZ" 29 | }, 30 | "redis": { 31 | "nodes_size": 3, 32 | "cluster_passwd": "naJKcZEoGGeSSAad" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /bin/config/nodelist: -------------------------------------------------------------------------------- 1 | 10.206.6.36;test!123456 2 | 10.206.6.12;test!123456 3 | 10.206.6.38;test!123456 4 | 5 | -------------------------------------------------------------------------------- /bin/config/standalone-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "lighthouse": { 3 | "timezone": "Asia/Shanghai", 4 | "standalone_xmx_memory": "500M", 5 | "standalone_xms_memory": "500M", 6 | "insights_xmx_memory": "256M", 7 | "insights_xms_memory": "256M" 8 | }, 9 | "redis": { 10 | "max_memory": "220M" 11 | }, 12 | "mysql": { 13 | "max_connections": "50", 14 | "innodb_buffer_pool_size": "600M", 15 | "tmp_table_size": "8M", 16 | "max_heap_table_size": "8M" 17 | } 18 | } -------------------------------------------------------------------------------- /bin/config/standalone-deploy.json: -------------------------------------------------------------------------------- 1 | { 2 | "lighthouse": { 3 | "deploy_user": "work", 4 | "deploy_user_passwd": "test123456" 5 | }, 6 | "mysql": { 7 | "root_passwd": "root", 8 | "operate_user": "lighthouse", 9 | "operate_user_passwd": "cXvsaGWExxG0082sZ" 10 | }, 11 | "redis": { 12 | "cluster_passwd": "naJKcZEoGGeSSAad" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bin/prepare/stop_firewall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | iptables_enabled() { 9 | if sudo systemctl is-active --quiet iptables; then 10 | return 0 11 | else 12 | return 1 13 | fi 14 | } 15 | 16 | firewalld_enabled() { 17 | if sudo systemctl is-active --quiet firewalld; then 18 | return 0 19 | else 20 | return 1 21 | fi 22 | } 23 | 24 | disable_iptables() { 25 | sudo systemctl stop iptables 26 | sudo systemctl disable iptables 27 | echo "iptables stopped!" 28 | } 29 | 30 | disable_firewalld() { 31 | sudo systemctl stop firewalld 32 | sudo systemctl disable firewalld 33 | echo "firewalld stopped!" 34 | } 35 | 36 | if iptables_enabled; then 37 | disable_iptables 38 | elif firewalld_enabled; then 39 | disable_firewalld 40 | fi -------------------------------------------------------------------------------- /bin/run/start_hadoop.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set ldp_home [lindex $argv 3] 18 | set hadoop_home ${ldp_home}/dependency/hadoop 19 | set prompt "*${user}@*\\\$" 20 | if { $user == "root" } { 21 | set prompt "*${user}@*#" 22 | } 23 | spawn ssh ${user}@${ip} 24 | set timeout -1 25 | expect { 26 | -nocase "yes/no" {send "yes\n";exp_continue} 27 | -nocase "password" {send "$passwd\n"} 28 | "${prompt}" {send "\r"} 29 | } 30 | expect "${prompt}" 31 | send "${hadoop_home}/sbin/start-all.sh\r" 32 | expect "${prompt}" 33 | send "exit\r" 34 | expect eof 35 | -------------------------------------------------------------------------------- /bin/run/start_hbase.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set ldp_home [lindex $argv 3] 18 | set hbase_home ${ldp_home}/dependency/hbase 19 | set prompt "*${user}@*\\\$" 20 | if { $user == "root" } { 21 | set prompt "*${user}@*#" 22 | } 23 | spawn ssh ${user}@${ip} 24 | set timeout -1 25 | expect { 26 | -nocase "yes/no" {send "yes\n";exp_continue} 27 | -nocase "password" {send "$passwd\n"} 28 | "${prompt}" {send "\r"} 29 | } 30 | expect "${prompt}" 31 | send "${hbase_home}/bin/start-hbase.sh\r" 32 | expect "${prompt}" 33 | send "exit\r" 34 | expect eof 35 | -------------------------------------------------------------------------------- /bin/run/start_kafka.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set ldp_home [lindex $argv 3] 18 | set kafka_home ${ldp_home}/dependency/kafka 19 | set prompt "*${user}@*\\\$" 20 | if { $user == "root" } { 21 | set prompt "*${user}@*#" 22 | } 23 | spawn ssh ${user}@${ip} 24 | set timeout -1 25 | expect { 26 | -nocase "yes/no" {send "yes\n";exp_continue} 27 | -nocase "password" {send "$passwd\n"} 28 | "${prompt}" {send "\r"} 29 | } 30 | expect "${prompt}" 31 | send "${kafka_home}/bin/kafka-server-start.sh -daemon ${kafka_home}/config/server.properties & \r" 32 | expect "${prompt}" 33 | send "exit\r" 34 | expect eof 35 | 36 | 37 | -------------------------------------------------------------------------------- /bin/run/start_redis.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set ldp_home [lindex $argv 3] 18 | set port [lindex $argv 4] 19 | set redis_home ${ldp_home}/dependency/redis 20 | set prompt "*${user}@*\\\$" 21 | if { $user == "root" } { 22 | set prompt "*${user}@*#" 23 | } 24 | spawn ssh ${user}@${ip} 25 | set timeout -1 26 | expect { 27 | -nocase "yes/no" {send "yes\n";exp_continue} 28 | -nocase "password" {send "$passwd\n"} 29 | "${prompt}" {send "\r"} 30 | } 31 | expect "${prompt}" 32 | send "${redis_home}/bin/redis-server ${redis_home}/conf/redis-${port}.conf &\r" 33 | expect "${prompt}" 34 | send "exit\r" 35 | expect eof 36 | -------------------------------------------------------------------------------- /bin/run/start_spark.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set ldp_home [lindex $argv 3] 18 | set spark_home ${ldp_home}/dependency/spark 19 | set prompt "*${user}@*\\\$" 20 | if { $user == "root" } { 21 | set prompt "*${user}@*#" 22 | } 23 | spawn ssh ${user}@${ip} 24 | set timeout -1 25 | expect { 26 | -nocase "yes/no" {send "yes\n";exp_continue} 27 | -nocase "password" {send "$passwd\n"} 28 | "${prompt}" {send "\r"} 29 | } 30 | expect "${prompt}" 31 | send "${spark_home}/sbin/start-all.sh\r" 32 | expect "${prompt}" 33 | send "exit\r" 34 | expect eof 35 | -------------------------------------------------------------------------------- /bin/run/start_zookeeper.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set ldp_home [lindex $argv 3] 18 | set zookeeper_home ${ldp_home}/dependency/zookeeper 19 | set prompt "*${user}@*\\\$" 20 | if { $user == "root" } { 21 | set prompt "*${user}@*#" 22 | } 23 | spawn ssh ${user}@${ip} 24 | set timeout -1 25 | expect { 26 | -nocase "yes/no" {send "yes\n";exp_continue} 27 | -nocase "password" {send "$passwd\n"} 28 | "${prompt}" {send "\r"} 29 | } 30 | expect "${prompt}" 31 | send "${zookeeper_home}/bin/zkServer.sh start\r" 32 | expect "${prompt}" 33 | send "exit\r" 34 | expect eof 35 | -------------------------------------------------------------------------------- /bin/run/stop_hadoop.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set ldp_home [lindex $argv 3] 18 | set hadoop_home ${ldp_home}/dependency/hadoop 19 | set prompt "*${user}@*\\\$" 20 | if { $user == "root" } { 21 | set prompt "*${user}@*#" 22 | } 23 | spawn ssh ${user}@${ip} 24 | set timeout -1 25 | expect { 26 | -nocase "yes/no" {send "yes\n";exp_continue} 27 | -nocase "password" {send "$passwd\n"} 28 | "${prompt}" {send "\r"} 29 | } 30 | expect "${prompt}" 31 | send "${hadoop_home}/sbin/stop-all.sh\r" 32 | expect "${prompt}" 33 | send "exit\r" 34 | expect eof 35 | -------------------------------------------------------------------------------- /bin/run/stop_hbase.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set ldp_home [lindex $argv 3] 18 | set hbase_home ${ldp_home}/dependency/hbase 19 | set prompt "*${user}@*\\\$" 20 | if { $user == "root" } { 21 | set prompt "*${user}@*#" 22 | } 23 | spawn ssh ${user}@${ip} 24 | set timeout -1 25 | expect { 26 | -nocase "yes/no" {send "yes\n";exp_continue} 27 | -nocase "password" {send "$passwd\n"} 28 | "${prompt}" {send "\r"} 29 | } 30 | expect "${prompt}" 31 | send "${hbase_home}/bin/hbase-daemon.sh stop master\r" 32 | expect "${prompt}" 33 | send "${hbase_home}/bin/stop-hbase.sh\r" 34 | expect "${prompt}" 35 | send "exit\r" 36 | expect eof 37 | -------------------------------------------------------------------------------- /bin/run/stop_kafka.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set ldp_home [lindex $argv 3] 18 | set kafka_home ${ldp_home}/dependency/kafka 19 | set prompt "*${user}@*\\\$" 20 | if { $user == "root" } { 21 | set prompt "*${user}@*#" 22 | } 23 | spawn ssh ${user}@${ip} 24 | set timeout -1 25 | expect { 26 | -nocase "yes/no" {send "yes\n";exp_continue} 27 | -nocase "password" {send "$passwd\n"} 28 | "${prompt}" {send "\r"} 29 | } 30 | expect "${prompt}" 31 | send "${kafka_home}/bin/kafka-server-stop.sh \r" 32 | expect "${prompt}" 33 | send "exit\r" 34 | expect eof 35 | 36 | 37 | -------------------------------------------------------------------------------- /bin/run/stop_spark.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set ldp_home [lindex $argv 3] 18 | set spark_home ${ldp_home}/dependency/spark 19 | set prompt "*${user}@*\\\$" 20 | if { $user == "root" } { 21 | set prompt "*${user}@*#" 22 | } 23 | spawn ssh ${user}@${ip} 24 | set timeout -1 25 | expect { 26 | -nocase "yes/no" {send "yes\n";exp_continue} 27 | -nocase "password" {send "$passwd\n"} 28 | "${prompt}" {send "\r"} 29 | } 30 | expect "${prompt}" 31 | send "${spark_home}/sbin/stop-all.sh\r" 32 | expect "${prompt}" 33 | send "exit\r" 34 | expect eof 35 | -------------------------------------------------------------------------------- /bin/run/stop_zookeeper.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set ldp_home [lindex $argv 3] 18 | set zookeeper_home ${ldp_home}/dependency/zookeeper 19 | set prompt "*${user}@*\\\$" 20 | if { $user == "root" } { 21 | set prompt "*${user}@*#" 22 | } 23 | spawn ssh ${user}@${ip} 24 | set timeout -1 25 | expect { 26 | -nocase "yes/no" {send "yes\n";exp_continue} 27 | -nocase "password" {send "$passwd\n"} 28 | "${prompt}" {send "\r"} 29 | } 30 | expect "${prompt}" 31 | send "${zookeeper_home}/bin/zkServer.sh stop\r" 32 | expect "${prompt}" 33 | send "exit\r" 34 | expect eof 35 | -------------------------------------------------------------------------------- /bin/templates/hadoop/etc/hadoop/hdfs-rbf-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /bin/templates/hadoop/etc/hadoop/httpfs-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /bin/templates/hadoop/etc/hadoop/kms-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /bin/templates/hadoop/etc/hadoop/mapred-env.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | @rem Licensed to the Apache Software Foundation (ASF) under one or more 3 | @rem contributor license agreements. See the NOTICE file distributed with 4 | @rem this work for additional information regarding copyright ownership. 5 | @rem The ASF licenses this file to You under the Apache License, Version 2.0 6 | @rem (the "License"); you may not use this file except in compliance with 7 | @rem the License. You may obtain a copy of the License at 8 | @rem 9 | @rem http://www.apache.org/licenses/LICENSE-2.0 10 | @rem 11 | @rem Unless required by applicable law or agreed to in writing, software 12 | @rem distributed under the License is distributed on an "AS IS" BASIS, 13 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | @rem See the License for the specific language governing permissions and 15 | @rem limitations under the License. 16 | 17 | set HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000 18 | 19 | set HADOOP_MAPRED_ROOT_LOGGER=%HADOOP_LOGLEVEL%,RFA 20 | 21 | -------------------------------------------------------------------------------- /bin/templates/hadoop/etc/hadoop/workers: -------------------------------------------------------------------------------- 1 | ${ldp_hadoop_workers} 2 | -------------------------------------------------------------------------------- /bin/templates/hbase/conf/regionservers: -------------------------------------------------------------------------------- 1 | ${ldp_hbase_regionservers} 2 | -------------------------------------------------------------------------------- /bin/templates/kafka/config/connect-console-sink.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | name=local-console-sink 17 | connector.class=org.apache.kafka.connect.file.FileStreamSinkConnector 18 | tasks.max=1 19 | topics=connect-test -------------------------------------------------------------------------------- /bin/templates/kafka/config/connect-console-source.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | name=local-console-source 17 | connector.class=org.apache.kafka.connect.file.FileStreamSourceConnector 18 | tasks.max=1 19 | topic=connect-test -------------------------------------------------------------------------------- /bin/templates/kafka/config/connect-file-sink.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | name=local-file-sink 17 | connector.class=FileStreamSink 18 | tasks.max=1 19 | file=test.sink.txt 20 | topics=connect-test -------------------------------------------------------------------------------- /bin/templates/kafka/config/connect-file-source.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | name=local-file-source 17 | connector.class=FileStreamSource 18 | tasks.max=1 19 | file=test.txt 20 | topic=connect-test -------------------------------------------------------------------------------- /bin/templates/kafka/config/server.properties: -------------------------------------------------------------------------------- 1 | broker.id=${ldp_lighthouse_nodeid} 2 | delete.topic.enable=true 3 | num.network.threads=3 4 | num.io.threads=8 5 | socket.send.buffer.bytes=102400 6 | socket.receive.buffer.bytes=102400 7 | socket.request.max.bytes=104857600 8 | connections.max.idle.ms=2700000 9 | log.dirs=${ldp_kafka_home}/logs 10 | log.cleaner.enable=true 11 | num.partitions=64 12 | num.recovery.threads.per.data.dir=1 13 | default.replication.factor=${ldp_kafka_replication_factor} 14 | offsets.topic.replication.factor=${ldp_kafka_topic_replication_factor} 15 | transaction.state.log.replication.factor=${ldp_kafka_state_log_replication_factor} 16 | transaction.state.log.min.isr=${ldp_kafka_state_log_min_isr} 17 | log.retention.hours=10 18 | auto.create.topics.enable=false 19 | offsets.retention.minutes=600 20 | log.retention.bytes=3221225472 21 | log.segment.bytes=1073741824 22 | log.retention.check.interval.ms=300000 23 | zookeeper.connect=${ldp_zookeeper_ips_port} 24 | zookeeper.connection.timeout.ms=18000 25 | group.initial.rebalance.delay.ms=0 26 | -------------------------------------------------------------------------------- /bin/templates/lighthouse/conf/ice_node.cfg: -------------------------------------------------------------------------------- 1 | Ice.Default.Locator=${ldp_lighthouse_ice_locators_config} 2 | IceGrid.Node.Name=node${ldp_lighthouse_nodeid} 3 | IceGrid.Node.Endpoints=tcp 4 | IceGrid.Node.Data=${ldp_data_dir}/ice/nodedata 5 | IceGrid.Node.Output=${ldp_data_dir}/ice/nodeoutput 6 | IceGrid.Node.CollocateRegistry=0 7 | Ice.StdErr=${ldp_data_dir}/ice/nodeoutput/ice_stderr.log 8 | -------------------------------------------------------------------------------- /bin/templates/lighthouse/conf/ice_registry_master.cfg: -------------------------------------------------------------------------------- 1 | IceGrid.InstanceName=LightHouseIceGrid 2 | IceGrid.Registry.Client.Endpoints=tcp -p 4061 3 | IceGrid.Registry.Server.Endpoints=tcp 4 | IceGrid.Registry.Internal.Endpoints=tcp 5 | IceGrid.Registry.PermissionsVerifier=LightHouseIceGrid/NullPermissionsVerifier 6 | IceGrid.Registry.AdminPermissionsVerifier=LightHouseIceGrid/NullPermissionsVerifier 7 | IceGrid.Registry.Data=${ldp_data_dir}/ice/registdata 8 | IceGrid.Registry.LMDB.Path=${ldp_data_dir}/ice/registdata 9 | IceGrid.Registry.DynamicRegistration=1 10 | Ice.Admin.InstanceName=AdminInstance 11 | Ice.LogFile=${ldp_data_dir}/ice/registdata/ice-regist.log 12 | -------------------------------------------------------------------------------- /bin/templates/lighthouse/conf/ice_registry_slaver.cfg: -------------------------------------------------------------------------------- 1 | Ice.Default.Locator=LightHouseIceGrid/Locator:tcp -h ${ldp_lighthouse_ice_master} -p 4061 2 | IceGrid.Registry.Client.Endpoints=tcp -p 4061 3 | IceGrid.Registry.Server.Endpoints=tcp 4 | IceGrid.Registry.Internal.Endpoints=tcp 5 | IceGrid.Registry.PermissionsVerifier=LightHouseIceGrid/NullPermissionsVerifier 6 | IceGrid.Registry.AdminPermissionsVerifier=LightHouseIceGrid/NullPermissionsVerifier 7 | IceGrid.Registry.Data=${ldp_data_dir}/ice/registdata 8 | IceGrid.Registry.LMDB.Path=${ldp_data_dir}/ice/registdata 9 | IceGrid.Registry.DynamicRegistration=1 10 | IceGrid.Registry.ReplicaName=Replica1 11 | Ice.LogFile=${ldp_data_dir}/ice/registdata/ice-regist.log 12 | -------------------------------------------------------------------------------- /bin/templates/lighthouse/conf/lighthouse-insights.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9089 3 | servlet: 4 | context-path: /api/v1 5 | session: 6 | timeout: 18000 7 | tomcat: 8 | uri-encoding: utf-8 9 | spring: 10 | messages: 11 | basename: i18n/messages 12 | mvc: 13 | locale-resolver: fixed 14 | locale: en_US 15 | static-path-pattern: /static/** 16 | hiddenmethod: 17 | filter: 18 | enabled: true 19 | main: 20 | allow-circular-references: true 21 | devtools: 22 | restart: 23 | enabled: false 24 | thymeleaf: 25 | cache: false 26 | cache: 27 | redis: 28 | time-to-live: 86400000 29 | mybatis: 30 | config-location: classpath:mybatis-config.xml 31 | mapper-locations: 32 | - classpath*:mybatis/mapper/*.xml -------------------------------------------------------------------------------- /bin/templates/lighthouse/light-webapps/public/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "REACT_APP_BASE_URL":"http://${ldp_lighthouse_nodeip}:9089", 3 | "AXIOS_TIMEOUT":60000 4 | } -------------------------------------------------------------------------------- /bin/templates/mysql/support-files/my.cnf: -------------------------------------------------------------------------------- 1 | [client] 2 | port = 3906 3 | socket = /tmp/mysql.sock 4 | [mysql] 5 | log_timestamps=SYSTEM 6 | bind-address = 0.0.0.0 7 | skip-networking=OFF 8 | user = mysql 9 | port = 3906 10 | [mysqld] 11 | user = mysql 12 | skip-networking=OFF 13 | skip-log-bin 14 | max_connections = ${ldp_mysql_max_connections} 15 | innodb_buffer_pool_size = ${ldp_mysql_innodb_buffer_pool_size} 16 | tmp_table_size = ${ldp_mysql_tmp_table_size} 17 | max_heap_table_size = ${ldp_mysql_max_heap_table_size} 18 | default_storage_engine = InnoDB 19 | socket = /tmp/mysql.sock 20 | pid_file = /tmp/mysqld.pid 21 | basedir = ${ldp_mysql_home} 22 | port = 3906 23 | bind-address = 0.0.0.0 24 | log_timestamps=SYSTEM 25 | default_authentication_plugin='mysql_native_password' 26 | server-id = 106 27 | datadir = ${ldp_data_dir}/mysql 28 | tmpdir = /tmp 29 | max_connect_errors=1000 30 | log_error = ${ldp_mysql_home}/log/mysql.log 31 | -------------------------------------------------------------------------------- /bin/templates/spark/conf/workers: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed to the Apache Software Foundation (ASF) under one or more 3 | # contributor license agreements. See the NOTICE file distributed with 4 | # this work for additional information regarding copyright ownership. 5 | # The ASF licenses this file to You under the Apache License, Version 2.0 6 | # (the "License"); you may not use this file except in compliance with 7 | # the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | # A Spark Worker will be started on each of the machines listed below. 19 | 20 | ${ldp_spark_workers} 21 | -------------------------------------------------------------------------------- /bin/templates/zookeeper/conf/configuration.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
namevaluedescription
21 | 22 | 23 |
24 |
25 | -------------------------------------------------------------------------------- /bin/templates/zookeeper/data/myid: -------------------------------------------------------------------------------- 1 | ${ldp_lighthouse_nodeid} 2 | -------------------------------------------------------------------------------- /bin/tools/redisfix/redis_clear.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | CUR_USER=${USER} 9 | CUR_DIR=${LDP_HOME}/bin 10 | source "${CUR_DIR}/common/lib.sh" 11 | source "${CUR_DIR}/prepare/prepare.sh" 12 | source "${CUR_DIR}/install/install.sh" 13 | source "${CUR_DIR}/compile/compile.sh" 14 | source "${CUR_DIR}/deploy/deploy.sh" 15 | source "${CUR_DIR}/check/check.sh" 16 | source "${CUR_DIR}/clean/clean.sh" 17 | source "${CUR_DIR}/run/start.sh" 18 | source "${CUR_DIR}/run/stop.sh" 19 | source "${CUR_DIR}/run/reload.sh" 20 | 21 | main(){ 22 | prepare; 23 | loadScriptConfig; 24 | clearRedisBackData; 25 | log_info "Fix Redis Complete!"; 26 | } 27 | 28 | main $@; 29 | -------------------------------------------------------------------------------- /bin/tools/redisfix/redis_fix.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | CUR_USER=${USER} 9 | CUR_DIR=${LDP_HOME}/bin 10 | source "${CUR_DIR}/common/lib.sh" 11 | source "${CUR_DIR}/prepare/prepare.sh" 12 | source "${CUR_DIR}/install/install.sh" 13 | source "${CUR_DIR}/compile/compile.sh" 14 | source "${CUR_DIR}/deploy/deploy.sh" 15 | source "${CUR_DIR}/check/check.sh" 16 | source "${CUR_DIR}/clean/clean.sh" 17 | source "${CUR_DIR}/run/start.sh" 18 | source "${CUR_DIR}/run/stop.sh" 19 | source "${CUR_DIR}/run/reload.sh" 20 | 21 | main(){ 22 | prepare; 23 | redisClusterFix; 24 | log_info "Fix Redis Complete!"; 25 | } 26 | 27 | main $@; 28 | -------------------------------------------------------------------------------- /bin/tools/track.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | 3 | #----------------------------------------- 4 | # Author:XueLing.雪灵 5 | # Email:better_xueling@126.com 6 | #----------------------------------------- 7 | 8 | set env(LANG) "en_US.UTF-8" 9 | set env(LC_ALL) "C" 10 | 11 | set user [lindex $argv 0] 12 | set ip [lindex $argv 1] 13 | set passwd [lindex $argv 2] 14 | if { $passwd != "-" } { 15 | set passwd [exec echo $passwd | base64 -d] 16 | } 17 | set ldp_home [lindex $argv 3] 18 | set daytime [exec date +%y%m%d%H%M%S] 19 | set prompt "*${user}@*\\\$" 20 | if { $user == "root" } { 21 | set prompt "*${user}@*#" 22 | } 23 | spawn ssh ${user}@${ip} 24 | set timeout -1 25 | expect { 26 | -nocase "yes/no" {send "yes\n";exp_continue} 27 | -nocase "password" {send "$passwd\n"} 28 | "${prompt}" {send "\r"} 29 | } 30 | expect "${prompt}" 31 | send "ps -ef > ${ldp_home}/bin/log/track_pid.info_${daytime}\r" 32 | expect "${prompt}" 33 | send "exit\r" 34 | expect eof 35 | -------------------------------------------------------------------------------- /light-webapps/public/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "REACT_APP_BASE_URL":"http://localhost:9089", 3 | "AXIOS_TIMEOUT":60000 4 | } -------------------------------------------------------------------------------- /light-webapps/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xl-xueling/xl-lighthouse/ee56445ae885d7e429d1759b3a432b37a0265221/light-webapps/public/logo.png -------------------------------------------------------------------------------- /light-webapps/src/api/authorize.ts: -------------------------------------------------------------------------------- 1 | import {request} from "@/utils/request"; 2 | import {Component, ResultData} from "@/types/insights-common"; 3 | import {AuthorizeInfo, Department, Order, Project} from "@/types/insights-web"; 4 | 5 | export async function requestAuthorizeInfo() :Promise> { 6 | return request({ 7 | url:'/authorize/info', 8 | method:'POST', 9 | }) 10 | } 11 | 12 | export async function requestAuthActivation(data) :Promise> { 13 | return request({ 14 | url:'/authorize/activation', 15 | method:'POST', 16 | data, 17 | }) 18 | } 19 | 20 | 21 | export async function requestAuthUnbind(data) :Promise> { 22 | return request({ 23 | url:'/authorize/unbind', 24 | method:'POST', 25 | data, 26 | }) 27 | } -------------------------------------------------------------------------------- /light-webapps/src/api/data.ts: -------------------------------------------------------------------------------- 1 | import {request} from "@/utils/request"; 2 | import {ResultData} from "@/types/insights-common"; 3 | import {Group, LimitData, Project, Stat, StatData, User} from "@/types/insights-web"; 4 | 5 | export async function requestTestData(data) :Promise>> { 6 | return request({ 7 | url:'/test-data/stat', 8 | method:'POST', 9 | data, 10 | }) 11 | } 12 | 13 | export async function requestStatData(data) :Promise>> { 14 | return request({ 15 | url:'/data/stat', 16 | method:'POST', 17 | data, 18 | }) 19 | } 20 | 21 | export async function requestLimitData(data) :Promise>> { 22 | return request({ 23 | url:'/data/limit', 24 | method:'POST', 25 | data, 26 | }) 27 | } 28 | 29 | 30 | -------------------------------------------------------------------------------- /light-webapps/src/api/export.ts: -------------------------------------------------------------------------------- 1 | import {ResultData} from "@/types/insights-common"; 2 | import {request} from "@/utils/request"; 3 | import {ExportData} from "@/types/insights-web"; 4 | 5 | export async function requestExportStat(data):Promise> { 6 | return request({ 7 | url:'/export/stat', 8 | method:'POST', 9 | data, 10 | }) 11 | } -------------------------------------------------------------------------------- /light-webapps/src/api/filter.ts: -------------------------------------------------------------------------------- 1 | import {request} from "@/utils/request"; 2 | import {RenderFilterConfig, ResultData} from "@/types/insights-common"; 3 | import {ArcoTreeNode, Group, Stat} from "@/types/insights-web"; 4 | 5 | export async function requestDefaultList(data) :Promise,total:number}>> { 6 | return request({ 7 | url:'/filter/default/list', 8 | method:'POST', 9 | data, 10 | }) 11 | } 12 | 13 | export async function requestCustomList(data) :Promise,total:number}>> { 14 | return request({ 15 | url:'/filter/custom/list', 16 | method:'POST', 17 | data, 18 | }) 19 | } -------------------------------------------------------------------------------- /light-webapps/src/api/home.ts: -------------------------------------------------------------------------------- 1 | import {request} from "@/utils/request"; 2 | import {Component, ResultData} from "@/types/insights-common"; 3 | import {Department, HomeData, Order, Project} from "@/types/insights-web"; 4 | 5 | export async function requestOverView() :Promise> { 6 | return request({ 7 | url:'/homepage/overview', 8 | method:'POST', 9 | }) 10 | } -------------------------------------------------------------------------------- /light-webapps/src/api/record.ts: -------------------------------------------------------------------------------- 1 | import {request} from "@/utils/request"; 2 | import {ResultData} from "@/types/insights-common"; 3 | import {Record, User} from "@/types/insights-web"; 4 | 5 | export async function requestList(data) :Promise,total:number}>> { 6 | return request({ 7 | url:'/record/list', 8 | method:'POST', 9 | data, 10 | }) 11 | } 12 | 13 | export async function requestStatLimitList(data) :Promise,total:number}>> { 14 | return request({ 15 | url:'/record/statLimitList', 16 | method:'POST', 17 | data, 18 | }) 19 | } 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /light-webapps/src/api/track.ts: -------------------------------------------------------------------------------- 1 | import {request} from "@/utils/request"; 2 | import {ResultData} from "@/types/insights-common"; 3 | import {Group, Project, Stat, User} from "@/types/insights-web"; 4 | 5 | export async function requestEnableDebugMode(data):Promise { 6 | return request({ 7 | url:'/track/enableDebugMode', 8 | method:'POST', 9 | data, 10 | }) 11 | } 12 | 13 | export async function requestDisableDebugMode(data):Promise { 14 | return request({ 15 | url:'/track/disableDebugMode', 16 | method:'POST', 17 | data, 18 | }) 19 | } 20 | 21 | export async function requestFetchTrackMessages(data):Promise>>> { 22 | return request({ 23 | url:'/track/messages', 24 | method:'POST', 25 | data, 26 | }) 27 | } -------------------------------------------------------------------------------- /light-webapps/src/assets/dark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /light-webapps/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xl-xueling/xl-lighthouse/ee56445ae885d7e429d1759b3a432b37a0265221/light-webapps/src/assets/logo.png -------------------------------------------------------------------------------- /light-webapps/src/components/Chart/style/index.module.less: -------------------------------------------------------------------------------- 1 | .customer-tooltip { 2 | &-title { 3 | margin-bottom: 4px; 4 | } 5 | 6 | &-item { 7 | height: 32px; 8 | line-height: 32px; 9 | display: flex; 10 | justify-content: space-between; 11 | padding: 0 8px; 12 | background: rgb(255 255 255 / 90%); 13 | box-shadow: 6px 0 20px rgb(34 87 188 / 10%); 14 | border-radius: 4px; 15 | color: var(--color-text-2); 16 | 17 | :global(.arco-badge-status-dot) { 18 | width: 10px; 19 | height: 10px; 20 | margin-right: 8px; 21 | } 22 | } 23 | 24 | &-item:not(:last-child) { 25 | margin-bottom: 8px; 26 | } 27 | } 28 | 29 | body[arco-theme='dark'] { 30 | .customer-tooltip { 31 | &-item { 32 | background: #2a2a2b; 33 | box-shadow: 6px 0px 20px rgba(34, 87, 188, 0.1); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /light-webapps/src/components/Footer/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Layout } from '@arco-design/web-react'; 3 | import { FooterProps } from '@arco-design/web-react/es/Layout/interface'; 4 | import cs from 'classnames'; 5 | import styles from './style/index.module.less'; 6 | import {getDateFormat, YearFormat} from "@/utils/date"; 7 | import {windowRedirect} from "@/utils/util"; 8 | 9 | function Footer(props: FooterProps = {}) { 10 | const { className, ...restProps } = props; 11 | return ( 12 | 13 | windowRedirect('/license')}>Copyright © {getDateFormat(YearFormat)} DTStep.com All Rights Reserved. 14 | Version:2.3.4 15 | 16 | ); 17 | } 18 | 19 | export default Footer; 20 | -------------------------------------------------------------------------------- /light-webapps/src/components/Footer/style/index.module.less: -------------------------------------------------------------------------------- 1 | .footer { 2 | display: flex; 3 | align-items: center; 4 | justify-content: center; 5 | height: 40px; 6 | text-align: center; 7 | color: var(--color-text-2); 8 | font-size: 9px; 9 | } 10 | -------------------------------------------------------------------------------- /light-webapps/src/components/NavBar/IconButton.tsx: -------------------------------------------------------------------------------- 1 | import React, { forwardRef } from 'react'; 2 | import { Button } from '@arco-design/web-react'; 3 | import styles from './style/icon-button.module.less'; 4 | import cs from 'classnames'; 5 | 6 | function IconButton(props, ref) { 7 | const { icon, className, ...rest } = props; 8 | 9 | return ( 10 |