简介
NoSqlStudio 中的每个监控屏幕 — mongostat、mongotop、Current Op、Replica Set Status、Realtime dashboard — 只在其标签页打开时轮询服务器。关闭标签页轮询就停了。后台录制器改变了这一点:它把录制变成一个job,独立运行,与任何标签页无关。
用途
你在正在查看的屏幕上启动录制,然后可以自由关闭该标签页、打开其他标签页,或者让 NoSqlStudio 在后台继续工作。录制会继续。当你回来时,屏幕的历史记录视图会展示你离开期间捕获的所有内容。
概念
录制器是什么
录制就是一个小型的后台 job。它以固定节奏轮询一个连接,并将每个采样写入屏幕自己的历史记录视图已经读取的同一个历史存储中。它由录制引擎管理 — 不是标签页 — 所以关闭标签页不会让它停下来。
注意
这是一个工作站工具,不是 24/7 可观测性方案
录制器在你的机器上、在 NoSqlStudio 内部运行。如果你退出应用、注销、机器睡眠或断电,捕获就停止 — 服务器上没有 agent。把它用于聚焦的排查窗口(一次事件、一次压力测试、一个可疑的夜间 job),不要把它当作服务器端监控的替代品。
如何阅读本指南
每一步包含:
- 操作 — 确切的动作。
- 查看 — 屏幕上应该发生什么。这是你的通过 / 失败检查。
- 为什么 — 背景信息,何时有用。赶时间可以跳过。
你需要一个已连接的 MongoDB 连接,以及在该连接上打开的一个监控标签页。
启动一次录制
录制总是从一个监控屏幕开始 — 就是你想捕获的那个。
打开一个监控屏幕
打开任何可录制的屏幕 — mongostat、mongotop、Current Op、Replica Set Status 或 Realtime dashboard — 在一个已连接的连接上。
实时屏幕,照常轮询。它的工具栏上有一个 🔴 Record 按钮。
点击 🔴 Record
点击工具栏上的 🔴 Record 按钮。
按钮变成 ⏹ Stop recording,并带上红色描边。一次后台录制现在对该连接生效。
按钮读取的是录制器的真实状态。如果录制因别的原因停下来 — 你在 Job Manager 中停了 job,或者连接掉了 — 按钮会自动翻回 🔴 Record。
概念
从侧边栏的快捷方式(database 范围)
在左侧侧边栏右键点击任意 database,选 🔴 Start recording (Profiler)。效果和手动打开 Profiler 再点 Record 一样:Profiler 标签页打开,该 database 已预选,一次以 database 为范围的录制在后台启动 — 一次点击搞定。
选择节奏(可选)
录制之前,把屏幕的 refresh interval 调到你想捕获的节奏。你按下 Record 时显示的就是录制器使用的轮询间隔。
概念
快节奏(250 ms)适合实时屏幕,但对长时间录制太重。对于以后要回看的录制,慢一点的节奏 — 几秒钟一次 — 能在不丢趋势的前提下保持历史紧凑。
在 Job Manager 中看到它
录制是一个 job,所以它会出现在 jobs 出现的所有地方 — 可见且可控。
打开 Job Manager
打开 Job Manager 标签页。右上方的筛选下拉框有一个 Monitoring (N) 选项,可以把列表收窄到只显示录制 jobs。
刚启动录制的那个连接对应的 Monitoring job。它会显示连接、监控类型和正在录制的范围。
Job Manager 是列出所有正在运行的录制的唯一地方。同时打开了多个监控标签页的 DBA 一眼就能看清楚什么在 — 什么没在 — 被录制。
概念
Watch(Change Watcher)也算 Monitoring job
一个打开了自己录制开关的实时 Watch 会在同样的 Monitoring 筛选下注册到 Job Manager — Watch 屏幕上没有单独的 Record 按钮,因为 change-watcher 本身就已经拥有了流和历史镜像。录制器只是在这里把它显示出来,这样 DBA 就能在一个地方看到所有正在进行的录制。
查看侧边栏 — 录制红点
看一眼左侧侧边栏里的连接。
带有正在进行的录制的连接,名字旁边会有一个会脉动的小红点。红点会出现在录制覆盖的每一层级:任何录制活动时显示在连接上,以 database 为范围的录制(例如 Profiler)运行时显示在 database 上,以 collection 为范围的录制运行时显示在 collection 上。
概念
红点颜色的含义
红色(每 ~1.6 秒脉动一次)— 录制健康,采样正在落入 management database。琥珀色 — management database 暂时不可达,采样正缓冲到本地文件(短暂中断;database 恢复后采样会被回填)。红色,快速脉动 — 录制需要你关注(连接丢失,需要重新认证)。
概念
把侧边栏过滤到只显示正在录制的连接
点击侧边栏顶部的漏斗图标打开筛选弹窗。一个 Background recording 组让你把列表收窄到 All connections(默认)、Only recording,或 Only not recording。当你打开了很多连接,想专注于有捕获的那些 — 或没有捕获的那些时,这很有用。
关闭标签页 — 捕获继续
这就是录制器的整个意义所在:录制和标签页解耦了。
关闭监控标签页
关闭你启动录制时所在的那个监控标签页。打开其他标签页,或者继续工作。
Job Manager 仍然显示这个 Monitoring job,仍在运行。侧边栏的红点依然是红色。什么都没被中断。
录制引擎是一个应用级的单一服务。轮询循环归它所有。标签页只是一个查看器 — 关闭它移除的是查看器,不是录制。
重新打开屏幕并回看
重新打开同一个监控屏幕,切换到历史记录视图。
历史记录覆盖了整个时间窗 — 包括标签页关闭的那段时间。你通常会看到的那个空缺消失了。
录制的数据存到哪里
录制器复用每个屏幕已有的历史存储,所以录到的采样就在屏幕自己的历史记录视图已经在读的位置。
Management database,主存储
如果你还没配置,在 Settings ▸ Database 中配置一个 management database。
录到的采样被写入那个 database。它是主存储 — 持久,且可以在多台机器间共享。
本地磁盘,仅作应急
概念
如果 management database 短暂不可达,采样会缓冲到一个本地文件,这样不会丢任何东西。database 恢复后,缓冲的采样会回填到里面。磁盘是降级方案,不是并行副本 — database 健康时,录制器只写它。
诚实的边界
知道录制器不做什么和知道它做什么一样重要。
机器得开着
概念
应用重启时,录制会自动恢复
录制器还给你的是重启前后的连续性。每一个你按了 Record 又没按 Stop 的录制都会被记住。当你重新打开 NoSqlStudio,每个录制会在其连接重新连接后自动恢复 — 在 Job Manager 中以一条新条目出现。你不用再按任何按钮。退出前的那次录制会以 Done (interrupted) 和一个时间戳关闭,新的从那一刻继续。
重连和重新认证
如果连接掉线,只要凭据可以在不弹窗的情况下刷新(SCRAM、X.509、AWS-IAM),录制 job 会自己重连。
录制按连接和范围进行
在某个屏幕上按 Record 录制的是那个连接,范围就是 job 上显示的那个。打开其他监控标签页不会把它们也录进来 — 每一次录制都是显式的。Job Manager 列出的就是正在捕获的内容:不多,不少。
停止录制
录制会一直运行,直到你停下它。有两种等价的方法:
- 在监控屏幕上,点工具栏中的 ⏹ Stop recording。
- 在 Job Manager 中,停止那个 Monitoring job。
两种方式都会让轮询循环结束、job 被标记为完成、侧边栏红点消失。断开连接也会停掉它上面的所有录制 — 一个 job 无法对一个已经断开的服务器继续轮询。
概念
录制特意做成显式启动、显式停止。没有隐藏的捕获 — 如果你看不到 Monitoring job,就什么都没在被录制。
摘要
| 问题 | 答案 |
|---|---|
| 怎么启动录制? | 在任意可录制的监控屏幕的工具栏中点击 🔴 Record。 |
| 关闭标签页后还会继续吗? | 会。录制是后台 job,和标签页相互独立。 |
| 在哪里能看到正在进行的录制? | Job Manager(Monitoring jobs)和侧边栏的录制红点。 |
| 数据存在哪里? | 已配置的 management database(主存储);出现故障时本地磁盘作为降级方案。 |
| 如果我关闭应用会怎样? | 应用关闭期间捕获暂停。重新打开后,每个录制都会在其连接重新连接的瞬间自动恢复 — 不用再按任何按钮。 |
| 侧边栏红点是什么意思? | 一次正在进行的录制:红色 = 健康,琥珀色 = mirror 短暂不可达(缓冲到磁盘),红色快速脉动 = 需要关注。红点出现在正在被录制的层级 — 连接、database 或 collection。 |
| 怎么停止? | 在屏幕上点 ⏹ Stop recording,或者在 Job Manager 中停止那个 job。 |