诊断Skill
AnalyticDB for MySQL诊断Skill(alibabacloud-analyticdb-mysql-copilot)内置于ADBAgent,通过自然语言对话,即可完成集群查询、性能监控、慢查询诊断和表级分析等诊断任务。

前提条件
-
创建RAM角色
在RAM控制台创建名为
adbclaw-diagnosis-role的RAM角色。信任主体类型选择云服务,信任主体名称选择云原生数据仓库 AnalyticDB MySQL 版。具体操作,请参见创建可信实体为阿里云服务的RAM角色。角色信任策略配置如下:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::1358535755******:root" ], "Service": [ "ads.aliyuncs.com" ] } } ], "Version": "1" } -
授予权限
为上述RAM角色授予诊断Skill所需的权限,具体操作,请参见管理RAM角色的权限。
说明若在ADBAgent开通时本角色尚不存在,则后续创建本角色后,需5分钟的生效时间。
使用系统策略快速授权
为RAM角色绑定以下任一系统策略即可使用诊断Skill:
策略名称
说明
AliyunADBReadOnlyAccessAnalyticDB for MySQL只读访问权限(推荐,适合运维诊断场景,避免误操作风险)
AliyunADBDeveloperAccessAnalyticDB for MySQL开发者权限(支持诊断及读写操作)
AliyunADBFullAccessAnalyticDB for MySQL完全访问权限(不推荐,包含所有读写操作,请谨慎使用)
使用自定义策略
如需精细控制权限,可创建自定义权限策略,策略内容至少包含以下权限:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "adb:DescribeDBClusters", "adb:DescribeDBClusterAttribute", "adb:DescribeDBClusterPerformance", "adb:DescribeDBClusterSpaceSummary", "adbai:DescribeChatMessage" ], "Resource": "*" } ] } -
开通公网访问
诊断Skill功能需要访问公网,公网开通方式,请参见步骤五(可选):开通公网访问能力。
核心功能
集群查询
查询集群列表及详细属性,快速掌握集群资产全貌。
支持的查询项:
-
集群列表(按地域筛选)
-
集群详细属性(规格、版本、状态)
-
存储空间概览

慢查询诊断
自动检测BadSQL、分析SQL Pattern、引导式定位根因,从“发现慢SQL”到“找到为什么慢”一步到位。
诊断能力:
-
BadSQL检测:自动识别影响集群稳定性的异常SQL。
-
SQL Pattern分析:统计SQL模式的平均耗时、最大耗时、扫描量等,按多种维度排序。
-
运行中SQL分析:查看当前正在执行的SQL,识别高资源消耗操作。

空间诊断
并行执行多项检查,汇总输出集群健康报告。
诊断范围:
-
过大非分区表检测
-
分区合理性诊断
-
主键合理性诊断
-
数据倾斜诊断
-
复制表合理性诊断
-
空闲索引优化建议
-
冷热表优化建议

使用示例
在ADBAgent对话框中,输入以下自然语言指令即可触发对应的诊断操作:
|
场景 |
自然语言指令 |
|
实例查找 |
查询杭州地域有哪些 AnalyticDB for MySQL实例? |
|
慢查询诊断 |
针对张家口实例amv-xxx,帮我做一下慢查询诊断,时间范围是最近2小时 |
|
空间诊断 |
对张家口实例amv-xxx执行空间诊断 |
|
数据倾斜 |
amv-xxx这个实例有没有表数据倾斜?查一下事实表的倾斜情况 |
|
分区合理性 |
amv-xxx分区合理性诊断,看看有没有分区设计不合理的表 |
|
过大非分区表 |
查一下amv-xxx里有没有过大的非分区表 |
|
复制表诊断 |
amv-xxx复制表合理性诊断,有没有不合理的复制表 |
|
空闲索引 |
amv-xxx有没有空闲索引可以清理?想省点存储和写入 |
|
冷热表优化 |
amv-xxx 冷热表优化建议,哪些表可以转冷存储 |
常见问题
Skill没有响应或无法识别指令
请依次排查以下项:
-
集群ID格式是否正确(
am-xxx或amv-xxx) -
是否指定了正确的地域
-
角色是否已正确配置
-
是否已开通公网NAT
权限不足
如果API调用返回权限错误,需要为当前账号授予对应的RAM权限。
查询结果为空
查询无结果时,请确认以下几点:
-
时间范围是否合理(默认查询最近1小时)。
-
集群是否处于正常运行状态。
-
对应诊断数据是否已生成(如优化建议数据通常每日凌晨生成,当天可能暂无数据)。