「1024 TiDB AIGC 黑客松」TiScope · TiDB 集群透视仪

【作品名称】
TiScope · TiDB 集群透视仪
【选择的创作方向】
这是一个可以拿去直接运行的工具!
【作品说明】
集群状态散在 tiup、pd-ctl、cdc 三条命令里,数字看得见、含义看不懂。TiScope 把它聚成分层架构图,就地解释「为什么这么判」:副本为何是 3、Region 为何在搬、节点为何扣分。tiup、pd-ctl、cdc 可通过web页面直接操作,无需再在命令行执行。

先看张图:







先说一个我反复遇到的场景

新同事接手集群,第一件事是问:「我们集群到底长什么样?」
你让他跑 tiup cluster display。
每个字都对,但讲不出故事。 他看完还是不知道 5 个 TiKV 和 2 个 TiFlash 是什么关系,不知道 Region 为什么是 16290 而不是 5430,不知道 store limit 调完之后集群里发生了什么。
TiFlash 的 Leaders 恒为 0,新手会以为那台挂了
问题从来不是拿不到数据,而是拿到的数据不会自己说话。

TiScope 想做的事就一句:先用真实数据把架构画出来,再在图上解释为什么,最后让运维动作就发生在图旁边。

一、看得见:分层拓扑 + 数据流动画

SQL 层 → 调度层 → 存储层,再分叉成列存副本与增量同步两条链路,

一路画到 MySQL / Kafka 下游。

二、讲得清:6 段技术解读,就地展开

架构 / Multi-Raft / HTAP / 调度 / TiCDC / 扩缩容,每段都写在对应图层的旁边,
不是另开一个文档。
比如「为什么缩容必须先排空再 prune」:直接 scale-in 会留下 Tombstone 状态的 store, PD 会一直等它回来。tiup cluster prune 才是真正清理元数据的那一步。

这两步在图上是分开的两个按钮,中间有明确提示。

三、用得上:不是截图工具

扩缩容、PD 配置与调度限速、TiCDC 同步任务管理,都能在图旁边直接下发。
危险命令拦截 + 二次确认 + 审计落盘,一个都不少。

四、看体征:我到底有多少数据?哪个节点不好、为什么不好?

这是我最想做、也最容易做错的两块。
数据量统计 —— 逻辑量(÷ 副本数,TiFlash 单算)与物理占用分列,
Region 两种口径标明来源,副本倾斜与 Leader 倾斜分开看,

外加按库按表的数据量(行数 + 数据/索引大小,按大小倒序)。

节点健康度 —— 100 分制 + 五档评级,每个节点可展开看到每一条检查项的判定依据。

给分数很容易,给理由才有用。

五、替你盯着:从「看清当下」到「持续运转」

  • 磁盘水位预测:对历史采样做线性外推,回答「照当前增速还有几天到 80% 水位线」。

磁盘满是慢性病,而扩容 + 排空要好几天 —— 等红了才动手已经晚了

  • 一键巡检报告:结论、问题逐条、数据量与水位、分数趋势,拼成 Markdown 下载

  • 健康度告警:服务端后台盯着健康分,只在状态迁移时(变坏 / 升级 / 恢复)推一条到

企业微信 / 钉钉。刷屏的告警很快就会被人忽略 —— 告警的价值密度比覆盖频率重要

六、知道了要改,但改成多少?

这是运维里最消耗人的一段:参数名记不住(PD 有 55+ 项配置、TiDB 有 600+ 个系统变量),

数字不敢给(给小了没效果,给大了把生产打挂),改法不确定(有的能在线改,有的要滚动重启)。

参数调优把三层参数放在一页:PD 配置 / 组件运行参数 / TiDB 系统变量,

每一项都带中文说明、当前值、建议值、修改方式。

  • 知道改什么:195 个系统变量 + 79 项 PD 配置的中文说明,与集群实时读到的值叠加。

字典没收录的变量也照样列出来 —— 真实集群有 600+ 个变量,只覆盖字典那部分等于没列全

  • 知道改成多少:按集群画像(TiKV 台数 + 数据量取更高档)自动判档,每档给出建议值和理由

  • 知道怎么改:能在线改的一键下发;改不了的明确告诉你为什么

七、你可能会问:Dashboard 不是已经有了吗

肯定要问,我自己也问过。说实话,TiDB Dashboard 在监控深度上远超 TiScope ——

Prometheus 时序、Key Visualizer 热力图、Profiling、慢查询分析,

这些 TiScope 不做,也不打算做。它俩不是替代关系。

TiScope 补的是另外三块:

