<% content_for :head do %> <% end %>

HTTP Request Log Stats

<%= link_to "Back to Index", log_entries_path, class: "text-blue-600 hover:text-blue-800 transition-colors" %>
<% [10.seconds, 30.seconds, 1.minute, 5.minutes, 30.minutes].each do |time_window| %> <% if @time_window == time_window %> <%= if time_window < 1.minute pluralize(time_window.seconds, "second") else time_ago_in_words(time_window.ago) end %> <% else %> <%= link_to( ( if time_window < 1.minute pluralize(time_window.seconds, "second") else time_ago_in_words(time_window.ago) end ), stats_log_entries_path(seconds: time_window.in_seconds), class: "rounded-full px-3 py-1 text-sm text-blue-600 hover:text-blue-800 hover:bg-blue-50 transition-colors", ) %> <% end %> <% end %>
<%= @last_window_count %> requests in last <%= if @time_window < 1.minute pluralize(@time_window.seconds, "second") else time_ago_in_words(@time_window.ago) end %>
<%= (@last_window_count.to_f / @time_window.in_seconds).round(1) %> requests/sec
<%= HexUtil.humansize(@last_window_bytes) %> transferred • <%= HexUtil.humansize(@last_window_bytes / @time_window.in_seconds) %>/sec

By Content Type

Content Type
Requests
Transferred
<% @content_type_counts .sort_by { |_ignore, stats| -stats[:count] } .each do |content_type, stats| %>
<%= content_type %>
<%= stats[:count] %>
<%= HexUtil.humansize(stats[:bytes]) %>
<% end %>

By Domain

Domain
Requests
Transferred
<% @by_domain_counts .sort_by { |_ignore, stats| -stats[:bytes] } .each do |domain, stats| %>
<%= domain %>
<%= stats[:count] %>
<%= HexUtil.humansize(stats[:bytes]) %>
<% end %>