StarRocks查询预览工具
- 前端是html+js web可视化。
- 后端是golang gin,gorm。
- 支持获取集群所有正在运行的语句。
- 支持获取查询队列大查询。
- 支持汇报查询记录。(该选项需要配置慢查询拦截服务)
- 支持web使用token访问,接口使用admin二次认证,非管理员访问限制。
- 支持多集群查询查看,查杀,批量暴力清场,释放睡眠连接。
- 正在加入其他运维功能…
一、访问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过期日期)';