Skip to content

(v0.3.1) Dashboard v2: Topology View, Remote Remediation & Fleet Redesign

Choose a tag to compare

@mitulgarg mitulgarg released this 15 Apr 13:41
· 10 commits to main since this release
c6a3dac

env-doctor v0.3.1

Dashboard v2: Topology View, Remote Remediation & Fleet Redesign

This release transforms the fleet dashboard from a static monitoring UI into an interactive operations console with a graph-based topology view, remote command execution, and redesigned fleet health page.

Topology View

An Obsidian-style force-directed node graph that shows the dashboard hub and all connected GPU machines at a glance.

  • GPU-card-shaped nodes sized by hardware tier — budget GPUs get a small card, datacenter GPUs (A100, H100) get a large server slab with rack lines and LED indicators
  • Hub node displays the env-doctor stethoscope logo with a blue glow border
  • Click any GPU node to zoom in and see hardware details (left panel) and diagnostics (right panel)
  • Drag any node — hub or machine — and watch the graph react with spring physics
  • Scroll to zoom, pan by dragging empty space, press Escape to reset

Remote Remediation

Queue env-doctor CLI commands directly from the dashboard — they execute on the GPU machine on its next check-in. No SSH, no inbound ports, works behind NATs and firewalls.

Dashboard (operator clicks "▶ Run")
    └──▶ Command queued in database (status: pending)

GPU Machine (scheduled cron)
    └──▶ env-doctor check --report-to http://<dashboard>:8765
         └──▶ Server returns pending commands in HTTP response
              └──▶ CLI executes commands, posts output back
                   └──▶ CLI re-runs check to verify fix
  • Only env-doctor / doctor prefixed commands are accepted (security scoped)
  • Terminal output is printed locally and posted back to the dashboard
  • Commands that crash mid-execution still report their error to the server
  • The Fleet page shows real-time command status: pending → running → done/failed with full output

Fleet Overview Redesign

The fleet page is now an operations-focused view for managing GPU health at scale.

  • Pie chart showing pass/warning/fail distribution across the fleet
  • Health gauge per machine (SVG arc, scored by issue count)
  • "▶ Run on Machine" buttons for each recommended command — one click to queue
  • Smart recommendations: broken libraries get "Fix" actions, missing libraries get "Install" actions, plus "Re-run diagnostics"
  • Expandable rows with full diagnostics per machine

Bug Fixes

  • Library status logic: Missing libraries no longer inflate issue count or trigger warnings when at least one library is installed
  • Install command fallback: Libraries without a CUDA-specific mapping (e.g. jax) now fall back to pip install <lib> instead of crashing
  • sys.exit() removed from install command: Previously killed the process before remote command results could be posted back
  • Windows encoding fix: Remote command execution uses UTF-8 instead of system default cp1252
  • Heartbeat always checks for pending commands: No more --force required to pick up queued commands

Dark Theme

Consistent dark background (#0d1117) across all pages — topology, fleet, and machine detail. Sidebar includes the env-doctor logo and a subtle "Feedback / Issues" link to GitHub.


Install / Upgrade

pip install --upgrade env-doctor

# With dashboard support
pip install --upgrade "env-doctor[dashboard]"

Quick Start

# Start dashboard
env-doctor dashboard

# Register machines (run on each GPU node)
env-doctor check --report-to http://<dashboard-ip>:8765

# Set up automatic check-ins
env-doctor report install --url http://<dashboard-ip>:8765 --interval 5m

Full changelog: https://github.com/mitulgarg/env-doctor/blob/main/CHANGELOG.md