智能扫描重构遗留问题处理
原始issue:https://github.com/actiontech/sqle-ee/issues/1576
需求描述(Describe)
- [ ] 其他代码里的todo项 / todo:移除废弃接口和实现;移除所有无用代码;
容错处理
从queues里读取出的记录处理失败怎么办?
handler里插入记录和删除queues的事务性,
审核失败怎么办如何处理;
容错处理需要优化,考虑新增字段来解决 - [x] 扫描任务跑增量同步时,获取到不需要同步的任务问题修复
- [x] mysql慢日志采集时,start_time字段未保存问题修复
- [x] mysql慢日志新增“启动任务时拉取慢日志时间范围”参数
- [ ] 快速审核SQL合并到sql管控
- [x] 智能扫描自定义参数间的联动
- [x] TBase数据源扫描任务概览新增连接信息字段 @taolx0
- [ ] TopSQL排序字段,理论上会有四个.预期是可以做下拉选择
- [ ] 库表扫描任务中,存在自增主键建表SQL语句会由于自增值增加导致语句出现变更,由于建表语句变化导致sql_manage_record变化。更新时间每次扫描都会调整为最新,并且该建表语句一直被推送告警 @LordofAvernus
- [x] 扫描任务详情表格数据加载异常 @LZS911
- [x] 智能扫描配置以及概览表格操作列按钮前端权限控制 @LZS911
- [x] 创建智能扫描任务时数据源获取需要根据权限进行筛选 @LZS911
- [ ] 智能扫描补充端点信息
TBase数据源扫描任务概览新增连接信息字段
方案
开放TBase连接信息分类
影响面
scanner上传命令行发生变更,需要更新scanner
验证Oracle TOP SQL任务问题
- 创建oracle扫描任务时获取不到TOP SQL任务类型 oracle扫描任务获取的instance type错误
验证DM TOP SQL任务问题
- DM智能扫描任务TOP SQL采集sql失败 修复达梦采集sql时,获取不到实例
验证SQL管控的问题
sql管控获取sql分析时报错
智能扫描动态参数联动问题方案
背景:
慢日志类型参数“采集周期”、“启动任务时拉取慢日志时间范围”仅对 mysql.slow_log 表有效,所以需要在当采集来源选择slow.log文件采集时隐藏这两个输入框。
方案一:
后端修改GetAuditPlanMetas接口层的ParamsRes参数结构,调整ParamsRes为父子结构,或ParamsRes新增字段依赖需要联动的key与value 优点:返回的结构清晰 缺点:不易做成通用,有一定局限性,多参数依赖的话只能处理与的联动关系。 影响面:较小,如果仅对mysql慢日志参数特殊处理的话不影响其他扫描任务类型。
方案二:
调整params包Param结构体,新增字段依赖需要联动的key与value(接口层也同步新增字段) 优点:可以做成通用 缺点:有一定局限性,多参数依赖的话只能处理与的联动关系。
方案三:
前端对mysql慢日志的参数做特殊处理
优点:成本小,后端不需要调整
缺点:处理后续新增的扫描任务类型或以后其他需要联动的参数
影响面:不影响其他
最终方案
前端mysql慢日志的参数做特殊处理 原因:后端处理通用性不强,后续若出现稍复杂的依赖关系不易处理,目前仅有mysql慢日志参数需联动,且成本不高,所以由前端处理(隐藏参数也需要提交,因后端有对参数数量有做校验,后端需补充参数默认值,以默认值提交即可)
扫描任务操作按钮根据权限显示和隐藏
1、创建编辑页面,可选数据源根据权限显隐【前端】 2、页面增删改和立即审核按钮根据权限显隐【前端】 3、实例扫描任务接口返回instance id,支持前端获取权限【后端】
扫描任务详情表格数据加载异常
例:
此时为初次通过SQL优先级筛选,数据正常。
清楚筛选后再次筛选,表格数据出现异常
可以明显发现表格数量多于接口返回的数据。
关联Comment:https://github.com/actiontech/sqle/issues/2523#issuecomment-2295848522 实例扫描任务列表instance_id出现精度丢失 解决:返回转成string返给前端
关联遗留问题:https://github.com/actiontech/sqle/issues/2572
测试
mysql慢日志采集时,start_time字段未保存问题修复
start_time字段有值,符合预期
扫描任务没有增量同步
扫描任务跑增量同步时,获取到不需要同步的任务问题修复
停用慢日志扫描任务
数据库中新增慢日志
sql_manage_records表没有新增慢日志
TBase数据源扫描任务概览新增连接信息字段
新增TBase慢日志扫描任务
新增连接信息
智能扫描自定义参数间的联动
mysql慢日志选择scanner时,没有其他选择
mysql慢日志选择mysql.slow_log时,出现采集周期以及采集时间选项
扫描任务详情表格数据加载异常
初始时
筛选高优先级sql,sql数量少了一条
清除筛选选项后,再进行筛选
没有出现数据异常现实的问题,符合预期
验证创建智能扫描任务时数据源获取需要根据权限进行筛选
配置成员与权限
无法看到他人创建的扫描任务
只能为对应数据源创建扫描任务
创建成功
为user2用户配置查看他人创建的智能扫描任务权限
可以看到其他人创建的智能扫描
没有创建扫描任务按钮
一开始只拉取24h内的慢日志
24h内的慢日志是空的
修改这个参数,拉取2400个小时内的慢日志
成功采集到数据