1<h2>Connection <%= fmt_string(connection.name) %> <%= fmt_maybe_vhost(connection.vhost) %></h1> 2 3<% if (!disable_stats) { %> 4<div class="section"> 5<h2>Overview</h2> 6<div class="hider updatable"> 7 <%= data_rates('data-rates-conn', connection, 'Data rates') %> 8 9<h3>Details</h3> 10<table class="facts facts-l"> 11<% if (nodes_interesting) { %> 12<tr> 13 <th>Node</th> 14 <td><%= fmt_node(connection.node) %></td> 15</tr> 16<% } %> 17 18<% if (connection.client_properties.connection_name) { %> 19<tr> 20 <th>Client-provided name</th> 21 <td><%= fmt_string(connection.client_properties.connection_name) %></td> 22</tr> 23<% } %> 24 25<tr> 26 <th>Username</th> 27 <td><%= fmt_string(connection.user) %></td> 28</tr> 29<tr> 30 <th>Protocol</th> 31 <td><%= connection.protocol %></td> 32</tr> 33<tr> 34 <th>Connected at</th> 35 <td><%= fmt_timestamp(connection.connected_at) %></td> 36</tr> 37 38<% if (connection.ssl) { %> 39<tr> 40 <th>SSL</th> 41 <td><%= fmt_boolean(connection.ssl) %></td> 42</tr> 43<% } %> 44 45<% if (connection.auth_mechanism) { %> 46<tr> 47 <th>Authentication</th> 48 <td><%= connection.auth_mechanism %></td> 49</tr> 50<% } %> 51</table> 52 53<% if (connection.state) { %> 54<table class="facts"> 55<tr> 56 <th>State</th> 57 <td><%= fmt_object_state(connection) %></td> 58</tr> 59<tr> 60 <th>Heartbeat</th> 61 <td><%= fmt_time(connection.timeout, 's') %></td> 62</tr> 63<tr> 64 <th>Frame max</th> 65 <td><%= connection.frame_max %> bytes</td> 66</tr> 67</table> 68 69<% } %> 70 71</div> 72</div> 73 74<% if (connection.ssl) { %> 75<div class="section"> 76<h2>SSL</h2> 77<div class="hider"> 78 79<table class="facts"> 80 <tr> 81 <th>Protocol Version</th> 82 <td><%= connection.ssl_protocol %></td> 83 </tr> 84 <tr> 85 <th>Key Exchange Algorithm</th> 86 <td><%= connection.ssl_key_exchange %></td> 87 </tr> 88 <tr> 89 <th>Cipher Algorithm</th> 90 <td><%= connection.ssl_cipher %></td> 91 </tr> 92 <tr> 93 <th>Hash Algorithm</th> 94 <td><%= connection.ssl_hash %></td> 95 </tr> 96</table> 97 98<% if (connection.peer_cert_issuer != '') { %> 99<table class="facts"> 100 <tr> 101 <th>Peer Certificate Issuer</th> 102 <td><%= connection.peer_cert_issuer %></td> 103 </tr> 104 <tr> 105 <th>Peer Certificate Subject</th> 106 <td><%= connection.peer_cert_subject %></td> 107 </tr> 108 <tr> 109 <th>Peer Certificate Validity</th> 110 <td><%= connection.peer_cert_validity %></td> 111 </tr> 112</table> 113<% } %> 114</div> 115</div> 116<% } %> 117 118<div class="section"> 119 <h2 class="updatable">Publishers (<%=(publishers.length)%>) </h2> 120 <div class="hider updatable"> 121 <%= format('streamPublishersList', {'publishers': publishers, 'mode' : 'connection'}) %> 122 </div> 123</div> 124 125<div class="section"> 126 <h2 class="updatable" >Consumers (<%=(consumers.length)%>)</h2> 127 <div class="hider updatable"> 128 <%= format('streamConsumersList', {'consumers': consumers}) %> 129 </div> 130</div> 131 132<% if (properties_size(connection.client_properties) > 0) { %> 133<div class="section-hidden"> 134<h2>Client properties</h2> 135<div class="hider"> 136<%= fmt_table_long(connection.client_properties) %> 137</div> 138</div> 139<% } %> 140 141<% if(connection.reductions || connection.garbage_collection) { %> 142<div class="section-hidden"> 143<h2>Runtime Metrics (Advanced)</h2> 144 <div class="hider updatable"> 145 <%= data_reductions('reductions-rates-conn', connection) %> 146 <table class="facts"> 147 <% if (connection.garbage_collection.min_bin_vheap_size) { %> 148 <tr> 149 <th>Minimum binary virtual heap size in words (min_bin_vheap_size)</th> 150 <td><%= connection.garbage_collection.min_bin_vheap_size %></td> 151 </tr> 152 <% } %> 153 154 <% if (connection.garbage_collection.min_heap_size) { %> 155 <tr> 156 <th>Minimum heap size in words (min_heap_size)</th> 157 <td><%= connection.garbage_collection.min_heap_size %></td> 158 </tr> 159 <% } %> 160 161 <% if (connection.garbage_collection.fullsweep_after) { %> 162 <tr> 163 <th>Maximum generational collections before fullsweep (fullsweep_after)</th> 164 <td><%= connection.garbage_collection.fullsweep_after %></td> 165 </tr> 166 <% } %> 167 168 <% if (connection.garbage_collection.minor_gcs) { %> 169 <tr> 170 <th>Number of minor GCs (minor_gcs)</th> 171 <td><%= connection.garbage_collection.minor_gcs %></td> 172 </tr> 173 <% } %> 174 </table> 175 </div> 176</div> 177 178<% } %> 179<% } %> 180 181<div class="section-hidden"> 182 <h2>Close this connection</h2> 183 <div class="hider"> 184 <form action="#/connections" method="delete" class="confirm"> 185 <input type="hidden" name="name" value="<%= fmt_string(connection.name) %>"/> 186 <table class="form"> 187 <tr> 188 <th><label>Reason:</label></th> 189 <td> 190 <input type="text" name="reason" value="Closed via management plugin" class="wide"/> 191 </td> 192 </tr> 193 </table> 194 <input type="submit" value="Force Close"/> 195 </form> 196 </div> 197</div> 198