sqle icon indicating copy to clipboard operation
sqle copied to clipboard

智能扫描重构遗留问题处理

Open iwanghc opened this issue 1 year ago • 8 comments

原始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
  • [ ] 智能扫描补充端点信息

iwanghc avatar Aug 06 '24 08:08 iwanghc

TBase数据源扫描任务概览新增连接信息字段

方案

开放TBase连接信息分类

影响面

scanner上传命令行发生变更,需要更新scanner

taolx0 avatar Aug 07 '24 09:08 taolx0

验证Oracle TOP SQL任务问题

  • 创建oracle扫描任务时获取不到TOP SQL任务类型 oracle扫描任务获取的instance type错误

验证DM TOP SQL任务问题

  • DM智能扫描任务TOP SQL采集sql失败 修复达梦采集sql时,获取不到实例

iwanghc avatar Aug 12 '24 09:08 iwanghc

验证SQL管控的问题

sql管控获取sql分析时报错 image

iwanghc avatar Aug 13 '24 08:08 iwanghc

智能扫描动态参数联动问题方案

背景:

慢日志类型参数“采集周期”、“启动任务时拉取慢日志时间范围”仅对 mysql.slow_log 表有效,所以需要在当采集来源选择slow.log文件采集时隐藏这两个输入框。

方案一:

后端修改GetAuditPlanMetas接口层的ParamsRes参数结构,调整ParamsRes为父子结构,或ParamsRes新增字段依赖需要联动的key与value 优点:返回的结构清晰 缺点:不易做成通用,有一定局限性,多参数依赖的话只能处理与的联动关系。 影响面:较小,如果仅对mysql慢日志参数特殊处理的话不影响其他扫描任务类型。

方案二:

调整params包Param结构体,新增字段依赖需要联动的key与value(接口层也同步新增字段) 优点:可以做成通用 缺点:有一定局限性,多参数依赖的话只能处理与的联动关系。

方案三:

前端对mysql慢日志的参数做特殊处理 优点:成本小,后端不需要调整 缺点:处理后续新增的扫描任务类型或以后其他需要联动的参数 影响面:不影响其他 image

最终方案

前端mysql慢日志的参数做特殊处理 原因:后端处理通用性不强,后续若出现稍复杂的依赖关系不易处理,目前仅有mysql慢日志参数需联动,且成本不高,所以由前端处理(隐藏参数也需要提交,因后端有对参数数量有做校验,后端需补充参数默认值,以默认值提交即可)

iwanghc avatar Aug 19 '24 06:08 iwanghc

扫描任务操作按钮根据权限显示和隐藏

1、创建编辑页面,可选数据源根据权限显隐【前端】 2、页面增删改和立即审核按钮根据权限显隐【前端】 3、实例扫描任务接口返回instance id,支持前端获取权限【后端】

iwanghc avatar Aug 19 '24 07:08 iwanghc

扫描任务详情表格数据加载异常

例: image 此时为初次通过SQL优先级筛选,数据正常。

清楚筛选后再次筛选,表格数据出现异常 image 可以明显发现表格数量多于接口返回的数据。

LZS911 avatar Aug 20 '24 07:08 LZS911

关联Comment:https://github.com/actiontech/sqle/issues/2523#issuecomment-2295848522 实例扫描任务列表instance_id出现精度丢失 解决:返回转成string返给前端

iwanghc avatar Aug 23 '24 07:08 iwanghc

关联遗留问题:https://github.com/actiontech/sqle/issues/2572

iwanghc avatar Aug 30 '24 06:08 iwanghc

测试

mysql慢日志采集时,start_time字段未保存问题修复 image start_time字段有值,符合预期 扫描任务没有增量同步 image

扫描任务跑增量同步时,获取到不需要同步的任务问题修复 停用慢日志扫描任务 image

数据库中新增慢日志 image

sql_manage_records表没有新增慢日志 image

TBase数据源扫描任务概览新增连接信息字段 新增TBase慢日志扫描任务 image 新增连接信息 image

智能扫描自定义参数间的联动 mysql慢日志选择scanner时,没有其他选择 image

mysql慢日志选择mysql.slow_log时,出现采集周期以及采集时间选项 image

扫描任务详情表格数据加载异常 初始时 image 筛选高优先级sql,sql数量少了一条 image 清除筛选选项后,再进行筛选 image 没有出现数据异常现实的问题,符合预期

验证创建智能扫描任务时数据源获取需要根据权限进行筛选 配置成员与权限 image image 无法看到他人创建的扫描任务 image 只能为对应数据源创建扫描任务 image 创建成功 image

为user2用户配置查看他人创建的智能扫描任务权限 image image 可以看到其他人创建的智能扫描 image 没有创建扫描任务按钮 image

一开始只拉取24h内的慢日志 img_v3_02eb_d3c73d3e-2faf-44d6-b766-6454012231bg 24h内的慢日志是空的 img_v3_02eb_c4fd2961-7c36-48dc-8c38-796cfa68be8g 修改这个参数,拉取2400个小时内的慢日志 img_v3_02eb_5e2c719b-0285-4e0d-a88d-1479d546598g 成功采集到数据 image

hasa1K avatar Aug 30 '24 10:08 hasa1K