Skip to main content
The BitBonsai dashboard provides comprehensive system monitoring, job tracking, and performance analytics in a single unified view.
What is the dashboard? The main screen showing all your encoding activity, queue status, and system health in real-time.

Dashboard Overview

Access the dashboard at the main application page after login. The interface is organized into panels showing system health, active jobs, queue status, and performance metrics.

System Health

CPU, memory, and database status checks

Active Jobs

Real-time encoding progress tracking

Queue Status

Pending jobs and estimated completion

Performance

Throughput, savings, and efficiency metrics

Active Jobs Panel

Shows encoding tasks currently being processed across all nodes.

Job Information Display

FieldDescription
File NameMedia file being encoded (e.g., Movie.2024.1080p.mkv)
ProgressEncoding completion percentage (0-100%)
SpeedCurrent encoding speed (fps - frames per second)
NodeWhich node is processing this job (hostname or IP)
StageCurrent job stage: ENCODING, ANALYZING, TRANSFERRING
ETAEstimated time remaining for completion

Progress Indicators

Active jobs display real-time progress bars:
  • Green bar: Encoding progressing normally (>5 fps)
  • Yellow bar: Slow encoding (1-5 fps, CPU-only nodes)
  • Red bar: Stalled job (no progress for >10 minutes)
Example display:
┌─────────────────────────────────────────────────────────────┐
│ Active Jobs (3)                                              │
├─────────────────────────────────────────────────────────────┤
│ Movie.2024.1080p.mkv                          [Main Node]   │
│ ████████████████░░░░░░░░░░ 67%    24.5 fps    ETA: 12m     │
│                                                              │
│ Series.S01E05.mkv                             [Node-170]    │
│ ████████░░░░░░░░░░░░░░░░░░ 35%    18.2 fps    ETA: 28m     │
│                                                              │
│ Documentary.2024.mkv                          [Main Node]   │
│ ███░░░░░░░░░░░░░░░░░░░░░░░ 12%    31.8 fps    ETA: 45m     │
└─────────────────────────────────────────────────────────────┘

Node Assignment

Each job shows which node is processing it. This helps identify:
  • Load distribution across nodes
  • Node performance differences (GPU vs CPU)
  • Potential bottlenecks (one node handling too many jobs)

Queue Status

Pending Jobs

Shows jobs waiting to be processed:
MetricMeaning
QUEUEDJobs waiting for available node capacity
PENDINGJobs discovered but not yet queued (awaiting library scan)
ANALYZINGFiles being analyzed for codec/bitrate information

Estimated Completion Time

Calculated based on:
  1. Current throughput: Average jobs completed per hour (last 24h)
  2. Queue depth: Total jobs in QUEUED and ANALYZING stages
  3. Active workers: Number of concurrent encoding processes
Formula:
ETA = (QUEUED jobs + ANALYZING jobs) / throughput_per_hour
Example:
┌─────────────────────────────────────────────┐
│ Queue Status                                │
├─────────────────────────────────────────────┤
│ Pending Jobs:        142                    │
│ Active Workers:      3                      │
│ Avg Throughput:      12.5 jobs/hour         │
│ Est. Completion:     ~11 hours              │
└─────────────────────────────────────────────┘

System Stats

CPU Usage

  • Current Load: 1-minute load average
  • CPU Cores: Total cores available for encoding
  • Load Ratio: Load per core (ideal: under 1.5, warning: over 1.5, critical: over 2.0)
Health Indicators:
StatusLoad RatioColor
Healthy0.0 to 1.5Green
Warning1.5 to 2.0Yellow
Critical>2.0Red

Memory Usage

  • Used/Total: Memory consumption (e.g., 12.4 GB / 16 GB)
  • Percentage: Memory utilization (warning at >85%, critical at >95%)
  • Trend: Memory usage over time (chart)

Disk Space

