Bertha CLI & Dashboard
bertha is a resource monitoring tool built for this workstation. It provides both a command-line interface and a web dashboard showing per-user CPU, memory, and GPU usage.
TipDashboard
The web dashboard is available at http://bertha.bips.de:443 (accessible from within the BIPS network).
CLI Usage
# Show current resource usage per user
bertha
# Detailed view with top processes
bertha -d
# Compact one-line output
bertha -c
# Continuous monitoring (refreshes every 5s by default)
bertha watch
# JSON output for scripting
bertha --jsonFiltering
# Only show users in the emmy group
bertha --user-group emmy
# Exclude system processes
bertha --exclude-systemWeb Dashboard
The web dashboard runs as a systemd service and provides real-time monitoring with historical data.
# Start manually (for testing)
bertha web --port 8181
# Check service status
systemctl status bertha.serviceFeatures
- Real-time CPU, RAM, and GPU usage with sparkline charts
- Per-user resource breakdown and rankings (24h, 7d, 30d, 1yr)
- Historical data stored in SQLite (365 days retention by default)
- Configurable quick-link tiles for related services (RStudio, etc.)
- Dark/light mode with auto-detection
- Responsive layout for mobile and desktop
API Endpoints
| Endpoint | Description |
|---|---|
/api/stats |
Current system stats |
/api/history |
Historical metrics |
/api/user-averages |
Per-user usage averages |
/api/daily-averages |
Daily aggregates |
/metrics |
Prometheus/OpenMetrics format |
/health |
Health check |
Configuration
Configuration is loaded from (in order):
--configflag/etc/bertha/config.yaml~/.config/bertha/config.yaml./config.yaml
Key settings:
# Alert thresholds
memory_threshold: 90 # percent
load_multiplier: 2.0 # × number of cores
# Web dashboard
web:
port: 8181
refresh_interval: 5s
title: "Bertha"
theme_color: "#3498db" # Visual instance differentiation
# Slack notifications (optional)
slack:
webhook_url: "https://hooks.slack.com/..."
# Data retention
database:
path: /var/lib/bertha/metrics.db
retention_days: 365Installation
The tool is written in Go. To build and install:
cd ~/repos/jemus42/bertha-cli
# Build and install to /usr/local/bin
just install
# Or install with systemd service
just serviceSystemd Service
The service runs as the monitoring user:
# Enable and start
sudo systemctl enable --now bertha.service
# View logs
journalctl -u bertha.service -fSlurm Mode
When Slurm is detected on the system, the dashboard automatically extends with cluster-specific views:
- Node status table with CPU/RAM utilization bars
- Per-user job allocations
- Queue overview
This can be controlled via config (slurm_enabled: auto|true|false).
Source
Repository: jemus42/bertha-cli