Project

General

Profile

Actions

Feature #35684

closed

mgr/dashboard: CRUSH map viewer/architectural overview

Added by Patrick Seidensal over 5 years ago. Updated about 3 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
General
Target version:
% Done:

0%

Source:
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

To reach feature parity with openATTIC, we'll need a hierarchical view of the CRUSH map.

This enables the user to see an overview of the cluster being used.


Files

logical-topology.png (17.1 KB) logical-topology.png Lenz Grimmer, 09/17/2018 07:59 AM
physical-topology.png (15.1 KB) physical-topology.png Lenz Grimmer, 09/17/2018 07:59 AM
Toplogy-nav.png (8.15 KB) Toplogy-nav.png Lenz Grimmer, 09/17/2018 07:59 AM
crushmap-entry.png (15.7 KB) crushmap-entry.png Dan Guo, 10/25/2018 03:23 AM
crushmap-panel1.png (35.6 KB) crushmap-panel1.png Dan Guo, 10/25/2018 03:23 AM
crushmap-panel2.png (38.6 KB) crushmap-panel2.png Dan Guo, 10/25/2018 03:23 AM

Related issues 2 (1 open1 closed)

Related to Dashboard - Feature #37794: mgr/dashboard: CRUSH map viewer RFEResolvedDan Guo

Actions
Precedes Dashboard - Feature #25159: mgr/dashboard: Add CRUSH ruleset management to CRUSH viewerNew

Actions
Actions #1

Updated by Patrick Seidensal over 5 years ago

  • Precedes Feature #25159: mgr/dashboard: Add CRUSH ruleset management to CRUSH viewer added
Actions #2

Updated by Lenz Grimmer over 5 years ago

  • Subject changed from CRUSH map viewer/architectural overview to mgr/dashboard: CRUSH map viewer/architectural overview
  • Category changed from 148 to 132
Actions #3

Updated by Lenz Grimmer over 5 years ago

See the downstream documentation for details.

Actions #4

Updated by Lenz Grimmer over 5 years ago

  • Priority changed from High to Normal
Actions #5

Updated by Dan Guo over 5 years ago

Since my team implemented the CRUSH map in our private Ceph Management Dashboard, we want to do the job.

Actions #6

Updated by Lenz Grimmer over 5 years ago

dan Guo wrote:

Since my team implemented the CRUSH map in our private Ceph Management Dashboard, we want to do the job.

Hi Dan! This is great news! Can you share a screen shot of your implementation and some details on how you implemented it?

Actions #7

Updated by Dan Guo over 5 years ago

  • File Our implementation of CRUSH map.zip added

Lenz Grimmer wrote:

dan Guo wrote:

Since my team implemented the CRUSH map in our private Ceph Management Dashboard, we want to do the job.

Hi Dan! This is great news! Can you share a screen shot of your implementation and some details on how you implemented it?

