accumulo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ctubb...@apache.org
Subject [09/54] [abbrv] accumulo git commit: ACCUMULO-2181/3005 Porting Monitor
Date Thu, 06 Jul 2017 20:43:03 GMT
http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/TablesStatus/tables.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/TablesStatus/tables.ftl b/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/TablesStatus/tables.ftl
deleted file mode 100644
index b68aa48..0000000
--- a/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/TablesStatus/tables.ftl
+++ /dev/null
@@ -1,288 +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.
--->
-<html>
-  <head>
-    <title>${title} - Accumulo ${version}</title>
-    <#if refresh gt 0 ><meta http-equiv='refresh' content='${refresh}' /></#if>
-    <meta http-equiv='Content-Type' content='test/html"' />
-    <meta http-equiv='Content-Script-Type' content='text/javascript' />
-    <meta http-equiv='Content-Style-Type' content='text/css' />
-    <link rel='shortcut icon' type='image/jpg' href='http://localhost:9995/web/favicon.png' />
-    <link rel='stylesheet' type='text/css' href='http://localhost:9995/web/screen.css' media='screen' />
-    <script src='http://localhost:9995/web/functions.js' type='text/javascript'></script>
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/jquery.flot.js"></script>
-    
-    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
-    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
-    
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
-    <!-- Latest compiled and minified CSS -->
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
-    <!-- Optional theme -->
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
-    <!-- Latest compiled and minified JavaScript -->
-    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
-
-    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
-    
-    <script language="javascript" type="text/javascript">
-        function getData() {
-            $.getJSON("rest/tables", function(data) {
-                sessionStorage.tables = JSON.stringify(data);
-            });
-        }    
-        
-        function populateTable(ns) {
-			getData(); // Implement this better
-            var data = JSON.parse(sessionStorage.tables);
-            var tmpArr = JSON.parse(sessionStorage.namespaces);
-            sessionStorage.namespaceChanged = true;
-            
-            if (ns !== undefined) {
-                if (tmpArr.indexOf(ns) == -1 && ns !== "*") {
-                    if (tmpArr.indexOf("*") !== -1) {
-                        tmpArr.splice(tmpArr.indexOf("*"),1);
-                    }
-                    tmpArr.push((ns === "" ? "-" : ns));                
-                } else if (ns == "*") {
-                    tmpArr = [];
-                    tmpArr.push("*");
-                } else {
-                    tmpArr.splice(tmpArr.indexOf(ns),1);
-                    if (tmpArr.length === 0) {
-                        tmpArr.push("*");
-                    }
-                }
-            }
-            
-            sessionStorage.namespaces = JSON.stringify(tmpArr);
-            
-            var all = '<a onclick=populateTable("*")>*&nbsp;(All&nbsp;Tables)</a>';
-            $("#namespaces").html("");
-            clearTable("tableList");
-
-            $("<li/>", {
-                html: all,
-                id: "*",
-                class: tmpArr.indexOf("*") !== -1 ? "active" : ""
-            }).appendTo("#namespaces");
-            
-            var numTables = 0;
-            
-            $.each(data.tables, function(keyT, tab) {
-                var namespace = [];
-                  
-                namespace.push("<a onclick=populateTable('" + (tab.namespace === "" ? "-" : tab.namespace) + "')>" + (tab.namespace === "" ? "-&nbsp;(DEFAULT)" : tab.namespace) + "</a>");
-                  
-                $("<li/>", {
-                    html: namespace.join(""),
-                    id: tab.namespace === "" ? "-" : tab.namespace,
-                    class: tmpArr.indexOf(tab.namespace === "" ? "-" : tab.namespace) !== -1 ? "active" : ""
-                }).appendTo("#namespaces"); 
-                  
-                if (tmpArr.indexOf(tab.namespace === "" ? "-" : tab.namespace) !== -1 || tmpArr.indexOf("*") !== -1) {
-                    $.each(tab.table, function(key, val) {
-                        
-                        var row = [];
-                        row.push("<td class='firstcell left' data-value='" + val.tablename + "'><a href='/tables/" + val.tableId + "'>" + val.tablename + "</a></td>");
-                        row.push("<td class='center' data-value='" + val.tableState + "'><span>" + val.tableState + "</span></td>");
-
-                        if (val.tableState === "ONLINE") {
-                            row.push("<td class='right' data-value='" + val.tablets + "'>" + bigNumberForQuantity(val.tablets) + "</td>");
-                            row.push("<td class='right' data-value='" + val.offlineTablets + "'>" + bigNumberForQuantity(val.offlineTablets) + "</td>");
-                            row.push("<td class='right' data-value='" + val.recs + "'>" + bigNumberForQuantity(val.recs) + "</td>");
-                            row.push("<td class='right' data-value='" + val.recsInMemory + "'>" + bigNumberForQuantity(val.recsInMemory) + "</td>");
-                            row.push("<td class='right' data-value='" + val.ingest + "'>" + bigNumberForQuantity(Math.floor(val.ingest)) + "</td>");
-                            row.push("<td class='right' data-value='" + val.entriesRead + "'>" + bigNumberForQuantity(Math.floor(val.entriesRead)) + "</td>");
-                            row.push("<td class='right' data-value='" + val.entriesReturned + "'>" + bigNumberForQuantity(Math.floor(val.entriesReturned)) + "</td>");
-                            row.push("<td class='right' data-value='" + val.holdTime + "'>" + timeDuration(val.holdTime) + "</td>");
-                            row.push("<td class='right' data-value='" + (val.scans.running + val.scans.queued) + "'>" + bigNumberForQuantity(val.scans.running) + "&nbsp;(" + val.scans.queued + ")</td>");
-                            row.push("<td class='right' data-value='" + (val.minorCompactions.running + val.minorCompactions.queued) + "'>" + bigNumberForQuantity(val.minorCompactions.running) + "&nbsp;(" + val.minorCompactions.queued + ")</td>");
-                            row.push("<td class='right' data-value='" + (val.majorCompactions.running + val.majorCompactions.queued) + "'>" + bigNumberForQuantity(val.majorCompactions.running) + "&nbsp;(" + val.majorCompactions.queued + ")</td>");
-                        } else {
-                            row.push("<td class='right' data-value='-'>-</td>");
-                            row.push("<td class='right' data-value='-'>-</td>");
-                            row.push("<td class='right' data-value='-'>-</td>");
-                            row.push("<td class='right' data-value='-'>-</td>");
-                            row.push("<td class='right' data-value='-'>-</td>");
-                            row.push("<td class='right' data-value='-'>-</td>");
-                            row.push("<td class='right' data-value='-'>-</td>");
-                            row.push("<td class='right' data-value='-'>&mdash;</td>");
-                            row.push("<td class='right' data-value='-'>-</td>");
-                            row.push("<td class='right' data-value='-'>-</td>");
-                            row.push("<td class='right' data-value='-'>-</td>");
-                        }
-        
-                        $("<tr/>", {
-                            html: row.join(""),
-                            id: tab.namespace === "" ? "-" : tab.namespace
-                        }).appendTo("#tableList");
-                        
-                        numTables++;
-                    });
-                }
-            });
-            $.each(data.tables, function(keyT, tab) {
-                if (numTables === 0) {
-                    if (tab.table.length === 0) {
-                        var item = "<td class='center' colspan='13'><i>Empty</i></td>";
-                        
-                        $("<tr/>", {
-                            html: item,
-                            id: tab.namespace === "" ? "-" : tab.namespace
-                        }).appendTo("#tableList");
-                    }
-                }
-            });
-            sortTable(sessionStorage.tableColumnSort === undefined ? 0 : sessionStorage.tableColumnSort);
-        }
-        
-        function sortTable(n) {
-            if (!JSON.parse(sessionStorage.namespaceChanged)) {
-                if (sessionStorage.tableColumnSort !== undefined && sessionStorage.tableColumnSort == n && sessionStorage.direction !== undefined) {
-                    direction = sessionStorage.direction === "asc" ? "desc" : "asc";
-                }
-            } else {
-                direction = sessionStorage.direction === undefined ? "asc" : sessionStorage.direction;
-            }
-            
-            sessionStorage.tableColumnSort = n;
-            
-            sortTables("tableList", direction, n);
-            sessionStorage.namespaceChanged = false;
-        }
-        
-        $(function() {
-            $(document).tooltip();
-        });
-
-        function createHeader() {	
-            
-            var caption = [];
-
-            caption.push("<span class='table-caption'>Table&nbsp;List</span><br />");
-
-            $("<caption/>", {
-                html: caption.join("")
-            }).appendTo("#tableList");
-            
-            var items = [];
-                        
-            items.push("<th class='firstcell' onclick='sortTable(0)'>Table&nbsp;Name&nbsp;</th>");
-            items.push("<th onclick='sortTable(1)'>State&nbsp;</th>");
-            items.push("<th onclick='sortTable(2)' title='"+getDescription(2)+"'>#&nbsp;Tablets&nbsp;</th>");
-            items.push("<th onclick='sortTable(3)' title='"+getDescription(3)+"'>#&nbsp;Offline<br />Tablets&nbsp;</th>");
-            items.push("<th onclick='sortTable(4)' title='"+getDescription(4)+"'>Entries&nbsp;</th>");
-            items.push("<th onclick='sortTable(5)' title='"+getDescription(5)+"'>Entries<br />In&nbsp;Memory&nbsp;</th>");
-            items.push("<th onclick='sortTable(6)' title='"+getDescription(6)+"'>Ingest&nbsp;</th>");
-            items.push("<th onclick='sortTable(7)' title='"+getDescription(7)+"'>Entries<br />Read&nbsp;</th>");
-            items.push("<th onclick='sortTable(8)' title='"+getDescription(8)+"'>Entries<br />Returned&nbsp;</th>");
-            items.push("<th onclick='sortTable(9)' title='"+getDescription(9)+"'>Hold&nbsp;Time&nbsp;</th>");
-            items.push("<th onclick='sortTable(10)' title='"+getDescription(10)+"'>Running<br />Scans&nbsp;</th>");
-            items.push("<th onclick='sortTable(11)' title='"+getDescription(11)+"'>Minor<br />Compactions&nbsp;</th>");
-            items.push("<th onclick='sortTable(12)' title='"+getDescription(12)+"'>Major<br />Compactions&nbsp;</th>");
-            
-            $("<tr/>", {
-                html: items.join("")
-             }).appendTo("#tableList");
-        }
-        
-        function clearTable(tableID) {
-            
-            $("#" + tableID).find("tr:not(:first)").remove();
-        }
-        
-        function getDescription(n) {
-            
-            switch(n) {
-                case 2:
-                    return "Tables are broken down into ranges of rows called tablets.";
-                case 3:
-                    return "Tablets unavailable for query or ingest. May be a transient condition when tablets are moved for balancing.";
-                case 4:
-                    return "Key/value pairs over each instance, table or tablet.";
-                case 5:
-                    return "The total number of key/value pairs stored in memory and not yet written to disk.";
-                case 6:
-                    return "The number of Key/Value pairs inserted. Note that deletes are 'inserted'.";
-                case 7:
-                    return "The number of Key/Value pairs read on the server side. Not all key values read may be returned to client because of filtering.";
-                case 8:
-                    return "The number of Key/Value pairs returned to clients during queries. This is not the number of scans.";
-                case 9:
-                    return "The amount of time that ingest operations are suspended while waiting for data to be written to disk.";
-                case 10:
-                    return "Information about the scans threads. Shows how many threads are running and how much work is queued for the threads.";
-                case 11:
-                    return "Flushing memory to disk is called a \"Minor Compaction.\" Multiple tablets can be minor compacted simultaneously, but sometimes they must wait for resources to be available. These tablets that are waiting for compaction are \"queued\" and are indicated using parentheses. So 2 (3) indicates there are two compactions running and three queued waiting for resources.";
-                case 12:
-                    return "Gathering up many small files and rewriting them as one larger file is called a \"Major Compaction\". Major Compactions are performed as a consequence of new files created from Minor Compactions and Bulk Load operations. They reduce the number of files used during queries.";
-                default:
-                    return "Not valid";
-            }
-        }
-
-    </script>
-  </head>
-
-  <body>
-  	<script type="text/javascript">
-
-		$(document).ready(function() {
-			$.ajaxSetup({
-				async: false
-			});
-            getData();
-            $.ajaxSetup({
-				async: true
-			});
-            createHeader();
-            if (sessionStorage.namespaces === undefined) {
-                sessionStorage.namespaces = "[]";
-                populateTable("*");
-            }
-			populateTable(undefined);
-        });        
-        
-  	</script>  	
-    <div id='content-wrapper'>
-      <div id='content'>
-        <#include "/templates/header.ftl">
-        <#include "/templates/sidebar.ftl">
-
-        <div id='main' style='bottom:0'>
-          <div id="filters">
-			<div class="table-caption">Namespaces</div>
-			<hr />
-			<div class='left show'>
-			  <ul id="namespaces" class="nav nav-pills nav-stacked" role="tablist">
-			    
-			  </ul>
-			</div>
-		  </div>
-          <div id="tables">
-            <table id='tableList' class='table table-bordered table-striped table-condensed'>
-              
-            </table>
-          </div>
-        </div>
-      </div>    
-    </div>
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/TabletServer/server.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/TabletServer/server.ftl b/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/TabletServer/server.ftl
deleted file mode 100644
index 4f34b02..0000000
--- a/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/TabletServer/server.ftl
+++ /dev/null
@@ -1,180 +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.
--->
-<html>
-  <head>
-    <title>${title} - Accumulo ${version}</title>
-    <#if refresh gt 0 ><meta http-equiv='refresh' content='${refresh}' /></#if>
-    <meta http-equiv='Content-Type' content='test/html"' />
-    <meta http-equiv='Content-Script-Type' content='text/javascript' />
-    <meta http-equiv='Content-Style-Type' content='text/css' />
-    <link rel='shortcut icon' type='image/jpg' href='http://localhost:9995/web/favicon.png' />
-    <link rel='stylesheet' type='text/css' href='http://localhost:9995/web/screen.css' media='screen' />
-    <script src='http://localhost:9995/web/functions.js' type='text/javascript'></script>
-
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/jquery.flot.js"></script>
-  </head>
-
-  <body>
-  	<script type="text/javascript">
-  		$.getJSON("../rest/tservers/${server}", function(data) {
-  			var items = [];
-  			
-  			items.push("<td class='firstcell right'>" + bigNumberForQuantity(data.details.hostedTablets) + "</td>");
-            items.push("<td class='right'>" + bigNumberForQuantity(data.details.entries) + "</td>");
-  			items.push("<td class='right'>" + bigNumberForQuantity(data.details.minors) + "</td>");
-			items.push("<td class='right'>" + bigNumberForQuantity(data.details.majors) + "</td>");
-			items.push("<td class='right'>" + bigNumberForQuantity(data.details.splits) + "</td>");
-  			
-  			$("<tr/>", {
-   			 html: items.join(""),
-   			 class: "highlight"
-  			}).appendTo("#tServerDetail");
-            
-            var totalTimeSpent = 0;
-            $.each(data.allTimeTabletResults, function(key, val) {
-              totalTimeSpent += val.timeSpent;
-            })
-            
-            var count = 0;
-            $.each(data.allTimeTabletResults, function(key, val) {
-              var row = [];
-              
-              row.push("<td class='firstcell left'>" + val.operation + "</td>");
-              row.push("<td class='right'>" + bigNumberForQuantity(val.success) + "</td>");
-              row.push("<td class='right'>" + bigNumberForQuantity(val.failure) + "</td>");
-              row.push("<td class='right'>" + (val.avgQueueTime == null ? "&mdash;" : timeDuration(val.avgQueueTime * 1000.0)) + "</td>");
-              row.push("<td class='right'>" + (val.queueStdDev == null ? "&mdash;" : timeDuration(val.queueStdDev * 1000.0)) + "</td>");
-              row.push("<td class='right'>" + (val.avgTime == null ? "&mdash;" : timeDuration(val.avgTime * 1000.0)) + "</td>");
-              row.push("<td class='right'>" + (val.stdDev == null ? "&mdash;" : timeDuration(val.stdDev * 1000.0)) + "</td>");
-              row.push("<td class='right'><div class='progress-chart'><div style='width:" + Math.floor((val.timeSpent / totalTimeSpent) * 100) + "%;'></div></div>&nbsp;" + Math.floor((val.timeSpent / totalTimeSpent) * 100) + "%</td>");
-              
-              if (count % 2 == 0) {
-                  $("<tr/>", {
-                      html: row.join(""),
-                      class: "highlight"
-                  }).appendTo("#opHistoryDetails");
-              } else {
-                  $("<tr/>", {
-                      html: row.join("")
-                  }).appendTo("#opHistoryDetails");
-              }
-              count += 1;
-            });
-            
-            var items = [];
-            var current = data.currentTabletOperationResults;
-            
-            items.push("<td class='firstcell right'>" + (current.currentMinorAvg == null ? "&mdash;" : timeDuration(current.currentMinorAvg * 1000.0)) + "</td>")
-            items.push("<td class='right'>" + (current.currentMinorStdDev == null ? "&mdash;" : timeDuration(current.currentMinorStdDev * 1000.0)) + "</td>")
-            items.push("<td class='right'>" + (current.currentMajorAvg == null ? "&mdash;" : timeDuration(current.currentMajorAvg * 1000.0)) + "</td>")
-            items.push("<td class='right'>" + (current.currentMajorStdDev == null ? "&mdash;" : timeDuration(current.currentMajorStdDev * 1000.0)) + "</td>")
-            
-            $("<tr/>", {
-                html: items.join(""),
-                class: "highlight"
-            }).appendTo("#currentTabletOps");
-            
-            
-            var count = 0;
-            $.each(data.currentOperations, function(key, val) {
-              var row = [];
-              
-              row.push("<td class='firstcell left'><a href='/tables/" + val.tableID + "'>" + val.name + "</a></td>");
-              row.push("<td class='left'><code>" + val.tablet + "</code></td>");
-              row.push("<td class='right'>" + bigNumberForQuantity(val.entries) + "</td>");
-              row.push("<td class='right'>" + bigNumberForQuantity(Math.floor(val.ingest)) + "</td>");
-              row.push("<td class='right'>" + bigNumberForQuantity(Math.floor(val.query)) + "</td>");
-              row.push("<td class='right'>" + (val.minorAvg == null ? "&mdash;" : timeDuration(val.minorAvg * 1000.0)) + "</td>");
-              row.push("<td class='right'>" + (val.minorStdDev == null ? "&mdash;" : timeDuration(val.minorStdDev * 1000.0)) + "</td>");
-              row.push("<td class='right'>" + bigNumberForQuantity(Math.floor(val.minorAvgES)) + "</td>");
-              row.push("<td class='right'>" + (val.majorAvg == null ? "&mdash;" : timeDuration(val.majorAvg * 1000.0)) + "</td>");
-              row.push("<td class='right'>" + (val.majorStdDev == null ? "&mdash;" : timeDuration(val.majorStdDev * 1000.0)) + "</td>");
-              row.push("<td class='right'>" + bigNumberForQuantity(Math.floor(val.majorAvgES)) + "</td>");
-              
-              if (count % 2 == 0) {
-                  $("<tr/>", {
-                      html: row.join(""),
-                      class: "highlight"
-                  }).appendTo("#perTabletResults");
-              } else {
-                  $("<tr/>", {
-                      html: row.join("")
-                  }).appendTo("#perTabletResults");
-              }
-              count += 1;
-            });            
-		});
-		
-  	</script>  	
-    <div id='content-wrapper'>
-      <div id='content'>
-        <div id='header'>
-          <#include "/templates/header.ftl">
-        </div>
-
-        <#include "/templates/sidebar.ftl">
-
-        <div id='main' style='bottom:0'>
-                    <div>
-            <a name='tServerDetail'>&nbsp;</a>
-            <table id='tServerDetail' class='sortable'>
-              <caption>
-                <span class='table-caption'>Details</span><br />
-                <span class='table-subcaption'>${server}</span><br />
-              </caption>
-             <tr><th class='firstcell'>Hosted&nbsp;Tablets</th><th>Entries</th><th>Minor&nbsp;Compacting</th><th>Major&nbsp;Compacting</th><th>Splitting</th></tr>
-            </table>
-          </div>
-
-          <div>
-            <a name='opHistoryDetails'>&nbsp;</a>
-            <table id='opHistoryDetails' class='sortable'>
-              <caption>
-                <span class='table-caption'>All-Time&nbsp;Tablet&nbsp;Operation&nbsp;Results</span><br />
-              </caption>
-              <tr><th class='firstcell'><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=opHistoryDetails&asc=false'>Operation&nbsp;<img width='10px' height='10px' src='/web/up.gif' alt='v' /></a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=opHistoryDetails&col=1'>Success</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=opHistoryDetails&col=2'>Failure</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=opHistoryDetails&col=3'>Average<br />Queue&nbsp;Time</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=opHistoryDetails&col=4'>Std.&nbsp;Dev.<br />Queue&nbsp;Time</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=opHistoryDetails&col=5'>Average<br />Time</a></th><th><a href='/
 op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=opHistoryDetails&col=6'>Std.&nbsp;Dev.<br />Time</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=opHistoryDetails&col=7'>Percentage&nbsp;Time&nbsp;Spent</a></th></tr>
