Class: OneApm::Probe::Frameworks::Rails
- Inherits:
-
Ruby
show all
- Defined in:
- lib/one_apm/frameworks/rails.rb
Direct Known Subclasses
Rails3
Instance Attribute Summary
#local_env
Instance Method Summary
collapse
#init, #instance, #load_framework_class, #load_test_framework, #local_env, #new_instance, #oneapm_root, #reset
#app, #configure_agent, #dispatcher, #framework, #init_plugin, #oneapm_root, #settings, #start_agent
#add_instrumentation, #detect_dependencies, #install_instrumentation, #load_instrumentation_files, #require_instrumentation
Instance Method Details
#agent_hooks_installed ⇒ Object
53
54
55
|
# File 'lib/one_apm/frameworks/rails.rb', line 53
def agent_hooks_installed
@@agent_hooks_installed ||= false
end
|
#browser_monitoring_installed ⇒ Object
57
58
59
|
# File 'lib/one_apm/frameworks/rails.rb', line 57
def browser_monitoring_installed
@@browser_monitoring_installed ||= false
end
|
#developer_mode_installed ⇒ Object
61
62
63
|
# File 'lib/one_apm/frameworks/rails.rb', line 61
def developer_mode_installed
@@developer_mode_installed ||= false
end
|
#env ⇒ Object
10
11
12
|
# File 'lib/one_apm/frameworks/rails.rb', line 10
def env
@env ||= RAILS_ENV.dup
end
|
#init_config(options = {}) ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/one_apm/frameworks/rails.rb', line 35
def init_config(options = {})
@config = options[:config]
if rails_config && ::Rails.configuration.respond_to?(:after_initialize)
rails_config.after_initialize do
LibraryDetection.detect!
end
end
if !Manager.config[:agent_enabled]
OneApm::Manager.logger.info("OneApm Agent not running.")
else
install_developer_mode(rails_config) if Manager.config[:developer_mode]
install_browser_monitoring(rails_config)
install_agent_hooks(rails_config)
end
end
|
#install_agent_hooks(config) ⇒ Object
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/one_apm/frameworks/rails.rb', line 65
def install_agent_hooks(config)
return if agent_hooks_installed
@@agent_hooks_installed = true
return if config.nil? || !config.respond_to?(:middleware)
begin
require 'one_apm/rack/middleware_hooks'
return unless OneApm::Rack::MiddlewareHooks.needed?
config.middleware.use OneApm::Rack::MiddlewareHooks
OneApm::Manager.logger.debug("Installed OneApm Agent Hooks middleware")
rescue => e
OneApm::Manager.logger.warn("Error installing OneApm Agent Hooks middleware", e)
end
end
|
#install_browser_monitoring(config) ⇒ Object
79
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/one_apm/frameworks/rails.rb', line 79
def install_browser_monitoring(config)
return if browser_monitoring_installed
@@browser_monitoring_installed = true
return if config.nil? || !config.respond_to?(:middleware) || !Manager.config[:'browser_monitoring.auto_instrument']
begin
require 'one_apm/rack/browser_monitoring'
config.middleware.use OneApm::Rack::BrowserMonitoring
OneApm::Manager.logger.debug("Installed OneApm Browser Monitoring middleware")
rescue => e
OneApm::Manager.logger.warn("Error installing OneApm Browser Monitoring middleware", e)
end
end
|
#install_developer_mode(rails_config) ⇒ Object
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
# File 'lib/one_apm/frameworks/rails.rb', line 92
def install_developer_mode(rails_config)
return if env != "development"
return if developer_mode_installed
@@developer_mode_installed = true
if rails_config && rails_config.respond_to?(:middleware)
begin
require 'one_apm/rack/developer_mode'
rails_config.middleware.use OneApm::Rack::DeveloperMode
OneApm::Manager.logger.info("Developer Mode enabled.")
rescue => e
::OneApm::Manager.logger.warn("Error installing OneAPM Developer Mode", e)
end
elsif rails_config
::OneApm::Manager.logger.warn("Developer mode not available for Rails versions prior to 2.2")
end
end
|
#rails_config ⇒ Object
27
28
29
30
31
32
33
|
# File 'lib/one_apm/frameworks/rails.rb', line 27
def rails_config
if defined?(::Rails) && ::Rails.respond_to?(:configuration)
::Rails.configuration
else
@config
end
end
|
#rails_root ⇒ Object
23
24
25
|
# File 'lib/one_apm/frameworks/rails.rb', line 23
def rails_root
RAILS_ROOT if defined?(RAILS_ROOT)
end
|
#root ⇒ Object
14
15
16
17
18
19
20
21
|
# File 'lib/one_apm/frameworks/rails.rb', line 14
def root
root = rails_root.to_s
if !root.empty?
root
else
super
end
end
|