kirs/pg_web_stats

View on GitHub
views/queries.erb

Summary

Maintainability
Test Coverage
<form method="GET" class="form-inline">
  Filter by db:
  <select name="dbid">
    <option value=""></option>
    <% @databases.each do |item| %>
      <option value="<%= item[0] %>" <%= params[:dbid] == item[0] ? "selected" : "" %>><%= item[1] %></option>
    <% end %>
  </select>
  and by user:
  <select name="userid">
    <option value=""></option>
    <% @users.each do |item| %>
      <option value="<%= item[0] %>" <%= params[:userid] == item[0] ? "selected" : "" %>><%= item[1] %></option>
    <% end %>
  </select>
  query starts from:
  <input type="text" name="q" value="<%= params[:query].to_s.gsub('"', '&quot;') %>"/>

  <input type="submit" name="submit" value="Filter" class="btn">
</form>

<table class="table table-compact">
  <tr>
    <th>dbid</th>
    <th>userid</th>
    <th><%= sort_link 'query', 'query' %></a></th>
    <th><%= sort_link 'calls', 'calls' %></th>
    <th><%= sort_link 'time', 'total_time' %></th>
    <th><%= sort_link 'rows', 'rows' %></th>
    <th><%= sort_link 'sbh', 'shared_blks_hit', 'shared_blks_hit' %></th>
    <th><%= sort_link 'sbr', 'shared_blks_read', 'shared_blks_read' %></th>
    <th><%= sort_link 'sbd', 'shared_blks_dirtied', 'shared_blks_dirtied' %></th>
    <th><%= sort_link 'sbw', 'shared_blks_written', 'shared_blks_written' %></th>
    <th><%= sort_link 'lbh', 'local_blks_hit', 'local_blks_hit' %></th>
    <th><%= sort_link 'lbr', 'local_blks_read', 'local_blks_read' %></th>
    <th><%= sort_link 'lbd', 'local_blks_dirtied', 'local_blks_dirtied' %></th>
    <th><%= sort_link 'tbr', 'temp_blks_read', 'temp_blks_read' %></th>
    <th><%= sort_link 'tbw', 'temp_blks_written', 'temp_blks_written' %></th>
    <th><%= sort_link 'brt', 'blk_read_time', 'blk_read_time' %></th>
    <th><%= sort_link 'bwt', 'blk_write_time', 'blk_write_time' %></th>
  </tr>
  <% @stats.each do |row| %>
    <tr class="<%= row.waste? ? '' : 'success' %>">
      <% %w(db user query calls total_time rows shared_blks_hit shared_blks_read
        shared_blks_dirtied shared_blks_written local_blks_hit local_blks_read
        local_blks_dirtied temp_blks_read temp_blks_written blk_read_time
        blk_write_time).each do |attr| %>
        <td><%= row.respond_to?(attr) ? row.send(attr) : '-' %></td>
      <% end %>
    </tr>
  <% end %>
</table>