2011-11-30 21:43:42 +08:00
|
|
|
<h1>Queue <b><%= fmt_string(queue.name) %></b></h1>
|
2010-08-27 17:55:32 +08:00
|
|
|
|
|
|
|
|
<div class="section">
|
2010-11-18 00:13:28 +08:00
|
|
|
<h2>Overview</h2>
|
2013-02-28 21:23:53 +08:00
|
|
|
<div class="hider">
|
2013-02-01 02:27:20 +08:00
|
|
|
<%= queue_lengths('lengths-q', queue) %>
|
2014-04-12 00:41:02 +08:00
|
|
|
<% if (rates_mode != 'none') { %>
|
2013-02-01 02:27:20 +08:00
|
|
|
<%= message_rates('msg-rates-q', queue.message_stats) %>
|
2012-11-16 21:27:31 +08:00
|
|
|
<% } %>
|
2010-11-18 00:13:28 +08:00
|
|
|
|
2013-02-28 21:23:53 +08:00
|
|
|
<div class="updatable">
|
2010-11-18 00:13:28 +08:00
|
|
|
<h3>Details</h3>
|
2014-06-27 00:31:06 +08:00
|
|
|
<table class="facts facts-l">
|
2010-08-27 17:55:32 +08:00
|
|
|
<tr>
|
2010-11-18 00:13:28 +08:00
|
|
|
<th>Parameters</th>
|
|
|
|
|
<td><%= fmt_parameters(queue) %></td>
|
2010-08-27 17:55:32 +08:00
|
|
|
</tr>
|
2012-05-18 00:54:20 +08:00
|
|
|
<tr>
|
|
|
|
|
<th>Policy</th>
|
2012-06-26 01:02:03 +08:00
|
|
|
<td><%= fmt_string(queue.policy, '') %></td>
|
2012-05-18 00:54:20 +08:00
|
|
|
</tr>
|
2010-08-27 17:55:32 +08:00
|
|
|
<tr>
|
2010-11-18 00:13:28 +08:00
|
|
|
<th>Exclusive owner</th>
|
2010-08-27 17:55:32 +08:00
|
|
|
<td>
|
2010-11-18 19:46:41 +08:00
|
|
|
<% if (queue.owner_pid_details == undefined) { %>
|
|
|
|
|
None
|
|
|
|
|
<% } else { %>
|
|
|
|
|
<%= link_conn(queue.owner_pid_details.name) %>
|
2010-08-27 17:55:32 +08:00
|
|
|
<% } %>
|
|
|
|
|
</td>
|
2010-11-18 00:13:28 +08:00
|
|
|
</tr>
|
2012-05-18 00:54:20 +08:00
|
|
|
</table>
|
|
|
|
|
|
2014-06-27 00:31:06 +08:00
|
|
|
<table class="facts facts-l">
|
2010-11-18 00:13:28 +08:00
|
|
|
<tr>
|
2013-12-02 22:57:43 +08:00
|
|
|
<th>State</th>
|
|
|
|
|
<td><%= fmt_object_state(queue) %></td>
|
2010-11-18 00:13:28 +08:00
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>Consumers</th>
|
2013-01-25 03:21:36 +08:00
|
|
|
<td><%= fmt_string(queue.consumers) %></td>
|
2010-11-18 00:13:28 +08:00
|
|
|
</tr>
|
2013-11-14 20:03:35 +08:00
|
|
|
<tr>
|
2013-11-19 22:22:43 +08:00
|
|
|
<th>Consumer utilisation <span class="help" id="queue-consumer-utilisation"></th>
|
2013-11-19 22:14:06 +08:00
|
|
|
<td><%= fmt_percent(queue.consumer_utilisation) %></td>
|
2013-11-14 20:03:35 +08:00
|
|
|
</tr>
|
2010-11-18 00:13:28 +08:00
|
|
|
<tr>
|
|
|
|
|
<th>Memory</th>
|
2010-08-27 17:55:32 +08:00
|
|
|
<td><%= fmt_bytes(queue.memory) %></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
2010-11-18 00:13:28 +08:00
|
|
|
|
2013-06-07 22:21:41 +08:00
|
|
|
<table class="facts">
|
|
|
|
|
<tr>
|
|
|
|
|
<th>
|
2013-06-07 23:54:35 +08:00
|
|
|
Paging <span class="help" id="queue-memory-resident"></span>
|
2013-06-07 22:21:41 +08:00
|
|
|
</th>
|
|
|
|
|
<td>
|
2014-07-29 20:10:09 +08:00
|
|
|
<% if (queue.messages_ram == queue.messages) { %>
|
2013-06-07 23:54:35 +08:00
|
|
|
No paging
|
|
|
|
|
<% } else { %>
|
2014-07-29 20:10:09 +08:00
|
|
|
<%= fmt_num_thousands(queue.messages_ram) %> /
|
2013-06-29 00:30:36 +08:00
|
|
|
<%= fmt_num_thousands(queue.messages) %> msg (in RAM / total)
|
2013-06-07 23:54:35 +08:00
|
|
|
<% } %>
|
2013-06-07 22:21:41 +08:00
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>
|
|
|
|
|
Persistent <span class="help" id="queue-persistent"></span>
|
|
|
|
|
</th>
|
|
|
|
|
<td>
|
2014-07-29 20:10:09 +08:00
|
|
|
<%= fmt_num_thousands(queue.messages_persistent) %> msg
|
2013-06-07 22:21:41 +08:00
|
|
|
</td>
|
|
|
|
|
</tr>
|
2014-07-24 05:03:12 +08:00
|
|
|
<tr>
|
|
|
|
|
<th>
|
|
|
|
|
Bytes length (total)
|
|
|
|
|
</th>
|
|
|
|
|
<td>
|
2014-07-29 20:26:25 +08:00
|
|
|
<%= fmt_bytes(queue.message_bytes) %>
|
2014-07-24 05:03:12 +08:00
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>
|
|
|
|
|
Bytes length (in RAM)
|
|
|
|
|
</th>
|
|
|
|
|
<td>
|
2014-07-29 20:26:25 +08:00
|
|
|
<%= fmt_bytes(queue.message_bytes_ram) %>
|
2014-07-24 05:03:12 +08:00
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>
|
|
|
|
|
Bytes length (persistent)
|
|
|
|
|
</th>
|
|
|
|
|
<td>
|
2014-07-29 20:26:25 +08:00
|
|
|
<%= fmt_bytes(queue.message_bytes_persistent) %>
|
2014-07-24 05:03:12 +08:00
|
|
|
</td>
|
|
|
|
|
</tr>
|
2013-06-07 22:21:41 +08:00
|
|
|
</table>
|
|
|
|
|
|
2010-11-18 00:13:28 +08:00
|
|
|
<table class="facts">
|
|
|
|
|
<% if (vhosts_interesting) { %>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>Virtual host</th>
|
2011-11-30 21:43:42 +08:00
|
|
|
<td><%= fmt_string(queue.vhost) %></td>
|
2010-11-18 00:13:28 +08:00
|
|
|
</tr>
|
|
|
|
|
<% } %>
|
|
|
|
|
<% if (nodes_interesting) { %>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>Node</th>
|
2012-11-05 21:26:32 +08:00
|
|
|
<td><%= fmt_node(queue.node) %></td>
|
2010-11-18 00:13:28 +08:00
|
|
|
</tr>
|
2011-05-25 18:58:56 +08:00
|
|
|
<tr>
|
2013-09-26 18:10:54 +08:00
|
|
|
<th>Slaves</th>
|
2011-05-25 18:58:56 +08:00
|
|
|
<td>
|
2012-12-14 23:24:10 +08:00
|
|
|
<%
|
2013-01-08 23:41:53 +08:00
|
|
|
var has_unsynced_node = false;
|
2012-12-14 23:24:10 +08:00
|
|
|
for (var i in queue.slave_nodes) {
|
|
|
|
|
var node = queue.slave_nodes[i];
|
2011-07-15 22:52:29 +08:00
|
|
|
%>
|
2012-12-14 23:24:10 +08:00
|
|
|
<%
|
|
|
|
|
if (jQuery.inArray(node, queue.synchronised_slave_nodes) == -1) {
|
2013-01-08 23:41:53 +08:00
|
|
|
has_unsynced_node = true;
|
2012-12-14 23:24:10 +08:00
|
|
|
%>
|
2012-11-05 21:26:32 +08:00
|
|
|
<%= fmt_node(node) %> <b>(unsynchronised)</b>
|
2011-07-15 22:52:29 +08:00
|
|
|
<% } else { %>
|
2012-11-05 21:26:32 +08:00
|
|
|
<%= fmt_node(node) %>
|
2011-07-15 22:52:29 +08:00
|
|
|
<% } %>
|
|
|
|
|
<br/>
|
2011-05-25 18:58:56 +08:00
|
|
|
<% } %>
|
2013-12-10 22:28:33 +08:00
|
|
|
<% if (queue.state == 'syncing') { %>
|
2013-01-08 23:41:53 +08:00
|
|
|
<table>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>
|
2013-12-10 22:28:33 +08:00
|
|
|
<%= fmt_sync_state(queue) %>
|
2013-01-08 23:41:53 +08:00
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<form action="#/queues/actions" method="post">
|
|
|
|
|
<input type="hidden" name="vhost" value="<%= fmt_string(queue.vhost) %>"/>
|
|
|
|
|
<input type="hidden" name="name" value="<%= fmt_string(queue.name) %>"/>
|
|
|
|
|
<input type="hidden" name="action" value="cancel_sync"/>
|
|
|
|
|
<input type="submit" value="Cancel" id="action-button" />
|
|
|
|
|
</form>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
<% } else if (has_unsynced_node) { %>
|
2012-12-14 23:24:10 +08:00
|
|
|
<form action="#/queues/actions" method="post">
|
|
|
|
|
<input type="hidden" name="vhost" value="<%= fmt_string(queue.vhost) %>"/>
|
|
|
|
|
<input type="hidden" name="name" value="<%= fmt_string(queue.name) %>"/>
|
|
|
|
|
<input type="hidden" name="action" value="sync"/>
|
|
|
|
|
<input type="submit" value="Synchronise" id="action-button" />
|
|
|
|
|
</form>
|
2012-12-14 20:03:27 +08:00
|
|
|
<% } %>
|
2011-05-25 18:58:56 +08:00
|
|
|
</td>
|
|
|
|
|
</tr>
|
2010-11-18 00:13:28 +08:00
|
|
|
<% } %>
|
|
|
|
|
</table>
|
2013-02-28 21:23:53 +08:00
|
|
|
</div>
|
2010-08-27 17:55:32 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2014-04-12 00:41:02 +08:00
|
|
|
<% if (rates_mode == 'detailed') { %>
|
2010-10-29 22:49:52 +08:00
|
|
|
<div class="section-hidden">
|
2012-11-16 21:27:31 +08:00
|
|
|
<h2>Message rates breakdown</h2>
|
2010-10-29 22:49:52 +08:00
|
|
|
<div class="hider updatable">
|
|
|
|
|
<table class="two-col-layout">
|
|
|
|
|
<tr>
|
|
|
|
|
<td>
|
|
|
|
|
<%= format('msg-detail-publishes',
|
|
|
|
|
{'mode': 'queue',
|
|
|
|
|
'object': queue.incoming,
|
2012-11-16 21:27:31 +08:00
|
|
|
'label': 'Incoming'}) %>
|
2010-10-30 00:45:02 +08:00
|
|
|
|
2010-10-29 22:49:52 +08:00
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<%= format('msg-detail-deliveries',
|
|
|
|
|
{'mode': 'queue',
|
2012-11-16 21:27:31 +08:00
|
|
|
'object': queue.deliveries}) %>
|
2010-10-29 22:49:52 +08:00
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<% } %>
|
|
|
|
|
|
2011-02-22 22:11:22 +08:00
|
|
|
<div class="section-hidden">
|
|
|
|
|
<h2>Consumers</h2>
|
|
|
|
|
<div class="hider updatable">
|
|
|
|
|
<%= format('consumers', {'mode': 'queue', 'consumers': queue.consumer_details}) %>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2010-11-18 00:13:28 +08:00
|
|
|
<div class="section-hidden">
|
2010-10-14 18:21:33 +08:00
|
|
|
<h2>Bindings</h2>
|
2011-02-25 01:34:18 +08:00
|
|
|
<div class="hider">
|
2012-10-11 20:19:22 +08:00
|
|
|
<div class="bindings-wrapper">
|
|
|
|
|
<%= format('bindings', {'mode': 'queue', 'bindings': bindings}) %>
|
|
|
|
|
<p class="arrow">⇓</p>
|
2012-10-11 20:39:22 +08:00
|
|
|
<p><span class="queue">This queue</span></p>
|
2010-09-02 00:26:51 +08:00
|
|
|
|
2012-10-11 20:19:22 +08:00
|
|
|
<%= format('add-binding', {'mode': 'queue', 'parent': queue}) %>
|
|
|
|
|
</div>
|
2011-02-22 22:11:22 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2012-02-22 00:04:03 +08:00
|
|
|
<%= format('publish', {'mode': 'queue', 'queue': queue}) %>
|
|
|
|
|
|
2011-02-22 02:20:33 +08:00
|
|
|
<div class="section-hidden">
|
2011-05-23 22:57:33 +08:00
|
|
|
<h2>Get messages</h2>
|
2011-02-22 02:20:33 +08:00
|
|
|
<div class="hider">
|
|
|
|
|
<p>
|
2011-02-22 22:00:20 +08:00
|
|
|
Warning: getting messages from a queue is a destructive action.
|
|
|
|
|
<span class="help" id="message-get-requeue"></span>
|
2011-02-22 02:20:33 +08:00
|
|
|
</p>
|
|
|
|
|
<form action="#/queues/get" method="post">
|
2011-11-30 21:43:42 +08:00
|
|
|
<input type="hidden" name="vhost" value="<%= fmt_string(queue.vhost) %>"/>
|
|
|
|
|
<input type="hidden" name="name" value="<%= fmt_string(queue.name) %>"/>
|
2011-03-11 01:22:08 +08:00
|
|
|
<input type="hidden" name="truncate" value="50000"/>
|
2011-02-22 22:00:20 +08:00
|
|
|
<table class="form">
|
|
|
|
|
<tr>
|
|
|
|
|
<th><label>Requeue:</label></th>
|
|
|
|
|
<td>
|
|
|
|
|
<select name="requeue">
|
|
|
|
|
<option value="true">Yes</option>
|
|
|
|
|
<option value="false">No</option>
|
|
|
|
|
</select>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
2011-03-11 00:33:58 +08:00
|
|
|
<tr>
|
|
|
|
|
<th><label>Encoding:</label></th>
|
|
|
|
|
<td>
|
|
|
|
|
<select name="encoding">
|
|
|
|
|
<option value="auto">Auto string / base64</option>
|
|
|
|
|
<option value="base64">base64</option>
|
|
|
|
|
</select>
|
|
|
|
|
<span class="help" id="string-base64"></span>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
2011-02-22 22:00:20 +08:00
|
|
|
<tr>
|
|
|
|
|
<th><label>Messages:</label></th>
|
|
|
|
|
<td><input type="text" name="count" value="1"/></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
<input type="submit" value="Get Message(s)" />
|
2011-02-22 02:20:33 +08:00
|
|
|
</form>
|
|
|
|
|
<div id="msg-wrapper"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2010-10-01 00:49:28 +08:00
|
|
|
<div class="section-hidden">
|
2011-05-23 22:57:33 +08:00
|
|
|
<h2>Delete / purge</h2>
|
2010-10-27 19:41:55 +08:00
|
|
|
<div class="hider">
|
2010-11-18 00:13:28 +08:00
|
|
|
<form action="#/queues" method="delete" class="confirm inline-form">
|
2011-11-30 21:43:42 +08:00
|
|
|
<input type="hidden" name="vhost" value="<%= fmt_string(queue.vhost) %>"/>
|
|
|
|
|
<input type="hidden" name="name" value="<%= fmt_string(queue.name) %>"/>
|
2010-11-18 00:13:28 +08:00
|
|
|
<input type="hidden" name="mode" value="delete"/>
|
|
|
|
|
<input type="submit" value="Delete" />
|
2010-10-01 00:49:28 +08:00
|
|
|
</form>
|
|
|
|
|
|
2011-01-28 01:22:24 +08:00
|
|
|
<form action="#/queues" method="delete" class="inline-form-right">
|
2011-11-30 21:43:42 +08:00
|
|
|
<input type="hidden" name="vhost" value="<%= fmt_string(queue.vhost) %>"/>
|
|
|
|
|
<input type="hidden" name="name" value="<%= fmt_string(queue.name) %>"/>
|
2010-11-18 00:13:28 +08:00
|
|
|
<input type="hidden" name="mode" value="purge"/>
|
|
|
|
|
<input type="submit" value="Purge" />
|
2010-08-27 17:55:32 +08:00
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|