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>