Skip to content

sorenwacker/slurm-usage-history

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

261 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SLURM Dashboard

Web dashboard for SLURM cluster usage analytics powered by DuckDB.

Python 3.10+ License: GPL v3

Documentation | GitHub

SLURM Dashboard Screenshot

Quick Start with Docker (Demo)

Try the dashboard with synthetic demo data in 3 steps:

# 1. Start the dashboard
docker-compose up -d

# 2. Open http://localhost:3100/admin/clusters
#    Login: admin / admin (default credentials)

# 3. Click "Create Demo" button to generate 2 years of synthetic data

The demo cluster includes 110k jobs, seasonal patterns, simulated outages, and realistic job distributions.

Production Setup

1. Install

pip install slurm-dashboard[all]

2. Collect Data (on SLURM cluster)

# Collect job data from SLURM and save to shared storage
slurm-dashboard-agent --output /shared/slurm-data/$(hostname)

This extracts job data from SLURM using sacct and saves it as Parquet files.

3. Start Dashboard (on dashboard server)

# Point to the data directory and start the web server
export DATA_PATH=/shared/slurm-data
slurm-dashboard

Access at http://localhost:8100

See documentation for production deployment with SAML, systemd, and multi-cluster setup.

Admin Panel

Access the admin panel at http://localhost:8100/admin/login to:

  • Manage Clusters: Add, activate/deactivate, and configure multiple SLURM clusters
  • Deploy Keys: Generate one-time setup keys for secure agent deployment
  • Generate Demo Data: Create synthetic cluster data for testing with realistic patterns
  • Auto-generate Configs: Automatically detect nodes, accounts, and partitions from data
  • User Management: Control access and view user activity
  • API Key Rotation: Manage and rotate authentication keys for data submission agents

Default admin credentials can be configured via environment variables or SAML.

Cluster Agent Setup

For cluster administrators, the recommended setup process uses deploy keys:

  1. Admin creates cluster in dashboard and generates a deploy key
  2. Copy the one-command setup from the admin panel
  3. Run on your cluster - it installs the agent and exchanges the deploy key for a permanent API key
pip install 'git+https://gitlab.ewi.tudelft.nl/reit/slurm-usage-history.git#egg=slurm-dashboard[agent]' && \
slurm-dashboard setup --api-url https://your-dashboard.example.com --deploy-key deploy_xxx

Deploy keys are single-use, expire after 7 days, and provide IP tracking for security.

Development

Setup

git clone https://github.com/tudelft-reit/slurm-dashboard.git
cd slurm-dashboard
uv pip install -e ".[all,dev]"
./build_frontend.sh
uv run pytest

Generate Test Data

Create synthetic cluster data for local development:

# Generate test data for a cluster (creates data/TestCluster/weekly-data/*.parquet)
python scripts/generate_test_cluster_data.py --cluster TestCluster

# Customize date range and job volume
python scripts/generate_test_cluster_data.py \
  --cluster MyCluster \
  --start-date 2024-01-01 \
  --end-date 2024-12-31 \
  --jobs-per-day 100

Run Development Environment

Use Docker Compose for local development with hot-reload:

# Build and start containers
docker-compose build
docker-compose up -d

# View logs
docker-compose logs -f backend
docker-compose logs -f frontend

Access the dashboard:

Stop containers:

docker-compose down

License & Contact

GPL-3.0-or-later | Issues | s.wacker@tudelft.nl | TU Delft REIT

About

Web dashboard for SLURM cluster usage analytics with DuckDB backend

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors