kruize / kruize-ui

Kruize Autotune UI
MIT License
6 stars 12 forks source link

Testing the UI with bulk api #218

Open bhanvimenghani opened 1 day ago

bhanvimenghani commented 1 day ago

Kruize is going to support bulk apis and we need to test how UI performs with it. A detailed information on what happens and the lag observed in Kruize UI is expected recorded in a loom video for reference.

msvinaykumar commented 1 day ago

Bulk API UI Workflow Overview The Bulk API UI allows users to configure and initiate bulk requests for resource optimization recommendations. The UI also provides tracking and status updates for jobs, as well as detailed information on individual experiments.

Step-by-Step UI Workflow

  1. Landing Page Description: The landing page displays an overview of the Bulk API functionality. Actions: View brief descriptions of filters (e.g., namespaces, workloads, containers, labels). View descriptions of experiment types (e.g., "container", "namespace"). Button: "Create New Bulk Job" to start a new job.
  2. Create New Bulk Job Form Layout: Datasource: Dropdown menu to select the configured datasource (e.g., Prometheus, Thanos). Experiment Types: Multi-select for "container," "namespace," or both. Time Range: Optional date and time selectors to specify the time range. Filter Section: Include Filters: Text fields to add namespaces, workloads, containers, and label key-value pairs. Exclude Filters: Text fields to add namespaces, workloads, containers, and label key-value pairs. Button: "Submit Job" to initiate the Bulk API request.
  3. Job Submission Confirmation Modal: Display a confirmation dialog showing the selected filters and datasource details. Confirmation Action: Display the job_id upon confirmation. Display message: "Job successfully submitted. Track progress using job_id: [job_id]". Buttons: "Track Job Status" to navigate to the job tracking page. "Start New Job" to return to the job creation form.
  4. Job Status and Tracking Page Search Field: Input field for users to enter or paste a job_id to view job details. Button: "Search Job" to retrieve job status.
  5. Job Status Display Summary View: Status: Display current job status (e.g., IN_PROGRESS, COMPLETED, FAILED). Total Experiments: Display total number of experiments. Processed Experiments: Display the number of processed experiments. Job Start Time: Display start timestamp. Job End Time: Display end timestamp if completed. Buttons: "View Details" to switch to a verbose view.
  6. Detailed Job View (Verbose Mode) Experiment Details: New Experiments: List of newly created experiments. Updated Experiments: List of updated experiments. Failed Experiments: List of failed experiments, if any. Recommendation Processing Details: Processed Recommendations: List of experiments with completed recommendations. In-Progress Recommendations: List of experiments currently being processed. Unprocessed Recommendations: List of experiments awaiting processing. Back Button: To navigate back to the summary view.
  7. Configuration Management Settings Page: Datasource Configuration: View and edit details for configured datasources (e.g., Prometheus, Thanos). Limits: Option to view or set the bulk experiment limit. Thread Pool Size: Input to modify bulkThreadPoolSize. Additional Considerations Error Handling: UI displays error messages if job creation fails due to exceeding experiment limits or any other configuration issues. Notifications: Job completion and error alerts can appear as in-app notifications. Accessibility: The workflow should be keyboard-navigable with screen reader support.
msvinaykumar commented 1 day ago

API documentation https://github.com/kruize/autotune/blob/master/design/BulkAPI.md