[Call for feedback] MAAS UX: We need a way to make MAAS load information faster

UI Enhancements for the new Beta API (MAAS)


The biggest problem that we want to solve in MAAS UI is to reduce the expensive operations from the UI so people can use MAAS with minimal wait time. We found a few problems in our initial analysis.

Number of machines per group

When pagination was introduced, our goal was to slice the list of machines to make the load time faster. However, when there are a high volume of machines in our users' environment, this logic becomes expensive, because it requires further calculation of how many machines in total belongs to this group, despite knowing that the view will show 50 machines per page.

Given this first constraint, we often wonder how our users might feel about the total number of machines showing here. Is this something that people running MAAS in their production environment (with more than 1000 machines) care about?

One the solution we have at the moment is to either remove this number entirely or showing this number according to the item per page. For instance, the image below shows the total number of machines in a particular group based on the default 50 items/page.

How does this information impact the way you are using MAAS?

Do you like our suggested solution to remove the total machine count? (If not, please comment)

  • I like this.
  • I don’t mind
  • Not my preference
0 voters

If you don’t prefer this solution, tell us more in the comments why and how this information impacts your workflow in MAAS.

Pagination

Every time the machine listing page is set in group by [something] mode and the user collapses the group, the UI will try to send a request to the API to fill in 50 items on the page as described in the pagination per page. This is not an expected behaviour and it is quite expensive to request the list every time.

2024-04-09 16.56.05
However, when you try to expand it, it doesn’t send any request to the API, hence, the list has more than 50 items as a result.

Initial solution:
We will remove grouping from the API. A user can still group things, but collapse and expanding will not affect the API request, unless a user changes the number of items per page dropdown.

2024-04-09 18.02.43

When in the machine list page, the UI will work with the initial grouping. In this case it’s the 50 machines on that page. When a user collapses the items under the group, there will be no new request to the API.
When a user changes the grouping mechanism, it will work with the original 50 machines from the first fetch.

Do you like our suggested solution for pagination? (If not, please comment)

  • I like this
  • I don’t mind
  • I prefer not
0 voters

If you don’t prefer this solution, tell us more in the comments why and how this information impacts your workflow in MAAS.

Machine listing expensive operations

  1. Fetching the IP address of a machine takes a lot of effort, but it’s worth it according to user research and has been requested by many teams before MAAS 2.7. So, we’ll display this info, fetching it with a separate call. If it’s slow, we’ll show a loading animation. MAAS will refresh every 5 seconds to accommodate other expensive information that cannot be shown in the initial load.

  2. Regarding the machine listing UI, when a machine fails a test, it’s hard to tell which category (like networking or storage) failed without making many requests, leading to a clutter of error icons.

Our solution is to break this into 2 separate API calls; one where you see the information in the status column, and the second call when hover on the ‘failed [commissioning]’ state to see which script fails. The click interaction will route you to the summary page where the user can expand the view and see all the failed scripts.

2024-04-09 15.51.37

Do you like our suggested solution to hover over the failed status column to view more errors instead of showing the icons on the table? (If not, please comment)

  • I like this
  • I don’t mind
  • I don’t prefer this
0 voters

If you don’t prefer this solution, tell us more in the comments why and how this information impacts your workflow in MAAS.

These are some of our initial solutions for the changes. If you are an enterprise user with a myriad of machines in your environment and are also using the UI, tell us about how these changes will influence your work.

If you don’t use the UI at all and these changes make it faster to work with MAAS, will it encourage you to work with the UI?

2 Likes

when a machine fails a test...
Are you proposing to do something with this? Is it related to performance of the web UI? I have voted in response to bullet point 1 and the bold text.

1 Like

Hi @gregoryo2017 The answer is yes and yes.
Solution: We will break it down into 2 API calls, thank you for spotting that in the article, I must have left out the solution part. (Added the solution already).

This is related to the performance of the web UI because when when something fails, MAAS will make another call to that particular machine to figure out which script fails in order to show the error icon on the storage column, disk, network, and RAM. This is very expensive, especially when multiple machines fail all at once.

I’m more than happy for any feedback or concerns you have in this problem (or any other problem) as well, if you don’t mind sharing :slight_smile:

I think it would be confusing to have the number of machines per group only be according to the item per page. “Why does it only say I have 2 New nodes but I should have 3?” I feel removing the number altogether would be a reasonable solution. It might be useful to show the number of nodes in a collapsed grouping so that I know how many machines are hidden. Maybe. Would that be confusing too?

1 Like

Thank you for preparing this! it was a nice visual summary and suggestion++++!

I marked “not my preference” on the first solution because the number counts are important for:

  • accounting - I can elaborate on this commercially (offline)
  • quick and quantifiable

I worry by removing the count, we’d be hiding a key indicator for the administrator.

2 Likes