HBASE-25896 Implement a Region Visualization on Master WebUI (#4228)
authorNick Dimiduk <ndimiduk@apache.org>
Tue, 15 Mar 2022 20:01:57 +0000 (21:01 +0100)
committerGitHub <noreply@github.com>
Tue, 15 Mar 2022 20:01:57 +0000 (21:01 +0100)
commitc4ec5230f25f1cf7c3dfcfb6244fa2285ad268d6
tree6231de3971d8a06a36b6280cd111552cbf274480
parent2507dc1b01ed1850bf6d7e9bb86124782f60648e
HBASE-25896 Implement a Region Visualization on Master WebUI (#4228)

This is a demonstration of visualization of regions on the cluster. The visualization is a stacked
bar chart showing total storefile size per table per region server, with the x-axis being server
names, the y-axis being storfile size, and the bars stacked per table. The visualization is
generated entirely on the fly from within the browser, implemented using Vega Lite. So far, Vega
appears to handle rendering this visualization for a cluster of over 700 region servers with
approximately 300,000 regions.

Per [0], include an update to the top-level LICENSE.txt. Also update LICENSE files in all binary
distributions (i.e., jars), by way of LICENSE.vm. Vega uses a BSD 3-clause variant without
advertising clause, and as such is a "Category A" license, per [1].

No changes are made to the NOTICE files, as per the existing example of bundling the minified
JQuery, which is also a Category A license.

[0]: https://infra.apache.org/licensing-howto.html
[1]: https://www.apache.org/legal/resolved.html#category-a

Signed-off-by: Andrew Purtell <apurtell@apache.org>
16 files changed:
LICENSE.txt
hbase-assembly/pom.xml
hbase-http/pom.xml
hbase-resource-bundle/src/main/resources/META-INF/LICENSE.vm
hbase-server/pom.xml
hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RegionVisualizerTmpl.jamon [new file with mode: 0644]
hbase-server/src/main/java/org/apache/hadoop/hbase/master/http/RegionVisualizer.java [new file with mode: 0644]
hbase-server/src/main/java/org/apache/hadoop/hbase/master/http/api_v1/cluster_metrics/resource/ClusterMetricsResource.java
hbase-server/src/main/resources/hbase-webapps/static/js/vega-embed@6.15.1.min.js [new file with mode: 0644]
hbase-server/src/main/resources/hbase-webapps/static/js/vega-lite@5.0.0.min.js [new file with mode: 0644]
hbase-server/src/main/resources/hbase-webapps/static/js/vega@5.19.1.min.js [new file with mode: 0644]
hbase-server/src/test/java/org/apache/hadoop/hbase/master/http/TestApiV1ClusterMetricsResource.java
hbase-server/src/test/java/org/apache/hadoop/hbase/master/http/TestRegionVisualizer.java [new file with mode: 0644]
hbase-shaded/pom.xml
pom.xml