How kanoai7/lab-gpu-monitor works
Lab GPU Monitor collects machine and per-GPU metrics through per-host agents, then exposes them to two user-facing clients: a terminal CLI and a central web dashboard. The main web workflow is operator configuration of agents, dashboard polling of their snapshots, and overview/detail pages presenting live metrics and history. The README documents the agent and client roles; sampled frontend files show the dashboard’s API-backed views and components. Backend internals and the CLI were not excerpted, so their finer-grained relationships are limited to documented behavior.
Main entry points: api.js Dashboard API client · router.js Page routing · Host.vue Host detail · dashboard.py Dashboard server
Components 17
Metric collection
- Host metrics agent
monitor_serve/agent.py
Dashboard backend
- Dashboard server
monitor_dashboard/dashboard.py - Metric history
monitor_dashboard/history.py
Dashboard interface
- Web application shell
monitor_dashboard/frontend/src/App.vue - Page routing
monitor_dashboard/frontend/src/router.js - Cluster overview
monitor_dashboard/frontend/src/views/Overview.vue - Host detail
monitor_dashboard/frontend/src/views/Host.vue - Runtime settings
monitor_dashboard/frontend/src/views/Settings.vue - Dashboard API client
monitor_dashboard/frontend/src/api.js - Host summary card
monitor_dashboard/frontend/src/components/HostCard.vue - GPU panel
monitor_dashboard/frontend/src/components/GpuPanel.vue - Metric charts
monitor_dashboard/frontend/src/components/MetricChart.vue - GPU process table
monitor_dashboard/frontend/src/components/ProcTable.vue - Metric bar gauge
monitor_dashboard/frontend/src/components/BarGauge.vue - Metric gauge
monitor_dashboard/frontend/src/components/Gauge.vue
Terminal client
- Terminal monitor client
monitor_cli_client/main.py
Other components
- Lab operator
Connections 23
- Lab operator → Terminal monitor client: operates
README.md - Lab operator → Web application shell: uses
README.md - Host metrics agent → Dashboard server: serves metrics to
README.md - Terminal monitor client → Host metrics agent: polls
README.md - Dashboard server → Host metrics agent: polls
README.md - Dashboard server → Metric history: uses history
monitor_dashboard/dashboard.py - Web application shell → Page routing: uses routes
monitor_dashboard/frontend/src/main.js - Web application shell → Dashboard API client: loads config through
monitor_dashboard/frontend/src/App.vue - Page routing → Cluster overview: routes to
monitor_dashboard/frontend/src/router.js - Page routing → Host detail: routes to
monitor_dashboard/frontend/src/router.js - Page routing → Runtime settings: routes to
monitor_dashboard/frontend/src/router.js - Cluster overview → Dashboard API client: fetches snapshots
monitor_dashboard/frontend/src/views/Overview.vue - Cluster overview → Host summary card: renders
monitor_dashboard/frontend/src/views/Overview.vue - Host detail → Dashboard API client: requests data
monitor_dashboard/frontend/src/views/Host.vue - Host detail → Metric charts: renders
monitor_dashboard/frontend/src/views/Host.vue - Host detail → GPU panel: renders
monitor_dashboard/frontend/src/views/Host.vue - Host summary card → GPU panel: renders
monitor_dashboard/frontend/src/components/HostCard.vue - Host summary card → Metric gauge: renders
monitor_dashboard/frontend/src/components/HostCard.vue - GPU panel → GPU process table: renders
monitor_dashboard/frontend/src/components/GpuPanel.vue - GPU panel → Metric bar gauge: renders
monitor_dashboard/frontend/src/components/GpuPanel.vue - Runtime settings → Dashboard API client: loads and saves
monitor_dashboard/frontend/src/views/Settings.vue - Dashboard API client → Dashboard server: HTTP requests
- Terminal monitor client → Host metrics agent: displays snapshots