运维场景
在数据库日常运维中,企业通常面临以下容量管理与巡检挑战:
容量风险发现滞后:磁盘写满、CPU 打满、内存 OOM 等容量问题往往在业务受影响后才被发现,缺乏主动的容量趋势预测和提前预警机制。对于 Distributed Cache(兼容 Redis) 的内存淘汰穿透风险、MongoDB 分片不均衡导致的容量热点,传统监控更难提前感知。
容量规划缺乏数据支撑:扩容决策依赖经验而非数据,缺少增长趋势预测、预计触达阈值时间、淘汰影响评估等量化分析,难以制定科学的扩容计划和优先级排序。
解决方案
DatabaseClaw 采集腾讯云可观测平台(Monitor)、数据库智能管家(DBbrain)和各数据库产品 API 数据,对 CPU、磁盘、内存等维度进行趋势预测与风险判断,输出结构化的容量预测报告。
各数据库引擎支持的分析能力
数据库引擎 | 分析维度 | 核心能力 |
MySQL | CPU / 磁盘(数据盘+日志盘)/ 内存 | P95 计算、增长率、预计写满时间、CPU 轻量归因 |
Distributed Cache(兼容 Redis) | 内存 / CPU | 线性回归预测到达阈值时间、淘汰穿透风险评估、5 点位 CPU 趋势、环比同比 |
MongoDB | 磁盘 / CPU | 5 点位趋势、环比同比、24h 增长加速度判定、紧迫度预测、节点角色差异化阈值 |
方案优势
统一入口、自动路由:用户只需用自然语言描述需求(如“帮我做 Distributed Cache(兼容 Redis) 容量预测”),系统自动识别数据库类型和任务类型,路由到对应子 Skill 执行。
确定性计算:所有数值计算(P95、增长率、线性回归预测、预计写满时间、告警等级判断)均由 DBbrain 组件预计算与脚本处理完成,不依赖 LLM 口算,结果可复核、可追溯。
差异化阈值体系:不同数据库、不同容量等级使用不同的告警阈值。
多维趋势预测:不止判断当前阈值,还计算多时间窗口增长率、趋势方向(加速/匀速/放缓/回落/波动)、预计触达阈值时间、线性回归拟合(Distributed Cache(兼容 Redis)),区分"稳定高位"与"加速增长"的不同风险等级。
淘汰穿透评估(Distributed Cache(兼容 Redis)专有):结合 evicted_keys、CmdHitsRatio 变化量化 Distributed Cache(兼容 Redis) 淘汰对业务的影响,判定缓存穿透风险等级。
CPU 根因归因:MySQL CPU 告警触发后自动拉取 QPS/TPS/慢 SQL/线程数等归因指标;Distributed Cache(兼容 Redis) CPU 高水位时结合 QPS 和连接数推断原因;MongoDB 按节点角色(Primary/Secondary/Mongos)给出差异化原因分析。
应用场景
场景 | 核心痛点 | 方案关键能力 |
MySQL 磁盘容量预警 | 磁盘写满导致业务中断 | 增长率 + 预计写满时间 + 日志清理异常检测 |
MySQL CPU 异常波动 | CPU 突增后 DBA 手动关联多指标 | 10 分钟窗口环比 + 日/周同比 + 自动轻量归因 |
Distributed Cache(兼容 Redis) 内存容量规划 | 内存打满导致写入拒绝或淘汰穿透 | 线性回归预测到达阈值时间 + 淘汰穿透风险评估 |
Distributed Cache(兼容 Redis) CPU 趋势预判 | CPU 持续高水位影响请求延迟 | 5 点位趋势 + 环比同比 + 周趋势 + 吞吐量关联 |
MongoDB 磁盘容量预测 | 分片集磁盘不均衡导致容量热点 | 副本集/分片维度预测 + 24h 增长加速度 + 紧迫度估算 |
MongoDB CPU 多节点分析 | 多节点 CPU 差异大难以定位瓶颈 | 节点级 CPU 预测 + 角色差异化阈值 + 热点识别 |
多数据库统一巡检 | MySQL/Distributed Cache(兼容 Redis)/MongoDB 巡检割裂 | 统一分发入口,按产品自动路由 |
实践建议
1. 定时任务配合 IM 推送
推荐创建定时任务并配置 IM 推送,容量风险实时通过 IM 群感知,可设置无风险不推送,降低信息推送密度。
2. 合理规划巡检实例范围
单个定时任务建议通过地域 + 实例 ID 列表明确指定巡检范围。如果实例分布集中,建议在配置中显式指定地域,减少全地域拉取实例的耗时。各数据库类型的单批上限:MySQL ≤100 实例;Distributed Cache(兼容 Redis) ≤50 实例;MongoDB ≤100 实例。
3. 根据业务重要程度与特性设置预测频率
对于容量敏感且属于核心链路的业务系统,建议将容量预测分析频率设置为每 10 分钟一次,持续关注 CPU、内存等关键资源的变化情况,及时发现突发容量风险。
对于其他普通业务系统,可将容量预测频率设置为每天一次,对所有实例的整体容量情况进行周期性评估与趋势分析,从而兼顾风险识别的及时性与资源消耗的合理性。
操作示例(MySQL 容量预测)
步骤一:前置准备
下表列出了开始本实践前需满足的条件:
条件 | 说明 |
腾讯云账号 | 已完成实名认证。 |
腾讯云数据库 AI 服务 | |
数据库实例 | 至少已创建一个云数据库 MySQL 实例,且实例处于运行状态。 |
推送目标 | 已在目标 IM 平台创建群机器人并获取其 Webhook 地址。 |
步骤二:准备 IM 推送通道
在目标 IM 平台创建群机器人并获取 Webhook 地址。企业微信、飞书、钉钉及自有 IM 同理,准备好可接收 HTTP POST 请求的 Webhook 地址即可。
步骤三:创建容量预测定时任务
1. 登录 DatabaseClaw 控制台。
2. 在左侧导航栏选择 DatabaseClaw > 实例管理,单击目标实例卡片进入对话页面。
3. 在对话页面顶部工具栏,单击定时任务。
4. 在右侧弹框上方单击创建任务。
5. 根据页面提示配置定时任务。创建时将结果投递设置为 Webhook,并填写 Webhook 地址。
「执行内容」填写内容参考:(可以根据实际需求调整概览信息格式)
示例一:每次容量预测报告都推送
执行 MySQL 容量预测:实例范围:广州地域所有MySQL实例1)全部健康,仅输出以下内容:**【🚨MySQL 容量告警】**✅ MySQL容量(CPU/内存/磁盘)巡检正常,无告警触发总实例数:{total_instance_count}个 | 🟡 风险实例数:{risky_instance_count}个 |✅ 健康实例数:{healthy_instance_count}个2)有告警,按以下格式输出:**【🚨MySQL 容量告警】**总实例数:{total_instance_count}个 | 🟡 风险实例数:{risky_instance_count}个 |✅ 健康实例数:{healthy_instance_count}个**告警详情:****⚠️ {{instance_id}} - {{告警概述}} **> 实例:{{instance_name}}> 证据:{{key_evidence}}+{{趋势变化}}> 建议:{{action}}
示例二:仅推送容量预测风险报告
执行 MySQL 容量预测:实例范围:广州地域所有MySQL实例1)有告警,按以下格式输出:**【🚨MySQL 容量告警】**总实例数:{total_instance_count}个 | 🟡 风险实例数:{risky_instance_count}个 |✅ 健康实例数:{healthy_instance_count}个**报告地址**:[查看完整报告]({{cos链接}}),使用 markdown 链接格式**告警详情:****⚠️ {{instance_id}} - {{告警概述}} **> 实例:{{instance_name}}> 证据:{{key_evidence}}+{{趋势变化}}> 建议:{{action}}2)无风险跳过推送


