用途:SysWatch 是面向 macOS 和 Linux 的单主机系统诊断终端界面(TUI),用 Rust 编写,把 htop、iostat、vm_stat、powermetrics、launchctl 等工具的信息整合到十二个可切换标签页中,并提供通俗语言的异常检测和整场会话回放。
主要能力:十二个标签页分别为 Overview、CPU、Memory、Disks、Filesystems、Procs、GPU、Power、Services、Net、Timeline、Insights。支持 1 Hz 默认刷新(可用 --tick 指定毫秒),可用 --tab 直接进入某标签页;按键 1-9、0、-、+ 切换标签,Tab/Shift-Tab 循环,方向键选择行或回放会话,p 暂停采集,q 退出。Insights 标签以通俗语言给出异常卡片,Timeline 提供会话日志与回放。
安装与运行: git clone https://github.com/matthart1983/syswatch.git && cd syswatch cargo build --release ./target/release/syswatch 要求 Rust 1.75+,Linux 无需额外系统依赖,macOS 自动链接系统框架。Crates.io、Homebrew 和预编译二进制计划在 v0.1 发布。
扩展方式:采集器放在 src/collect/,标签渲染器放在 src/tabs/,Insights 为 src/insights/ 中的纯函数;Ring 环形缓冲为回放提供支持。可选 Cargo 特性包括 gpu-nvidia(需 NVML/nvidia-smi)和 smart(需 smartctl)。
平台与限制:macOS 上 Apple Silicon 的 GPU 利用率与显存可免 sudo 读取,风扇转速、组件功耗、GPU 温度需 sudo powermetrics,程序只显示提示不主动索权;Linux 热区、GPU、电源数据来自 sysfs,核心功能无需提权。SysWatch 不做多主机监控、不是守护进程、不推送 Prometheus、只读不执行 kill/renice/卸载/重启、不做日志检索、不提供平滑图表。