You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by bo...@apache.org on 2014/09/24 19:56:30 UTC

[03/50] git commit: Reformatting template pages.

Reformatting template pages.


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

Branch: refs/heads/security
Commit: d1d2ccbe0259778af2d049ee10535ba0f7e9788d
Parents: 9760867
Author: Kyle Nusbaum <Ky...@gmail.com>
Authored: Tue Aug 26 11:40:56 2014 -0500
Committer: Kyle Nusbaum <Ky...@gmail.com>
Committed: Tue Aug 26 11:40:56 2014 -0500

----------------------------------------------------------------------
 .../templates/component-page-template.html      | 593 ++++++++++++++-----
 .../public/templates/index-page-template.html   | 219 +++++--
 .../templates/topology-page-template.html       | 195 +++++-
 3 files changed, 810 insertions(+), 197 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/d1d2ccbe/storm-core/src/ui/public/templates/component-page-template.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/templates/component-page-template.html b/storm-core/src/ui/public/templates/component-page-template.html
index b787eb7..f718967 100644
--- a/storm-core/src/ui/public/templates/component-page-template.html
+++ b/storm-core/src/ui/public/templates/component-page-template.html
@@ -15,159 +15,474 @@
  limitations under the License.
 -->
 <script id="component-summary-template" type="text/html">
-<h2>Component summary</h2>
-<table><thead><tr><th><span class="tip right" title="The ID assigned to a the Component by the Topology.">Id</span></th><th><span class="tip above" title="The name given to the topology by when it was submitted. Click the name to view the Topology's information.">Topology</span></th><th><span class="tip above" title="Executors are threads in a Worker process.">Executors</span></th><th><span class="tip above" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">Tasks</span></th></tr></thead>
-<tbody>
-<tr>
-<td>{{id}}</td>
-<td><a href="/topology.html?id={{topologyId}}">{{name}}</a></td>
-<td>{{executors}}</td>
-<td>{{tasks}}</td>
-</tbody>
-</table>
+  <h2>Component summary</h2>
+  <table>
+    <thead>
+      <tr>
+        <th>
+          <span class="tip right" title="The ID assigned to a the Component by the Topology.">
+            Id
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="The name given to the topology by when it was submitted. Click the name to view the Topology's information.">
+            Topology
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="Executors are threads in a Worker process.">
+            Executors
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">
+            Tasks
+          </span>
+        </th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td>{{id}}</td>
+        <td><a href="/topology.html?id={{topologyId}}">{{name}}</a></td>
+        <td>{{executors}}</td>
+        <td>{{tasks}}</td>
+    </tbody>
+  </table>
 </script>
 <script id="spout-stats-detail-template" type="text/html">
-<h2>Spout stats</h2>
-<table class="zebra-striped" id="spout-stats-table"><thead><tr><th class="header headerSortDown"><span class="tip right" title="The past period of time for which the statistics apply. Click on a value to set the window for this page.">Window</span></th><th class="header"><span class="tip above" title="The number of Tuples emitted.">Emitted</span></th><th class="header"><span data-original-title="The number of Tuples emitted that sent to one or more bolts." class="tip above">Transferred</span></th><th class="header"><span class="tip above" title="The average time a Tuple &quot;tree&quot; takes to be completely processed by the Topology. A value of 0 is expected if no acking is done.">Complete latency (ms)</span></th><th class="header"><span class="tip above" title="The number of Tuple &quot;trees&quot; successfully processed. A value of 0 is expected if no acking is done.">Acked</span></th><th class="header"><span data-original-title="The number of Tuple &quot;trees&quot; that were e
 xplicitly failed or timed out before acking was completed. A value of 0 is expected if no acking is done." class="tip left">Failed</span></th></tr></thead>
