Bertha CLI & Dashboard

Modified

2026-05-14

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 --json

Filtering

# Only show users in the emmy group
bertha --user-group emmy

# Exclude system processes
bertha --exclude-system

Web 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.service

Features

  • 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):

  1. --config flag
  2. /etc/bertha/config.yaml
  3. ~/.config/bertha/config.yaml
  4. ./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: 365

Installation

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 service

Systemd Service

The service runs as the monitoring user:

# Enable and start
sudo systemctl enable --now bertha.service

# View logs
journalctl -u bertha.service -f

Slurm 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