Hi, Lenz. Attachment is photos of our private ceph dashboard about CRUSH map. For now, we just show the CRUSH rule in a data table manner, and we will implement the new CRUSH map in a tree view. What we will do to implement the new CRUSH map is use Angular Material tree component(https://material.angular.io/components/tree/overview/components/tree/overview) for implementation of the webUI display. And since the ceph cluster CRUSH rule data can acquired from dashboard controller API "api/dashboard/health", which is base to us, we need parse these CRUSH rule data at dashboard/controller portion and return the special data structure to dashboard/frontend, and then, through the render of Angular Material, the tree map will be displayed on webUI page.

Updated by Lenz Grimmer over 5 years ago

Hi Dan,

dan Guo wrote:

Attachment is photos of our private ceph dashboard about CRUSH map.

Thank you! To make it easier for others, I am going to embed the screen shots here:



For now, we just show the CRUSH rule in a data table manner, and we will implement the new CRUSH map in a tree view. What we will do to implement the new CRUSH map is use Angular Material tree component(https://material.angular.io/components/tree/overview/components/tree/overview) for implementation of the webUI display. And since the ceph cluster CRUSH rule data can acquired from dashboard controller API "api/dashboard/health", which is base to us, we need parse these CRUSH rule data at dashboard/controller portion and return the special data structure to dashboard/frontend, and then, through the render of Angular Material, the tree map will be displayed on webUI page.

Sounds good. I will ask some other members of the dashboard team to review and comment on this proposal. To get started, could I ask you to start with #24822 first? This seems to be somewhat easier as a first task to get familiar with the dashboard code base and the code contribution process. What do you think?

Thanks again for your offer to help, much appreciated.

Actions #9

Updated by Lenz Grimmer over 5 years ago

  • File deleted (Our implementation of CRUSH map.zip)
Actions #10

Updated by Patrick Seidensal over 5 years ago

As the dashboard uses `ngx-bootstrap` but this package doesn't provide any tree component, it might make sense to consider using something like Boostrap Treeview instead of the Angular Material Tree component. I personally like the whole material design idea but I think we've kind of agreed on using Bootstrap for the dashboard. The Bootstrap Treeview seems to fit better into what we currently have and seems also to have a greater area to click at, which increases usability on mobile devices in my humble opinion.

Actions #11

Updated by Dan Guo over 5 years ago

Lenz Grimmer wrote:

Sounds good. I will ask some other members of the dashboard team to review and comment on this proposal. To get started, could I ask you to start with #24822 first? This seems to be somewhat easier as a first task to get familiar with the dashboard code base and the code contribution process. What do you think?

Thanks again for your offer to help, much appreciated.

Of course, I am very happy to use #24822 as the beginning of my work.

Actions #12

Updated by Dan Guo over 5 years ago

Patrick Nawracay wrote:

As the dashboard uses `ngx-bootstrap` but this package doesn't provide any tree component, it might make sense to consider using something like Boostrap Treeview instead of the Angular Material Tree component. I personally like the whole material design idea but I think we've kind of agreed on using Bootstrap for the dashboard. The Bootstrap Treeview seems to fit better into what we currently have and seems also to have a greater area to click at, which increases usability on mobile devices in my humble opinion.

So, How about the ngx-treeview ?

Actions #13

Updated by Patrick Seidensal over 5 years ago

dan Guo wrote:

So, How about the ngx-treeview ?

Seems to have a nice feature set, but it says that it requires Bootstrap 4 as dependency and we're currently still on Bootstrap 3.3.7.

I'm not opposed to using it, just not sure if it works.

Actions #14

Updated by Lenz Grimmer over 5 years ago

Hi Dan,

dan Guo wrote:

Lenz Grimmer wrote:

dan Guo wrote:

Since my team implemented the CRUSH map in our private Ceph Management Dashboard, we want to do the job.

Hi Dan! This is great news! Can you share a screen shot of your implementation and some details on how you implemented it?

Hi, Lenz. Attachment is photos of our private ceph dashboard about CRUSH map. For now, we just show the CRUSH rule in a data table manner, and we will implement the new CRUSH map in a tree view. What we will do to implement the new CRUSH map is use Angular Material tree component(https://material.angular.io/components/tree/overview/components/tree/overview) for implementation of the webUI display. And since the ceph cluster CRUSH rule data can acquired from dashboard controller API "api/dashboard/health", which is base to us, we need parse these CRUSH rule data at dashboard/controller portion and return the special data structure to dashboard/frontend, and then, through the render of Angular Material, the tree map will be displayed on webUI page.

Now that #24822 has been resolved (thanks a lot for your contribution!), I was wondering if you're still planning to contribute your CRUSH map tool? We would be very grateful for this contribution!

Actions #15

Updated by Dan Guo over 5 years ago

Lenz Grimmer wrote:

Hi Dan,

dan Guo wrote:

Lenz Grimmer wrote:

dan Guo wrote:

Since my team implemented the CRUSH map in our private Ceph Management Dashboard, we want to do the job.

Hi Dan! This is great news! Can you share a screen shot of your implementation and some details on how you implemented it?

Hi, Lenz. Attachment is photos of our private ceph dashboard about CRUSH map. For now, we just show the CRUSH rule in a data table manner, and we will implement the new CRUSH map in a tree view. What we will do to implement the new CRUSH map is use Angular Material tree component(https://material.angular.io/components/tree/overview/components/tree/overview) for implementation of the webUI display. And since the ceph cluster CRUSH rule data can acquired from dashboard controller API "api/dashboard/health", which is base to us, we need parse these CRUSH rule data at dashboard/controller portion and return the special data structure to dashboard/frontend, and then, through the render of Angular Material, the tree map will be displayed on webUI page.

Now that #24822 has been resolved (thanks a lot for your contribution!), I was wondering if you're still planning to contribute your CRUSH map tool? We would be very grateful for this contribution!

Yeah, I have been working on CRUSH map and I have always wanted to find a better way to implement it. I will give the first implementation as soon as possible.

Actions #16

Updated by Lenz Grimmer over 5 years ago

dan Guo wrote:

Yeah, I have been working on CRUSH map and I have always wanted to find a better way to implement it. I will give the first implementation as soon as possible.

Sounds great, thanks for the update! Looking forward to your contribution. As soon as you have code or screenshots to share, please let us know :)

Actions #17

Updated by Lenz Grimmer over 5 years ago

  • Assignee set to Dan Guo

Updated by Dan Guo over 5 years ago

Lenz Grimmer wrote:

dan Guo wrote:

Yeah, I have been working on CRUSH map and I have always wanted to find a better way to implement it. I will give the first implementation as soon as possible.

Sounds great, thanks for the update! Looking forward to your contribution. As soon as you have code or screenshots to share, please let us know :)

Hi, I have implemented the first version of the CRUSH map in the dashboard.

First, I added the entry for the CRUSH map to the drop-down menu in the cluster navigation.

Second, in addition to displaying the CRUSH map as a tree, I also show the metadata returned from the backend.

The attachment is a screenshot of my implementation.

I am very happy to hear from everyone.

Actions #19

Updated by Lenz Grimmer over 5 years ago

Thank you, this is a great start already! I slightly updated your last comment so the images are included. Looks great already. What are your next steps?

Actions #20

Updated by Dan Guo over 5 years ago

Lenz Grimmer wrote:

Thank you, this is a great start already! I slightly updated your last comment so the images are included. Looks great already. What are your next steps?

Next, I want to change the display mode of the metadata. instead of pouring all the metadata for a page, I think it would be a better way to display the metadata associated with a selected node in the tree when clicking on this node.

And then, I will send a PR to GitHub/Ceph master branch.

Actions #21

Updated by Lenz Grimmer over 5 years ago

dan Guo wrote:

Next, I want to change the display mode of the metadata. instead of pouring all the metadata for a page, I think it would be a better way to display the metadata associated with a selected node in the tree when clicking on this node.

And then, I will send a PR to GitHub/Ceph master branch.

Sounds good. Looking forward to it!

Actions #23

Updated by Lenz Grimmer over 5 years ago

A basic CRUSH map viewer has now been merged. Than you, Dan Guo! Do you plan to make further improvements to it, to match the functionality provided by the tool you mentioned before?

Actions #24

Updated by Dan Guo over 5 years ago

Lenz Grimmer wrote:

A basic CRUSH map viewer has now been merged. Than you, Dan Guo! Do you plan to make further improvements to it, to match the functionality provided by the tool you mentioned before?

IMHO, I think the basic functionality required for CRUSH map viewer has been completed, and I can't think of a better idea to improve it for now.
However, I always be happy to work on it if anyone has any good idea on it.

Actions #25

Updated by Lenz Grimmer over 5 years ago

  • Status changed from New to Resolved

Dan Guo wrote:

IMHO, I think the basic functionality required for CRUSH map viewer has been completed, and I can't think of a better idea to improve it for now.

Sounds good, I'll resolve this issue then. Thanks again!

However, I always be happy to work on it if anyone has any good idea on it.

You initially shared screen shots of a tool that depicted both a "physical" and "logical" topology view. Any thoughts or plans on adding this functionality to the dashboard?

Actions #26

Updated by Dan Guo over 5 years ago

Lenz Grimmer wrote:

You initially shared screen shots of a tool that depicted both a "physical" and "logical" topology view. Any thoughts or plans on adding this functionality to the dashboard?

Oh, Sorry for what I have to say that this is a special mechanism based on our private implementation of ceph cluster. Therefore, it is not suitable for general ceph clusters.
This special mechanism applies to the special situation of ceph cluster. This situation requires support from the dashboard python module or even ceph itself. However, because my knowledge is limited to Angular and WebUI territory, this is beyond my ability.

Actions #27

Updated by Lenz Grimmer over 5 years ago

Dan Guo wrote:

Oh, Sorry for what I have to say that this is a special mechanism based on our private implementation of ceph cluster. Therefore, it is not suitable for general ceph clusters.
This special mechanism applies to the special situation of ceph cluster. This situation requires support from the dashboard python module or even ceph itself. However, because my knowledge is limited to Angular and WebUI territory, this is beyond my ability.

I see, thanks for the information! No problem, I was just curious :)

Actions #28

Updated by Lenz Grimmer over 5 years ago

  • Pull request ID set to 24766
Actions #29

Updated by Ju Lim over 5 years ago

  • Related to Feature #37794: mgr/dashboard: CRUSH map viewer RFE added
Actions #30

Updated by Ju Lim over 5 years ago

Actions #31

Updated by Ju Lim over 5 years ago

  • Precedes deleted (Feature #37794: mgr/dashboard: CRUSH map viewer RFE)
Actions #32

Updated by Lenz Grimmer about 5 years ago

@Dan Guo - please see #37794 for some enhancements to the CRUSH map viewer - your feedback would be appreciated.

Actions #33

Updated by Dan Guo about 5 years ago

Lenz Grimmer wrote:

@Dan Guo - please see #37794 for some enhancements to the CRUSH map viewer - your feedback would be appreciated.

Ok, I am very happy to do this job.

Actions #34

Updated by Lenz Grimmer about 5 years ago

Dan Guo wrote:

Ok, I am very happy to do this job.

Great! Please comment the issue and offer your help, so we can assign it to you. We would love to have this enhancements included in time for the Nautilus release, which is reaching feature freeze at the end of this month.

Actions #35

Updated by Ernesto Puerta about 3 years ago

  • Project changed from mgr to Dashboard
  • Category changed from 132 to General
Actions

Also available in: Atom PDF