Created Compaction Overview page#6328
Conversation
This commit changes the labels in the Monitor Activity Menu a bit and adds a new Compaction Overview page. The coordinator activity table was moved from the Manager page to this new page, along with tables for queue activity, running compactions by table and group.
|
#6251 will be closed and this merged in its place when this is ready. Currently having an issue with the data in the compactions by table/group tables not showing |
| cols.add(new MetricColumnFactory(Metric.TSERVER_TABLETS_LONG_ASSIGNMENTS)); | ||
| List<Metric> tabletServerMetrics = tabletServerMetrics(); | ||
| ColumnFactoryList cfl = new ColumnFactoryList(tabletServerMetrics.size()); | ||
| tabletServerMetrics.forEach(tsm -> cfl.add(new MetricColumnFactory(tsm))); |
There was a problem hiding this comment.
Before this change the tablet server columns were grouped in such a way that scan columns, write columns, and conditional update columns were ordered together. Also a subset of all metrics were selected. After these changes the order is scrambled and alot metrics are included.
There was a problem hiding this comment.
I implemented a change in 1b19113 that sorts the list of columns after everything is added. It should put the common columns first and sort by the metric key. Our naming convention of the metric keys should group like things next to each other. If the user wants the columns in a specific order in their browser, then they should be able to drag and drop the columns in the order they want.
There was a problem hiding this comment.
What is the goal of these changes with the tserver view? In #6329 the goal was to make the tserver view use a curated set of columns with a given initial order. Those web page columns could be derived from multiple metrics. In the future we could have columns derived from metadata table or zookeeper data and not just metrics (like a count of tablets in metadata table w/ future set to a tserver) or even a combination of data from those sources. Attached a screenshot of these changes which could be compared w/ the screenshot in #6329. I had to zoom way way out to get the screenshot.
There was a problem hiding this comment.
I was trying to reduce the lines of code here that were setting the ColumnFactory to the MetricColumnFactory. MetricColumnFactory seems like the default implementation, so I was applying that to everything and then applying your overrides. I don't think I realized that you removed some of the columns when replacing them with the new computed columns. It makes sense, I just didn't put it together when reviewing your PR. I'm fine with backing out these changes to what you had in #6329.
However, I think I'm confused as to the direction were going here with where we are defining columns for the Monitor UI pages. My PR #6278 modified the code to display all of the metrics as columns and it moved the column and order information from the front-end code. @DomGarguilo had reservations about this saying that he believed the front-end code should request the specific columns that it wants from the back-end. I'm not sure if the changes in #6329 makes that harder or not.
There was a problem hiding this comment.
We could do a few things in the future to improve this.
- Create a per server page that show all the metrics in a long table where each row is a single metric. Then the view of all servers could link to this for each server. With this hopefully the overall view can indicate there is a problem with a server and the per server view an offer a lot more details.
- Potentially create an end point that advertises what columns are available for a server view and have UI elements for selecting which ones you want to see. Have a default smaller set. The web columns available for a server may not have a 1:1 relationship w/ metrics.
Not sure about these options, but it seems like for now we need a curated view to make the pages useful. We should iterate on how to make more information available in a way that is useful.
This commit changes the labels in the Monitor Activity Menu a bit and adds a new Compaction Overview page. The coordinator activity table was moved from the Manager page to this new page, along with tables for queue activity, running compactions by table and group.