class CanvasStatsd::RequestTracking
Public Class Methods
enable(logger: nil)
click to toggle source
# File lib/canvas_statsd/request_tracking.rb, line 4 def self.enable(logger: nil) @logger = RequestLogger.new(logger) track_timing end
Private Class Methods
finalize_processing(*args)
click to toggle source
# File lib/canvas_statsd/request_tracking.rb, line 20 def self.finalize_processing *args request_stat = CanvasStatsd::RequestStat.new(*args) request_stat.stats = @cookies.map { |(name, cookie)| [name, Counter.counters[name].finalize_count(cookie)] }.to_h request_stat.report @logger.log(request_stat) end
start_processing(*_args)
click to toggle source
# File lib/canvas_statsd/request_tracking.rb, line 16 def self.start_processing(*_args) @cookies = Counter.counters.map { |(name, counter)| [name, counter.start] } end
track_timing()
click to toggle source
# File lib/canvas_statsd/request_tracking.rb, line 11 def self.track_timing ActiveSupport::Notifications.subscribe(/start_processing\.action_controller/, &method(:start_processing)) ActiveSupport::Notifications.subscribe(/process_action\.action_controller/, &method(:finalize_processing)) end