You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zg...@apache.org on 2017/11/07 02:07:02 UTC

hbase git commit: HBASE-19186 Unify to use bytes to show size in master/rs ui

Repository: hbase
Updated Branches:
  refs/heads/master 2a99b87af -> b6011a16f


HBASE-19186 Unify to use bytes to show size in master/rs ui


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/b6011a16
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/b6011a16
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/b6011a16

Branch: refs/heads/master
Commit: b6011a16fffebae21e56c41206b29d96c0613024
Parents: 2a99b87
Author: Guanghao Zhang <zg...@apache.org>
Authored: Sun Nov 5 12:41:02 2017 +0800
Committer: Guanghao Zhang <zg...@apache.org>
Committed: Tue Nov 7 10:07:03 2017 +0800

----------------------------------------------------------------------
 .../tmpl/regionserver/BlockCacheTmpl.jamon      |   4 +-
 .../tmpl/regionserver/ServerMetricsTmpl.jamon   |  10 +-
 .../hbase-webapps/master/procedures.jsp         |   9 +-
 .../hbase-webapps/master/processMaster.jsp      |   9 +-
 .../hbase-webapps/master/processRS.jsp          | 228 -------------------
 .../resources/hbase-webapps/master/table.jsp    |   2 +-
 .../hbase-webapps/regionserver/processRS.jsp    |   9 +-
 7 files changed, 23 insertions(+), 248 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/b6011a16/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.jamon
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.jamon
index b4e44d8..5ea5bcc 100644
--- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.jamon
+++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.jamon
@@ -244,13 +244,13 @@ org.apache.hadoop.util.StringUtils.TraditionalBinaryPrefix;
         <td>Size</td>
         <td><% TraditionalBinaryPrefix.long2String(cacheConfig.getBlockCache().getCurrentSize(),
             "B", 1) %></td>
-        <td>Current size of block cache in use (bytes)</td>
+        <td>Current size of block cache in use</td>
     </tr>
     <tr>
         <td>Free</td>
         <td><% TraditionalBinaryPrefix.long2String(cacheConfig.getBlockCache().getFreeSize(),
             "B", 1) %></td>
-        <td>The total free memory currently available to store more cache entries (bytes)</td>
+        <td>The total free memory currently available to store more cache entries</td>
     </tr>
     <tr>
         <td>Count</td>

http://git-wip-us.apache.org/repos/asf/hbase/blob/b6011a16/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.jamon
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.jamon
index 2e99d5b..adcfff1 100644
--- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.jamon
+++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.jamon
@@ -146,7 +146,7 @@ MetricsRegionServerWrapper mWrap;
 <tr>
     <tr>
         <th>Num. WAL Files</th>
-        <th>Size. WAL Files (bytes)</th>
+        <th>Size. WAL Files</th>
     </tr>
 </tr>
 <tr>
@@ -165,9 +165,9 @@ MetricsRegionServerWrapper mWrap;
 
     <th>Num. Stores</th>
     <th>Num. Storefiles</th>
-    <th>Root Index Size (bytes)</th>
-    <th>Index Size (bytes)</th>
-    <th>Bloom Size (bytes)</th>
+    <th>Root Index Size</th>
+    <th>Index Size</th>
+    <th>Bloom Size</th>
 </tr>
 <tr>
     <td><% mWrap.getNumStores() %></td>
@@ -212,7 +212,7 @@ MetricsHBaseServerWrapper mServerWrap;
     <th>Priority Call Queue Length</th>
     <th>General Call Queue Length</th>
     <th>Replication Call Queue Length</th>
-    <th>Total Call Queue Size (bytes)</th>
+    <th>Total Call Queue Size</th>
 
 </tr>
 <tr>

http://git-wip-us.apache.org/repos/asf/hbase/blob/b6011a16/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp b/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp
index 63a41cc..c3df296 100644
--- a/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp
+++ b/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp
@@ -39,6 +39,7 @@
   import="org.apache.hadoop.hbase.procedure2.util.StringUtils"
   import="org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos"
   import="org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil"
+  import="org.apache.hadoop.util.StringUtils.TraditionalBinaryPrefix"
 %>
 <%
   HMaster master = (HMaster)getServletContext().getAttribute(HMaster.MASTER);
