Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Show all resources on a single page in the dashboard #892

Closed
DamianEdwards opened this issue Nov 16, 2023 · 9 comments · Fixed by #987
Closed

Show all resources on a single page in the dashboard #892

DamianEdwards opened this issue Nov 16, 2023 · 9 comments · Fixed by #987
Assignees

Comments

@DamianEdwards
Copy link
Member

Today, the dashboard has separate pages for project, container, and executable resources. This makes it cumbersome to see all resources that make up a distributed application being monitored by the dashboard, as one has to click between pages to see the various resource types and their statuses. It also provides nowhere to display custom resource types.

We should consider instead have a single "Resources" page that shows all resources by default, with the ability to filter the view by resource type (one or many). The columns in the table would need to be common enough to apply to all resource types reasonably, e.g. instead of a "project path" column for projects and "base image" for containers it would have a "Details" column that each resource type would use to display the relevant top-level details unique to that resource type. Selecting a row in the table would show the full details for that resource in the details pane, showing whatever fields make sense for the resource type.

@tlmii
Copy link
Member

tlmii commented Nov 16, 2023

Selecting a row in the table would show the full details for that resource in the details pane, showing whatever fields make sense for the resource type.

One thing to sort out here will be how we handle the extra details (whatever current columns don't fit nicely into the new "details" column) combined with the environment variables. The trace details page's details view has a similar concept already (there are two grids in that details view) so we could potentially start with something like that and then iterate. A true "details" panel (not just a property grid) would probably be more appropriate long term for the first part of that. But that doesn't have to be where we start.

a "Details" column that each resource type would use to display the relevant top-level details unique to that resource type.

Here's the things that are not (directly) in common between the resource types that are on the grid now (so we can discuss which should be merged into a details column and which should be moved to the details pane):

  • Projects
    • Process Id
    • Source Location
  • Containers
    • Container Id
    • Container Image
    • Ports
  • Executables
    • Process Id
    • Working Directory
    • Arguments

Seems like Process Id/Container Id could be shared in a column (or combined into name column). Source Location, Container Image, Ports, Working Directory and Arguments could be combined, but they'd need to be labeled, which would make that column a little messy.

But I'm not sure which of those we'd want to actually push off to a details pane. Any of them could be helpful at-a-glance information in specific scenarios.

@smitpatel
Copy link
Contributor

I think the barebone necessity on single resources page would be to know the state of resources, Running status, any errors, replicas, endpoints. Most of those are kind of common between pages. That would be most useful. There are also other things which my be useful for particular resource kind, may be add those columns only when filtered on that resource kind?

@DamianEdwards
Copy link
Member Author

Agreed that the various Id columns could just become unified in a single "Id" column.

One thought is that "Source Location", "Container Image", and "Working Directory" could all be unified into something like a "Location" column? Might be too much of a forced fit though.

Endpoints should for sure be in the default view so that it's easy to click-through to the URLs.

Alternatively we could keep the columns on all the time and just have them be empty (or n/a) for resource types they don't apply to. Perhaps we drop project "Source Location" by default anyway as I'm starting to question its value.

We might want to make the displayed columns configurable in the future (a bit like in Windows Task Manager).

@berkansasmaz
Copy link
Contributor

berkansasmaz commented Nov 18, 2023

Hello dotnet team, if PR is welcome for this issue, I can start working on it.

If it is suitable for everyone, I can make your improvement suggestions through concrete pages and codes after opening the pull-request.

@danmoseley
Copy link
Member

"Source Location", "Container Image", and "Working Directory" could all be unified into something like a "Location" column? Might be too much of a forced fit though.

It seems to me it would be fairly self evident what each one is, so a generic Location header would be fine.

@DamianEdwards
Copy link
Member Author

@danmoseley maybe "Source" is a better fit?

@danmoseley
Copy link
Member

That works too.

@tlmii
Copy link
Member

tlmii commented Nov 19, 2023

I took a quick stab at this yesterday so we would have something more visual to react to:

Added an icon-only column for the type (separate column for sorting). Combined Name, Process Id and Container Id into the Name column. Combined Executable Path + Arguments, Container Image + Ports and Source Location into one Source column.

eShopLite:
image

dapr Sample (w/ executables):
image

There's obviously still some issues here:

  1. No good place to put Working Directory. It could go as a second line in Source but it'd likely need to be labeled and that plus the second row makes the layout messier. But it'd work. Or we could move it to the details panel. But so far nothing else had to be moved.
  2. Not sure about ports connected to container image that way. Similar to Working Directory above I suppose, but since it is shorter its easier to cram in somewhere
  3. In general, it's much harder to visually scan the columns when the data has different meaning per row. So I'm a little worried about the UX here if we do too much mixing things up.
  4. We need to come up with a good, easy UI to toggle between All Resources, just Projects, just Containers, just Executables (and possibly some combination of the three). That'll need to be a part of Standardize sorting, filtering, & searching UX for dashboard views #896 but is also somewhat specific to this page.
  5. Lots of general tweaks (e.g. make process id, container id easily copyable again; need icon review; icon-only column has some rendering issues; appropriate tooltips)

@kvenkatrajan
Copy link
Member

Thanks - This looks great @tlmii
For the additional Source dimensions, perhaps an icon

Image

with on hover panel display (https://www.fluentui-blazor.net/Panel) would suffice?

@kvenkatrajan kvenkatrajan added this to the preview 2 (Dec) milestone Nov 21, 2023
@github-actions github-actions bot locked and limited conversation to collaborators Apr 29, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants