StarRocks查询预览工具

StarRocks查询预览工具

  1. 前端是html+js web可视化。
  2. 后端是golang gin,gorm。
  3. 支持获取集群所有正在运行的语句。
  4. 支持获取查询队列大查询。
  5. 支持汇报查询记录。(该选项需要配置慢查询拦截服务
  6. 支持web使用token访问,接口使用admin二次认证,非管理员访问限制。
  7. 支持多集群查询查看,查杀,批量暴力清场,释放睡眠连接。
  8. 正在加入其他运维功能…

一、访问web

需要专属token才可访问,token配置在配置文件中。

二、进入界面

目前主要分为【查询监控】【查询队列】【拦截汇报】三个面板


三、查询监控

COUNT:601,RUN:7,PEND:0,SLEEP:594

分别代表,

COUNT:当前集群3个fe,共在有多少个连接。

RUN:当前正在运行的语句。

PEND:如果看起了查询队列,会有等待的状态。

SLEEP:代表挂起但未释放的连接。

清理睡眠连接:释放所有SLEEP状态,未释放的连接

查杀慢查询:kill

查杀高消耗:kill

清退整体语句:kill all(清场模式)

查看运行语句

四、查询队列

五、拦截汇报

当部署了慢查询拦截工具,定义了慢查询记录表后,将会定期汇报记录表中的查杀记录

这里支持了近1天内,集群被拦截的语句,

Type类型主要有:1.10分钟慢查询提醒,2.30分钟慢查询查杀,3.全表扫描亿级查杀,4.百亿扫描行数查杀,5.TB级扫描字节查杀,6.异常违规参数查杀,7.队列并发告警提醒,8.Hive违规写入拦截,9.GB+级消耗内存查杀,10.违规S3协议查杀,11.状态异常停留清退,11种拦截模式。

State状态,clear绿色代表当时语句已经中断,但还挂在队列中,会触发踢出。warn代表语句当时运行了10分钟以上依旧没有完成,会有个提醒记录。kill代表查杀。

六、多集群管理

可配置多个集群进行语句观察,查杀。


时间沙漏代表正在pending中的查询。

七、部署方式

程序使用mysql,修改信息在conn/ConnectMySQL.go文件中,

在.StarRocksAPIs.yaml配置文件中,

server: 
 port: 8082 //服务端口
 token: 123456 //自定义token
 loadhtmlglob: /chengken/templates/* //html路径
 loadstatic: /chengken/templates/static //静态文件路径

另外init/init.go中有个chengken.starrocks_information_connections表,这个表是集群登录信息配置表,表结构在.StarRocksAPIs.yaml配置文件中,也可以参考如下:

-- chengken.starrocks_information_connections definition

CREATE TABLE `starrocks_information_connections` (
  `app` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '集群名称(英文)',
  `nickname` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '别名',
  `alias` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '集群别名',
  `feip` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '集群连接地址(必填)F5,VIP,CLB,FE',
  `user` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '集群登录账号(必填) 建议是管理员角色的账号',
  `password` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '集群登录密码(必填)',
  `feport` int NOT NULL DEFAULT '9030' COMMENT '集群登录端口,默认9030',
  `address` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'MANAGER地址,如果填了MANAGER地址,那么将触发定时检查LICENSE是否过期(企业级)',
  `expire` int DEFAULT '30' COMMENT 'LICENSE是否过期(企业级)过期提醒倒计时,单位day',
  `status` int NOT NULL DEFAULT '0' COMMENT 'LICENSE是否过期(企业级)开关,0 off, 1 on',
  `fe_log_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'FE 日志目录',
  `be_log_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'BE 日志目录',
  `be_meta_log` varchar(200) DEFAULT NULL,
  `java_udf_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'BE 日志目录',
  `manager_access_key` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'manager 开发者的access key',
  `manager_secret_key` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'manager 开发者的secret key',
  `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='StarRocks登录配置,manager地址,(定期检查license过期日期)';
1赞