-
Notifications
You must be signed in to change notification settings - Fork 5.9k
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
mgr/dashboard: multisite sync status card for rgw overview dashboard #52915
Conversation
22bfff1
to
789221f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @aaSharma14 for the great work on this, it's a cool and great addition for sure!
After testing it for a bit, let me give my thoughts:
Looks like it takes a little bit to load, it would be nice to have a loading spinner while the sync status card finishes loading, to let the user know something is going on and it just randomly appears
screen-capture-_18_.mp4
Regarding of the layout itself, I'm still not a fan of, I think a better placement would have been to have the realm1 -> zg1-realm1
on top of both cards, just below Multisite sync status
since the zones below will share a namespace.
Some other things I see:
- I think the naming
Primary Source Zone
is not the most appropiate. Data will flow from the master zone into the rest of the zones in the zonegroup and viceversa, so not sure if this is the best naming for it. - Same as before, but a part from that I think if we are naming the first as "source" I don't think the second card should be "source" as well, can be confussing as you would expect to be a "destination" or something similar
- This part is confusing to me and kinda out of place to the rest of the layout, I think a better indication that there is anything to sync for the metadata would be appriciated and I'm not sure of what does the
{zone is master}
is supposed to mean - No syncing is being made yet the status shows as
syncing
- I think the flow of the arrows can be missleading as it kinda looks like the syncing goes from the
realm1
into thezone1-zg1-realm1
, also I think it pops up too much compared to the rest of the layout when is not one of the main things to be looking at - If progress is at 100% I would expect that it said
done
,completed
or anything similar, to clarify that it has actually finished. This also goes with point 4 - The text value inside the progress bar should be white as in the other green badges
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work, @aaSharma14 !
Capitalization
We should stick to a single capitalization style, either "English Style or Title Case" or "Just first letter":
Text Color in Progress Bar
It should be lighter for readability purposes and for consistency with the badge style:
"Status" Badge
Usually when a text field is limited to a subset of values (enum-like), we replace that with a badge (e.g.: OSD status: in
, up
, out
, down
, etc...).
Reduce info displayed
Instead of showing 2 properties in the Data Sync (status and sync progress), can't we reduce that to a single property:
- Title:
Data Sync Status
(or even justData Sync
) - Body:
- Just badge/label showing
syncing
(the current status). No need to title that withstatus
, it can be inferred. - Just sync progress bar. No need to title that with
progress
(if you see "120 km/h" on a car dashboard, you don't need to be told that's a "Speed").
- Just badge/label showing
BTW, is it expected that status is "syncing" and progress is "100%"? That could be counter-intuitive. To me syncing means that progress is less that 100% (unless the default status is "syncing"... in that very case "syncing" equals to "everything ok"? What would be the other sync statuses?).
Important things first
From that tooltip it looks to me that the most important thing there is the "data is caught up with source", isn't it? I'd put that first and try to summarize it as a single concept: "in sync". However that sounds contradictory with the sync status, which is "syncing". Can we replace that "syncing" with "in sync", and only "syncing" when the progress is less that "100%"?
Regarding the 0/128 and 128/128, I'd replace that with progress bars or percentages:
- If 0/128 means nothing to do for "full sync", then 100% there.
- If 128/128 means nothing to do for "incremental sync", then another 100% there.
My guess is that RGW is showing a developer status instead of summarizing that in operator-meaningful terms.
...gr/dashboard/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-card-popover.scss
Outdated
Show resolved
Hide resolved
...board/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.scss
Outdated
Show resolved
Hide resolved
...board/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.scss
Outdated
Show resolved
Hide resolved
...shboard/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.ts
Outdated
Show resolved
Hide resolved
src/pybind/mgr/dashboard/frontend/src/app/shared/components/card/card.component.scss
Outdated
Show resolved
Hide resolved
src/pybind/mgr/dashboard/frontend/src/app/shared/components/card/card.component.html
Outdated
Show resolved
Hide resolved
789221f
to
dcc07b5
Compare
Thanks @epuertat , for the suggestions.
|
dcc07b5
to
17a0844
Compare
Thanks @Pegonzal for the review. I agree that we can improve the layout with a better design showing the source zones as a part of the overall realm and zonegroup. I think we can take it as an improvement because of the time constraints. |
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
17a0844
to
403f7c1
Compare
403f7c1
to
51c7944
Compare
...board/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.html
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still think there could are rooms for improvements in the 'pythonic' part. But for ts, this is my first impression based on some testing. We could improve it again if the backend data processing is done a little bit more better.. but that's something we can take a look!
also, there are a lot of *ngFor
and usage of same variable name
in the html. Which is a bit difficult for readability. We should make the code more readable for the future developers who are going to maintain this and for ourselves too!
...shboard/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.ts
Outdated
Show resolved
Hide resolved
...board/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.html
Outdated
Show resolved
Hide resolved
...board/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.html
Outdated
Show resolved
Hide resolved
...board/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.html
Outdated
Show resolved
Hide resolved
...board/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.scss
Outdated
Show resolved
Hide resolved
...board/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.html
Outdated
Show resolved
Hide resolved
d340c78
to
92c1bee
Compare
...board/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.html
Outdated
Show resolved
Hide resolved
...board/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.html
Outdated
Show resolved
Hide resolved
...board/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.html
Outdated
Show resolved
Hide resolved
...shboard/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.ts
Outdated
Show resolved
Hide resolved
...shboard/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.ts
Outdated
Show resolved
Hide resolved
@aaSharma14 angular has in-built pipe |
also, te loading screen is not working. I have not seen it atleast. |
92c1bee
to
a833fbf
Compare
src/pybind/mgr/dashboard/frontend/src/app/shared/components/card/card.component.html
Show resolved
Hide resolved
a833fbf
to
cc1dce2
Compare
...shboard/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.ts
Outdated
Show resolved
Hide resolved
...shboard/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.ts
Outdated
Show resolved
Hide resolved
1ce99fc
to
3c71576
Compare
src/pybind/mgr/dashboard/frontend/src/app/shared/components/card/card.component.html
Show resolved
Hide resolved
src/pybind/mgr/dashboard/frontend/src/app/shared/components/card/card.component.html
Outdated
Show resolved
Hide resolved
85db148
to
aaad0b3
Compare
aaad0b3
to
5ba0bc0
Compare
Signed-off-by: Aashish Sharma <aasharma@redhat.com> (cherry picked from commit 1d6f19e53b68c180a2d0301889974949fe899a2c)
5ba0bc0
to
da65bbc
Compare
jenkins test make check |
jenkins test dashboard |
jenkins test api |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Working good, and I'm liking all the new improvments!
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks @aaSharma14
Signed-off-by: Aashish Sharma aasharma@redhat.com
Fixes: https://tracker.ceph.com/issues/62496
Screencast.from.2023-08-17.17-26-07.webm
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "pacific"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
Checklist
Show available Jenkins commands
jenkins retest this please
jenkins test classic perf
jenkins test crimson perf
jenkins test signed
jenkins test make check
jenkins test make check arm64
jenkins test submodules
jenkins test dashboard
jenkins test dashboard cephadm
jenkins test api
jenkins test docs
jenkins render docs
jenkins test ceph-volume all
jenkins test ceph-volume tox
jenkins test windows