步骤四:验证推送效果
当容量预测定时任务完成后,会将预测报告推送至已配置的 IM 群聊窗口。
说明:
创建定时任务,验证推送效果时,“执行内容”描述中可先不增加“无风险跳过推送”描述内容,验证通过后再修改。

常见问题
Q1:系统没有正确执行容量分析?
系统根据用户意图关键词和实例 ID 前缀自动路由。如果路由不正确,请检查:
是否明确指定了数据库类型(如“Distributed Cache(兼容 Redis) 容量预测”而非仅“容量预测”)。
是否明确区分了“巡检”和“容量预测”,需要在执行内容中明确描述“容量预测”。
如果意图模糊(如“帮我看容量”且无产品/实例信息),系统会先询问产品类型、实例 ID 和任务类型。
Q2:Distributed Cache(兼容 Redis) 内存预测的置信度低怎么办?
线性回归预测在数据波动大(R² < 0.5)时会标注“预测置信度低”。可能原因:
实例内存使用率波动大(如定时任务导致周期性内存涨落)。
近 7 天内有业务变更导致内存使用模式突变。
数据采样不完整(Monitor 指标缺失)。
建议结合多窗口增长率分析(长期/中期/短期/当前)综合判断,不依赖单一预测值。
Q3:MongoDB CPU 预测中没有 hidden 节点的数据?
这是预期行为。MongoDB 容量预测自动排除 Hidden=true 的节点(不承担业务流量)和 ARBITER 角色(仅投票,无数据无 CPU 压力),仅分析 PRIMARY、SECONDARY(Hidden=false)和 MONGOS(可选)节点。
Q4:Distributed Cache(兼容 Redis) 容量预测报告提示"淘汰穿透风险"是什么意思?
淘汰穿透风险指 Distributed Cache(兼容 Redis) 内存达到上限后开始淘汰 Key,如果淘汰的 Key 被后续请求再次访问,会导致缓存未命中穿透到后端数据库,可能引发后端过载。判定条件需同时满足 ≥2 条:持续驱逐 + 命中率下降 >5% + 水位持续超标。
Q5:报告中的 COS 下载链接过期了怎么办?
容量预测报告的 COS 预签名下载链接有效期为 24 小时。链接过期后需重新执行一次容量预测任务生成新报告,或在 DatabaseClaw 对话中重新请求下载链接。
Q6:如何修改或删除已创建的定时任务?
Q7:批量巡检时部分实例失败怎么办?
批量模式下,单实例失败不阻塞其他实例。最终汇总结果中 errors[ ] 列出失败实例及原因,Agent 会告知用户失败实例清单。常见失败原因:
CAM 权限不足:查看对应实例是否具有 CAM 权限或是否在实例列表中。
API 限流(RequestLimitExceeded):脚本已内置指数退避重试,如仍失败建议稍后重试。