kubeflow / kubeflow/notebooks

[FEATURE] Visualizing resource assignment

Open
#878 1 comment 0 reactions 1 assignee Claimed by @thaorell View on GitHub
kind/plan-feature
Dominant language
No language data
Stars
84
Forks
149
Avg merge
5d 15h
Merged PRs (30d)
29

Description

### Certification

- [x] I certify I am an Epic Owner for Kubeflow Notebooks 2.0 and expected to create planning-related issues.

### Motivation

Joel needs visual representations of resource assignment data to quickly understand how compute resources
(CPU, memory, GPU) are distributed across the cluster. Simple graphs and summary views (potentially across various
dimension: namespace, WorkspaceKind, podConfig) enable Joel to identify patterns, spot imbalances, and make
informed decisions without manually inspecting individual Workspaces.

The frontend currently includes initial visual elements for this purpose (see screenshot below),
displaying:
- Total GPUs in use / requested
- Idle GPU workspaces count
- Top GPU consumer namespaces

This feature aims to validate and refine this visualization approach, ensuring:
- The visual representations effectively communicate resource assignment state
- The data is being pulled and computed correctly from backend APIs
- Additional dimensions (CPU, memory, namespace breakdown, WorkspaceKind breakdown) are appropriately
surfaced (if warranted)

### High Level Design / Mock-ups

Current State:

Image


The current implementation displays a "Workspaces summary" panel with GPU-focused metrics. This feature
should evaluate and expand upon this foundation to potentially include:

**Visualization Dimensions:**
- By Resource Type: CPU, memory, and GPU assignments (not just GPU)
- By Namespace: Which namespaces have the largest resource allocations
- By WorkspaceKind: Resource distribution across JupyterLab, VS Code, RStudio, etc.
- By podConfig: Distribution across different pod configuration options
- Cluster Totals: Aggregate view of all resource assignments

**Visualization Dimensions:**
- Appropriate chart types for each dimension (bar charts, pie charts, summary cards)
- Clear labeling and units (cores, GiB, GPU count)
- Responsive design for various screen sizes
- Accessibility considerations for color usage and screen readers

ℹ️ _It is also an acceptable outcome to conclude the existing/current state is optimal to proceed with unenhanced._

### Acceptance Criteria

- [ ] Resource assignment visualizations accurately reflect data from backend APIs
- [ ] GPU resource assignments are visualized (validate/refine current implementation)
- [ ] CPU resource assignments are visualized (if necessary)
- [ ] Memory resource assignments are visualized (if necessary)
- [ ] Resource assignments can be viewed by any other agreed upon dimension (if necessary)(
- [ ] Visualizations are clear, accessible, and appropriately labeled
- [ ] Empty states are handled gracefully (e.g., "No GPU workspaces" messaging)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.