saintstack commented on a change in pull request #1020: HBASE-23653 Expose
content of meta table in web ui
URL: https://github.com/apache/hbase/pull/1020#discussion_r366083062
##########
File path: hbase-server/src/main/resources/hbase-webapps/master/table.jsp
##########
@@ -47,46 +52,63 @@
import="org.apache.hadoop.hbase.client.RegionReplicaUtil"
import="org.apache.hadoop.hbase.client.Table"
import="org.apache.hadoop.hbase.master.HMaster"
- import="org.apache.hadoop.hbase.master.assignment.RegionStates"
import="org.apache.hadoop.hbase.master.RegionState"
- import="org.apache.hadoop.hbase.quotas.QuotaSettingsFactory"
- import="org.apache.hadoop.hbase.quotas.QuotaTableUtil"
- import="org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshot"
- import="org.apache.hadoop.hbase.quotas.ThrottleSettings"
- import="org.apache.hadoop.hbase.util.Bytes"
- import="org.apache.hadoop.hbase.util.FSUtils"
- import="org.apache.hadoop.hbase.zookeeper.MetaTableLocator"
- import="org.apache.hadoop.util.StringUtils"
- import="org.apache.hbase.thirdparty.com.google.protobuf.ByteString"%>
+ import="org.apache.hadoop.hbase.master.assignment.RegionStates"
+ import="org.apache.hadoop.hbase.master.webapp.LimitIterator"
+ import="org.apache.hadoop.hbase.master.webapp.MetaBrowser"
+ import="org.apache.hadoop.hbase.master.webapp.RegionReplicaInfo"
+ import="org.apache.hadoop.hbase.quotas.QuotaSettingsFactory"%>
+<%@ page import="org.apache.hadoop.hbase.quotas.QuotaTableUtil" %>
+<%@ page import="org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshot" %>
+<%@ page import="org.apache.hadoop.hbase.quotas.ThrottleSettings" %>
+<%@ page import="org.apache.hadoop.hbase.util.Bytes" %>
+<%@ page import="org.apache.hadoop.hbase.util.FSUtils" %>
+<%@ page import="org.apache.hadoop.hbase.zookeeper.MetaTableLocator" %>
+<%@ page import="org.apache.hadoop.util.StringUtils" %>
+<%@ page import="org.apache.hbase.thirdparty.com.google.protobuf.ByteString" %>
<%@ page
import="org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos"
%>
<%@ page
import="org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos" %>
<%@ page
import="org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas" %>
<%@ page
import="org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota"
%>
-<%@ page import="org.apache.hadoop.hbase.ServerMetrics" %>
-<%@ page import="org.apache.hadoop.hbase.RegionMetrics" %>
-<%@ page import="org.apache.hadoop.hbase.Size" %>
-<%@ page import="org.apache.hadoop.hbase.RegionMetricsBuilder" %>
<%!
/**
* @return An empty region load stamped with the passed in
<code>regionInfo</code>
* region name.
*/
- private RegionMetrics getEmptyRegionMetrics(final RegionInfo regionInfo) {
+ private static RegionMetrics getEmptyRegionMetrics(final RegionInfo
regionInfo) {
return
RegionMetricsBuilder.toRegionMetrics(ClusterStatusProtos.RegionLoad.newBuilder().
setRegionSpecifier(HBaseProtos.RegionSpecifier.newBuilder().
setType(HBaseProtos.RegionSpecifier.RegionSpecifierType.REGION_NAME).
setValue(ByteString.copyFrom(regionInfo.getRegionName())).build()).build());
}
+
+ /**
+ * Given dicey information that may or not be available in meta, render a
link to the region on
+ * its region server.
+ * @return an anchor tag if one can be built, {@code null} otherwise.
+ */
+ private static String buildRegionServerLink(final ServerName serverName,
final int rsInfoPort,
+ final RegionInfo regionInfo, final RegionState.State regionState) {
+ if (serverName == null || regionInfo == null) { return null; }
+
+ if (regionState != RegionState.State.OPEN) {
+ // region is assigned to RS, but RS knows nothing of it. don't bother
with a link.
+ return serverName.getServerName();
+ }
+
+ final String socketAddress = serverName.getHostname() + ":" + rsInfoPort;
+ final String URI = "//" + socketAddress + "/region.jsp"
+ + "?name=" + regionInfo.getEncodedName();
+ return "<a href=\"" + URI + "\">" + serverName.getServerName() + "</a>";
Review comment:
Is there a method in the jsp already that makes a line of server name? IIRC?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services