CueGUI: Cuetopia Monitoring System
CueGUI is the graphical user interface for OpenCue, divided into two main workspace views:
- Cuetopia: The artist-focused view for monitoring and managing render jobs
- CueCommander: The administrator-focused view for system monitoring and host management
This guide provides comprehensive documentation for Cuetopia, which includes the Monitor Jobs, Monitor Job Details, and Job Graph plugins used by artists and system administrators to track render job progress and troubleshoot issues.
Table of Contents
- Monitor Jobs Plugin
- Monitor Job Details Plugin
- Job Graph Plugin
- CueProgBar - Progress Bar Window
- Filters and Search Capabilities
- Data Processing and Updates
Monitor Jobs Plugin
How to Open: Go to View/Plugins > Cuetopia > Monitor Jobs
The Monitor Jobs plugin is the primary interface for monitoring active and completed render jobs. It provides a comprehensive overview of all jobs with real-time status updates.
Interface Components
Top Toolbars
The plugin uses two toolbars organized as follows:
First Toolbar (Search and Filter Controls)
- Load Button: Triggers job search based on the text field content
- Search Text Field: Accepts job search patterns:
- Job names (supports wildcards and regex)
- Show-shot patterns (e.g.,
show-shot-username
) - User names to load all jobs for a user
- Job UUIDs for direct job loading
-
Clear (Clr) Button: Clears the search field
- Autoload Mine Checkbox:
- When checked, automatically loads jobs owned by the current user
- Updates on application start and facility changes
- Load Finished Checkbox:
- Includes finished jobs in search results
- Limited to jobs finished within the last 3 days
- Jobs older than 3 days are moved to historical database
- Group By Dropdown:
- Clear: No grouping (flat list)
- Dependent: Group by job dependencies
- Show-Shot: Group by show and shot
- Show-Shot-Username: Group by show, shot, and username
Second Toolbar (Action Buttons)
From left to right:
Unmonitor group:
- Finished (eject icon): Removes all finished jobs from monitoring
- All (eject icon): Clears all jobs from the monitor
- Selected (eject icon): Removes selected jobs
Job Actions:
- Eat Dead Frames (pac-man icon): Eats all dead frames for selected jobs to free scheduling resources
- Retry Dead Frames (circular arrow): Retries all dead frames for selected jobs
- Kill Jobs (X icon): Kill selected jobs and their running frames
- Pause Jobs (pause icon): Pause selected job
- Unpause Jobs (play icon): Unpause selected jobs
Job Table Columns
The Monitor Jobs view displays the following columns:
Notes:
- Dead frames: Frames that have failed to render due to errors (crashed, timed out, or encountered fatal errors during processing). These frames need to be retried or eaten to proceed.
- Eaten frames: Frames manually marked as complete without re-rendering. Used to skip problematic frames that are acceptable as-is, will be fixed in compositing, or are not critical to the final output. This allows the job to continue without being blocked by problematic frames.
Column | Description | Data Source | Update Behavior |
---|---|---|---|
Job | Full job name (show-shot-user_descriptor) | job.data.name |
Static |
State | Current job state (Finished, In Progress, Paused, Failing, Dependency) | Calculated from job stats | Real-time |
Done/Total | Succeeded frames / Total frames | job_stats.succeeded_frames / total_frames |
Real-time |
Running | Number of currently running frames | job_stats.running_frames |
Real-time |
Dead | Number of dead/failed frames | job_stats.dead_frames |
Real-time |
Eaten | Number of eaten frames | job_stats.eaten_frames |
On update |
Wait | Number of waiting frames | job_stats.waiting_frames |
Real-time |
MaxRss | Maximum memory used by any frame | job_stats.max_rss |
On update |
Age | Time since job launch (HH:MM format) | Calculated from start_time |
Real-time |
Launched | Job launch timestamp | job.data.start_time |
Static |
Finished | Job completion timestamp | job.data.stop_time |
On completion |
Progress | Visual progress bar | Composite of all frame states | Real-time |
Additional Columns (Hidden by Default)
- Comment Icon: Shows if job has comments
- Autoeat Icon: Displays pac-man icon if auto-eating is enabled
Job State Determination
The job state displayed follows this priority logic:
- Finished: Job has completed all frames
- Paused: Job is manually paused
- Failing: Job has dead frames
- Dependency: All pending frames are waiting on dependencies
- In Progress: Default running state
Progress Bar Visualization
The progress bar uses color coding to represent frame states:
- 🟢 Green: Successfully completed frames
- 🟡 Yellow: Currently running frames
- 🔴 Red: Dead/failed frames
- 🟣 Purple: Frames waiting on dependencies
- 🔵 Light Blue: Frames waiting to be dispatched
Right-Click Context Menu
Right-clicking on a job provides these actions:
- View job details
- Manage dependencies
- Modify job properties
- Kill/pause/resume job
- Eat/retry frames
- Add comments
- Use local cores
- Set user color (see Job Color Organization)
Job Color Organization
The Monitor Jobs view allows you to organize jobs visually by applying background colors. This feature is particularly useful when working with many concurrent renders, allowing you to group jobs by project, priority, department, or any other categorization scheme.
Setting Job Colors
To apply a color to one or more jobs:
- Select Jobs: Click on a job or use Ctrl+click to select multiple jobs
- Right-Click: Open the context menu
- Choose Color: Navigate to “Set user color” submenu
Available Color Options
The system provides 15 predefined colors with descriptive names:
- Set Color 1 - Dark Blue
- Set Color 2 - Dark Yellow
- Set Color 3 - Dark Green
- Set Color 4 - Dark Brown
- Set Color 5 - Purple
- Set Color 6 - Teal
- Set Color 7 - Orange
- Set Color 8 - Maroon
- Set Color 9 - Forest Green
- Set Color 10 - Lavender
- Set Color 11 - Crimson
- Set Color 12 - Navy
- Set Color 13 - Olive
- Set Color 14 - Plum
- Set Color 15 - Slate
Custom Color Option
For complete flexibility, use the “Set Custom Color (RGB)…“ option to create any color:
- Select jobs and choose “Set Custom Color (RGB)…” from the menu
- Enter RGB values (0-255 range) using the spinboxes
- Preview the color in real-time as you adjust values
- Click OK to apply the custom color
Color Management
- Clear Colors: Use “Clear” option to remove color assignments
- Persistent Colors: Color assignments are saved and restored across CueGUI sessions
- Multiple Selection: Apply colors to multiple jobs simultaneously
- Visual Organization: Colors appear as background highlighting in the job list
Best Practices for Color Organization
- Consistent Scheme: Develop a facility-wide color coding standard
- Project-Based: Use different colors for different shows or projects
- Priority-Based: Use warmer colors (red, orange) for urgent jobs, cooler colors (blue, green) for routine work
- Department-Based: Assign colors by department (lighting, compositing, effects)
- Status-Based: Use colors to indicate job status or approval stages
Monitor Job Details Plugin
How to Open: Go to View/Plugins > Cuetopia > Monitor Job Details
The Monitor Job Details plugin provides detailed information about a selected job’s layers and frames. It can be opened manually from the menu or appears automatically when you double-click a job in the Monitor Jobs view.
Layout Structure
The plugin uses a vertical splitter with two main sections:
Top Section: Layer Monitor
Displays all layers in the selected job with the following columns:
Column | Description | Data Processing |
---|---|---|
Name | Layer name (e.g., test_layer) | Direct from layer.data.name |
Services | Services/applications used (e.g., shell) | Comma-joined list |
Limits | Applied resource limits | Comma-joined list |
Range | Frame range (e.g., 1-10) | With chunking info if applicable |
Cores | Core requirement | Shows “ALL” for 0, “ALL-n” for negative |
Memory | Memory reservation | Formatted as human-readable (e.g., 256M) |
Gpus | GPU requirement | Integer count |
Gpu Memory | GPU memory reservation | Formatted as human-readable |
MaxRss | Peak memory usage | Historical maximum |
Total | Total frame count | From layer_stats.total_frames |
Done | Completed frames | From layer_stats.succeeded_frames |
Run | Running frames | From layer_stats.running_frames |
Depend | Dependent frames | From layer_stats.depend_frames |
Wait | Waiting frames | From layer_stats.waiting_frames |
Eaten | Eaten frames | From layer_stats.eaten_frames |
Dead | Dead frames | From layer_stats.dead_frames |
Avg | Average frame time | Formatted as HH:MM:SS |
Tags | Resource tags | Pipe-separated list |
Progress | Visual progress bar | Percentage complete |
Timeout | Frame timeout | In HH:MM format |
Timeout LLU | Last log update timeout | In HH:MM format |
Bottom Section: Frame Monitor
Shows detailed frame information with filtering controls:
Control Bar (Top of Frame Section)
- Refresh Button: Manual refresh of frame list
- Clear Button: Clears all active filters
- Page Navigation:
- Previous (<) and Next (>) buttons
- Page counter (e.g., “Page 1 of 1”)
- Limited to 500 frames per page
- Select Status Dropdown: Quick selection by frame state
- Filter Layers Dropdown: Filter frames by specific layers
- Filter Status Dropdown: Filter by frame status
Frame Table Columns
Column | Description | Special Handling |
---|---|---|
Order | Dispatch order within layer | Sort priority |
Frame | Frame number | Integer display |
Layer | Parent layer name | Links to layer |
Status | Frame state (SUCCEEDED, RUNNING, etc.) | Color-coded |
Cores | Cores used/reserved | Decimal for running frames |
GPUs | GPUs used | Integer count |
Host | Current/last host | Hostname or “0K” if none |
Retries | Retry count | Cumulative |
CheckP | Checkpoint count | For resumable frames |
Runtime | Frame runtime | HH:MM:SS format |
LLU | Last log update | Time since last log write |
Memory | Memory usage | Current if running, peak if not |
GPU Mem | GPU memory usage | Current if running, peak if not |
Remain | Estimated time remaining | Based on historical data |
Start Time | Frame start timestamp | MM/DD HH:MM |
Stop Time | Frame completion timestamp | MM/DD HH:MM |
Last Line | Last log line | Truncated to fit |
Frame Status Color Coding
Frames are color-coded by status:
- 🟢 Green: SUCCEEDED
- 🟡 Yellow: RUNNING
- 🔵 Blue: WAITING
- 🟣 Purple: DEPEND
- 🔴 Red: DEAD
- ⚫ Gray: EATEN
Job Graph Plugin
How to Open: Go to View/Plugins > Cuetopia > Job Graph
The Job Graph plugin provides a visual node-based representation of job layers and their dependencies.
Graph Features
Node Representation
Each layer is displayed as a node with:
- Node Color: Reflects layer state
- 🟢 Green: All frames completed
- 🟡 Yellow: Frames running
- 🔴 Red: Has dead frames
- 🔵 Blue: Waiting for resources
- 🟣 Purple: Waiting on dependencies
- ⚫ Gray: Dependent on other layers
- Node Information:
- Layer name
- Frame count (done/total)
- Running count
- Progress bar
Dependency Connections
- Arrows: Show dependency flow
- Direction: Parent -> Child relationships
- Line Style: Solid for active dependencies
Interaction
- Selection: Click to select layers
- Multi-select: Ctrl+click for multiple
- Pan: Middle-mouse drag
- Zoom: Mouse wheel
- Auto-layout: Automatically arranges nodes
Context Menu
Right-click on nodes provides:
- View/modify dependencies
- Layer properties
- Frame management actions
- Resource allocation
CueProgBar - Progress Bar Window
CueProgBar is a lightweight, standalone progress monitoring window that provides a visual representation of job frame status. It offers a minimalist interface for quick job monitoring without the overhead of the full CueGUI application.
Launching CueProgBar
From CueGUI Job Context Menu:
- Right-click on any job in the Monitor Jobs view
- Select “Show Progress Bar” from the context menu
- A separate progress bar window opens for that job
Interface Overview
The CueProgBar window consists of three main components:
- Visual Progress Bar: A horizontal bar showing frame states through color coding
- Status Label: Displays current progress (e.g., “150 of 200 done, 10 running”)
- Job Name Label: Shows the full job name
Frame State Color Coding
The progress bar uses distinct colors to represent different frame states:
State | Color | Description |
---|---|---|
SUCCEEDED | Green (#37C837) | Frames that completed successfully |
RUNNING | Yellow (#C8C837) | Frames currently being processed |
WAITING | Light Blue (#87CFEB) | Frames ready to run when resources are available |
DEPEND | Purple (#A020F0) | Frames waiting on dependencies |
DEAD | Red (#FF0000) | Frames that failed and exceeded retry attempts |
EATEN | Dark Red (#960000) | Frames manually marked as complete |
Interactive Features
Left-Click Menu
Clicking the left mouse button on the progress bar displays a breakdown of frame states:
- Shows count for each frame state
- Color-coded icons match the progress bar colors
- Only displays states with non-zero counts
Right-Click Context Menu
Right-clicking the progress bar reveals job control actions:
Available actions include:
- Pause/Unpause Job:
- Toggles job execution state
- Paused jobs show “Paused” overlay on the progress bar
- Prevents new frames from starting while allowing running frames to complete
- Retry Dead Frames (NEW):
- Appears only when dead frames exist
- Shows confirmation dialog with dead frame count
- Retries all frames in DEAD state
- Displays success/failure notification
- Kill Job:
- Terminates the job and all running frames
- Requires confirmation dialog
- Logs the action with username and timestamp
Window Features
Auto-Update
- Refreshes every 5 seconds (configurable)
- Updates frame counts and progress bar in real-time
- Stops updating when job completes
Window Title
The window title dynamically updates to show:
- Percentage: “75% job_name” (for running jobs)
- DONE: “DONE job_name” (for completed jobs)
- ERR: “ERR job_name” (when dead frames exist and no frames are running)
Visual Indicators
- COMPLETE overlay: Displayed when job finishes successfully
- Paused overlay: Shown when job is paused
- Job Not Found message: Appears if job is deleted or becomes inaccessible
Use Cases
CueProgBar is ideal for:
- Quick Monitoring: Artists who want to monitor specific jobs without full CueGUI
- Multi-Job Tracking: Opening multiple progress bars for different jobs simultaneously
- Desktop Integration: Minimal windows that can be arranged on secondary monitors
- Resource Efficiency: Lower memory and CPU usage compared to full CueGUI
Technical Details
Memory Usage
- Minimal memory footprint
- No layer or frame detail caching
- Simple RPC calls for job statistics only
Update Mechanism
# Update cycle (every 5 seconds)
1. Fetch job statistics via RPC
2. Calculate frame state totals
3. Repaint progress bar
4. Update labels and title
Best Practices
- Multiple Windows: Open separate progress bars for critical jobs
- Window Arrangement: Stack vertically for space-efficient monitoring
- Close When Done: Windows can be safely closed without affecting jobs
- Retry Strategy: Use “Retry Dead Frames” before marking jobs complete
Filters and Search Capabilities
Job Search Patterns
The search field supports multiple pattern types:
- Direct Job Name:
testing-test_shot-username_test_job_name
- Show-Shot Pattern:
testing-test_shot
- Username:
username
(loads all user’s jobs) - Regular Expression:
test.*shot.*
- Job UUID:
Job.f156be87-987a-48b9-b9da-774cd58674a3
Frame Filtering
Status Filters
- SUCCEEDED: Completed frames
- RUNNING: Currently executing
- WAITING: Ready to run
- DEPEND: Waiting on dependencies
- DEAD: Failed frames
- EATEN: Manually marked complete
Layer Filters
- Single layer selection
- Multiple layer selection (Ctrl+click)
- Applied via dropdown or double-click
Range Selection
- Visual slider at bottom of frame monitor
- Click and drag to select range
- Updates frame display in real-time
Filter Combination
Filters are applied cumulatively:
- Layer filter (if set)
- Status filter (if set)
- Range filter (if set)
- Results limited to 500 frames
Data Processing and Updates
Update Mechanisms
Automatic Updates
- Job Monitor: 10-second refresh cycle
- Layer Monitor: Updates with job selection
- Frame Monitor: Updates on layer changes
- Job Graph: 20-second refresh cycle
Manual Updates
- Refresh button (available in each view)
- Updates on user actions
- Forced refresh on filter changes
RPC Call Optimization
Each field update involves specific RPC calls to Cuebot:
- Job Data: Single
getJob()
call retrieves:- Basic job properties
- Job statistics
- State information
- Layer Data:
getLayers()
call fetches:- All layers for a job
- Layer statistics
- Resource requirements
- Frame Data:
getFrames()
with search criteria:- Paginated results (500 frame limit)
- Filtered by status/layer
- Includes runtime statistics
Performance Considerations
Caching Strategy
- Job list cached for session
- Layer data refreshed on job change
- Frame data paginated for performance
- Log data cached for 15 seconds
Memory Management
- Finished jobs removed after 3 days
- Maximum 200 jobs restored on startup
- Weak references prevent memory leaks
- Virtual scrolling for large lists
Data Flow Architecture
User Action → CueGUI Widget → RPC Client → Cuebot Server → Database
↓ ↓
Local Cache ← ← ← ← ← ← ← Response Data
↓
UI Update → Signal Emission → Connected Widgets Update
Error Handling
- Connection Loss: Graceful degradation with cached data
- RPC Failures: Automatic retry with exponential backoff
- Invalid Data: Validation and sanitization at widget level
- Performance Issues: Pagination and lazy loading
Best Practices
Efficient Monitoring
- Use filters to reduce data volume
- Group dependent jobs for cleaner display
- Close unused detail views to reduce updates
- Limit frame monitor to relevant layers
Troubleshooting Tips
- Slow updates: Check network connection to Cuebot
- Missing jobs: Verify within 3-day threshold
- Filter issues: Use Clear button to reset
- Graph layout: Use auto-layout to reorganize
Mouse and Keyboard Interactions
- Space: Trigger updates across all views
- Ctrl+Click: Multi-select items in lists and tables
- Double-click: Open job details, frame logs, or other detailed views
Advanced Features
Custom Column Configuration
Users can customize displayed columns:
- Right-click column headers
- Select columns to show/hide
- Drag to reorder columns
- Resize by dragging borders
Settings Persistence
CueGUI saves user preferences:
- Column configurations
- Filter settings
- Window layouts
- Search history
- Job monitoring list
Settings stored in: ~/.config/opencue/cuegui.ini
Plugin Integration
Cuetopia plugins integrate with other CueGUI components:
- Log Viewer: Double-click frames to view logs
- Host Monitor: View hosts running frames
- Dependency Editor: Modify job dependencies
- Local Booking: Allocate local resources