@@ -173,7 +174,7 @@
             <%    ProcedureWALFile pwf = procedureWALFiles.get(i); %>
             <tr>
               <td> <%= pwf.getLogId() %></td>
-              <td> <%= StringUtils.humanSize(pwf.getSize()) %> </td>
+              <td> <%= TraditionalBinaryPrefix.long2String(pwf.getSize(), "B", 1) %> </td>
               <td> <%= new Date(pwf.getTimestamp()) %> </td>
               <td> <%= escapeXml(pwf.toString()) %> </td>
             </tr>
@@ -195,7 +196,7 @@
           <% for (ProcedureWALFile cwf:corruptedWALFiles) { %>
           <tr>
             <td> <%= cwf.getLogId() %></td>
-            <td> <%= StringUtils.humanSize(cwf.getSize()) %> </td>
+            <td> <%= TraditionalBinaryPrefix.long2String(cwf.getSize(), "B", 1) %> </td>
             <td> <%= new Date(cwf.getTimestamp()) %> </td>
             <td> <%= escapeXml(cwf.toString()) %> </td>
           </tr>
@@ -232,8 +233,8 @@
             <td> <%= new Date(syncMetrics.getTimestamp()) %></td>
             <td> <%= StringUtils.humanTimeDiff(syncMetrics.getSyncWaitMs()) %></td>
             <td> <%= syncMetrics.getSyncedEntries() %></td>
-            <td> <%= StringUtils.humanSize(syncMetrics.getTotalSyncedBytes()) %></td>
-            <td> <%= StringUtils.humanSize(syncMetrics.getSyncedPerSec()) %></td>
+            <td> <%= TraditionalBinaryPrefix.long2String(syncMetrics.getTotalSyncedBytes(), "B", 1) %></td>
+            <td> <%= TraditionalBinaryPrefix.long2String((long)syncMetrics.getSyncedPerSec(), "B", 1) %></td>
           </tr>
           <%} %>
         </table>

http://git-wip-us.apache.org/repos/asf/hbase/blob/b6011a16/hbase-server/src/main/resources/hbase-webapps/master/processMaster.jsp
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/resources/hbase-webapps/master/processMaster.jsp b/hbase-server/src/main/resources/hbase-webapps/master/processMaster.jsp
index d99e198..75da38a 100644
--- a/hbase-server/src/main/resources/hbase-webapps/master/processMaster.jsp
+++ b/hbase-server/src/main/resources/hbase-webapps/master/processMaster.jsp
@@ -29,6 +29,7 @@
   import="java.lang.management.GarbageCollectorMXBean"
   import="org.apache.hadoop.hbase.util.JSONMetricUtil"
   import="org.apache.hadoop.hbase.procedure2.util.StringUtils"
+  import="org.apache.hadoop.util.StringUtils.TraditionalBinaryPrefix"
   import="com.fasterxml.jackson.databind.JsonNode"
 %>
 <%
@@ -207,10 +208,10 @@ if(mp.getName().contains("Cache")) continue;%>
     </tr>
     <tr>
       <tr>
-        <td><%= StringUtils.humanSize(mp.getUsage().getCommitted()) %></a></td>
-        <td><%= StringUtils.humanSize(mp.getUsage().getInit())%></a></td>
-        <td><%= StringUtils.humanSize(mp.getUsage().getMax())%></a></td>
-        <td><%= StringUtils.humanSize(mp.getUsage().getUsed())%></a></td>
+        <td><%= TraditionalBinaryPrefix.long2String(mp.getUsage().getCommitted(), "B", 1) %></a></td>
+        <td><%= TraditionalBinaryPrefix.long2String(mp.getUsage().getInit(), "B", 1) %></a></td>
+        <td><%= TraditionalBinaryPrefix.long2String(mp.getUsage().getMax(), "B", 1) %></a></td>
+        <td><%= TraditionalBinaryPrefix.long2String(mp.getUsage().getUsed(), "B", 1) %></a></td>
         <td><%= JSONMetricUtil.calcPercentage(mp.getUsage().getUsed(),
           mp.getUsage().getCommitted()) %></a></td>
       </tr>

