123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- {{> warning}}
- {{> error}}
- <ol class="breadcrumb">
- <li><a class="link" href="{{basePath "/"}}">消息主题</a>
- <li class="active">{{name}}</li>
- </ol>
- <div class="row">
- <div class="col-md-6">
- <blockquote>
- <p>主题: <strong>{{name}}</strong>
- </blockquote>
- </div>
- </div>
- {{#unless nodes.length}}
- <div class="row">
- <div class="col-md-6">
- <h4>主题的消息队列</h4>
- <div class="alert alert-warning">
- <h4>注意</h4> 该主题没有消息生产者.
- <p>查看 <a href="{{basePath "/lookup"}}">服务发现</a> 获取更多信息.
- </div>
- </div>
- </div>
- {{else}}
- {{#if isAdmin}}
- <div class="row topic-actions">
- <div class="col-md-2">
- <button class="btn btn-medium btn-warning" data-action="empty">清空队列</button>
- </div>
- <div class="col-md-2">
- <button class="btn btn-medium btn-danger" data-action="delete">删除主题</button>
- </div>
- <div class="col-md-2">
- {{#if paused}}
- <button class="btn btn-medium btn-success" data-action="unpause">解除暂停主题</button>
- {{else}}
- <button class="btn btn-medium btn-primary" data-action="pause">暂停主题</button>
- {{/if}}
- </div>
- </div>
- {{/if}}
- <div class="row">
- <div class="col-md-12">
- <h4>主题的消息队列</h4>
- <table class="table table-bordered table-condensed">
- {{#if e2e_processing_latency.percentiles.length}}
- <tr>
- <th colspan="{{#if graph_active}}6{{else}}5{{/if}}"></th>
- <th colspan="{{e2e_processing_latency.percentiles.length}}">端到端处理延迟</th>
- </tr>
- {{/if}}
- <tr>
- <th>消息服务实例</th>
- <th>队列</th>
- <th>内存 + 磁盘</th>
- <th>消息数</th>
- {{#if graph_active}}<th>速率</th>{{/if}}
- <th>通道</th>
- {{#each e2e_processing_latency.percentiles}}
- <th>{{floatToPercent quantile}}<sup>{{percSuffix quantile}}</sup></th>
- {{/each}}
- </tr>
- {{#each nodes}}
- <tr>
- <td>
- <button class="btn-link red tombstone-link" data-node="{{node}}" data-topic="{{../name}}" style="padding: 0 6px; border: 0;">✘</button>
- {{#if show_broadcast_address}}
- {{hostname_port}} (<a class="link" href="{{basePath "/nodes"}}/{{node}}">{{node}}</a>)
- {{else}}
- <a class="link" href="{{basePath "/nodes"}}/{{node}}">{{hostname_port}}</a>
- {{/if}}
- {{#if paused}} <span class="label label-primary">paused</span>{{/if}}
- </td>
- <td>{{commafy depth}}</td>
- <td>{{commafy memory_depth}} + {{commafy backend_depth}}</td>
- <td>{{commafy message_count}}</td>
- {{#if ../graph_active}}
- <td class="bold rate" target="{{rate "topic" node topic_name ""}}"></td>
- {{/if}}
- <td>{{commafy this/channels.length}}</td>
- {{#if e2e_processing_latency.percentiles.length}}
- {{#each e2e_processing_latency.percentiles}}
- <td>
- <span title="{{floatToPercent quantile}}: min = {{nanotohuman min}}, max = {{nanotohuman max}}">{{nanotohuman average}}</span>
- </td>
- {{/each}}
- {{/if}}
- </tr>
- {{#if ../graph_active}}
- <tr class="graph-row">
- <td></td>
- <td><a href="{{large_graph "topic" node topic_name "" "depth"}}"><img width="120" src="{{sparkline "topic" node topic_name "" "depth"}}"></a></td>
- <td></td>
- <td><a href="{{large_graph "topic" node topic_name "" "message_count"}}"><img width="120" src="{{sparkline "topic" node topic_name "" "message_count"}}"></a></td>
- <td></td>
- <td></td>
- {{#if e2e_processing_latency.percentiles.length}}
- <td colspan="{{e2e_processing_latency.percentiles.length}}">
- <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>
- </td>
- {{/if}}
- </tr>
- {{/if}}
- {{/each}}
- <tr class="info">
- <td>总计:</td>
- <td>{{commafy depth}}</td>
- <td>{{commafy memory_depth}} + {{commafy backend_depth}}</td>
- <td>{{commafy message_count}}</td>
- {{#if graph_active}}<td class="bold rate" target="{{rate "topic" "*" topic_name ""}}"></td>{{/if}}
- <td>{{commafy channels.length}}</td>
- {{#if e2e_processing_latency.percentiles.length}}
- {{#each e2e_processing_latency.percentiles}}
- <td>
- <span title="{{floatToPercent quantile}}: min = {{nanotohuman min}}, max = {{nanotohuman max}}">{{nanotohuman average}}</span>
- </td>
- {{/each}}
- {{/if}}
- </tr>
- {{#if graph_active}}
- <tr class="graph-row">
- <td></td>
- <td><a href="{{large_graph "topic" "*" topic_name "" "depth"}}"><img width="120" src="{{sparkline "topic" node topic_name "" "depth"}}"></a></td>
- <td></td>
- <td><a href="{{large_graph "topic" "*" topic_name "" "message_count"}}"><img width="120" src="{{sparkline "topic" node topic_name "" "message_count"}}"></a></td>
- <td></td>
- <td></td>
- {{#if e2e_processing_latency.percentiles.length}}
- <td colspan="{{e2e_processing_latency.percentiles.length}}">
- <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>
- </td>
- {{/if}}
- </tr>
- {{/if}}
- </table>
- </div>
- </div>
- {{/unless}}
- <div class="row">
- {{#unless channels.length}}
- <div class="col-md-6">
- <h4>通道消息队列</h4>
- <div class="alert alert-warning">
- <h4>注意</h4> 该主题没有通道.
- </div>
- {{else}}
- <div class="col-md-12">
- <h4>通道消息队列</h4>
- <table class="table table-bordered table-condensed">
- {{#if e2e_processing_latency.percentiles.length}}
- <tr>
- <th colspan="{{#if graph_active}}10{{else}}9{{/if}}"></th>
- <th colspan="{{e2e_processing_latency.percentiles.length}}">端到端处理延迟</th>
- </tr>
- {{/if}}
- <tr>
- <th>通道</th>
- <th>队列</th>
- <th>内存 + 硬盘</th>
- <th>处理中</th>
- <th>推迟</th>
- <th>重入队列</th>
- <th>超时</th>
- <th>消息数</th>
- <th>连接数</th>
- {{#each e2e_processing_latency.percentiles}}
- <th>{{floatToPercent quantile}}<sup>{{percSuffix quantile}}</sup></th>
- {{/each}}
- </tr>
- {{#each channels}}
- <tr>
- <th>
- <a class="link" href="{{basePath "/topics"}}/{{urlencode topic_name}}/{{urlencode channel_name}}">{{channel_name}}</a>
- {{#if paused}}<span class="label label-primary">已暂停</span>{{/if}}
- </th>
- <td>{{commafy depth}}</td>
- <td>{{commafy memory_depth}} + {{commafy backend_depth}}</td>
- <td>{{commafy in_flight_count}}</td>
- <td>{{commafy deferred_count}}</td>
- <td>{{commafy requeue_count}}</td>
- <td>{{commafy timeout_count}}</td>
- <td>{{commafy message_count}}</td>
- <td>{{commafy client_count}}</td>
- {{#if e2e_processing_latency.percentiles.length}}
- {{#each e2e_processing_latency.percentiles}}
- <td>
- <span title="{{floatToPercent quantile}}: min = {{nanotohuman min}}, max = {{nanotohuman max}}">{{nanotohuman average}}</span>
- </td>
- {{/each}}
- {{/if}}
- </tr>
- {{#if ../graph_active}}
- <tr class="graph-row">
- <td></td>
- <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>
- <td></td>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- {{#if e2e_processing_latency.percentiles.length}}
- <td colspan="{{e2e_processing_latency.percentiles.length}}">
- <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>
- </td>
- {{/if}}
- </tr>
- {{/if}}
- {{/each}}
- </table>
- {{/unless}}
- </div>
- </div>
|