-            </table>
-          </div>
-
-          <div>
-            <a name='currentTabletOps'>&nbsp;</a>
-            <table id='currentTabletOps' class='sortable'>
-              <caption>
-                <span class='table-caption'>Current&nbsp;Tablet&nbsp;Operation&nbsp;Results</span><br />
-              </caption>
-              <tr><th class='firstcell'>Minor&nbsp;Average</th><th>Minor&nbsp;Std&nbsp;Dev</th><th>Major&nbsp;Avg</th><th>Major&nbsp;Std&nbsp;Dev</th></tr>
-            </table>
-          </div>
-
-          <div>
-            <a name='perTabletResults'>&nbsp;</a>
-            <table id='perTabletResults' class='sortable'>
-              <caption>
-                <span class='table-caption'>Detailed&nbsp;Current&nbsp;Operations</span><br />
-                <span class='table-subcaption'>Per-tablet&nbsp;Details</span><br />
-              </caption>
-              <tr><th class='firstcell'><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=perTabletResults&asc=false'>Table&nbsp;<img width='10px' height='10px' src='/web/up.gif' alt='v' /></a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=perTabletResults&col=1'>Tablet</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=perTabletResults&col=2'>Entries</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=perTabletResults&col=3'>Ingest</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=perTabletResults&col=4'>Query</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=perTabletResults&col=5'>Minor&nbsp;Avg</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997
 &page=/tservers&table=perTabletResults&col=6'>Minor&nbsp;Std&nbsp;Dev</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=perTabletResults&col=7'>Minor&nbsp;Avg&nbsp;e/s</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=perTabletResults&col=8'>Major&nbsp;Avg</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=perTabletResults&col=9'>Major&nbsp;Std&nbsp;Dev</a></th><th><a href='/op?action=sortTable&redir=%2Ftservers%3Fs%3Dlocalhost%3A9997&page=/tservers&table=perTabletResults&col=10'>Major&nbsp;Avg&nbsp;e/s</a></th></tr>