Shows storage statistics for all configured library paths:
PathTotalUsedFreeUsed %
/mnt/media/movies4 TB2.8 TB1.2 TB70%
/mnt/media/tv2 TB1.5 TB500 GB75%
/mnt/media/anime1 TB800 GB200 GB80%
Low Disk Space: When any path exceeds 90% usage, encoding may fail if output file cannot be written. BitBonsai needs temporary space (see temporary files).

Node Status

Health Indicators

Each node displays a status badge:
  • 🟢 ONLINE: Node is healthy and accepting jobs
  • 🔴 OFFLINE: Node unreachable or not responding to health checks
  • 🟡 DEGRADED: Node online but experiencing high load or errors

Active Jobs Per Node

Track workload distribution across your encoding cluster:
┌─────────────────────────────────────────────────────────┐
│ Node Status                                             │
├─────────────────────────────────────────────────────────┤
│ Main Node (192.168.1.100)          [ONLINE]   2 jobs   │
│ GPU: NVIDIA GeForce RTX 3060                            │
│ Load: 1.2 / 4 cores    Memory: 8.5 GB / 16 GB          │
│                                                         │
│ Child Node (192.168.1.170)         [ONLINE]   1 job    │
│ GPU: Intel QuickSync (QSV)                              │
│ Load: 0.8 / 2 cores    Memory: 3.2 GB / 8 GB           │
└─────────────────────────────────────────────────────────┘

Load Distribution

Shows how jobs are distributed across nodes:
  • Main node: Primary encoding node (usually GPU-accelerated)
  • Child nodes: Worker nodes for parallel processing
  • Balanced: Jobs distributed evenly based on node capacity
  • Overloaded: One node handling disproportionate workload (>2x average)
Ideal distribution:
Main Node:    ████████████ 45% (4 jobs)
Child Node 1: ███████████ 35% (3 jobs)
Child Node 2: ████████ 20% (2 jobs)

Job History

Completed Jobs (Last 30 Days)

Shows encoding activity over the past month:
DateJobs CompletedSpace SavedAvg Speed
Jan 101512.5 GB22.3 fps
Jan 091815.2 GB24.1 fps
Jan 08129.8 GB21.7 fps
Total424488.3 GB23.2 fps

Failed Jobs

Track encoding failures to identify problematic files:
FileReasonNodeDate
Corrupted.mkvFile validation failedMainJan 10
LargeFile.mkvInsufficient disk spaceNode-170Jan 09
BadCodec.aviUnsupported codecMainJan 08
Failure Categories:
  • Corrupted File: Source file is damaged or incomplete (40%)
  • Disk Space: Insufficient storage for output file (25%)
  • Codec Issues: Unsupported or proprietary codec (20%)
  • FFmpeg Errors: Encoding process crashed (10%)
  • Other: Miscellaneous errors (5%)
Auto-Retry: Failed jobs are automatically retried up to 3 times with different encoding settings before being marked as permanently failed.

Performance Metrics

Average Encode Speed (fps)

Frames per second processed by the encoding engine:
HardwareTypical SpeedUse Case
NVIDIA GPU40-80 fpsHEVC/AV1 encoding
Intel QSV20-40 fpsHEVC encoding
AMD GPU25-50 fpsHEVC encoding
CPU-only3-8 fpsFallback for unsupported hardware
Factors Affecting Speed:
  1. Resolution: 4K files encode slower than 1080p (~60% speed reduction)
  2. Codec: AV1 is ~40% slower than HEVC, HEVC is ~30% slower than H.264
  3. Bitrate: Higher bitrate source files take longer to process
  4. Concurrent Jobs: Multiple jobs share GPU/CPU resources

Storage Saved

Total space saved by re-encoding to HEVC/AV1:
┌─────────────────────────────────────────────┐
│ Storage Savings                             │
├─────────────────────────────────────────────┤
│ Total Saved:        488.28 GB               │
│ Files Processed:    1,247                   │
│ Avg Savings:        35.2% per file          │
│ Equivalent to:      ~156 HD movies freed    │
└─────────────────────────────────────────────┘
Savings by Codec Conversion:
From → ToAvg SavingsQuality Impact
H.264 → HEVC40-50%Visually identical (same CRF)
H.264 → AV150-60%Slightly better
HEVC → AV120-30%Marginal improvement

