[UI] Improve App background statuses feedback
See original GitHub issuePreflight Checklist
- I have searched the issue tracker for a feature request that matches the one I want to file, without success.
Problem Description
Relying on progress
bar to make sure that all background services are up/running could be a danger zone.
If something went really bad and the process bar was detached (hidden) and you than you notice something isn’t working…
you might need to dig into the logs, access the VM and do a bunch of manual process to double check if everything is working.
Proposed Solution
- Provide a health check endpoint/feature for each services loaded on background e.g: K8s cluster healthz check ( kubectl healthz curl -k https://localhost:6443/livez?verbose)
- Add a visual system status on the UI (could be a HTML element, but an element that receive a list with all statuses from the services)
Additional Information
Motivator:
Currently our E2E tests rely on .progress
class element. We’re assuming after the progress bar being detached from the page, it means that all services were properly loaded (k3s, k8s api, VM, and etc).
So far, it is working, but it will be much better to have feature that we can ensure all the services were loaded properly or not, without rely on a HTML element (visible/hidden states).
Issue Analytics
- State:
- Created 2 years ago
- Comments:8 (8 by maintainers)
Top Results From Across the Web
Improving Your App's Performance - Apple Developer
Model, measure, and boost the performance of your app by using a continuous-improvement cycle.
Read more >Background optimization | Android Developers
Optimizing your apps to run on low-memory devices, or in low-memory conditions, can improve performance and user experience. Removing dependencies on background ......
Read more >A Comprehensive Guide to Notification Design - Toptal
Better Usability Through Better Notification Design ... Notifications serve an essential function in product usability. “Visibility of system status” is number ...
Read more >10 Tips to Improve UX/UI Design of Web App - TechMagic
Thorough research · Demographic characteristics. They include gender, age, profession, family status, lifestyle, and all related. · Interests and ...
Read more >Visibility of System Status (Usability Heuristic #1)
Appropriate feedback for a user action is perhaps the most basic guideline of user-interface design. It serves to keep users informed of the ......
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
I think it would make sense to fit in a red/yellow/green status indicator. I imagine that it could include a dropdown with a status check for each of our services, so that we could easily see where a warning or failure occurred. Making use of a status file could provide us with all the information we need to get a quick heads up about the state of our system, while clicking on any given service could open the respective log for further troubleshooting.
I was wondering if it would make sense to write a JSON file with status information to disk (in the log directory) every time the status changes?
To avoid race conditions between writing and reading the file, the data should always be written to a temp file, which then gets renamed to the canonical name. If the rename fails, the error is ignored because the canonical file is probably locked by somebody reading it.
This file could both be used to wait until RD reaches a specific state, and also for inspecting the last state when the app hangs or crashes.
Not sure if this would be helpful for CI and/or QA.
PS: I just noticed that this issue has a
[UI]
tag in the subject, so this comment is probably off-topic. 😄