diff --git a/app/models/application_request.rb b/app/models/application_request.rb index 415540ac9..041741fc5 100644 --- a/app/models/application_request.rb +++ b/app/models/application_request.rb @@ -7,7 +7,9 @@ class ApplicationRequest < ActiveRecord::Base http_5xx page_view_crawler page_view_logged_in - page_view_anon) + page_view_anon + page_view_logged_in_mobile + page_view_anon_mobile) cattr_accessor :autoflush, :autoflush_seconds, :last_flush # auto flush if backlog is larger than this diff --git a/app/models/report.rb b/app/models/report.rb index 71dff2fd4..58ba63052 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -57,7 +57,7 @@ class Report data = if filter == :page_view_total ApplicationRequest.where(req_type: [ - ApplicationRequest.req_types.map{|k,v| v if k =~ /page_view/}.compact + ApplicationRequest.req_types.reject{|k,v| k =~ /mobile/}.map{|k,v| v if k =~ /page_view/}.compact ]) else ApplicationRequest.where(req_type: ApplicationRequest.req_types[filter]) diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 07d1b1516..cd1dbe388 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -652,6 +652,14 @@ en: title: "Total" xaxis: "Day" yaxis: "Total API Requests" + page_view_logged_in_mobile_reqs: + title: "Mobile Logged In" + xaxis: "Day" + yaxis: "Mobile Logged In API Requests" + page_view_anon_mobile_reqs: + title: "Mobile Anon" + xaxis: "Day" + yaxis: "Mobile Anon API Requests" http_background_reqs: title: "Background" xaxis: "Day" diff --git a/lib/middleware/request_tracker.rb b/lib/middleware/request_tracker.rb index ee8c25f96..6a0b4d3d0 100644 --- a/lib/middleware/request_tracker.rb +++ b/lib/middleware/request_tracker.rb @@ -21,8 +21,10 @@ class Middleware::RequestTracker ApplicationRequest.increment!(:page_view_crawler) elsif data[:has_auth_cookie] ApplicationRequest.increment!(:page_view_logged_in) + ApplicationRequest.increment!(:page_view_logged_in_mobile) if data[:is_mobile] else ApplicationRequest.increment!(:page_view_anon) + ApplicationRequest.increment!(:page_view_anon_mobile) if data[:is_mobile] end end @@ -62,6 +64,7 @@ class Middleware::RequestTracker is_crawler: helper.is_crawler?, has_auth_cookie: helper.has_auth_cookie?, is_background: request.path =~ /^\/message-bus\// || request.path == /\/topics\/timings/, + is_mobile: helper.is_mobile?, track_view: track_view } end diff --git a/spec/components/middleware/request_tracker_spec.rb b/spec/components/middleware/request_tracker_spec.rb index 4d7e0d849..cbb8b68d3 100644 --- a/spec/components/middleware/request_tracker_spec.rb +++ b/spec/components/middleware/request_tracker_spec.rb @@ -50,13 +50,20 @@ describe Middleware::RequestTracker do Middleware::RequestTracker.log_request(data) + data = Middleware::RequestTracker.get_data(env( + "HTTP_USER_AGENT" => "Mozilla/5.0 (iPhone; CPU iPhone OS 8_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B410 Safari/600.1.4" + ), ["200",{"Content-Type" => 'text/html'}]) + + Middleware::RequestTracker.log_request(data) + ApplicationRequest.write_cache! - expect(ApplicationRequest.http_total.first.count).to eq(2) - expect(ApplicationRequest.http_2xx.first.count).to eq(2) + expect(ApplicationRequest.http_total.first.count).to eq(3) + expect(ApplicationRequest.http_2xx.first.count).to eq(3) - expect(ApplicationRequest.page_view_anon.first.count).to eq(1) + expect(ApplicationRequest.page_view_anon.first.count).to eq(2) expect(ApplicationRequest.page_view_crawler.first.count).to eq(1) + expect(ApplicationRequest.page_view_anon_mobile.first.count).to eq(1) end end end