Total Encoding Time

Cumulative time spent encoding across all nodes:
  • CPU Time: Total processing time (sum of all node hours)
  • Wall Time: Real-world time elapsed (accounts for parallel processing)
  • Efficiency: CPU Time / Wall Time (ideal: close to node count)
Example:
Total CPU Time:   142 hours
Wall Time:        48 hours
Nodes Used:       3
Efficiency:       2.96x (close to ideal 3.0x)
Efficiency Indicators:
  • over 2.5x (3 nodes): Excellent parallelization
  • 1.5 to 2.5x (3 nodes): Good, some bottlenecks
  • under 1.5x (3 nodes): Poor distribution, investigate load balancing

Advanced Monitoring

Codec Distribution

See /insights/codecs endpoint for codec usage analytics:
  • Pie chart showing H.264, HEVC, AV1, VP9 distribution
  • Percentage of library using each codec
  • Helps identify remaining H.264 files to convert

Savings Trend (30-Day)

Track space savings over time:
  • Daily savings bar chart
  • Cumulative savings line graph
  • Identify encoding velocity (GB saved per day)

Node Performance Comparison

Compare encoding efficiency across nodes:
NodeJobsSuccess RateSaved GBThroughput
Main (NVIDIA)52398.7%250.015.3/hr
Secondary (QSV)41297.8%188.311.2/hr
Backup (CPU)31296.5%50.05.8/hr
Use Cases:

Health Checks

The system continuously monitors (see health check):
CheckHealthyWarningCritical
CPU Loadunder 1.5x cores1.5 to 2.0x coresover 2.0x cores
Memoryunder 85%85-95%over 95%
DatabaseConnected-Disconnected
Queue0 stuck jobs1-5 stuckover 5 stuck
NodesAll online1+ offlineMain offline
Overall Status: Aggregated from all health checks. Dashboard displays: - HEALTHY (green): All checks passing - WARNING (yellow): One or more warnings - CRITICAL (red): One or more critical failures

Troubleshooting Dashboard Issues

No Active Jobs Showing

Possible causes:
  1. No jobs in ENCODING stage (check queue status)
  2. All nodes offline (check node status panel)
  3. Dashboard data not refreshing (refresh browser)
Solution:
# Check queue status via API
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" http://localhost:3100/queue/stats

# Verify nodes are online
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" http://localhost:3100/insights/nodes

Incorrect Storage Stats

Possible causes:
  1. Library paths not configured in database
  2. NFS mounts not accessible
  3. Permission issues reading disk stats
Solution:
# Verify library paths
curl http://localhost:3100/libraries

# Test disk access
df -h /mnt/media/*

Stuck Progress Bars

Possible causes:
  1. Job actually stalled (no FFmpeg progress updates)
  2. WebSocket connection lost (no real-time updates)
  3. Node crashed mid-encode
Solution:
  1. Check backend logs for FFmpeg errors
  2. Refresh dashboard to reconnect WebSocket
  3. Verify node is still online in node status panel

API Endpoints

Access dashboard data programmatically:
EndpointData
GET /system/dashboardComplete dashboard (all panels)
GET /system/dashboard/healthHealth checks only
GET /queue/statsQueue statistics
GET /jobsAll encoding jobs
GET /jobs/:idSingle job details
GET /insights/statsAggregated encoding stats
GET /insights/savings?days=3030-day savings trend
GET /insights/nodesNode performance comparison
Get your JWT token from the browser’s developer tools (F12 → Application → Local Storage → token) or from the login API response. Example: Get dashboard JSON:
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  http://localhost:3100/system/dashboard

Understanding Jobs

Job lifecycle, statuses, and auto-healing

Troubleshooting

Fix stuck jobs, disk space, and node issues

Multi-Node Setup

Track distributed encoding performance

GPU Acceleration

Speed up encoding with hardware acceleration