-
-
Domain
-
Requests
-
Transferred
-
- <% @by_domain_counts
- .sort_by { |_ignore, stats| -stats[:bytes] }
- .each do |domain, stats| %>
-
-
<%= domain %>
-
<%= stats[:count] %>
-
- <%= HexUtil.humansize(stats[:bytes]) %>
+
+
+
By Content Type
+
+
+
+
+
+
+ <% @content_type_counts
+ .sort_by { |_ignore, stats| -stats[:count] }
+ .each do |content_type, stats| %>
+
+
<%= content_type %>
+
<%= stats[:count] %>
+
+ <%= HexUtil.humansize(stats[:bytes]) %>
+
+
+ <% end %>
-
- <% end %>
+
+
+
+
By Domain
+
+
+
+
+
+
+
+ <% @by_domain_counts
+ .sort_by { |_ignore, stats| -stats[:bytes] }
+ .each do |domain, stats| %>
+
+
<%= domain %>
+
<%= stats[:count] %>
+
+ <%= HexUtil.humansize(stats[:bytes]) %>
+
+
+ <% end %>
+
+
+
diff --git a/config/initializers/prometheus_exporter.rb b/config/initializers/prometheus_exporter.rb
index 468eba7e..4c54a357 100644
--- a/config/initializers/prometheus_exporter.rb
+++ b/config/initializers/prometheus_exporter.rb
@@ -10,7 +10,9 @@ START_PROMETHEUS_EXPORTER =
# always start in sever mode
Rails.const_defined?("Server") ||
# always start in worker mode
- (Rails.env == "worker"),
+ (Rails.env == "worker") ||
+ # ran with args when in server mode, but no top level task
+ (ARGV.any? && Rake.application.top_level_tasks.empty?),
T::Boolean,
)
diff --git a/spec/controllers/log_entries_controller_spec.rb b/spec/controllers/log_entries_controller_spec.rb
index 5a588af3..b9a74050 100644
--- a/spec/controllers/log_entries_controller_spec.rb
+++ b/spec/controllers/log_entries_controller_spec.rb
@@ -2,6 +2,7 @@
require "rails_helper"
RSpec.describe LogEntriesController, type: :controller do
+ render_views
let(:user) { create(:user, :admin) }
context "when user is not signed in" do
@@ -18,24 +19,59 @@ RSpec.describe LogEntriesController, type: :controller do
expect(response).to redirect_to(new_user_session_path)
end
end
+
+ describe "GET #show" do
+ it "redirects to sign in" do
+ get :show, params: { id: 1 }
+ expect(response).to redirect_to(new_user_session_path)
+ end
+ end
end
context "when user is signed in" do
before { sign_in user }
describe "GET #index" do
- it "returns filtered log entries" do
+ it "renders the index template with filtered log entries" do
get :index, params: { filter: "example.com/test" }
expect(response).to be_successful
+ expect(response).to render_template(:index)
+ end
+
+ it "shows existing log entries matching the filter" do
+ log_entry =
+ create(
+ :http_log_entry,
+ uri_host: "example.com",
+ uri_path: "/test",
+ uri_scheme: "https",
+ )
+
+ get :index, params: { filter: "example.com/test" }
+
+ expect(response).to be_successful
+ expect(assigns(:log_entries)).to include(log_entry)
end
end
describe "GET #stats" do
- it "returns statistics in the specified time window" do
+ it "renders the stats template with time window data" do
get :stats, params: { seconds: 3600 }
expect(response).to be_successful
+ expect(response).to render_template(:stats)
expect(assigns(:time_window)).to eq 3600.seconds
end
end
+
+ describe "GET #show" do
+ let(:log_entry) { create(:http_log_entry) }
+
+ it "renders the show template with the requested log entry" do
+ get :show, params: { id: log_entry.id }
+ expect(response).to be_successful
+ expect(response).to render_template(:show)
+ expect(assigns(:log_entry)).to eq(log_entry)
+ end
+ end
end
end
diff --git a/tmp/pids/.keep b/tmp/pids/.keep
deleted file mode 100644
index e69de29b..00000000
diff --git a/tmp/storage/.keep b/tmp/storage/.keep
deleted file mode 100644
index e69de29b..00000000