-            </table>
-          </div>
-          
-        </div>
-      </div>    
-    </div>
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/TabletServer/tservers.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/TabletServer/tservers.ftl b/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/TabletServer/tservers.ftl
deleted file mode 100644
index 438cfcf..0000000
--- a/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/TabletServer/tservers.ftl
+++ /dev/null
@@ -1,94 +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.
--->
-<html>
-  <head>
-    <title>${title} - Accumulo ${version}</title>
-    <#if refresh gt 0 ><meta http-equiv='refresh' content='${refresh}' /></#if>
-    <meta http-equiv='Content-Type' content='test/html"' />
-    <meta http-equiv='Content-Script-Type' content='text/javascript' />
-    <meta http-equiv='Content-Style-Type' content='text/css' />
-    <link rel='shortcut icon' type='image/jpg' href='http://localhost:9995/web/favicon.png' />
-    <link rel='stylesheet' type='text/css' href='http://localhost:9995/web/screen.css' media='screen' />
-    <script src='http://localhost:9995/web/functions.js' type='text/javascript'></script>
-
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/jquery.flot.js"></script>
-  </head>
-
-  <body>
-  	<script type="text/javascript">
-  		$.getJSON("rest/tservers", function(data) {
-  			var count = 0;
-            
-  			$.each(data.servers, function(key, val) {
-              var items = [];
-  			  items.push("<td class='firstcell left'><a href='/tservers/" + val.id + "'>" + val.hostname + "</a></td>");
-  			  items.push("<td class='right'>" + bigNumberForQuantity(val.tablets) + "</td>");
-			  items.push("<td class='right'>" + timeDuration(val.lastContact) + "</td>");
-			  items.push("<td class='right'>" + bigNumberForQuantity(val.entries) + "</td>");
-			  items.push("<td class='right'>" + bigNumberForQuantity(Math.floor(val.ingest)) + "</td>");
-			  items.push("<td class='right'>" + bigNumberForQuantity(Math.floor(val.query)) + "</td>");
-			  items.push("<td class='right'>" + timeDuration(val.holdtime) + "</td>");
-			  items.push("<td class='right'>" + bigNumberForQuantity(val.compactions.scans.running) + "&nbsp;(" + val.compactions.scans.queued + ")</td>");
-			  items.push("<td class='right'>" + bigNumberForQuantity(val.compactions.minor.running) + "&nbsp;(" + val.compactions.minor.queued + ")</td>");
-			  items.push("<td class='right'>" + bigNumberForQuantity(val.compactions.major.running) + "&nbsp;(" + val.compactions.major.queued + ")</td>");
-			  items.push("<td class='right'>" + Math.round(val.indexCacheHitRate*100) + "%</td>");
-			  items.push("<td class='right'>" + Math.round(val.dataCacheHitRate*100) + "%</td>");
-			  items.push("<td class='right'>" + bigNumberForQuantity(val.osload) + "</td>");
-              
-              if (count % 2 == 0) {
-                $("<tr/>", {
-                  html: items.join(""),
-                  class: "highlight"
-                }).appendTo("#tservers");
-              } else {
-                $("<tr/>", {
-                  html: items.join("")
-                }).appendTo("#tservers");
-              }
-              count += 1;
-              
-			});
-		});
-		
-  	</script>  	
-    <div id='content-wrapper'>
-      <div id='content'>
-        <div id='header'>
-          <#include "/templates/header.ftl">
-        </div>
-
-        <#include "/templates/sidebar.ftl">
-
-        <div id='main' style='bottom:0'>
-          <div>
-			<a name='tservers'>&nbsp;</a>
-			<table id='tservers' class='sortable'>
-			  <caption>
-				<span class='table-caption'>Tablet&nbsp;Servers</span><br />
-				<span class='table-subcaption'>Click on the <span style='color: #0000ff;'>server address</span> to view detailed performance statistics for that server.</span><br />
-				  <a href='/op?action=toggleLegend&redir=%2Ftservers&page=/tservers&table=tservers&show=true'>Show&nbsp;Legend</a>
-			  </caption>
-			  <tr><th class='firstcell'>Server</th><th>Hosted&nbsp;Tablets</th><th>Last&nbsp;Contact</th><th>Entries</th><th>Ingest</th><th>Query</th><th>Hold&nbsp;Time</th><th>Running<br />Scans</th><th>Minor<br />Compactions</th><th>Major<br />Compactions</th><th>Index Cache<br />Hit Rate</th><th>Data Cache<br />Hit Rate</th><th>OS&nbsp;Load</th></tr>
-			</table>
-		  </div>
-        </div>
-      </div>    
-    </div>
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/Trace/listType.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/Trace/listType.ftl b/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/Trace/listType.ftl
deleted file mode 100644
index 271d2a2..0000000
--- a/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/Trace/listType.ftl
+++ /dev/null
@@ -1,89 +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.
--->
-<html>
-  <head>
-    <title>${title} - Accumulo ${version}</title>
-    <#if refresh gt 0 ><meta http-equiv='refresh' content='${refresh}' /></#if>
-    <meta http-equiv='Content-Type' content='test/html"' />
-    <meta http-equiv='Content-Script-Type' content='text/javascript' />
-    <meta http-equiv='Content-Style-Type' content='text/css' />
-    <link rel='shortcut icon' type='image/jpg' href='http://localhost:9995/web/favicon.png' />
-    <link rel='stylesheet' type='text/css' href='http://localhost:9995/web/screen.css' media='screen' />
-    <script src='http://localhost:9995/web/functions.js' type='text/javascript'></script>
-
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/jquery.flot.js"></script>
-  </head>
-
-  <body>
-  	<script type="text/javascript">
-  		$.getJSON("../../rest/trace/listType/${type}/${minutes}", function(data) {
-            
-            var count = 0;          
-            
-            $.each(data.traces, function(key, val) {
-            
-              var items = [];
-              
-              var date = new Date(val.start);
-              items.push("<td class='firstcell left'><a href='/trace/show?id=" + val.id + "'>" + date.toLocaleString() + "</a></td>");
-              items.push("<td class ='right'>" + timeDuration(val.ms) + "</td>");
-              items.push("<td class='left'>" + val.source + "</td>");
-              
-              if (count % 2 == 0) {
-              	$("<tr/>", {
-                  html: items.join(""),
-                  class: "highlight"
-              	}).appendTo("#trace"); 
-              } else {
-              	$("<tr/>", {
-              	  html: items.join("")
-              	}).appendTo("#trace");
-              }
-              count += 1;
-              
-            });
-		});
-		
-  	</script>  	
-    <div id='content-wrapper'>
-      <div id='content'>
-        <div id='header'>
-          <#include "/templates/header.ftl">
-        </div>
-
-        <#include "/templates/sidebar.ftl">
-
-        <div id='main' style='bottom:0'>
-          
-          <div>
-			<a name='trace'>&nbsp;</a>
-			<table id='trace' class='sortable'>
-			  <caption>
-				<span class='table-caption'>Traces for ${type}</span><br />
-				<a href='/op?action=toggleLegend&redir=%2Ftrace%2FlistType%3Ftype%3DmajorCompaction%26minutes%3D10&page=/trace/listType&table=trace&show=true'>Show&nbsp;Legend</a>
-			  </caption>
-			  <tr><th class='firstcell'>Start</th><th>ms</th><th>Source</th></tr>
-			</table>
-		  </div>
-          
-        </div>
-      </div>    
-    </div>
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/Trace/show.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/Trace/show.ftl b/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/Trace/show.ftl
deleted file mode 100644
index 5f8444c..0000000
--- a/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/Trace/show.ftl
+++ /dev/null
@@ -1,135 +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.
--->
-<html>
-  <head>
-    <title>${title} - Accumulo ${version}</title>
-    <#if refresh gt 0 ><meta http-equiv='refresh' content='${refresh}' /></#if>
-    <meta http-equiv='Content-Type' content='test/html"' />
-    <meta http-equiv='Content-Script-Type' content='text/javascript' />
-    <meta http-equiv='Content-Style-Type' content='text/css' />
-    <link rel='shortcut icon' type='image/jpg' href='http://localhost:9995/web/favicon.png' />
-    <link rel='stylesheet' type='text/css' href='http://localhost:9995/web/screen.css' media='screen' />
-    <script src='http://localhost:9995/web/functions.js' type='text/javascript'></script>
-
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/jquery.flot.js"></script>
-  </head>
-
-  <body>
-  	<style>
- 	  td.right { text-align: right }
-	  table.indent { position: relative; left: 10% }
- 	  td.left { text-align: left }
-	</style>
-	
-  	<script type="text/javascript">
-  	  function toggle(id) {
- 		var elt = document.getElementById(id);
- 		if (elt.style.display=='none') {
-    	  elt.style.display='table-row';
- 		} else { 
-    	  elt.style.display='none';
-  		}
-	  }
-	  function pageload() {
-  		var checkboxes = document.getElementsByTagName('input');
-  		for (var i = 0; i < checkboxes.length; i++) {
-    	  if (checkboxes[i].checked) {
-      		var idSuffixOffset = checkboxes[i].id.indexOf('_checkbox');
-      		var id = checkboxes[i].id.substring(0, idSuffixOffset);
-      		document.getElementById(id).style.display='table-row';
-    	  }
-  		}
-	  }
-	  
-  	  $.getJSON("../../rest/trace/show/${id}", function(data) {
-        var id = 101010101;
-        var date = new Date(data.start);
-        $("#caption").append(date.toLocaleString());      
-            
-        $.each(data.traces, function(key, val) {
-            
-          var items = [];
-          
-          items.push("<tr>");
-          items.push("<td class='right'>" + val.time + "+</td>");
-          items.push("<td class='left'>" + val.start + "</td>");
-          items.push("<td style='text-indent: " + val.level + "0px'>" + val.location + "</td>");
-          items.push("<td>" + val.name + "</td>");
-            
-          if (val.addlData.data.length !== 0 || val.addlData.annotations.length !== 0) {
-              
-            items.push("<td><input type='checkbox' id=\"" + id + "_checkbox\" onclick='toggle(\"" + id + "\")'></td>");
-            items.push("</tr>");
-            items.push("<tr id='" + id + "' style='display:none'>");
-            items.push("<td colspan='5'>");
-            items.push("<table class='indent,noborder'>");
-              	
-            if (val.addlData.data.length !== 0) {
-              items.push("<tr><th>Key</th><th>Value</th></tr>");
-            	
-              $.each(val.addlData.data, function(key2, val2) {
-                items.push("<tr><td>" + val2.key + "</td><td>" + val2.value + "</td></tr>");
-              });
-            }
-            
-            if (val.addlData.annotations.length !== 0) {
-              items.push("<tr><th>Annotation</th><th>Time Offset</th></tr>");
-            	
-              $.each(val.addlData.annotations, function(key2, val2) {
-                items.push("<tr><td>" + val2.annotation + "</td><td>" + val2.time + "</td></tr>");
-              });
-            }
-              	
-            items.push("</table>");
-            items.push("</td>");
-            id += 1;
-          }
-          
-          items.push("</tr>");
-              
-          $("#trace").append(items.join(""));              
-        });
-	  });
-		
-  	</script>  	
-    <div id='content-wrapper'>
-      <div id='content'>
-        <div id='header'>
-          <#include "/templates/header.ftl">
-        </div>
-
-        <#include "/templates/sidebar.ftl">
-
-        <div id='main' style='bottom:0'>
-          
-          <div>
-            <table id="trace">
-              <caption>
-              	<span id='caption' class='table-caption'>Trace ${id} started at<br></span>
-              </caption>
-              <tr><th>Time</th><th>Start</th><th>Service@Location</th><th>Name</th><th>Addl Data</th></tr>
-              
-			</table>
-		  </div>
-          
-        </div>
-      </div>    
-    </div>
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/Trace/summary.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/Trace/summary.ftl b/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/Trace/summary.ftl
deleted file mode 100644
index b8c5739..0000000
--- a/server/monitor/src/main/resources/templates/org/apache/accumulo/monitor/rest/view/Trace/summary.ftl
+++ /dev/null
@@ -1,100 +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.
--->
-<html>
-  <head>
-    <title>${title} - Accumulo ${version}</title>
-    <#if refresh gt 0 ><meta http-equiv='refresh' content='${refresh}' /></#if>
-    <meta http-equiv='Content-Type' content='test/html"' />
-    <meta http-equiv='Content-Script-Type' content='text/javascript' />
-    <meta http-equiv='Content-Style-Type' content='text/css' />
-    <link rel='shortcut icon' type='image/jpg' href='http://localhost:9995/web/favicon.png' />
-    <link rel='stylesheet' type='text/css' href='http://localhost:9995/web/screen.css' media='screen' />
-    <script src='http://localhost:9995/web/functions.js' type='text/javascript'></script>
-
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="http://localhost:9995/web/flot/jquery.flot.js"></script>
-  </head>
-
-  <body>
-  	<script type="text/javascript">
-  		$.getJSON("../../rest/trace/summary/${minutes}", function(data) {
-            
-            var count = 0;
-            
-            $.each(data.recentTraces, function(key, val) {
-            
-              var items = [];
-              
-              items.push("<td class='firstcell left'><a href='/trace/listType?type=" + val.type + "&minutes=${minutes}'>" + val.type + "</a></td>");
-              items.push("<td class ='right'>" + bigNumberForQuantity(val.total) + "</td>");
-              items.push("<td class='right'>" + timeDuration(val.min) + "</td>");
-              items.push("<td class='right'>" + timeDuration(val.max) + "</td>");
-              items.push("<td class='right'>" + timeDuration(val.avg) + "</td>");
-              items.push("<td class='left'>");
-              items.push("<table>");
-              items.push("<tr>");
-              
-              $.each(val.histogram, function(key2, val2) {
-              	items.push("<td style='width:5em'>" + (val2 == 0 ? "-" : val2) + "</td>");
-              });
-              items.push("</tr>");
-              items.push("</table>");
-              items.push("</td>");
-              
-              if (count % 2 == 0) {
-              	$("<tr/>", {
-                  html: items.join(""),
-                  class: "highlight"
-              	}).appendTo("#traceSummary"); 
-              } else {
-              	$("<tr/>", {
-              	  html: items.join("")
-              	}).appendTo("#traceSummary");
-              }
-              count += 1;
-              
-            });
-		});
-		
-  	</script>  	
-    <div id='content-wrapper'>
-      <div id='content'>
-        <div id='header'>
-          <#include "/templates/header.ftl">
-        </div>
-
-        <#include "/templates/sidebar.ftl">
-
-        <div id='main' style='bottom:0'>
-          
-          <div>
-			<a name='traceSummary'>&nbsp;</a>
-			<table id='traceSummary' class='sortable'>
-			  <caption>
-				<span class='table-caption'>All Traces</span><br />
-				<a href='/op?action=toggleLegend&redir=%2Ftrace%2Fsummary%3Fminutes%3D10&page=/trace/summary&table=traceSummary&show=true'>Show&nbsp;Legend</a>
-			  </caption>
-			  <tr><th class='firstcell'>Type</th><th>Total</th><th>min</th><th>max</th><th>avg</th><th>Histogram</th></tr>
-			</table>
-		  </div>
-          
-        </div>
-      </div>    
-    </div>
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/overview.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/overview.ftl b/server/monitor/src/main/resources/templates/overview.ftl
new file mode 100644
index 0000000..0d7233c
--- /dev/null
+++ b/server/monitor/src/main/resources/templates/overview.ftl
@@ -0,0 +1,90 @@
+<#--
+  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.
+-->
+      <div><h3>${title}</h3></div>
+      <br>
+      <div class="center-block">
+        <table class="overview-table">
+          <tr>
+            <td class="noborder" id="master"></td>
+            <td class="noborder" id="zookeeper"></td>
+          </tr>
+        </table>
+      </div>
+      <div class="center-block">
+        <table class="overview-table">
+          <tr>
+            <td>
+              <br>
+              <div class="plotHeading">Ingest (Entries/s)</div>
+              <div id="ingest_entries" style="width:100%;height:200px;"></div>
+            </td>
+            <td>
+              <br>
+              <div class="plotHeading">Scan (Entries/s)</div>
+              <div id="scan_entries" style="width:100%;height:200px;"></div>
+            </td>
+          </tr>
+          <tr>
+            <td>
+              <br>
+              <div class="plotHeading">Ingest (MB/s)</div>
+              <div id="ingest_mb" style="width:100%;height:200px;"></div>
+            </td>
+            <td>
+              <br>
+              <div class="plotHeading">Scan (MB/s)</div>
+              <div id="scan_mb" style="width:100%;height:200px;"></div>
+            </td>
+          </tr>
+          <tr>
+            <td>
+              <br>
+              <div class="plotHeading">Load Average</div>
+              <div id="load_avg" style="width:100%;height:200px;"></div>
+            </td>
+            <td>
+              <br>
+              <div class="plotHeading">Seeks</div>
+              <div id="seeks" style="width:100%;height:200px;"></div>
+            </td>
+          </tr>
+          <tr>
+            <td>
+              <br>
+              <div class="plotHeading">Minor Compactions</div>
+              <div id="minor" style="width:100%;height:200px;"></div>
+            </td>
+            <td>
+              <br>
+              <div class="plotHeading">Major Compactions</div>
+              <div id="major" style="width:100%;height:200px;"></div>
+            </td>
+          </tr>
+          <tr>
+            <td>
+              <br>
+              <div class="plotHeading">Index Cache Hit Rate</div>
+              <div id="index_cache" style="width:100%;height:200px;"></div>
+            </td>
+            <td>
+              <br>
+              <div class="plotHeading">Data Cache Hit Rate</div>
+              <div id="data_cache" style="width:100%;height:200px;"></div>
+            </td>
+          </tr>
+        </table>
+      </div>

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/problems.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/problems.ftl b/server/monitor/src/main/resources/templates/problems.ftl
new file mode 100644
index 0000000..bdbb4f6
--- /dev/null
+++ b/server/monitor/src/main/resources/templates/problems.ftl
@@ -0,0 +1,36 @@
+<#--
+  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.
+-->
+      <script>
+        /**
+         * Creates problems initial table, passes tableID from template
+         */
+        $(document).ready(function() {
+          var tableID = <#if table??>'${table}'<#else>''</#if>
+          createSummaryHeader();
+          createDetailsHeader(tableID);
+          refreshProblems();
+        });
+      </script>
+      <div><h3>${title}</h3></div>
+      <div class="center-block">
+        <table id="problemSummary" class="table table-bordered table-striped table-condensed">
+        
+        </table>
+        <table id="problemDetails" class="table table-bordered table-striped table-condensed">
+          
+        </table>
+      </div>

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/replication.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/replication.ftl b/server/monitor/src/main/resources/templates/replication.ftl
new file mode 100644
index 0000000..3c2dff9
--- /dev/null
+++ b/server/monitor/src/main/resources/templates/replication.ftl
@@ -0,0 +1,22 @@
+<#--
+  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.
+-->       
+      <div><h3>${title}</h3></div>
+      <div class="center-block">
+        <table id="replicationStats" class="table table-bordered table-striped table-condensed">
+          
+        </table>
+      </div>

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/scans.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/scans.ftl b/server/monitor/src/main/resources/templates/scans.ftl
new file mode 100644
index 0000000..db2eec4
--- /dev/null
+++ b/server/monitor/src/main/resources/templates/scans.ftl
@@ -0,0 +1,22 @@
+<#--
+  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.
+-->
+      <div><h3>${title}</h3></div>
+      <div class="center-block">
+        <table id="scanStatus" class="table table-bordered table-striped table-condensed">
+
+        </table>
+      </div>

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/server.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/server.ftl b/server/monitor/src/main/resources/templates/server.ftl
new file mode 100644
index 0000000..53d6b11
--- /dev/null
+++ b/server/monitor/src/main/resources/templates/server.ftl
@@ -0,0 +1,49 @@
+<#--
+  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.
+-->
+      <script>
+        /**
+         * Creates server initial tables, passes values from template
+         */
+        $(document).ready(function() {
+          createDetailHeader('${server}');
+          createHistoryHeader();
+          createCurrentHeader();
+          createResultsHeader();
+          refreshServer('${server}');
+        });
+      </script>
+      <div><h3>${title}</h3></div>
+      <div class="center-block">
+        <table id="tServerDetail" class="table table-bordered table-striped table-condensed">
+          
+        </table>
+      </div>
+      <div class="center-block">
+        <table id="opHistoryDetails" class="table table-bordered table-striped table-condensed">
+          
+        </table>
+      </div>
+      <div class="center-block">
+        <table id="currentTabletOps" class="table table-bordered table-striped table-condensed">
+          
+        </table>
+      </div>
+      <div class="center-block">
+        <table id="perTabletResults" class="table table-bordered table-striped table-condensed">
+          
+        </table>
+      </div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/show.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/show.ftl b/server/monitor/src/main/resources/templates/show.ftl
new file mode 100644
index 0000000..e856729
--- /dev/null
+++ b/server/monitor/src/main/resources/templates/show.ftl
@@ -0,0 +1,65 @@
+<#--
+  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.
+-->
+      <style>
+        td.right { text-align: right }
+        table.indent { position: relative; left: 10% }
+        td.left { text-align: left }
+      </style>
+      <script type="text/javascript">
+        /**
+         * Creates trace id initial table, passes id from template
+         */
+        $(document).ready(function() {
+          createHeader('${id}');
+          
+          refreshTraceShow();
+        });
+        
+        /**
+         * Toggles row
+         *
+         * @param {string} id Row id to toggle
+         */
+        function toggle(id) {
+          var elt = document.getElementById(id);
+          if (elt.style.display=='none') {
+            elt.style.display='table-row';
+          } else { 
+            elt.style.display='none';
+          }
+        }
+        
+        /**
+         * Selects where to display the row
+         */
+        function pageload() {
+          var checkboxes = document.getElementsByTagName('input');
+          for (var i = 0; i < checkboxes.length; i++) {
+            if (checkboxes[i].checked) {
+              var idSuffixOffset = checkboxes[i].id.indexOf('_checkbox');
+              var id = checkboxes[i].id.substring(0, idSuffixOffset);
+              document.getElementById(id).style.display='table-row';
+            }
+          }
+        }
+      </script>
+      <div><h3>${title}</h3></div>
+      <div class="center-block">
+        <table id="trace" class="table table-bordered table-striped table-condensed">
+          
+        </table>
+      </div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/sidebar.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/sidebar.ftl b/server/monitor/src/main/resources/templates/sidebar.ftl
index c3f6269..02508de 100644
--- a/server/monitor/src/main/resources/templates/sidebar.ftl
+++ b/server/monitor/src/main/resources/templates/sidebar.ftl
@@ -14,31 +14,75 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-        <div id='nav'>
-          <span id='nav-title'><a href='/'>Overview</a></span><br />
-          <hr />
-          <a href='/master'>Master&nbsp;Server</a><br />
-          <a href='/tservers'>Tablet&nbsp;Servers</a><br />
-          <a href='/scans'>Active&nbsp;Scans</a><br />
-          <a href='/bulkImports'>Bulk&nbsp;Imports</a><br />
-          <a href='/vis'>Server&nbsp;Activity</a><br />
-          <a href='/gc'>Garbage&nbsp;Collector</a><br />
-          <a href='/tables'>Tables</a><br />
-          <a href='/trace/summary?minutes=10'>Recent&nbsp;Traces</a><br />
-          <a href='/replication'>Replication</a><br />
-          <#if num_logs gt 0>
-            <span class='<#if logsHaveError?? && logsHaveError>error<#else>warning</#if>'><a href='/log'>Recent&nbsp;Logs&nbsp;<span class='smalltext'>(${num_logs})</span></a></span><br />
-          </#if>
-          <#if num_problems gt 0>
-            <span class='error'><a href='/problems'>Table&nbsp;Problems&nbsp;<span class='smalltext'>(${num_problems}")</span></a></span><br />
-          </#if>
-          <hr />
-          <a href='/xml'>XML</a><br />
-          <a href='/rest/json'>JSON</a><hr />
-          <#if is_ssl>
-            <a href='/shell'>Shell</a><hr />
-          </#if>
-          <div class='smalltext'>[<a href='/op?action=refresh&value=<#if refresh < 1>5<#else>-1</#if><#if redirect??>&redir=${redirect}</#if>'>
-                <#if refresh < 1>enable<#else>disable</#if>&nbsp;auto-refresh</a>]</div><hr />
-          <div class='smalltext'><a href='https://accumulo.apache.org/' target='_blank'>Apache&nbsp;Accumulo</a></div>
+      <div class="container-fluid">
+        <!-- toggle -->
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-items" aria-expanded="false">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" id="headertitle" href="/">${instance_name}</a>
         </div>
+        <!-- Nav links -->
+        <div class="collapse navbar-collapse" id="nav-items">
+          <ul class="nav navbar-nav navbar-right">
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false"><span id="statusNotification" class="icon-dot normal"></span>&nbsp;Servers&nbsp;<span class="caret"></span>
+              </a>
+              <ul class="dropdown-menu">
+                <li><a href="/master"><span id="masterStatusNotification" class="icon-dot normal"></span>&nbsp;Master&nbsp;Server&nbsp;</a></li>
+                <li><a href="/tservers"><span id="serverStatusNotification" class="icon-dot normal"></span>&nbsp;Tablet&nbsp;Servers&nbsp;</a></li>
+                <li><a href="/gc"><span id="gcStatusNotification" class="icon-dot normal"></span>&nbsp;Garbage&nbsp;collector&nbsp;</a></li>
+              </ul>
+            </li>
+            <li><a href="/tables">Tables</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
+                Activity <span class="caret"></span>
+              </a>
+              <ul class="dropdown-menu">
+                <li><a href="/scans">Active&nbsp;Scans</a></li>
+                <li><a href="/bulkImports">Bulk&nbsp;Imports</a></li>
+                <li><a href="/vis">Server&nbsp;Activity</a></li>
+                <li><a href="/replication">Replication</a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Debug&nbsp;<span id="errorsNotification" class="badge"></span><span class="caret"></span>
+              </a>
+              <ul class="dropdown-menu">
+                <li><a href="/trace/summary?minutes=10">Recent&nbsp;Traces</a></li>
+                <li><a href="/log">Recent&nbsp;Logs&nbsp;<span id="recentLogsNotifications" class="badge"></span></a></li>
+                <li><a href="/problems">Table&nbsp;Problems&nbsp;<span id="tableProblemsNotifications" class="badge"></span></a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
+                API <span class="caret"></span>
+              </a>
+              <ul class="dropdown-menu">
+                <li><a href="/xml">XML</a></li>
+                <li><a href="/rest/tservers">JSON</a></li>
+              </ul>
+            </li>
+            <#if is_ssl>
+              <li><a href="/shell">Shell</a></li>
+            </#if>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
+                <span class="glyphicon glyphicon-option-vertical"></span>
+              </a>
+              <ul class="dropdown-menu">
+                <li><a class="auto-refresh" style="cursor:pointer">Auto-Refresh</a></li>
+                <li><a data-toggle="modal" href="#aboutModal">About</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div>
+      </div>
+      <script>
+        // Obtain the current time
+        document.getElementById('currentDate').innerHTML = Date();
+      </script>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/summary.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/summary.ftl b/server/monitor/src/main/resources/templates/summary.ftl
new file mode 100644
index 0000000..02b69d0
--- /dev/null
+++ b/server/monitor/src/main/resources/templates/summary.ftl
@@ -0,0 +1,33 @@
+<#--
+  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.
+-->
+      <script>
+        /**
+         * Creates trace summary initial table, passes the minutes from the template
+         */
+        $(document).ready(function() {
+          createHeader('${minutes}');
+          refreshSummary();
+        });
+      </script>
+            
+      <div><h3>${title}</h3></div>
+      <div class="center-block">
+        <table id="traceSummary" class="table table-bordered table-striped table-condensed">
+          
+        </table>
+      </div>
+

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/table.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/table.ftl b/server/monitor/src/main/resources/templates/table.ftl
new file mode 100644
index 0000000..0f7c701
--- /dev/null
+++ b/server/monitor/src/main/resources/templates/table.ftl
@@ -0,0 +1,31 @@
+<#--
+  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.
+-->
+      <script>
+        /**
+         * Creates participating Tservers initial table, passes the table and tableID from the template
+         */
+        $(document).ready(function() {
+          createHeader('${table}', '${tableID}');
+          refreshTable();
+        });
+      </script>
+      <div><h3>${title}</h3></div>
+      <div class="center-block">
+        <table id="participatingTServers" class="table table-bordered table-striped table-condensed">
+
+        </table>
+      </div>

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/tables.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/tables.ftl b/server/monitor/src/main/resources/templates/tables.ftl
new file mode 100644
index 0000000..fcdc221
--- /dev/null
+++ b/server/monitor/src/main/resources/templates/tables.ftl
@@ -0,0 +1,41 @@
+<#--
+  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.
+-->
+      <script type="text/javascript">
+        /**
+         * Creates tables initial table
+         */
+        $(document).ready(function() {
+          createTablesHeader();
+          refreshTables();
+          <#if tablesJs??>
+            toggleMaster(true);
+          </#if>
+        });
+      </script>
+      <div><h3>${tablesTitle}</h3></div>
+      <div id="tablesBanner"></div>
+      <div class="center-block">
+        <div>
+          <select id="namespaces" data-placeholder="Select a namespace" multiple="multiple" style="width: 100%;">
+          </select>
+        </div>
+      </div>
+      <div class="center-block">
+        <table id="tableList" class="table table-bordered table-striped table-condensed">
+
+        </table>
+      </div>

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/tservers.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/tservers.ftl b/server/monitor/src/main/resources/templates/tservers.ftl
new file mode 100644
index 0000000..f38fc50
--- /dev/null
+++ b/server/monitor/src/main/resources/templates/tservers.ftl
@@ -0,0 +1,29 @@
+<#--
+  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.
+-->
+      <div><h3>${title}</h3></div>
+      <div class="center-block">
+        <table id="badtservers" class="table table-bordered table-striped table-condensed">
+        
+        </table>
+        <table id="deadtservers" class="table table-bordered table-striped table-condensed">
+        
+        </table>
+        <table id="tservers" class="table table-bordered table-striped table-condensed">
+          
+        </table>
+      </div>
+        

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/templates/vis.ftl
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/templates/vis.ftl b/server/monitor/src/main/resources/templates/vis.ftl
new file mode 100644
index 0000000..84f8704
--- /dev/null
+++ b/server/monitor/src/main/resources/templates/vis.ftl
@@ -0,0 +1,72 @@
+<#--
+  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.
+-->
+      <div><h3>${title}</h3></div>
+      <div>
+        <div>
+          <div id="parameters">
+            <span class="viscontrol">Shape: <select id="shape" onchange="setShape(this)"><option>Circles</option><option>Squares</option></select></span>
+            &nbsp;&nbsp;
+            <span class="viscontrol">Size: <select id="size" onchange="setSize(this)"><option>10</option><option>20</option><option selected="true">40</option><option>80</option></select></span>
+            &nbsp;&nbsp;
+            <span class="viscontrol">Motion: <select id="motion" onchange="setMotion(this)"></select></span>
+            &nbsp;&nbsp;
+            <span class="viscontrol">Color: <select id="color" onchange="setColor(this)"></select></span>
+          </div>
+          <br>
+          <span>Hover for info, click for details</span>
+          <div id="hoverable">
+            <div id="vishoverinfo"></div>
+            <br>
+            <canvas id="visCanvas" width="640" height="640">Browser does not support canvas.</canvas>
+          </div>
+        </div>
+      </div>
+      
+      <script type="text/javascript">
+        /**
+         * Creates initial visualization table, passes the shape, size, motion, and color from the template
+         */
+        $(document).ready(function() {
+          $.ajaxSetup({
+            async: false
+          });
+          getServerStats();
+          $.ajaxSetup({
+            async: true
+          });
+          
+          setStats();
+          setOptions('${shape}', '${size}', '${motion}', '${color}');
+          setState();
+          
+          drawGrid();
+          getXML();
+          refresh();
+          drawDots();
+        });
+      </script>
+      <script type="text/javascript">
+        // Populates variables to be used in the visualization
+        var numCores = 8;
+        var jsonurl = '/rest/json';
+        var visurl = '/vis';
+        var serverurl = '/tservers?s=';
+
+        var numNormalStats = 8;
+      </script>
+      
+      <script src="/resources/vis.js"></script>

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/web/down.gif
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/web/down.gif b/server/monitor/src/main/resources/web/down.gif
deleted file mode 100644
index 087da1d..0000000
Binary files a/server/monitor/src/main/resources/web/down.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/web/favicon.png
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/web/favicon.png b/server/monitor/src/main/resources/web/favicon.png
deleted file mode 100644
index a632dab..0000000
Binary files a/server/monitor/src/main/resources/web/favicon.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ca5cd33/server/monitor/src/main/resources/web/flot/LICENSE.txt
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/resources/web/flot/LICENSE.txt b/server/monitor/src/main/resources/web/flot/LICENSE.txt
deleted file mode 100644
index 07d5b20..0000000
--- a/server/monitor/src/main/resources/web/flot/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2007-2009 IOLA and Ole Laursen
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.


Mime
View raw message