Sha256: 250ed35c6461ffc649dae86e912a53af0d541f918a1b64a3ff3d011df3e3e6f4
Contents?: true
Size: 1.52 KB
Versions: 10
Compression:
Stored size: 1.52 KB
Contents
module Flexirest class Instrumentation < ActiveSupport::LogSubscriber def request_call(event) self.class.time_spent += event.duration self.class.calls_made += 1 name = '%s (%.1fms)' % [Flexirest.name, event.duration] Flexirest::Logger.debug " \033[1;4;32m#{name}\033[0m #{event.payload[:name]}" unless event.payload[:quiet] end def self.time_spent=(value) @@time_spent = value end def self.time_spent @@time_spent ||= 0 end def self.calls_made=(value) @@calls_made = value end def self.calls_made @@calls_made ||= 0 end def self.reset @@time_spent = 0 @@calls_made = 0 end def logger Flexirest::Logger end end module ControllerInstrumentation extend ActiveSupport::Concern protected def append_info_to_payload(payload) super payload[:flexirest_time_spent] = Flexirest::Instrumentation.time_spent payload[:flexirest_calls_made] = Flexirest::Instrumentation.calls_made end module ClassMethods def log_process_action(payload) messages, time_spent, calls_made = super, payload[:flexirest_time_spent], payload[:flexirest_calls_made] messages << ("#{Flexirest.name}: %.1fms for %d calls" % [time_spent.to_f, calls_made]) if calls_made Flexirest::Instrumentation.reset messages end end end end Flexirest::Instrumentation.attach_to :flexirest ActiveSupport.on_load(:action_controller) do include Flexirest::ControllerInstrumentation end
Version data entries
10 entries across 10 versions & 1 rubygems