Instrument · 现场直连 · 只读
打开这一页
就去读一次活集群
这一页不是一份证据,是一台仪器。页面本身不存任何实测值 —— 没有写死的 Region 数、
没有写死的 Leader 分布、没有写死的版本号。你把它指向哪个集群,它就当场去读哪个集群。
它存在的理由很具体:实测笔记那一页的数字会过期,而且会自己变。
第一轮采到的现场在一小时后就被集群自己合并掉了。所以「我量到过 X」这句话,
需要一个能回答「现在还是不是 X」的东西 —— 就是这一页。
只读 · 不写集群任何状态
三个 PD 公开接口
不需要口令 · 不需要 SSH · 不需要客户端
连不上就给可复现命令
集群不在了 · 载入离线快照照样看
连一台集群试试
默认填的是我们那套实验室集群;换成你自己的也行
待机。点「读取一次」读真集群;连不上就点「载入离线快照」。
READER 读到的时刻
—
这是本机浏览器的时间,不是集群时间
各 store
id / 地址 / 状态 / 容量 / Leader 数 / Region 数
当场算出来的判读
下面这些结论由本页实时算出,一个字都不是预先写好的
接口原始返回
没经过任何改写;你要拿去和 curl 的结果逐字对比也行
cluster/status
stats/region
stores
没读到 —— 这本身就是一条要记下来的边界
先别急着改地址,按下面这条命令直接试一次:它绕过浏览器,能区分「集群不通」和「浏览器不让」。
没有可读的集群也不要紧:点上面的「载入离线快照」,
可以用一次留档读数把整台仪器的界面完整走一遍 —— 标注条会写明它采集于何时、来自哪里,
它不是实时值。快照数据单独放在 live-snapshot.js,不在这一页的源码里。
这台仪器刻意不做什么
一条一条写下来,因为它和别的页面定位不同
① 它不写死任何数字。页面上所有数值都来自你刚刚那一次读取。这一条由一个脚本反向守着:
只要有人往源码里塞进任何一个具体读数(Region 数、容量、版本号、日期),构建就会失败。
理由是:一旦这台仪器上出现了写死的数字,它就从仪器退化成了一张会过期的截图。
② 它不缓存、不留痕。请求带 no-store,页面上也不存"上次读到什么"。
关掉再打开就是重新读。你要的是此刻,不是上次。
③ 它不做任何写操作。只调三个 GET 接口:集群状态、Region 统计、store 列表。
没有任何一条路径会修改集群 —— 所以它可以被放心地指着别人的集群用。
④ 它不作为「第几种形式」计数。这个作品的形式数是有守卫看着的(每多一种形式,
就多一个可能白屏的入口,必须过同一道关)。这一页被定位成附件而不是新形式:
它讲不出机制,它只是让机制可以被当场核对。
⑤ 它的离线快照是「留档样本」,不是「实时读数」。真集群不可达时(比如这套集群已经释放),
「载入离线快照」会让界面照常工作 —— 但页面会显式标注:这些值采集于某个时刻,不是此刻。
快照里的每个关键值都可以回到原始输出里逐字核对(有守卫在做这件事),所以它属于证据侧;
而仪器本身不生产证据,只提供读数。
它读不了什么
把它当仪器用之前,先知道它的量程
诚实的边界
-
它读的是 PD 的视角,不是数据库的视角。
这里没有任何一个数字来自 SQL 层。想知道表里有多少行、某个查询有多慢,这一页帮不上忙 ——
那些需要连接数据库,也就必然需要口令。
-
PD 的公开接口默认没有鉴权,仅适合内网。
这不是漏洞,是它的设计定位(集群内部组件之间调用)。但如果你把 PD 端口暴露到公网,
任何人都能读到你的拓扑与容量 —— 所以正确做法是用防火墙限制来源,而不是指望它自己把关。
本页默认填的是内网地址,正是这个原因。
-
跨域与混合内容是两道真实的墙。
PD 的响应带了允许跨域的响应头,所以本机打开这一页可以直接读;
但如果这一页本身是通过 https 打开的,浏览器会以「混合内容」为由拦下对 http 集群的请求 ——
这是浏览器在保护你,不是集群的问题。遇到这种情况,本页会直接告诉你,并给出 curl 命令。
-
它不替代实测笔记。
实测笔记里的每一条都带着采集时刻与原始日志,可以逐字复核;
这一页给的是此刻的读数,读完即弃、不构成任何证据。
两者合起来才是完整的:实测负责"我量到过什么",现场负责"现在是不是这样"。
-
离线快照是「留档」,不是「现在」。
真集群不可达时载入的那份快照,来自某一次真实采集(采集时刻、目标、来源都写在标注条上),
每个关键值都可以回到原始输出里逐字核对。但它只能当历史读数读:
它回答不了"现在还是不是这样" —— 那个问题只有「读取一次」能回答。
继续走
想知道这些数字是怎么量出来的