github.com/nsqio/nsq@v1.3.0/nsqadmin/static/js/views/topic.hbs (about)

     1  {{> warning}}
     2  {{> error}}
     3  
     4  <ol class="breadcrumb">
     5    <li><a class="link" href="{{basePath "/"}}">Streams</a>
     6    <li class="active">{{name}}</li>
     7  </ol>
     8  
     9  <div class="row">
    10      <div class="col-md-6">
    11          <blockquote>
    12              <p>Topic: <strong>{{name}}</strong>
    13          </blockquote>
    14      </div>
    15  </div>
    16  
    17  {{#unless nodes.length}}
    18  <div class="row">
    19      <div class="col-md-6">
    20          <h4>Topic Message Queue</h4>
    21          <div class="alert alert-warning">
    22              <h4>Notice</h4> No producers exist for this topic.
    23              <p>See <a href="{{basePath "/lookup"}}">Lookup</a> for more information.
    24          </div>
    25      </div>
    26  </div>
    27  {{else}}
    28  {{#if isAdmin}}
    29  <div class="row topic-actions">
    30      <div class="col-md-2">
    31          <button class="btn btn-medium btn-warning" data-action="empty">Empty Queue</button>
    32      </div>
    33      <div class="col-md-2">
    34          <button class="btn btn-medium btn-danger" data-action="delete">Delete Topic</button>
    35      </div>
    36      <div class="col-md-2">
    37          {{#if paused}}
    38          <button class="btn btn-medium btn-success" data-action="unpause">UnPause Topic</button>
    39          {{else}}
    40          <button class="btn btn-medium btn-primary" data-action="pause">Pause Topic</button>
    41          {{/if}}
    42      </div>
    43  </div>
    44  {{/if}}
    45  
    46  <div class="row">
    47      <div class="col-md-12">
    48      <h4>Topic Message Queue</h4>
    49      <table class="table table-bordered table-condensed">
    50          {{#if e2e_processing_latency.percentiles.length}}
    51          <tr>
    52              <th colspan="{{#if graph_active}}6{{else}}5{{/if}}"></th>
    53              <th colspan="{{e2e_processing_latency.percentiles.length}}">E2E Processing Latency</th>
    54          </tr>
    55          {{/if}}
    56          <tr>
    57              <th>NSQd Host</th>
    58              <th>Depth</th>
    59              <th>Memory + Disk</th>
    60              <th>Messages</th>
    61              {{#if graph_active}}<th>Rate</th>{{/if}}
    62              <th>Channels</th>
    63              {{#each e2e_processing_latency.percentiles}}
    64                  <th>{{floatToPercent quantile}}<sup>{{percSuffix quantile}}</sup></th>
    65              {{/each}}
    66          </tr>
    67          {{#each nodes}}
    68          <tr>
    69              <td>
    70                  <button class="btn-link red tombstone-link" data-node="{{node}}" data-topic="{{../name}}" style="padding: 0 6px; border: 0;">✘</button>
    71                  {{#if show_broadcast_address}}
    72                  {{hostname_port}} (<a class="link" href="{{basePath "/nodes"}}/{{node}}">{{node}}</a>)
    73                  {{else}}
    74                  <a class="link" href="{{basePath "/nodes"}}/{{node}}">{{hostname_port}}</a>
    75                  {{/if}}
    76                  {{#if paused}} <span class="label label-primary">paused</span>{{/if}}
    77              </td>
    78              <td>{{commafy depth}}</td>
    79              <td>{{commafy memory_depth}} + {{commafy backend_depth}}</td>
    80              <td>{{commafy message_count}}</td>
    81              {{#if ../graph_active}}
    82                  <td class="bold rate" target="{{rate "topic" node topic_name ""}}"></td>
    83              {{/if}}
    84              <td>{{commafy this/channels.length}}</td>
    85              {{#if e2e_processing_latency.percentiles.length}}
    86                  {{#each e2e_processing_latency.percentiles}}
    87                  <td>
    88                      <span title="{{floatToPercent quantile}}: min = {{nanotohuman min}}, max = {{nanotohuman max}}">{{nanotohuman average}}</span>
    89                  </td>
    90                  {{/each}}
    91              {{/if}}
    92          </tr>
    93          {{#if ../graph_active}}
    94              <tr class="graph-row">
    95                  <td></td>
    96                  <td><a href="{{large_graph "topic" node topic_name "" "depth"}}"><img width="120" src="{{sparkline "topic" node topic_name "" "depth"}}"></a></td>
    97                  <td></td>
    98                  <td><a href="{{large_graph "topic" node topic_name "" "message_count"}}"><img width="120" src="{{sparkline "topic" node topic_name "" "message_count"}}"></a></td>
    99                  <td></td>
   100                  <td></td>
   101                  {{#if e2e_processing_latency.percentiles.length}}
   102                  <td colspan="{{e2e_processing_latency.percentiles.length}}">
   103                      <a href="{{large_graph "e2e" node e2e_processing_latency "" "e2e_processing_latency"}}"><img width="120" height="20"  src="{{sparkline "e2e" node e2e_processing_latency "" "e2e_processing_latency"}}"></a>
   104                  </td>
   105                  {{/if}}
   106              </tr>
   107          {{/if}}
   108          {{/each}}
   109          <tr class="info">
   110              <td>Total:</td>
   111              <td>{{commafy depth}}</td>
   112              <td>{{commafy memory_depth}} + {{commafy backend_depth}}</td>
   113              <td>{{commafy message_count}}</td>
   114              {{#if graph_active}}<td class="bold rate" target="{{rate "topic" "*" topic_name ""}}"></td>{{/if}}
   115              <td>{{commafy channels.length}}</td>
   116              {{#if e2e_processing_latency.percentiles.length}}
   117                  {{#each e2e_processing_latency.percentiles}}
   118                  <td>
   119                      <span title="{{floatToPercent quantile}}: min = {{nanotohuman min}}, max = {{nanotohuman max}}">{{nanotohuman average}}</span>
   120                  </td>
   121                  {{/each}}
   122              {{/if}}
   123          </tr>
   124          {{#if graph_active}}
   125              <tr class="graph-row">
   126                  <td></td>
   127                  <td><a href="{{large_graph "topic" "*" topic_name "" "depth"}}"><img width="120" src="{{sparkline "topic" node topic_name "" "depth"}}"></a></td>
   128                  <td></td>
   129                  <td><a href="{{large_graph "topic" "*" topic_name "" "message_count"}}"><img width="120" src="{{sparkline "topic" node topic_name "" "message_count"}}"></a></td>
   130                  <td></td>
   131                  <td></td>
   132                  {{#if e2e_processing_latency.percentiles.length}}
   133                  <td colspan="{{e2e_processing_latency.percentiles.length}}">
   134                      <a href="{{large_graph "e2e" "*" e2e_processing_latency "" "e2e_processing_latency"}}"><img width="120" height="20"  src="{{sparkline "e2e" node e2e_processing_latency "" "e2e_processing_latency"}}"></a>
   135                  </td>
   136                  {{/if}}
   137              </tr>
   138          {{/if}}
   139      </table>
   140      </div>
   141  </div>
   142  {{/unless}}
   143  
   144  
   145  <div class="row">
   146      {{#unless channels.length}}
   147      <div class="col-md-6">
   148          <h4>Channel Message Queues</h4>
   149          <div class="alert alert-warning">
   150              <h4>Notice</h4> No channels exist for this topic.
   151              <p>Messages will queue at the topic until a channel is created.
   152          </div>
   153      {{else}}
   154      <div class="col-md-12">
   155          <h4>Channel Message Queues</h4>
   156          <table class="table table-bordered table-condensed">
   157              {{#if e2e_processing_latency.percentiles.length}}
   158              <tr>
   159                  <th colspan="{{#if graph_active}}10{{else}}9{{/if}}"></th>
   160                  <th colspan="{{e2e_processing_latency.percentiles.length}}">E2E Processing Latency</th>
   161              </tr>
   162              {{/if}}
   163              <tr>
   164                  <th>Channel</th>
   165                  <th>Depth</th>
   166                  <th>Memory + Disk</th>
   167                  <th>In-Flight</th>
   168                  <th>Deferred</th>
   169                  <th>Requeued</th>
   170                  <th>Timed Out</th>
   171                  <th>Messages</th>
   172                  <th>Connections</th>
   173                  {{#each e2e_processing_latency.percentiles}}
   174                  <th>{{floatToPercent quantile}}<sup>{{percSuffix quantile}}</sup></th>
   175                  {{/each}}
   176              </tr>
   177  
   178              {{#each channels}}
   179              <tr>
   180                  <th>
   181                      <a class="link" href="{{basePath "/topics"}}/{{urlencode topic_name}}/{{urlencode channel_name}}">{{channel_name}}</a>
   182                      {{#if paused}}<span class="label label-primary">paused</span>{{/if}}
   183                  </th>
   184                  <td>{{commafy depth}}</td>
   185                  <td>{{commafy memory_depth}} + {{commafy backend_depth}}</td>
   186                  <td>{{commafy in_flight_count}}</td>
   187                  <td>{{commafy deferred_count}}</td>
   188                  <td>{{commafy requeue_count}}</td>
   189                  <td>{{commafy timeout_count}}</td>
   190                  <td>{{commafy message_count}}</td>
   191                  <td>{{commafy client_count}}</td>
   192                  {{#if e2e_processing_latency.percentiles.length}}
   193                      {{#each e2e_processing_latency.percentiles}}
   194                      <td>
   195                          <span title="{{floatToPercent quantile}}: min = {{nanotohuman min}}, max = {{nanotohuman max}}">{{nanotohuman average}}</span>
   196                      </td>
   197                    {{/each}}
   198                  {{/if}}
   199              </tr>
   200              {{#if ../graph_active}}
   201              <tr class="graph-row">
   202                  <td></td>
   203                  <td><a href="{{large_graph "channel" node topic_name channel_name "depth"}}"><img width="120" height="20"  src="{{sparkline "channel" node topic_name channel_name "depth"}}"></a></td>
   204                  <td></td>
   205                  <td><a href="{{large_graph "channel" node topic_name channel_name "in_flight_count"}}"><img width="120" height="20"  src="{{sparkline "channel" node topic_name channel_name "in_flight_count"}}"></a></td>
   206                  <td><a href="{{large_graph "channel" node topic_name channel_name "deferred_count"}}"><img width="120" height="20"  src="{{sparkline "channel" node topic_name channel_name "deferred_count"}}"></a></td>
   207                  <td><a href="{{large_graph "channel" node topic_name channel_name "requeue_count"}}"><img width="120" height="20"  src="{{sparkline "channel" node topic_name channel_name "requeue_count"}}"></a></td>
   208                  <td><a href="{{large_graph "channel" node topic_name channel_name "timeout_count"}}"><img width="120" height="20"  src="{{sparkline "channel" node topic_name channel_name "timeout_count"}}"></a></td>
   209                  <td><a href="{{large_graph "channel" node topic_name channel_name "message_count"}}"><img width="120" height="20"  src="{{sparkline "channel" node topic_name channel_name "message_count"}}"></a></td>
   210                  <td><a href="{{large_graph "channel" node topic_name channel_name "clients"}}"><img width="120" height="20"  src="{{sparkline "channel" node topic_name channel_name "clients"}}"></a></td>
   211                  {{#if e2e_processing_latency.percentiles.length}}
   212                      <td colspan="{{e2e_processing_latency.percentiles.length}}">
   213                          <a href="{{large_graph "e2e" node e2e_processing_latency "" "e2e_processing_latency"}}"><img width="120" height="20"  src="{{sparkline "e2e" node e2e_processing_latency "" "e2e_processing_latency"}}"></a>
   214                      </td>
   215                  {{/if}}
   216              </tr>
   217              {{/if}}
   218              {{/each}}
   219          </table>
   220          {{/unless}}
   221      </div>
   222  </div>