You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by wc...@apache.org on 2019/08/09 13:29:52 UTC

[hbase] branch master updated: HBASE-22543 Revisit HBASE-21207 to make all values fully sortable

This is an automated email from the ASF dual-hosted git repository.

wchevreuil pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new 0136b98  HBASE-22543 Revisit HBASE-21207 to make all values fully sortable
0136b98 is described below

commit 0136b9873ff753ca181403d280a6e9ea135fbc95
Author: Daisuke Kobayashi <po...@gmail.com>
AuthorDate: Thu Aug 8 20:07:10 2019 +0900

    HBASE-22543 Revisit HBASE-21207 to make all values fully sortable
    
    Signed-off-by: Wellington Chevreuil <wc...@apache.org>
---
 .../hbase/tmpl/master/MasterStatusTmpl.jamon       | 76 ++++++++++++++++++++--
 .../hbase/tmpl/master/RegionServerListTmpl.jamon   | 22 +++----
 .../hbase/tmpl/regionserver/RSStatusTmpl.jamon     | 44 +++++++++++--
 .../hbase/tmpl/regionserver/RegionListTmpl.jamon   | 14 ++--
 .../main/resources/hbase-webapps/master/table.jsp  | 59 ++++++++++++++++-
 5 files changed, 185 insertions(+), 30 deletions(-)

diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
index f30cf5d..95b59a3 100644
--- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
+++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
@@ -404,11 +404,77 @@ AssignmentManager assignmentManager = master.getAssignmentManager();
     <script>
     $(document).ready(function()
         {
-            $("#baseStatsTable").tablesorter();
-            $("#memoryStatsTable").tablesorter();
-            $("#requestStatsTable").tablesorter();
-            $("#storeStatsTable").tablesorter();
-            $("#compactionStatsTable").tablesorter();
+            $.tablesorter.addParser(
+            {
+                id: 'filesize',
+                is: function(s) {
+                    return s.match(new RegExp( /([\.0-9]+)\ (B|KB|MB|GB|TB)/ ));
+                },
+                format: function(s) {
+                    var suf = s.match(new RegExp( /(KB|B|GB|MB|TB)$/ ))[1];
+                    var num = parseFloat(s.match( new RegExp( /([\.0-9]+)\ (B|KB|MB|GB|TB)/ ))[0]);
+                    switch(suf) {
+                        case 'B':
+                            return num;
+                        case 'KB':
+                           return num * 1024;
+                        case 'MB':
+                            return num * 1024 * 1024;
+                        case 'GB':
+                            return num * 1024 * 1024 * 1024;
+                        case 'TB':
+                            return num * 1024 * 1024 * 1024 * 1024;
+                    }
+                },
+                type: 'numeric'
+            });
+            $.tablesorter.addParser(
+            {
+                id: "separator",
+                is: function (s) {
+                    return /^[0-9]?[0-9,]*$/.test(s);
+                }, format: function (s) {
+                    return $.tablesorter.formatFloat( s.replace(/,/g,'') );
+                }, type: "numeric"
+            });
+            $("#baseStatsTable").tablesorter({
+                headers: {
+                    4: {sorter: 'separator'},
+                    5: {sorter: 'separator'}
+                }
+            });
+            $("#memoryStatsTable").tablesorter({
+                headers: {
+                    1: {sorter: 'filesize'},
+                    2: {sorter: 'filesize'},
+                    3: {sorter: 'filesize'}
+                }
+            });
+            $("#requestStatsTable").tablesorter({
+                headers: {
+                    1: {sorter: 'separator'},
+                    2: {sorter: 'separator'},
+                    3: {sorter: 'separator'},
+                    4: {sorter: 'separator'}
+                }
+            });
+            $("#storeStatsTable").tablesorter({
+                headers: {
+                    1: {sorter: 'separator'},
+                    2: {sorter: 'separator'},
+                    3: {sorter: 'filesize'},
+                    4: {sorter: 'filesize'},
+                    5: {sorter: 'filesize'},
+                    6: {sorter: 'filesize'}
+                }
+            });
+            $("#compactionStatsTable").tablesorter({
+                headers: {
+                    1: {sorter: 'separator'},
+                    2: {sorter: 'separator'},
+                    3: {sorter: 'separator'}
+                }
+            });
 
             $("#userTables").tablesorter();
         }
diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RegionServerListTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RegionServerListTmpl.jamon
index 0afc705..1346ce8 100644
--- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RegionServerListTmpl.jamon
+++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RegionServerListTmpl.jamon
@@ -125,8 +125,8 @@ Arrays.sort(serverNames);
     <td><% new Date(startcode) %></td>
     <td><% TraditionalBinaryPrefix.long2String(lastContact, "s", 1) %></td>
     <td><% version %></td>
-    <td><% String.format("%.0f", requestsPerSecond) %></td>
-    <td><% numRegionsOnline %></td>
+    <td><% String.format("%,.0f", requestsPerSecond) %></td>
+    <td><% String.format("%,d", numRegionsOnline) %></td>
 </tr>
 <%java>
 }
