Real-time GPU monitoring for DSAI, Rockfish, and IA1 servers. A FastAPI backend runs the collector scripts via SSH and exposes a REST API; a React/Vite frontend displays the data.
- Python 3.9+
- Node.js 18+
- SSH access configured for
dsai,rockfish, andia1hosts
# Install Python dependencies (using uv) uv sync # Or with pip pip install fastapi uvicorncd frontend npm install./run.shBuilds the frontend (skipped if frontend/dist/ already exists) and serves everything on http://localhost:5000. Pass --rebuild to force a fresh frontend build.
Open two terminals.
Terminal 1 — backend (port 8000):
uvicorn app:app --reload --port 8000Terminal 2 — frontend (port 5173):
cd frontend npm run devOpen http://localhost:5173 in your browser.
| Method | Path | Description |
|---|---|---|
GET | /stats | All servers combined |
GET | /stats/dsai | DSAI stats |
GET | /stats/rockfish | Rockfish stats |
GET | /stats/ia1 | IA1 stats |
POST | /stats/refresh | Force-refresh all servers |
POST | /stats/{server}/refresh | Force-refresh one server |
Stats are cached for 15 minutes. The backend refreshes all servers on startup and every 15 minutes in the background.
gpu-stats-ia1-lab/ app.py # FastAPI backend pyproject.toml # Python dependencies danielgpus_dsai.py # DSAI collector script danielgpus_rockfish.py # Rockfish collector script danielgpus_ia1.py # IA1 collector script frontend/ # React/Vite frontend src/app/App.tsx src/app/components/ src/app/types/ 