-<tbody>
-{{#spoutSummary}}
-<tr>
-<td><a href="/component.html?id={{id}}&topology_id={{topologyId}}&window={{window}}">{{windowPretty}}</a></td>
-<td>{{transferred}}</td>
-<td>{{emitted}}</td>
-<td>{{completeLatency}}</td>
-<td>{{acked}}</td>
-<td>{{failed}}</td>
-</tr>
-{{/spoutSummary}}
-</tbody>
-</table>
+  <h2>Spout stats</h2>
+  <table class="zebra-striped" id="spout-stats-table">
+    <thead>
+      <tr>
+        <th class="header headerSortDown">
+          <span class="tip right" title="The past period of time for which the statistics apply. Click on a value to set the window for this page.">
+            Window
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples emitted.">
+            Emitted
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The number of Tuples emitted that sent to one or more bolts." class="tip above">
+            Transferred
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The average time a Tuple &quot;tree&quot; takes to be completely processed by the Topology. A value of 0 is expected if no acking is done.">
+            Complete latency (ms)
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuple &quot;trees&quot; successfully processed. A value of 0 is expected if no acking is done.">
+            Acked
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The number of Tuple &quot;trees&quot; that were explicitly failed or timed out before acking was completed. A value of 0 is expected if no acking is done." class="tip left">
+            Failed
+          </span>
+        </th>
+      </tr>
+    </thead>
+    <tbody>
+      {{#spoutSummary}}
+      <tr>
+        <td><a href="/component.html?id={{id}}&topology_id={{topologyId}}&window={{window}}">{{windowPretty}}</a></td>
+        <td>{{transferred}}</td>
+        <td>{{emitted}}</td>
+        <td>{{completeLatency}}</td>
+        <td>{{acked}}</td>
+        <td>{{failed}}</td>
+      </tr>
+      {{/spoutSummary}}
+    </tbody>
+  </table>
 </script>
 <script id="output-stats-template" type="text/html">
-<h2>Output stats ({{windowHint}})</h2>
-<table class="zebra-striped" id="output-stats-table"><thead><tr><th class="header headerSortDown"><span data-original-title="The name of the Tuple stream given in the Topolgy, or &quot;default&quot; if none was given." class="tip right">Stream</span></th><th class="header"><span class="tip above" title="The number of Tuples emitted.">Emitted</span></th><th class="header"><span data-original-title="The number of Tuples emitted that sent to one or more bolts." class="tip above">Transferred</span></th><th class="header"><span data-original-title="The average time a Tuple &quot;tree&quot; takes to be completely processed by the Topology. A value of 0 is expected if no acking is done." class="tip above">Complete latency (ms)</span></th><th class="header"><span data-original-title="The number of Tuple &quot;trees&quot; successfully processed. A value of 0 is expected if no acking is done." class="tip above">Acked</span></th><th class="header"><span data-original-title="The number of Tuple
  &quot;trees&quot; that were explicitly failed or timed out before acking was completed. A value of 0 is expected if no acking is done." class="tip left">Failed</span></th></tr></thead>
-<tbody>
-{{#outputStats}}
-<tr>
-<td>{{stream}}</td>
-<td>{{emitted}}</td>
-<td>{{transferred}}</td>
-<td>{{completeLatency}}</td>
-<td>{{acked}}</td>
-<td>{{failed}}</td>
-</tr>
-{{/outputStats}}
-</tbody>
-</table>
+  <h2>Output stats ({{windowHint}})</h2>
+  <table class="zebra-striped" id="output-stats-table">
+    <thead>
+      <tr>
+        <th class="header headerSortDown">
+          <span data-original-title="The name of the Tuple stream given in the Topolgy, or &quot;default&quot; if none was given." class="tip right">
+            Stream
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples emitted.">
+            Emitted
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The number of Tuples emitted that sent to one or more bolts." class="tip above">
+            Transferred
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The average time a Tuple &quot;tree&quot; takes to be completely processed by the Topology. A value of 0 is expected if no acking is done." class="tip above">
+            Complete latency (ms)
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The number of Tuple &quot;trees&quot; successfully processed. A value of 0 is expected if no acking is done." class="tip above">
+            Acked
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The number of Tuple &quot;trees&quot; that were explicitly failed or timed out before acking was completed. A value of 0 is expected if no acking is done." class="tip left">
+            Failed
+          </span>
+        </th>
+      </tr>
+    </thead>
+    <tbody>
+      {{#outputStats}}
+      <tr>
+        <td>{{stream}}</td>
+        <td>{{emitted}}</td>
+        <td>{{transferred}}</td>
+        <td>{{completeLatency}}</td>
+        <td>{{acked}}</td>
+        <td>{{failed}}</td>
+      </tr>
+      {{/outputStats}}
+    </tbody>
+  </table>
 </script>
 <script id="executor-stats-template" type="text/html">
-<h2>Executors ({{windowHint}})</h2>
-<table class="zebra-striped" id="executor-stats-table"><thead><tr><th class="header headerSortDown"><span class="tip right" title="The unique executor ID.">Id</span></th><th class="header"><span class="tip right" title="The length of time an Executor (thread) has been alive.">Uptime</span></th><th class="header"><span class="tip above" title="The hostname reported by the remote host. (Note that this hostname is not the result of a reverse lookup at the Nimbus node.)">Host</span></th><th class="header"><span data-original-title="The port number used by the Worker to which an Executor is assigned. Click on the port number to open the logviewer page for this Worker." class="tip above">Port</span></th><th class="header"><span data-original-title="The number of Tuples emitted." class="tip above">Emitted</span></th><th class="header"><span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">Transferred</span></th><th class="header"><span class="tip above
 " title="The average time a Tuple &quot;tree&quot; takes to be completely processed by the Topology. A value of 0 is expected if no acking is done.">Complete latency (ms)</span></th><th class="header"><span class="tip above" title="The number of Tuple &quot;trees&quot; successfully processed. A value of 0 is expected if no acking is done.">Acked</span></th><th class="header"><span data-original-title="The number of Tuple &quot;trees&quot; that were explicitly failed or timed out before acking was completed. A value of 0 is expected if no acking is done." class="tip left">Failed</span></th></tr></thead>
-<tbody>
-{{#executorStats}}
-<tr>
-<td>{{id}}</td>
-<td>{{uptime}}</td>
-<td>{{host}}</td>
-<td><a href="{{workerLogLink}}">{{port}}</a></td>
-<td>{{emitted}}</td>
-<td>{{transferred}}</td>
-<td>{{completeLatency}}</td>
-<td>{{acked}}</td>
-<td>{{failed}}</td>
-</tr>
-{{/executorStats}}
-</tbody>
-</table>
+  <h2>Executors ({{windowHint}})</h2>
+  <table class="zebra-striped" id="executor-stats-table">
+    <thead>
+      <tr>
+        <th class="header headerSortDown">
+          <span class="tip right" title="The unique executor ID.">
+            Id
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip right" title="The length of time an Executor (thread) has been alive.">
+            Uptime
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The hostname reported by the remote host. (Note that this hostname is not the result of a reverse lookup at the Nimbus node.)">
+            Host
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The port number used by the Worker to which an Executor is assigned. Click on the port number to open the logviewer page for this Worker." class="tip above">
+            Port
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The number of Tuples emitted." class="tip above">
+            Emitted
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">
+            Transferred
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The average time a Tuple &quot;tree&quot; takes to be completely processed by the Topology. A value of 0 is expected if no acking is done.">
+            Complete latency (ms)
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuple &quot;trees&quot; successfully processed. A value of 0 is expected if no acking is done.">
+            Acked
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The number of Tuple &quot;trees&quot; that were explicitly failed or timed out before acking was completed. A value of 0 is expected if no acking is done." class="tip left">
+            Failed
+          </span>
+        </th>
+      </tr>
+    </thead>
+    <tbody>
+      {{#executorStats}}
+      <tr>
+        <td>{{id}}</td>
+        <td>{{uptime}}</td>
+        <td>{{host}}</td>
+        <td><a href="{{workerLogLink}}">{{port}}</a></td>
+        <td>{{emitted}}</td>
+        <td>{{transferred}}</td>
+        <td>{{completeLatency}}</td>
+        <td>{{acked}}</td>
+        <td>{{failed}}</td>
+      </tr>
+      {{/executorStats}}
+    </tbody>
+  </table>
 </script>
 <script id="bolt-stats-template" type="text/html">
-<h2>Bolt stats</h2>
-<table class="zebra-striped" id="bolt-stats-table"><thead><tr><th class="header headerSortDown"><span class="tip right" title="The past period of time for which the statistics apply. Click on a value to set the window for this page.">Window</span></th><th class="header"><span class="tip above" title="The number of Tuples emitted.">Emitted</span></th><th class="header"><span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">Transferred</span></th><th class="header"><span data-original-title="The average time a Tuple spends in the execute method. The execute method may complete without sending an Ack for the tuple." class="tip above">Execute latency (ms)</span></th><th class="header"><span class="tip above" title="The number of incoming Tuples processed.">Executed</span></th><th class="header"><span data-original-title="The average time it takes to Ack a Tuple after it is first received.  Bolts that join, aggregate or batch may not Ack a tuple unti
 l a number of other Tuples have been received." class="tip above">Process latency (ms)</span></th><th class="header"><span data-original-title="The number of Tuples acknowledged by this Bolt." class="tip above">Acked</span></th><th class="header"><span data-original-title="The number of tuples Failed by this Bolt." class="tip left">Failed</span></th></tr></thead>
-<tbody>
-{{#boltStats}}
-<tr>
-<td><a href="/component.html?id={{id}}&topology_id={{topologyId}}&window={{window}}">{{windowPretty}}</a></td>
-<td>{{emitted}}</td>
-<td>{{transferred}}</td>
-<td>{{executeLatency}}</td>
-<td>{{executed}}</td>
-<td>{{processLatency}}</td>
-<td>{{acked}}</td>
-<td>{{failed}}</td>
-</tr>
-{{/boltStats}}
-</tbody>
-</table>
+  <h2>Bolt stats</h2>
+  <table class="zebra-striped" id="bolt-stats-table">
+    <thead>
+      <tr>
+        <th class="header headerSortDown">
+          <span class="tip right" title="The past period of time for which the statistics apply. Click on a value to set the window for this page.">
+            Window
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples emitted.">
+            Emitted
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">
+            Transferred
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The average time a Tuple spends in the execute method. The execute method may complete without sending an Ack for the tuple." class="tip above">
+            Execute latency (ms)
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of incoming Tuples processed.">
+            Executed
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The average time it takes to Ack a Tuple after it is first received.  Bolts that join, aggregate or batch may not Ack a tuple until a number of other Tuples have been received." class="tip above">
+            Process latency (ms)
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The number of Tuples acknowledged by this Bolt." class="tip above">
+            Acked
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The number of tuples Failed by this Bolt." class="tip left">
+            Failed
+          </span>
+        </th>
+      </tr>
+    </thead>
+    <tbody>
+      {{#boltStats}}
+      <tr>
+        <td><a href="/component.html?id={{id}}&topology_id={{topologyId}}&window={{window}}">{{windowPretty}}</a></td>
+        <td>{{emitted}}</td>
+        <td>{{transferred}}</td>
+        <td>{{executeLatency}}</td>
+        <td>{{executed}}</td>
+        <td>{{processLatency}}</td>
+        <td>{{acked}}</td>
+        <td>{{failed}}</td>
+      </tr>
+      {{/boltStats}}
+    </tbody>
+  </table>
 </script>
 <script id="bolt-input-stats-template" type="text/html">
-<h2>Input stats ({{windowHint}})</h2>
-<table class="zebra-striped" id="bolt-input-stats-table"><thead><tr><th class="header headerSortDown"><span class="tip right" title="The ID assigned to a the Component by the Topology.">Component</span></th><th class="header"><span class="tip right" title="The name of the Tuple stream given in the Topolgy, or &quot;default&quot; if none was given.">Stream</span></th><th class="header"><span class="tip above" title="The average time a Tuple spends in the execute method. The execute method may complete without sending an Ack for the tuple.">Execute latency (ms)</span></th><th class="header"><span class="tip above" title="The number of incoming Tuples processed.">Executed</span></th><th class="header"><span data-original-title="The average time it takes to Ack a Tuple after it is first received.  Bolts that join, aggregate or batch may not Ack a tuple until a number of other Tuples have been received." class="tip above">Process latency (ms)</span></th><th class="header"><span class="ti
 p above" title="The number of Tuples acknowledged by this Bolt.">Acked</span></th><th class="header"><span data-original-title="The number of tuples Failed by this Bolt." class="tip left">Failed</span></th></tr></thead>
-<tbody>
-{{#inputStats}}
-<tr>
-<td>{{component}}</td>
-<td>{{stream}}</td>
-<td>{{executeLatency}}</td>
-<td>{{executed}}</td>
-<td>{{processLatency}}</td>
-<td>{{acked}}</td>
-<td>{{failed}}</td>
-</tr>
-{{/inputStats}}
-</tbody>
-</table>
+  <h2>Input stats ({{windowHint}})</h2>
+  <table class="zebra-striped" id="bolt-input-stats-table">
+    <thead>
+      <tr>
+        <th class="header headerSortDown">
+          <span class="tip right" title="The ID assigned to a the Component by the Topology.">
+            Component
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip right" title="The name of the Tuple stream given in the Topolgy, or &quot;default&quot; if none was given.">
+            Stream
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The average time a Tuple spends in the execute method. The execute method may complete without sending an Ack for the tuple.">
+            Execute latency (ms)
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of incoming Tuples processed.">
+            Executed
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The average time it takes to Ack a Tuple after it is first received.  Bolts that join, aggregate or batch may not Ack a tuple until a number of other Tuples have been received." class="tip above">
+            Process latency (ms)
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples acknowledged by this Bolt.">
+            Acked
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The number of tuples Failed by this Bolt." class="tip left">
+            Failed
+          </span>
+        </th>
+      </tr>
+    </thead>
+    <tbody>
+      {{#inputStats}}
+      <tr>
+        <td>{{component}}</td>
+        <td>{{stream}}</td>
+        <td>{{executeLatency}}</td>
+        <td>{{executed}}</td>
+        <td>{{processLatency}}</td>
+        <td>{{acked}}</td>
+        <td>{{failed}}</td>
+      </tr>
+      {{/inputStats}}
+    </tbody>
+  </table>
 </script>
 <script id="bolt-output-stats-template" type="text/html">
-<h2>Output stats ({{windowHint}})</h2>
-<table class="zebra-striped" id="bolt-output-stats-table"><thead><tr><th class="header headerSortDown"><span class="tip right" title="The name of the Tuple stream given in the Topolgy, or &quot;default&quot; if none was given.">Stream</span></th><th class="header"><span class="tip above" title="The number of Tuples emitted.">Emitted</span></th><th class="header"><span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">Transferred</span></th></tr></thead>
-<tbody>
-{{#outputStats}}
-<tr>
-<td>{{stream}}</td>
-<td>{{emitted}}</td>
-<td>{{transferred}}</td>
-</tr>
-{{/outputStats}}
-</tbody>
-</table>
+  <h2>Output stats ({{windowHint}})</h2>
+  <table class="zebra-striped" id="bolt-output-stats-table">
+    <thead>
+      <tr>
+        <th class="header headerSortDown">
+          <span class="tip right" title="The name of the Tuple stream given in the Topolgy, or &quot;default&quot; if none was given.">
+            Stream
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples emitted.">
+            Emitted
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">
+            Transferred
+          </span>
+        </th>
+      </tr>
+    </thead>
+    <tbody>
+      {{#outputStats}}
+      <tr>
+        <td>{{stream}}</td>
+        <td>{{emitted}}</td>
+        <td>{{transferred}}</td>
+      </tr>
+      {{/outputStats}}
+    </tbody>
+  </table>
 </script>
 <script id="bolt-executor-template" type="text/html">
-<h2>Executors</h2>
-<table class="zebra-striped" id="bolt-executor-table"><thead><tr><th class="header headerSortDown"><span class="tip right" title="The unique executor ID.">Id</span></th><th class="header"><span data-original-title="The length of time an Executor (thread) has been alive." class="tip right">Uptime</span></th><th class="header"><span class="tip above" title="The hostname reported by the remote host. (Note that this hostname is not the result of a reverse lookup at the Nimbus node.)">Host</span></th><th class="header"><span class="tip above" title="The port number used by the Worker to which an Executor is assigned. Click on the port number to open the logviewer page for this Worker.">Port</span></th><th class="header"><span class="tip above" title="The number of Tuples emitted.">Emitted</span></th><th class="header"><span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">Transferred</span></th><th class="header"><span class="tip above" title="If thi
 s is around 1.0, the corresponding Bolt is running as fast as it can, so you may want to increase the Bolt's parallelism. This is (number executed * average execute latency) / measurement time.">Capacity (last 10m)</span></th><th class="header"><span data-original-title="The average time a Tuple spends in the execute method. The execute method may complete without sending an Ack for the tuple." class="tip above">Execute latency (ms)</span></th><th class="header"><span class="tip above" title="The number of incoming Tuples processed.">Executed</span></th><th class="header"><span data-original-title="The average time it takes to Ack a Tuple after it is first received.  Bolts that join, aggregate or batch may not Ack a tuple until a number of other Tuples have been received." class="tip above">Process latency (ms)</span></th><th class="header"><span data-original-title="The number of Tuples acknowledged by this Bolt." class="tip above">Acked</span></th><th class="header"><span data-ori
 ginal-title="The number of tuples Failed by this Bolt." class="tip left">Failed</span></th></tr></thead>
-<tbody>
-{{#executorStats}}
-<tr>
-<td>{{id}}}</td>
-<td>{{uptime}}</td>
-<td>{{host}}</td>
-<td><a href="{{workerLogLink}}">{{port}}</a></td>
-<td>{{emitted}}</td>
-<td>{{transferred}}</td>
-<td>{{capacity}}</td>
-<td>{{executeLatency}}</td>
-<td>{{executed}}</td>
-<td>{{processLatency}}</td>
-<td>{{acked}}</td>
-<td>{{failed}}</td>
-</tr>
-{{/executorStats}}
-</tbody>
-</table>
+  <h2>Executors</h2>
+  <table class="zebra-striped" id="bolt-executor-table">
+    <thead>
+      <tr>
+        <th class="header headerSortDown">
+          <span class="tip right" title="The unique executor ID.">
+            Id
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The length of time an Executor (thread) has been alive." class="tip right">
+            Uptime
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The hostname reported by the remote host. (Note that this hostname is not the result of a reverse lookup at the Nimbus node.)">
+            Host
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The port number used by the Worker to which an Executor is assigned. Click on the port number to open the logviewer page for this Worker.">
+            Port
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples emitted.">
+            Emitted
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">
+            Transferred
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="If this is around 1.0, the corresponding Bolt is running as fast as it can, so you may want to increase the Bolt's parallelism. This is (number executed * average execute latency) / measurement time.">
+            Capacity (last 10m)
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The average time a Tuple spends in the execute method. The execute method may complete without sending an Ack for the tuple." class="tip above">
+            Execute latency (ms)
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of incoming Tuples processed.">
+            Executed
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The average time it takes to Ack a Tuple after it is first received.  Bolts that join, aggregate or batch may not Ack a tuple until a number of other Tuples have been received." class="tip above">
+            Process latency (ms)
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The number of Tuples acknowledged by this Bolt." class="tip above">
+            Acked
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="The number of tuples Failed by this Bolt." class="tip left">
+            Failed
+          </span>
+        </th>
+      </tr>
+    </thead>
+    <tbody>
+      {{#executorStats}}
+      <tr>
+        <td>{{id}}}</td>
+        <td>{{uptime}}</td>
+        <td>{{host}}</td>
+        <td><a href="{{workerLogLink}}">{{port}}</a></td>
+        <td>{{emitted}}</td>
+        <td>{{transferred}}</td>
+        <td>{{capacity}}</td>
+        <td>{{executeLatency}}</td>
+        <td>{{executed}}</td>
+        <td>{{processLatency}}</td>
+        <td>{{acked}}</td>
+        <td>{{failed}}</td>
+      </tr>
+      {{/executorStats}}
+    </tbody>
+  </table>
 </script>
 <script id="component-errors-template" type="text/html">
-<h2>Errors</h2>
-<table class="zebra-striped" id="component-errors-table"><thead><tr><th>Time</th><th>Error Host</th><th>Error Port</th><th>Error</th></tr></thead>
-<tbody>
-{{#componentErrors}}
-<tr>
-<td>{{time}}</td>
-<td>{{errorHost}}</td>
-<td><a href="{{errorWorkerLogLink}}">{{errorPort}}</a></td>
-<td>
-  <span id="{{errorLapsedSecs}}" class="errorSpan">{{error}}</span>
-</td>
-</tr>
-{{/componentErrors}}
-</tbody>
-</table>
+  <h2>Errors</h2>
+  <table class="zebra-striped" id="component-errors-table">
+    <thead>
+      <tr>
+        <th>Time</th>
+        <th>Error Host</th>
+        <th>Error Port</th>
+        <th>Error</th>
+      </tr>
+    </thead>
+    <tbody>
+      {{#componentErrors}}
+      <tr>
+        <td>{{time}}</td>
+        <td>{{errorHost}}</td>
+        <td><a href="{{errorWorkerLogLink}}">{{errorPort}}</a></td>
+        <td>
+          <span id="{{errorLapsedSecs}}" class="errorSpan">{{error}}</span>
+        </td>
+      </tr>
+      {{/componentErrors}}
+    </tbody>
+  </table>
 </script>

http://git-wip-us.apache.org/repos/asf/storm/blob/d1d2ccbe/storm-core/src/ui/public/templates/index-page-template.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/templates/index-page-template.html b/storm-core/src/ui/public/templates/index-page-template.html
index 45906e5..d249fac 100644
--- a/storm-core/src/ui/public/templates/index-page-template.html
+++ b/storm-core/src/ui/public/templates/index-page-template.html
@@ -15,64 +15,181 @@
  limitations under the License.
 -->
 <script id="cluster-summary-template" type="text/html">
-<table id="cluster-summary-table"><thead><tr><th><span class="tip right" title="The version of storm installed on the UI node. (Hopefully, this is the same on all storm nodes!)">Version</span></th><th><span class="tip right" title="The duration the current Nimbus instance has been running. (Note that the storm cluster may have been deployed and available for a much longer period than the current Nimbus process has been running.)">Nimbus uptime</span></th><th><span class="tip above" title="The number of nodes in the cluster currently.">Supervisors</span></th><th><span class="tip above" title="Slots are Workers (processes).">Used slots</span></th><th><span class="tip above" title="Slots are Workers (processes).">Free slots</span></th><th><span class="tip above" title="Slots are Workers (processes).">Total slots</span></th><th><span class="tip above" title="Executors are threads in a Worker process.">Executors</span></th><th><span class="tip left" title="A Task is an instance of a Bolt
  or Spout. The number of Tasks is almost always equal to the number of Executors.">Tasks</span></th></tr></thead>
-<tbody>
-<tr>
-  <td>{{stormVersion}}</td>
-  <td>{{nimbusUptime}}</td>
-  <td>{{supervisors}}</td>
-  <td>{{slotsUsed}}</td>
-  <td>{{slotsFree}}</td>
-  <td>{{slotsTotal}}</td>
-  <td>{{executorsTotal}}</td>
-  <td>{{tasksTotal}}</td>
-</tr>
-</tbody>
+<table id="cluster-summary-table">
+  <thead>
+    <tr>
+      <th>
+        <span class="tip right" title="The version of storm installed on the UI node. (Hopefully, this is the same on all storm nodes!)">
+          Version
+        </span>
+      </th>
+      <th>
+        <span class="tip right" title="The duration the current Nimbus instance has been running. (Note that the storm cluster may have been deployed and available for a much longer period than the current Nimbus process has been running.)">
+          Nimbus uptime
+        </span>
+      </th>
+      <th>
+        <span class="tip above" title="The number of nodes in the cluster currently.">
+          Supervisors
+      </span>
+      </th>
+      <th>
+        <span class="tip above" title="Slots are Workers (processes).">
+          Used slots
+      </span>
+      </th>
+      <th>
+        <span class="tip above" title="Slots are Workers (processes).">
+          Free slots
+      </span>
+      </th>
+      <th>
+        <span class="tip above" title="Slots are Workers (processes).">
+          Total slots
+      </span>
+      </th>
+      <th>
+        <span class="tip above" title="Executors are threads in a Worker process.">
+          Executors
+      </span>
+      </th>
+      <th>
+        <span class="tip left" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">
+          Tasks
+        </span>
+      </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>{{stormVersion}}</td>
+      <td>{{nimbusUptime}}</td>
+      <td>{{supervisors}}</td>
+      <td>{{slotsUsed}}</td>
+      <td>{{slotsFree}}</td>
+      <td>{{slotsTotal}}</td>
+      <td>{{executorsTotal}}</td>
+      <td>{{tasksTotal}}</td>
+    </tr>
+  </tbody>
 </table>
 </script>
 <script id="topology-summary-template" type="text/html">
-<table class="zebra-striped" id="topology-summary-table">
-<thead><tr><th><span class="tip right" title="The name given to the topology by when it was submitted. Click the name to view the Topology's information.">Name</span></th><th><span class="tip right" title="The unique ID given to a Topology each time it is launched.">Id</span></th><th><span class="tip above" title="The status can be one of ACTIVE, INACTIVE, KILLED, or REBALANCING.">Status</span></th><th><span class="tip above" title="The time since the Topology was submitted.">Uptime</span></th><th><span class="tip above" title="The number of Workers (processes).">Num workers</span></th><th><span class="tip above" title="Executors are threads in a Worker process.">Num executors</span></th><th><span class="tip above" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">Num tasks</span></th></tr></thead>
-<tbody>
-{{#topologies}}
-<tr>
-  <td><a href="/topology.html?id={{id}}">{{name}}</a></td>
-  <td>{{id}}</td>
-  <td>{{status}}</td>
-  <td>{{uptime}}</td>
-  <td>{{workersTotal}}</td>
-  <td>{{executorsTotal}}</td>
-  <td>{{tasksTotal}}</td>
-</tr>
-{{/topologies}}
-</tbody>
-</table>
+  <table class="zebra-striped" id="topology-summary-table">
+    <thead>
+      <tr>
+        <th>
+          <span class="tip right" title="The name given to the topology by when it was submitted. Click the name to view the Topology's information.">
+            Name
+          </span>
+        </th>
+        <th>
+          <span class="tip right" title="The unique ID given to a Topology each time it is launched.">
+            Id
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="The status can be one of ACTIVE, INACTIVE, KILLED, or REBALANCING.">
+            Status
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="The time since the Topology was submitted.">
+            Uptime
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="The number of Workers (processes).">
+            Num workers
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="Executors are threads in a Worker process.">
+            Num executors
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">
+            Num tasks
+          </span>
+        </th>
+      </tr>
+    </thead>
+    <tbody>
+      {{#topologies}}
+      <tr>
+        <td><a href="/topology.html?id={{id}}">{{name}}</a></td>
+        <td>{{id}}</td>
+        <td>{{status}}</td>
+        <td>{{uptime}}</td>
+        <td>{{workersTotal}}</td>
+        <td>{{executorsTotal}}</td>
+        <td>{{tasksTotal}}</td>
+      </tr>
+      {{/topologies}}
+    </tbody>
+  </table>
 </script>
 <script id="supervisor-summary-template" type="text/html">
-<table class="zebra-striped" id="supervisor-summary-table"><thead><tr><th><span class="tip right" title="A unique identifier given to a Supervisor when it joins the cluster.">Id</span></th><th><span class="tip above" title="The hostname reported by the remote host. (Note that this hostname is not the result of a reverse lookup at the Nimbus node.)">Host</span></th><th><span class="tip above" title="The length of time a Supervisor has been registered to the cluster.">Uptime</span></th><th><span class="tip above" title="Slots are Workers (processes).">Slots</span></th><th><span class="tip left" title="Slots are Workers (processes).">Used slots</span></th></tr></thead>
-<tbody>
-{{#supervisors}}
-<tr>
-  <td>{{id}}</td>
-  <td>{{host}}</td>
-  <td>{{uptime}}</td>
-  <td>{{slotsTotal}}</td>
-  <td>{{slotsUsed}}</td>
-</tr>
-{{/supervisors}}
-</tbody>
+<table class="zebra-striped" id="supervisor-summary-table">
+  <thead>
+    <tr>
+      <th>
+        <span class="tip right" title="A unique identifier given to a Supervisor when it joins the cluster.">
+          Id
+        </span>
+      </th>
+      <th>
+        <span class="tip above" title="The hostname reported by the remote host. (Note that this hostname is not the result of a reverse lookup at the Nimbus node.)">
+          Host
+        </span>
+      </th>
+      <th>
+        <span class="tip above" title="The length of time a Supervisor has been registered to the cluster.">
+          Uptime
+        </span>
+      </th>
+      <th>
+        <span class="tip above" title="Slots are Workers (processes).">
+          Slots
+        </span>
+      </th>
+      <th>
+        <span class="tip left" title="Slots are Workers (processes).">
+          Used slots
+        </span>
+      </th>
+    </tr>
+  </thead>
+  <tbody>
+    {{#supervisors}}
+    <tr>
+      <td>{{id}}</td>
+      <td>{{host}}</td>
+      <td>{{uptime}}</td>
+      <td>{{slotsTotal}}</td>
+      <td>{{slotsUsed}}</td>
+    </tr>
+    {{/supervisors}}
+  </tbody>
 </table>
 </script>
 
 <script id="configuration-template" type="text/html">
-<table class="zebra-striped" id="nimbus-configuration-table"><thead><tr><th>Key</th><th>Value</th></tr></thead>
-<tbody>
-{{#config}}
-<tr>
-<td>{{key}}</td>
-<td>{{value}}</td>
-</tr>
-{{/config}}
-</tbody>
-</table>
+  <table class="zebra-striped" id="nimbus-configuration-table">
+    <thead>
+      <tr>
+        <th>Key</th>
+        <th>Value</th>
+    </tr>
+    </thead>
+    <tbody>
+      {{#config}}
+      <tr>
+        <td>{{key}}</td>
+        <td>{{value}}</td>
+      </tr>
+      {{/config}}
+    </tbody>
+  </table>
 </script>

http://git-wip-us.apache.org/repos/asf/storm/blob/d1d2ccbe/storm-core/src/ui/public/templates/topology-page-template.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/templates/topology-page-template.html b/storm-core/src/ui/public/templates/topology-page-template.html
index 2b93ed6..b977071 100644
--- a/storm-core/src/ui/public/templates/topology-page-template.html
+++ b/storm-core/src/ui/public/templates/topology-page-template.html
@@ -16,7 +16,45 @@
 -->
 <script id="topology-summary-template" type="text/html">
   <table id="topology-summary-table">
-    <thead><tr><th><span class="tip right" title="The name given to the topology by when it was submitted.">Name</span></th><th><span class="tip right" title="The unique ID given to a Topology each time it is launched.">Id</span></th><th><span class="tip above" title="The status can be one of ACTIVE, INACTIVE, KILLED, or REBALANCING.">Status</span></th><th><span class="tip above" title="The time since the Topology was submitted.">Uptime</span></th><th><span class="tip above" title="The number of Workers (processes).">Num workers</span></th><th><span class="tip above" title="Executors are threads in a Worker process.">Num executors</span></th><th><span class="tip above" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">Num tasks</span></th></tr></thead>
+    <thead>
+      <tr>
+        <th>
+          <span class="tip right" title="The name given to the topology by when it was submitted.">
+            Name
+          </span>
+        </th>
+        <th>
+          <span class="tip right" title="The unique ID given to a Topology each time it is launched.">
+            Id
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="The status can be one of ACTIVE, INACTIVE, KILLED, or REBALANCING.">
+            Status
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="The time since the Topology was submitted.">
+            Uptime
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="The number of Workers (processes).">
+            Num workers
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="Executors are threads in a Worker process.">
+            Num executors
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">
+            Num tasks
+          </span>
+        </th>
+      </tr>
+    </thead>
     <tbody>
       <tr>
         <td>{{name}}</td>
@@ -33,7 +71,40 @@
 <script id="topology-stats-template" type="text/html">
   <h2>Topology stats</h2>
   <table class="zebra-striped" id="topology-stats-table">
-    <thead><tr><th><span class="tip right" title="The past period of time for which the statistics apply. Click on a value to set the window for this page.">Window</span></th><th><span class="tip above" title="The number of Tuples emitted.">Emitted</span></th><th><span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">Transferred</span></th><th><span class="tip above" title="The average time a Tuple &quot;tree&quot; takes to be completely processed by the Topology. A value of 0 is expected if no acking is done.">Complete latency (ms)</span></th><th><span class="tip above" title="The number of Tuple &quot;trees&quot; successfully processed. A value of 0 is expected if no acking is done.">Acked</span></th><th><span class="tip left" title="The number of Tuple &quot;trees&quot; that were explicitly failed or timed out before acking was completed. A value of 0 is expected if no acking is done.">Failed</span></th></tr></thead>
+    <thead>
+      <tr>
+        <th>
+          <span class="tip right" title="The past period of time for which the statistics apply. Click on a value to set the window for this page.">
+            Window
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="The number of Tuples emitted.">
+            Emitted
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">
+            Transferred
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="The average time a Tuple &quot;tree&quot; takes to be completely processed by the Topology. A value of 0 is expected if no acking is done.">
+            Complete latency (ms)
+          </span>
+        </th>
+        <th>
+          <span class="tip above" title="The number of Tuple &quot;trees&quot; successfully processed. A value of 0 is expected if no acking is done.">
+            Acked
+          </span>
+        </th>
+        <th>
+          <span class="tip left" title="The number of Tuple &quot;trees&quot; that were explicitly failed or timed out before acking was completed. A value of 0 is expected if no acking is done.">
+            Failed
+          </span>
+        </th>
+      </tr>
+    </thead>
     <tbody>
       {{#topologyStats}}
       <tr>
@@ -96,7 +167,53 @@
   <h2>Spouts ({{windowHint}})</h2>
   <table class="zebra-striped" id="spout-stats-table">
     <thead>
-      <tr><th class="header headerSortDown"><span data-original-title="The ID assigned to a the Component by the Topology. Click on the name to view the Component's page." class="tip right">Id</span></th><th class="header"><span data-original-title="Executors are threads in a Worker process." class="tip right">Executors</span></th><th class="header"><span class="tip above" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">Tasks</span></th><th class="header"><span class="tip above" title="The number of Tuples emitted.">Emitted</span></th><th class="header"><span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">Transferred</span></th><th class="header"><span class="tip above" title="The average time a Tuple &quot;tree&quot; takes to be completely processed by the Topology. A value of 0 is expected if no acking is done.">Complete latency (ms)</span></th><th class="header"><span 
 class="tip above" title="The number of Tuple &quot;trees&quot; successfully processed. A value of 0 is expected if no acking is done.">Acked</span></th><th class="header"><span class="tip above" title="The number of Tuple &quot;trees&quot; that were explicitly failed or timed out before acking was completed. A value of 0 is expected if no acking is done.">Failed</span></th><th class="header">Error Host</th><th class="header">Error Port</th><th class="header">Last error</th>
+      <tr>
+        <th class="header headerSortDown">
+          <span data-original-title="The ID assigned to a the Component by the Topology. Click on the name to view the Component's page." class="tip right">
+            Id
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="Executors are threads in a Worker process." class="tip right">
+            Executors
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">
+            Tasks
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples emitted.">
+            Emitted
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">
+            Transferred
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The average time a Tuple &quot;tree&quot; takes to be completely processed by the Topology. A value of 0 is expected if no acking is done.">
+            Complete latency (ms)
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuple &quot;trees&quot; successfully processed. A value of 0 is expected if no acking is done.">
+            Acked
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuple &quot;trees&quot; that were explicitly failed or timed out before acking was completed. A value of 0 is expected if no acking is done.">
+            Failed
+          </span>
+        </th>
+        <th class="header">Error Host
+        </th>
+        <th class="header">Error Port
+        </th>
+        <th class="header">Last error
+        </th>
       </tr>
     </thead>
     <tbody>
@@ -113,7 +230,7 @@
         <td>{{errorHost}}</td>
         <td><a href="{{errorWorkerLogLink}}">{{errorPort}}</a></td>
         <td>
-            <span id="{{errorLapsedSecs}}" class="errorSpan">{{lastError}}</span>
+          <span id="{{errorLapsedSecs}}" class="errorSpan">{{lastError}}</span>
         </td>
         {{/spouts}}
     </tbody>
@@ -122,7 +239,68 @@
 <script id="bolt-stats-template" type="text/html">
   <h2>Bolts ({{windowHint}})</h2>
   <table class="zebra-striped" id="bolt-stats-table"><thead>
-      <tr><th class="header headerSortDown"><span class="tip right" title="The ID assigned to a the Component by the Topology. Click on the name to view the Component's page.">Id</span></th><th class="header"><span data-original-title="Executors are threads in a Worker process." class="tip right">Executors</span></th><th class="header"><span class="tip above" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">Tasks</span></th><th class="header"><span class="tip above" title="The number of Tuples emitted.">Emitted</span></th><th class="header"><span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">Transferred</span></th><th class="header"><span data-original-title="If this is around 1.0, the corresponding Bolt is running as fast as it can, so you may want to increase the Bolt's parallelism. This is (number executed * average execute latency) / measurement time." class="tip abov
 e">Capacity (last 10m)</span></th><th class="header"><span class="tip above" title="The average time a Tuple spends in the execute method. The execute method may complete without sending an Ack for the tuple.">Execute latency (ms)</span></th><th class="header"><span class="tip above" title="The number of incoming Tuples processed.">Executed</span></th><th class="header"><span class="tip above" title="The average time it takes to Ack a Tuple after it is first received.  Bolts that join, aggregate or batch may not Ack a tuple until a number of other Tuples have been received.">Process latency (ms)</span></th><th class="header"><span class="tip above" title="The number of Tuples acknowledged by this Bolt.">Acked</span></th><th class="header"><span class="tip left" title="The number of tuples Failed by this Bolt.">Failed</span></th><th class="header">Error Host</th><th class="header">Error Port</th><th class="header">Last error</th>
+      <tr>
+        <th class="header headerSortDown">
+          <span class="tip right" title="The ID assigned to a the Component by the Topology. Click on the name to view the Component's page.">
+            Id
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="Executors are threads in a Worker process." class="tip right">
+            Executors
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">
+            Tasks
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples emitted.">
+            Emitted
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples emitted that sent to one or more bolts.">
+            Transferred
+          </span>
+        </th>
+        <th class="header">
+          <span data-original-title="If this is around 1.0, the corresponding Bolt is running as fast as it can, so you may want to increase the Bolt's parallelism. This is (number executed * average execute latency) / measurement time." class="tip above">
+            Capacity (last 10m)
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The average time a Tuple spends in the execute method. The execute method may complete without sending an Ack for the tuple.">
+            Execute latency (ms)
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of incoming Tuples processed.">
+            Executed
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The average time it takes to Ack a Tuple after it is first received.  Bolts that join, aggregate or batch may not Ack a tuple until a number of other Tuples have been received.">
+            Process latency (ms)
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip above" title="The number of Tuples acknowledged by this Bolt.">
+            Acked
+          </span>
+        </th>
+        <th class="header">
+          <span class="tip left" title="The number of tuples Failed by this Bolt.">
+            Failed
+          </span>
+        </th>
+        <th class="header">Error Host
+        </th>
+        <th class="header">Error Port
+        </th>
+        <th class="header">Last error
+        </th>
     </tr></thead>
     <tbody>
       {{#bolts}}
@@ -141,12 +319,15 @@
         <td>{{errorHost}}</td>
         <td><a href="{{errorWorkerLogLink}}">{{errorPort}}</a></td>
         <td>
-            <span id="{{errorLapsedSecs}}" class="errorSpan">{{lastError}}</span>
+          <span id="{{errorLapsedSecs}}" class="errorSpan">{{lastError}}</span>
         </td>
         {{/bolts}}
     </tbody>
 </script>
 
 <script id="topology-actions-template" type="text/html">
-  <input {{activateStatus}} onclick="confirmAction('{{id}}', '{{name}}', 'activate', false, 0)" type="button" value="Activate"><input {{deactivateStatus}} onclick="confirmAction('{{id}}', '{{name}}', 'deactivate', false, 0)" type="button" value="Deactivate"><input {{rebalanceStatus}} onclick="confirmAction('{{id}}', '{{name}}', 'rebalance', true, {{msgTimeout}})" type="button" value="Rebalance"><input {{killStatus}} onclick="confirmAction('{{id}}', '{{name}}', 'kill', true, 30)" type="button" value="Kill">
+  <input {{activateStatus}} onclick="confirmAction('{{id}}', '{{name}}', 'activate', false, 0)" type="button" value="Activate">
+  <input {{deactivateStatus}} onclick="confirmAction('{{id}}', '{{name}}', 'deactivate', false, 0)" type="button" value="Deactivate">
+  <input {{rebalanceStatus}} onclick="confirmAction('{{id}}', '{{name}}', 'rebalance', true, {{msgTimeout}})" type="button" value="Rebalance">
+  <input {{killStatus}} onclick="confirmAction('{{id}}', '{{name}}', 'kill', true, 30)" type="button" value="Kill">
 </script>