Class: PhusionPassenger::Rails3Extensions::AnalyticsLogging
- Inherits:
-
ActiveSupport::LogSubscriber
- Object
- ActiveSupport::LogSubscriber
- PhusionPassenger::Rails3Extensions::AnalyticsLogging
show all
- Defined in:
- lib/phusion_passenger/rails3_extensions/init.rb
Defined Under Namespace
Modules: ACExtension, ASBenchmarkableExtension
Classes: ExceptionLogger
Class Method Summary
(collapse)
Instance Method Summary
(collapse)
Class Method Details
+ (Object) install!(options)
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/phusion_passenger/rails3_extensions/init.rb', line 41
def self.install!(options)
analytics_logger = options["analytics_logger"]
return false if !analytics_logger || !options["analytics"]
GC.enable_stats if GC.respond_to?(:enable_stats)
subscriber = self.new
AnalyticsLogging.attach_to(:action_controller, subscriber)
AnalyticsLogging.attach_to(:active_record, subscriber)
if defined?(ActiveSupport::Cache::Store)
ActiveSupport::Cache::Store.instrument = true
AnalyticsLogging.attach_to(:active_support, subscriber)
end
if defined?(ActionDispatch::ShowExceptions)
Rails.application.middleware.insert_after(
ActionDispatch::ShowExceptions,
ExceptionLogger, analytics_logger)
end
if defined?(ActionController::Base)
ActionController::Base.class_eval do
include ACExtension
end
end
if defined?(ActiveSupport::Benchmarkable)
ActiveSupport::Benchmarkable.class_eval do
include ASBenchmarkableExtension
alias_method_chain :benchmark, :passenger
end
end
return true
end
|
Instance Method Details
- (Object) cache_fetch_hit(event)
106
107
108
|
# File 'lib/phusion_passenger/rails3_extensions/init.rb', line 106
def cache_fetch_hit(event)
PhusionPassenger.log_cache_hit(nil, event.payload[:key])
end
|
- (Object) cache_generate(event)
110
111
112
113
|
# File 'lib/phusion_passenger/rails3_extensions/init.rb', line 110
def cache_generate(event)
PhusionPassenger.log_cache_miss(nil, event.payload[:key],
event.duration * 1000)
end
|
- (Object) cache_read(event)
98
99
100
101
102
103
104
|
# File 'lib/phusion_passenger/rails3_extensions/init.rb', line 98
def cache_read(event)
if event.payload[:hit]
PhusionPassenger.log_cache_hit(nil, event.payload[:key])
else
PhusionPassenger.log_cache_miss(nil, event.payload[:key])
end
end
|
- (Object) process_action(event)
79
80
81
82
83
84
85
|
# File 'lib/phusion_passenger/rails3_extensions/init.rb', line 79
def process_action(event)
log = Thread.current[PASSENGER_ANALYTICS_WEB_LOG]
if log
view_runtime = event.payload[:view_runtime]
log.message("View rendering time: #{(view_runtime * 1000).to_i}") if view_runtime
end
end
|
- (Object) sql(event)
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/phusion_passenger/rails3_extensions/init.rb', line 87
def sql(event)
log = Thread.current[PASSENGER_ANALYTICS_WEB_LOG]
if log
name = event.payload[:name]
sql = event.payload[:sql]
digest = Digest::MD5.hexdigest("#{name}\0#{sql}\0#{rand}")
log.measured_time_points("DB BENCHMARK: #{digest}",
event.time, event.end, "#{name}\n#{sql}")
end
end
|