http://git-wip-us.apache.org/repos/asf/hbase/blob/b6011a16/hbase-server/src/main/resources/hbase-webapps/master/processRS.jsp
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/resources/hbase-webapps/master/processRS.jsp b/hbase-server/src/main/resources/hbase-webapps/master/processRS.jsp
deleted file mode 100644
index f0df0c0..0000000
--- a/hbase-server/src/main/resources/hbase-webapps/master/processRS.jsp
+++ /dev/null
@@ -1,228 +0,0 @@
-<%--
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
---%>
-<%@ page contentType="text/html;charset=UTF-8"
-  import="java.util.Date"
-  import="java.util.List"
-  import="org.apache.hadoop.hbase.HBaseConfiguration"
-  import="static org.apache.commons.lang3.StringEscapeUtils.escapeXml"
-  import="javax.management.ObjectName"
-  import="java.lang.management.ManagementFactory"
-  import="java.lang.management.MemoryPoolMXBean"
-  import="java.lang.management.RuntimeMXBean"
-  import="java.lang.management.GarbageCollectorMXBean"
-  import="org.apache.hadoop.hbase.util.JSONMetricUtil"
-  import="org.apache.hadoop.hbase.procedure2.util.StringUtils"
-  import="com.fasterxml.jackson.databind.JsonNode"
-%>
-<%
-RuntimeMXBean runtimeBean = ManagementFactory.getRuntimeMXBean();
-ObjectName jvmMetrics = new ObjectName("Hadoop:service=HBase,name=JvmMetrics");
-ObjectName rsMetrics = new ObjectName("Hadoop:service=HBase,name=RegionServer,sub=Server");
-
-// There is always two of GC collectors
-List<GarbageCollectorMXBean> gcBeans = JSONMetricUtil.getGcCollectorBeans();
-GarbageCollectorMXBean collector1 = null;
-GarbageCollectorMXBean collector2 = null;
-try {
-collector1 = gcBeans.get(0);
-collector2 = gcBeans.get(1);
-} catch(IndexOutOfBoundsException e) {}
-List<MemoryPoolMXBean> mPools = JSONMetricUtil.getMemoryPools();
-%>
-<!DOCTYPE html>
-<?xml version="1.0" encoding="UTF-8" ?>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-    <meta charset="utf-8">
-    <title>Process info for PID: <%= JSONMetricUtil.getProcessPID() %></title>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <meta name="description" content="">
-    <meta name="author" content="">
-
-    <link href="/static/css/bootstrap.min.css" rel="stylesheet">
-    <link href="/static/css/bootstrap-theme.min.css" rel="stylesheet">
-    <link href="/static/css/hbase.css" rel="stylesheet">
-</head>
-<body>
-<div class="navbar  navbar-fixed-top navbar-default">
-    <div class="container-fluid">
-        <div class="navbar-header">
-            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-            </button>
-            <a class="navbar-brand" href="/rs-status"><img src="/static/hbase_logo_small.png" alt="HBase Logo"/></a>
-        </div>
-        <div class="collapse navbar-collapse">
-            <ul class="nav navbar-nav">
-                <li><a href="/rs-status">Home</a></li>
-                <li><a href="/processRS.jsp">Process Metrics</a></li>
-                <li><a href="/logs/">Local Logs</a></li>
-                <li><a href="/dump">Debug Dump</a></li>
-                <li><a href="/jmx">Metrics Dump</a></li>
-                <% if (HBaseConfiguration.isShowConfInServlet()) { %>
-                <li><a href="/conf">HBase Configuration</a></li>
-                <% } %>
-            </ul>
-        </div><!--/.nav-collapse -->
-    </div>
-</div>
-<div class="container-fluid content">
-  <div class="row">
-      <div class="page-header">
-          <h1><%= JSONMetricUtil.getCommmand().split(" ")[0] %></h1>
-      </div>
-  </div>
-  <table class="table table-striped" width="90%" >
-    <tr>
-        <th>Started</th>
-        <th>Uptime</th>
-        <th>PID</th>
-        <th>JvmPauseMonitor Count </th>
-        <th>Owner</th>
-    </tr>
-    <tr>
-      <tr>
-        <td><%= new Date(runtimeBean.getStartTime()) %></a></td>
-        <td><%= StringUtils.humanTimeDiff(runtimeBean.getUptime()) %></a></td>
-        <td><%= JSONMetricUtil.getProcessPID() %></a></td>
-        <td><%= (long)JSONMetricUtil.getValueFromMBean(rsMetrics, "pauseWarnThresholdExceeded")
-          + (long)JSONMetricUtil.getValueFromMBean(rsMetrics, "pauseInfoThresholdExceeded") %></a></td>
-        <td><%= runtimeBean.getSystemProperties().get("user.name") %></a></td>
-      </tr>
-  </table>
-</div>
-<div class="container-fluid content">
-  <div class="row">
-    <div class="page-header">
-    <h2>Threads</h2>
-    </div>
-    </div>
-  <table class="table table-striped" width="90%" >
-    <tr>
-        <th>ThreadsNew</th>
-        <th>ThreadsRunable</th>
-        <th>ThreadsBlocked</th>
-        <th>ThreadsWaiting</th>
-        <th>ThreadsTimeWaiting</th>
-        <th>ThreadsTerminated</th>
-    </tr>
-    <tr>
-      <tr>
-        <td><%= JSONMetricUtil.getValueFromMBean(jvmMetrics, "ThreadsNew")  %></a></td>
-        <td><%= JSONMetricUtil.getValueFromMBean(jvmMetrics, "ThreadsRunnable")%></a></td>
-        <td><%= JSONMetricUtil.getValueFromMBean(jvmMetrics, "ThreadsBlocked")%></a></td>
-        <td><%= JSONMetricUtil.getValueFromMBean(jvmMetrics, "ThreadsWaiting")%></a></td>
-        <td><%= JSONMetricUtil.getValueFromMBean(jvmMetrics, "ThreadsTimedWaiting")%></a></td>
-        <td><%= JSONMetricUtil.getValueFromMBean(jvmMetrics, "ThreadsTerminated")%></a></td>
-      </tr>
-  </table>
-</div>
-<div class="container-fluid content">
-  <div class="row">
-    <div class="page-header">
-    <h2>GC Collectors</h2>
-    </div>
-    </div>
-    <% if (gcBeans.size() == 2) { %>
-<div class="tabbable">
-  <ul class="nav nav-pills">
-    <li class="active">
-      <a href="#tab_gc1" data-toggle="tab"><%=collector1.getName() %></a>
-    </li>
-    <li class="">
-      <a href="#tab_gc2" data-toggle="tab"><%=collector2.getName() %></a>
-     </li>
-  </ul>
-    <div class="tab-content" style="padding-bottom: 9px; border-bottom: 1px solid #ddd;">
-      <div class="tab-pane active" id="tab_gc1">
-          <table class="table table-striped">
-            <tr>
-              <th>Collection Count</th>
-              <th>Collection Time</th>
-              <th>Last duration</th>
-            </tr>
-            <tr>
-              <td> <%= collector1.getCollectionCount() %></td>
-              <td> <%= StringUtils.humanTimeDiff(collector1.getCollectionTime()) %> </td>
-              <td> <%= StringUtils.humanTimeDiff(JSONMetricUtil.getLastGcDuration(
-                collector1.getObjectName())) %></td>
-            </tr>
-          </table>
-      </div>
-      <div class="tab-pane" id="tab_gc2">
-        <table class="table table-striped">
-          <tr>
-            <th>Collection Count</th>
-            <th>Collection Time</th>
-             <th>Last duration</th>
-          </tr>
-          <tr>
-            <td> <%= collector2.getCollectionCount()  %></td>
-            <td> <%= StringUtils.humanTimeDiff(collector2.getCollectionTime()) %> </td>
-            <td> <%= StringUtils.humanTimeDiff(JSONMetricUtil.getLastGcDuration(
-              collector2.getObjectName())) %></td>
-          </tr>
-          </table>
-      </div>
-      </div>
-  </div>
-  <%} else { %>
-  <p> Can not display GC Collector stats.</p>
-  <%} %>
-  Total GC Collection time: <%= StringUtils.humanTimeDiff(collector1.getCollectionTime() +
-    collector2.getCollectionTime())%>
-</div>
-<% for(MemoryPoolMXBean mp:mPools) {
-if(mp.getName().contains("Cache")) continue;%>
-<div class="container-fluid content">
-  <div class="row">
-      <div class="page-header">
-          <h2><%= mp.getName() %></h2>
-      </div>
-  </div>
-  <table class="table table-striped" width="90%" >
-    <tr>
-        <th>Commited</th>
-        <th>Init</th>
-        <th>Max</th>
-        <th>Used</th>
-        <th>Utilization [%]</th>
-    </tr>
-    <tr>
-      <tr>
-        <td><%= StringUtils.humanSize(mp.getUsage().getCommitted()) %></a></td>
-        <td><%= StringUtils.humanSize(mp.getUsage().getInit())%></a></td>
-        <td><%= StringUtils.humanSize(mp.getUsage().getMax())%></a></td>
-        <td><%= StringUtils.humanSize(mp.getUsage().getUsed())%></a></td>
-        <td><%= JSONMetricUtil.calcPercentage(mp.getUsage().getUsed(),
-          mp.getUsage().getCommitted()) %></a></td>
-      </tr>
-  </table>
-</div>
-<% } %>
-
-<script src="/static/js/jquery.min.js" type="text/javascript"></script>
-<script src="/static/js/bootstrap.min.js" type="text/javascript"></script>
-<script src="/static/js/tab.js" type="text/javascript"></script>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase/blob/b6011a16/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/resources/hbase-webapps/master/table.jsp b/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
index 6856781..ef37f79 100644
--- a/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
+++ b/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
@@ -797,7 +797,7 @@ if (withReplica) {
   <tr>
     <td>Size</td>
     <td><%= StringUtils.TraditionalBinaryPrefix.long2String(totalStoreFileSizeMB * 1024 * 1024, "B", 2)%></td>
-    <td>Total size of store files (in bytes)</td>
+    <td>Total size of store files</td>
   </tr>
 </table>
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/b6011a16/hbase-server/src/main/resources/hbase-webapps/regionserver/processRS.jsp
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/resources/hbase-webapps/regionserver/processRS.jsp b/hbase-server/src/main/resources/hbase-webapps/regionserver/processRS.jsp
index f0df0c0..5c224ab 100644
--- a/hbase-server/src/main/resources/hbase-webapps/regionserver/processRS.jsp
+++ b/hbase-server/src/main/resources/hbase-webapps/regionserver/processRS.jsp
@@ -29,6 +29,7 @@
   import="java.lang.management.GarbageCollectorMXBean"
   import="org.apache.hadoop.hbase.util.JSONMetricUtil"
   import="org.apache.hadoop.hbase.procedure2.util.StringUtils"
+  import="org.apache.hadoop.util.StringUtils.TraditionalBinaryPrefix"
   import="com.fasterxml.jackson.databind.JsonNode"
 %>
 <%
@@ -209,10 +210,10 @@ if(mp.getName().contains("Cache")) continue;%>
     </tr>
     <tr>
       <tr>
-        <td><%= StringUtils.humanSize(mp.getUsage().getCommitted()) %></a></td>
-        <td><%= StringUtils.humanSize(mp.getUsage().getInit())%></a></td>
-        <td><%= StringUtils.humanSize(mp.getUsage().getMax())%></a></td>
-        <td><%= StringUtils.humanSize(mp.getUsage().getUsed())%></a></td>
+        <td><%= TraditionalBinaryPrefix.long2String(mp.getUsage().getCommitted(), "B", 1) %></a></td>
+        <td><%= TraditionalBinaryPrefix.long2String(mp.getUsage().getInit(), "B", 1) %></a></td>
+        <td><%= TraditionalBinaryPrefix.long2String(mp.getUsage().getMax(), "B", 1) %></a></td>
+        <td><%= TraditionalBinaryPrefix.long2String(mp.getUsage().getUsed(), "B", 1) %></a></td>
         <td><%= JSONMetricUtil.calcPercentage(mp.getUsage().getUsed(),
           mp.getUsage().getCommitted()) %></a></td>
       </tr>