Skip to content

feat: Enhance Controller UI with comprehensive minion task stats and status filtering#16521

Merged
xiangfu0 merged 2 commits intoapache:masterfrom
xiangfu0:more-ui-improvement
Aug 6, 2025
Merged

feat: Enhance Controller UI with comprehensive minion task stats and status filtering#16521
xiangfu0 merged 2 commits intoapache:masterfrom
xiangfu0:more-ui-improvement

Conversation

@xiangfu0
Copy link
Copy Markdown
Contributor

@xiangfu0 xiangfu0 commented Aug 6, 2025

Overview

This PR enhances the Controller UI minion pages with comprehensive task statistics and status filtering capabilities to improve monitoring and troubleshooting of minion tasks.

Changes Made

1. Enhanced Minion Task Statistics

  • Combined Subtask Counts: Consolidated individual subtask status columns into a single comprehensive column
  • Format: Sub Tasks (Total/Completed/Running/Waiting/Error/Other)
  • Complete Coverage: Includes all possible subtask states (unknown, dropped, timedOut, aborted)
  • Example: 10/8/1/0/1/0 shows 10 total, 8 completed, 1 running, 0 waiting, 1 error, 0 other

2. Status Filtering for Tasks and Subtasks

  • Task-Level Filtering: Added dropdown filter on main task listing pages
  • Subtask-Level Filtering: Added filtering within individual task detail pages
  • Visual Interface: Color-coded status chips for easy identification
  • Comprehensive Support: All 8 task states (COMPLETED, RUNNING, WAITING, ERROR, UNKNOWN, DROPPED, TIMED_OUT, ABORTED)

3. New Components

  • TaskStatusFilter: Reusable filtering component with visual status chips
  • Enhanced Tables: Integrated filtering controls with existing table components

Technical Implementation

Files Modified

  • pinot-controller/src/main/resources/app/utils/PinotMethodUtils.ts - Enhanced task data structure
  • pinot-controller/src/main/resources/app/components/useTaskListing.tsx - Added task filtering
  • pinot-controller/src/main/resources/app/pages/TaskDetail.tsx - Added subtask filtering
  • pinot-controller/src/main/resources/app/components/TaskStatusFilter.tsx - New filtering component

Quality Assurance

  • ESLint: All linting checks pass
  • TypeScript: Full type safety and compilation
  • Build: Both production and development builds successful
  • Performance: Optimized with React hooks (useCallback, useMemo)

Benefits

For Operations Teams

  • Better Monitoring: Quick overview of subtask status distribution
  • Efficient Troubleshooting: Easy filtering to ERROR states for debugging
  • Operational Visibility: Fast access to RUNNING or WAITING tasks
  • Scalable Views: Handle large numbers of tasks with focused filtering

For UI/UX

  • Consistent Design: Follows established UI patterns from segment status filtering
  • Intuitive Interface: Familiar dropdown design with visual status indicators
  • Non-destructive: Filtering doesn't affect underlying data, only display
  • Responsive: Works seamlessly with existing search and pagination

Testing

  • Manual testing performed on task listing and detail pages
  • Verified filtering works correctly for all status types
  • Confirmed build and linting pass all checks
  • Validated TypeScript compilation and type safety

Screenshots

The enhanced UI now provides:

  1. Task Lists: Comprehensive subtask counts and status filtering dropdown
  2. Task Details: Individual subtask filtering with same visual design
  3. Status Indicators: Color-coded chips for quick status identification

Backward Compatibility

  • All existing functionality preserved
  • No breaking changes to APIs or data structures
  • Progressive enhancement of existing UI components
image image

- Created TaskStatusFilter component with visual status chips
- Added status filtering to task listing pages with dropdown selection
- Enhanced TaskDetail component with subtask status filtering
- Implemented comprehensive filtering for all task states:
  COMPLETED, RUNNING, WAITING, ERROR, UNKNOWN, DROPPED, TIMED_OUT, ABORTED
- Optimized React hooks with useCallback to prevent unnecessary re-renders
- Added proper TypeScript types and ESLint compliance
- Improved user experience with color-coded status indicators
@xiangfu0 xiangfu0 requested a review from Copilot August 6, 2025 11:05
@xiangfu0 xiangfu0 added ui UI related issue feature enhancement Improvement to existing functionality user-experience Related to user experience release-notes Referenced by PRs that need attention when compiling the next release notes labels Aug 6, 2025
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR enhances the Controller UI with comprehensive minion task statistics and status filtering capabilities to improve operational monitoring and troubleshooting. The changes focus on providing better visibility into task and subtask states through consolidated statistics and interactive filtering.

Key changes include:

  • Enhanced task statistics with comprehensive subtask counts in a consolidated format
  • Added status filtering components for both task listings and task detail pages
  • Created reusable TaskStatusFilter component with visual status indicators

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
PinotMethodUtils.ts Modified task listing to display consolidated subtask counts in format "Total/Completed/Running/Waiting/Error/Other"
TaskDetail.tsx Added subtask status filtering with new TaskStatusFilter component and filtering logic
useTaskListing.tsx Added task-level status filtering capabilities with filtering controls
TaskStatusFilter.tsx New reusable component providing status filtering with color-coded chips and dropdown interface

@xiangfu0 xiangfu0 requested a review from Jackie-Jiang August 6, 2025 20:39
@xiangfu0 xiangfu0 merged commit 78dabce into apache:master Aug 6, 2025
30 of 36 checks passed
@xiangfu0 xiangfu0 deleted the more-ui-improvement branch August 6, 2025 20:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Improvement to existing functionality release-notes Referenced by PRs that need attention when compiling the next release notes ui UI related issue user-experience Related to user experience

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants