5. 系统监控
autonomy/system/monitor/ 通过 /proc、sysfs 采集 CPU、内存、磁盘、网络、进程、NTP 等指标;可选 Prometheus 暴露与 gperftools 分析。x86_64 / aarch64 同一套实现。
5.1 配置(Lua)
默认文件:config/system/monitor.lua。
监控项 |
选项字段 |
|---|---|
CPU |
|
GPU(DRM |
|
内存 |
|
磁盘 |
|
网络 |
|
NTP( |
|
进程 |
|
Channel 健康 |
|
管线延迟 |
|
Hazard |
|
MRM 急停 |
|
电压 |
|
Prometheus |
|
采集周期 |
|
gperf |
|
5.2 独立进程
monitor --configuration_directory=config --configuration_basename=system/monitor.lua
或通过 launch:
export AUTOLINK_LAUNCH_PATH=$PWD/autonomy/system/launch
autolink_launch monitor.launch
与导航栈一并启动:autonomy/system/launch/autonomy.launch。
5.3 嵌入代码
#include "autonomy/system/monitor/monitor_options.hpp"
#include "autonomy/system/monitor/monitor_registry.hpp"
using namespace autonomy::system::monitor;
auto opts = LoadMonitorOptions("config", "system/monitor.lua");
MonitorRegistry registry(opts);
registry.Start();
registry.CollectAll(); // 或由定时线程周期性调用
5.4 构建选项
CMake 选项 |
说明 |
|---|---|
|
启用 prometheus-cpp,暴露 |
gperftools 为可选;未安装时 CPU/堆分析为空实现。
5.5 相关文档
源码 README:
autonomy/system/monitor/README.md