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