三点补充:

  1. 闭环。Dashboard 里看到热点,下一步还是要回到命令行去改。TiScope 里看到,

下一步就在旁边 —— 改完立刻能看到新的调度状态。

  1. 解释。这是我最在意的。给分数很容易,给理由才有用 —— 尤其是你要把结论

甩给不懂 TiDB 的人看的时候。

  1. 能装上。真实客户环境里,Dashboard 常常只在部分集群开着,

中控机也不一定允许装 Docker。一个 python server.py 就能跑的东西,落地阻力小得多。

至于演示模式,它是给培训用的:新人入职第一周,让他先看图,再学命令,

比直接丢一份 tiup cluster display 的输出友好得多。

九、30 秒跑起来

零依赖:Python 标准库,无第三方包、无构建步骤、无框架、无 CDN。

(部署目标是生产中控机 —— 那种机器上装包要审批、pip 源可能不通、Python 可能是 3.6。

能直接跑起来,比用什么框架重要得多。)


git clone https://gitee.com/fengshuhui/tiup-web.git

cd tiup-web

python server.py --port 8686

# 打开 http://127.0.0.1:8686

没有 TiDB 集群也能看:点右上角「演示模式」,内置 17 节点仿真集群

(含 1 个故障节点、1 个异常同步任务)。

演示模式不会动你的真实配置:进演示前会把 cluster / version / PD / TiCDC

快照进 demo_backup,退出时原样还原。

版本兼容:6.0 ~ 8.5。7.5 与 8.5 的命令差异(比如 cdc cli 的 --server vs --pd)、

ctl 组件下载慢导致的超时、老版本没有 status.available 字段,都有兜底。

项目规模

使用的 AIGC 工具说明

官方要求说明创作手段,这里如实交代,不夸大也不藏着:

主要工具:

  • WorkBuddy(AI 编程助手) —— 全程主力。从「能不能做个可视化页面」这句需求开始,

到架构设计、代码编写、回归测试、截图、演示视频脚本,都是对话式完成。

本贴的初稿与排版也由它生成,再由我逐段核对技术表述、补上真实排障细节。

  • AI 图像生成模型(AI 绘画) —— 开头那张四格漫画的 4 张 Q 版插画。

我出分镜与画面描述,模型生成插画;文案、编号、排版、去水印是我做的

(AI 画中文几乎必乱码,所以插画里一个汉字都没放,文案全部由 HTML 排版)。

  • ffmpeg + Playwright(脚本化,非 AI 生成内容) —— 演示视频的 13 个分段、

中文字幕叠加与转场由 tests/make_video.py 自动合成,没有使用 AI 视频生成工具。

AI 参与到了什么程度(这点我想说清楚):

没有用 AI 生成视频和音乐 —— 演示视频是 ffmpeg 按脚本合成的(画面全是真机截图)。

四格漫画的插画是 AI 画的,但它的文案和「梗」来自我自己的日常工作:

第 ① 格那个对着 tiup cluster display 发懵的人,就是几年前刚接手集群的我。

这是一个真能连真集群的运维工具,不是概念演示 。


安全

  • 默认只读;变更类操作二次确认,并落审计

  • 命令白名单 + 参数校验,危险命令(销毁、删除数据目录)直接拒绝

  • SQL 通道只放行 SELECT / SHOW / SET / EXPLAIN,想跑 DDL/DML 请去命令控制台走确认流程

  • SQL 密码只存在进程内存,不写配置文件、不进日志

  • :warning: 默认监听 0.0.0.0。生产中控机上请加 --host 127.0.0.1 或配防火墙,

不要直接暴露到公网


想听听大家的意见

目前我自己最想补的三件事:

  1. 慢查询 / 热点表的下钻:现在能看到哪台 store 热,还看不到是哪张表把它打热的

  2. 多集群对比:手里有 3 套集群时,逐个切着看很累

  3. 巡检报告的定时投递:现在能一键导出 Markdown,还没做定时邮件

如果你也有「这个数字看不懂」「这个操作不敢点」的时刻,欢迎在评论里告诉我 ——

这类反馈比功能需求更值钱,因为它指向的是工具没说清楚的地方。


源码与演示

Issues 和 PR 都开着,README 里有完整的启动说明和目录介绍。


2 个赞

这工具权限有点大,大家拿去慎用!!!

不错,越来越实用,也越来越完善了。

工具优秀

看着有点牛哇

哇!太实用的工具啦!
恭喜老师您的作品审核通过,可进入下一阶段社区投票~ 期待创作更多有价值的作品!

工具优秀

厉害👍

有需求大家可以提,随时优化修改。

优秀,TiDB控制台。