@@ -225,10 +225,10 @@ if (sl != null) {
 </%java>
 <tr>
 <td><& serverNameLink; serverName=serverName; &></td>
-<td><% sl.getRequestCountPerSecond() %></td>
-<td><% readRequestCount %></td>
-<td><% filteredReadRequestCount %></td>
-<td><% writeRequestCount %></td>
+<td><% String.format("%,d", sl.getRequestCountPerSecond()) %></td>
+<td><% String.format("%,d", readRequestCount) %></td>
+<td><% String.format("%,d", filteredReadRequestCount) %></td>
+<td><% String.format("%,d", writeRequestCount) %></td>
 </tr>
 <%java>
         }  else {
@@ -282,8 +282,8 @@ if (sl != null) {
 </%java>
 <tr>
 <td><& serverNameLink; serverName=serverName; &></td>
-<td><% storeCount %></td>
-<td><% storeFileCount %></td>
+<td><% String.format("%,d", storeCount) %></td>
+<td><% String.format("%,d", storeFileCount) %></td>
 <td><% TraditionalBinaryPrefix.long2String(
   storeUncompressedSizeMB * TraditionalBinaryPrefix.MEGA.value, "B", 1) %></td>
 <td><% TraditionalBinaryPrefix.long2String(storeFileSizeMB
@@ -339,9 +339,9 @@ if  (totalCompactingCells > 0) {
 </%java>
 <tr>
 <td><& serverNameLink; serverName=serverName; &></td>
-<td><% totalCompactingCells %></td>
-<td><% totalCompactedCells %></td>
-<td><% totalCompactingCells - totalCompactedCells %></td>
+<td><% String.format("%,d", totalCompactingCells) %></td>
+<td><% String.format("%,d", totalCompactedCells) %></td>
+<td><% String.format("%,d", totalCompactingCells - totalCompactedCells) %></td>
 <td><% percentDone %></td>
 </tr>
 <%java>
diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon
index a4ef63a..2b07523 100644
--- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon
+++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon
@@ -270,11 +270,47 @@ $(document).ready(function()
             },
             type: 'numeric'
         });
+        $.tablesorter.addParser(
+        {
+            id: "separator",
+            is: function (s) {
+                return /^[0-9]?[0-9,]*$/.test(s);
+            },
+            format: function (s) {
+                return $.tablesorter.formatFloat( s.replace(/,/g,'') );
+            },
+            type: "numeric"
+        });
+
         $("#baseStatsTable").tablesorter();
-        $("#requestStatsTable").tablesorter();
-        $("#storeStatsTable").tablesorter();
-        $("#compactionStatsTable").tablesorter();
-        $("#memstoreStatsTable").tablesorter();
+        $("#requestStatsTable").tablesorter({
+            headers: {
+                1: {sorter: 'separator'},
+                2: {sorter: 'separator'},
+                3: {sorter: 'separator'}
+            }
+        });
+        $("#storeStatsTable").tablesorter({
+            headers: {
+                1: {sorter: 'separator'},
+                2: {sorter: 'separator'},
+                3: {sorter: 'filesize'},
+                4: {sorter: 'filesize'},
+                5: {sorter: 'filesize'},
+                6: {sorter: 'filesize'}
+            }
+        });
+        $("#compactionStatsTable").tablesorter({
+            headers: {
+                1: {sorter: 'separator'},
+                2: {sorter: 'separator'}
+            }
+        });
+        $("#memstoreStatsTable").tablesorter({
+            headers: {
+                1: {sorter: 'filesize'}
+            }
+        });
     }
 );
 </script>
diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.jamon
index 7e983f5..066fe53 100644
--- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.jamon
+++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.jamon
@@ -142,9 +142,9 @@
         </%java>
             <td><a href="region.jsp?name=<% r.getEncodedName() %>"><% displayName %></a></td>
             <%if load != null %>
-            <td><% load.getReadRequestsCount() %></td>
-            <td><% load.getFilteredReadRequestsCount() %></td>
-            <td><% load.getWriteRequestsCount() %></td>
+            <td><% String.format("%,1d", load.getReadRequestsCount()) %></td>
+            <td><% String.format("%,1d", load.getFilteredReadRequestsCount()) %></td>
+            <td><% String.format("%,1d", load.getWriteRequestsCount()) %></td>
             </%if>
         </tr>
         </%for>
@@ -182,8 +182,8 @@
         </%java>
             <td><a href="region.jsp?name=<% r.getEncodedName() %>"><% displayName %></a></td>
             <%if load != null %>
-            <td><% load.getStores() %></td>
-            <td><% load.getStorefiles() %></td>
+            <td><% String.format("%,1d", load.getStores()) %></td>
+            <td><% String.format("%,1d", load.getStorefiles()) %></td>
             <td><% TraditionalBinaryPrefix.long2String(load.getStoreUncompressedSizeMB()
                 * TraditionalBinaryPrefix.MEGA.value, "B", 1)%></td>
             <td><% TraditionalBinaryPrefix.long2String(load.getStorefileSizeMB()
@@ -239,8 +239,8 @@
         </%java>
             <td><a href="region.jsp?name=<% r.getEncodedName() %>"><% displayName %></a></td>
             <%if load != null %>
-            <td><% load.getTotalCompactingKVs() %></td>
-            <td><% load.getCurrentCompactedKVs() %></td>
+            <td><% String.format("%,1d", load.getTotalCompactingKVs()) %></td>
+            <td><% String.format("%,1d", load.getCurrentCompactedKVs()) %></td>
             <td><% percentDone %></td>
             <td><% compactTime %></td>
             </%if>
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 6b4427e..fb1d513 100644
--- a/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
+++ b/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
@@ -726,9 +726,62 @@ Actions:
 <script>
 $(document).ready(function()
     {
-        $("#regionServerTable").tablesorter();
-        $("#regionServerDetailsTable").tablesorter();
-        $("#tableRegionTable").tablesorter();
+        $.tablesorter.addParser(
+        {
+            id: 'filesize',
+            is: function(s) {
+                return s.match(new RegExp( /([\.0-9]+)\ (B|KB|MB|GB|TB)/ ));
+            },
+            format: function(s) {
+                var suf = s.match(new RegExp( /(B|KB|MB|GB|TB)$/ ))[1];
+                var num = parseFloat(s.match( new RegExp( /([\.0-9]+)\ (B|KB|MB|GB|TB)/ ))[0]);
+                switch(suf) {
+                    case 'B':
+                        return num;
+                    case 'KB':
+                        return num * 1024;
+                    case 'MB':
+                        return num * 1024 * 1024;
+                    case 'GB':
+                        return num * 1024 * 1024 * 1024;
+                    case 'TB':
+                        return num * 1024 * 1024 * 1024 * 1024;
+                }
+            },
+            type: 'numeric'
+        });
+        $.tablesorter.addParser(
+        {
+            id: "separator",
+            is: function (s) {
+                return /^[0-9]?[0-9,]*$/.test(s);
+            }, format: function (s) {
+                return $.tablesorter.formatFloat( s.replace(/,/g,'') );
+            }, type: "numeric"
+        });
+        $("#regionServerTable").tablesorter({
+            headers: {
+                1: {sorter: 'separator'}
+            }
+        });
+        $("#regionServerDetailsTable").tablesorter({
+            headers: {
+                2: {sorter: 'separator'},
+                3: {sorter: 'separator'},
+                4: {sorter: 'filesize'},
+                5: {sorter: 'separator'},
+                6: {sorter: 'filesize'}
+            }
+        });
+        $("#tableRegionTable").tablesorter({
+            headers: {
+                2: {sorter: 'separator'},
+                3: {sorter: 'separator'},
+                4: {sorter: 'filesize'},
+                5: {sorter: 'separator'},
+                6: {sorter: 'filesize'}
+            }
+        });
     }
 );
 </script>