oneapm_rpm 1.1.2 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/lib/one_apm/agent.rb +185 -192
  3. data/lib/one_apm/agent/agent/connect.rb +17 -17
  4. data/lib/one_apm/agent/agent/container_data_manager.rb +14 -14
  5. data/lib/one_apm/agent/agent/forkable_dispatcher_functions.rb +6 -35
  6. data/lib/one_apm/agent/agent/helpers.rb +6 -17
  7. data/lib/one_apm/agent/agent/start.rb +27 -27
  8. data/lib/one_apm/agent/agent/start_worker_thread.rb +19 -51
  9. data/lib/one_apm/agent/busy_calculator.rb +8 -34
  10. data/lib/one_apm/agent/cross_app/cross_app_monitor.rb +10 -10
  11. data/lib/one_apm/agent/cross_app/cross_app_tracing.rb +14 -14
  12. data/lib/one_apm/agent/database.rb +8 -35
  13. data/lib/one_apm/agent/database/active_record_helper.rb +1 -1
  14. data/lib/one_apm/agent/datastores.rb +2 -109
  15. data/lib/one_apm/agent/datastores/metric_helper.rb +1 -1
  16. data/lib/one_apm/agent/datastores/mongo/metric_translator.rb +3 -3
  17. data/lib/one_apm/agent/datastores/mongo/statement_formatter.rb +2 -2
  18. data/lib/one_apm/agent/harvester.rb +3 -6
  19. data/lib/one_apm/agent/inbound_request_monitor.rb +2 -2
  20. data/lib/one_apm/agent/javascript_instrumentor.rb +28 -28
  21. data/lib/one_apm/agent/sampler.rb +1 -1
  22. data/lib/one_apm/agent/sampler_collection.rb +6 -9
  23. data/lib/one_apm/agent/samplers/cpu_sampler.rb +4 -4
  24. data/lib/one_apm/agent/samplers/delayed_job_sampler.rb +5 -5
  25. data/lib/one_apm/agent/samplers/memory_sampler.rb +5 -5
  26. data/lib/one_apm/agent/samplers/object_sampler.rb +1 -1
  27. data/lib/one_apm/agent/samplers/vm_sampler.rb +6 -6
  28. data/lib/one_apm/agent/synthetics_monitor.rb +2 -2
  29. data/lib/one_apm/agent/threading/agent_thread.rb +6 -6
  30. data/lib/one_apm/agent/threading/backtrace_service.rb +9 -9
  31. data/lib/one_apm/agent/threading/thread_profile.rb +3 -3
  32. data/lib/one_apm/collector/collector/helper.rb +10 -10
  33. data/lib/one_apm/collector/collector/http_connection.rb +14 -14
  34. data/lib/one_apm/collector/collector/server_methods.rb +12 -12
  35. data/lib/one_apm/collector/collector_service.rb +8 -8
  36. data/lib/one_apm/collector/commands/thread_profiler_session.rb +4 -4
  37. data/lib/one_apm/collector/commands/xray_session.rb +1 -1
  38. data/lib/one_apm/collector/commands/xray_session_collection.rb +10 -10
  39. data/lib/one_apm/collector/containers/agent_command_router.rb +7 -7
  40. data/lib/one_apm/collector/containers/custom_event_aggregator.rb +6 -6
  41. data/lib/one_apm/collector/containers/error_collector.rb +16 -16
  42. data/lib/one_apm/collector/containers/sql_sampler.rb +8 -11
  43. data/lib/one_apm/collector/containers/transaction_event_aggregator.rb +15 -15
  44. data/lib/one_apm/collector/containers/transaction_sampler.rb +14 -16
  45. data/lib/one_apm/{agent/pipe/pipe_service.rb → collector/forked_process_service.rb} +3 -3
  46. data/lib/one_apm/collector/stats_engine/gc_profiler.rb +3 -3
  47. data/lib/one_apm/collector/stats_engine/metric_stats.rb +4 -4
  48. data/lib/one_apm/collector/stats_engine/stats_hash.rb +2 -2
  49. data/lib/one_apm/configuration.rb +16 -16
  50. data/lib/one_apm/configuration/autostart.rb +4 -4
  51. data/lib/one_apm/configuration/default_source.rb +9 -9
  52. data/lib/one_apm/configuration/environment_source.rb +1 -1
  53. data/lib/one_apm/configuration/high_security_source.rb +1 -1
  54. data/lib/one_apm/configuration/yaml_source.rb +7 -7
  55. data/lib/one_apm/errors/noticed_error.rb +2 -2
  56. data/lib/one_apm/frameworks/external.rb +2 -0
  57. data/lib/one_apm/frameworks/rails.rb +8 -18
  58. data/lib/one_apm/frameworks/rails3.rb +1 -0
  59. data/lib/one_apm/frameworks/rails4.rb +2 -6
  60. data/lib/one_apm/frameworks/ruby.rb +7 -2
  61. data/lib/one_apm/frameworks/sinatra.rb +1 -2
  62. data/lib/one_apm/inst/3rd/active_merchant.rb +1 -1
  63. data/lib/one_apm/inst/3rd/acts_as_solr.rb +2 -2
  64. data/lib/one_apm/inst/3rd/authlogic.rb +1 -1
  65. data/lib/one_apm/inst/3rd/sunspot.rb +1 -1
  66. data/lib/one_apm/inst/background_job/active_job.rb +1 -1
  67. data/lib/one_apm/inst/background_job/delayed_job.rb +4 -4
  68. data/lib/one_apm/inst/background_job/event_machine_standalone.rb +2 -2
  69. data/lib/one_apm/inst/background_job/resque.rb +11 -11
  70. data/lib/one_apm/inst/background_job/sidekiq.rb +5 -5
  71. data/lib/one_apm/inst/dispatcher/passenger.rb +4 -4
  72. data/lib/one_apm/inst/dispatcher/puma.rb +23 -0
  73. data/lib/one_apm/inst/dispatcher/rainbows.rb +2 -2
  74. data/lib/one_apm/inst/framework/grape.rb +4 -4
  75. data/lib/one_apm/inst/framework/padrino.rb +2 -2
  76. data/lib/one_apm/inst/framework/sinatra.rb +9 -9
  77. data/lib/one_apm/inst/framework/sinatra/transaction_namer.rb +1 -1
  78. data/lib/one_apm/inst/http_clients/curb.rb +6 -6
  79. data/lib/one_apm/inst/http_clients/excon.rb +4 -4
  80. data/lib/one_apm/inst/http_clients/excon/middleware.rb +3 -3
  81. data/lib/one_apm/inst/http_clients/httpclient.rb +1 -1
  82. data/lib/one_apm/inst/http_clients/net.rb +2 -2
  83. data/lib/one_apm/inst/http_clients/typhoeus.rb +2 -2
  84. data/lib/one_apm/inst/nosql/memcache.rb +7 -7
  85. data/lib/one_apm/inst/nosql/mongo.rb +6 -6
  86. data/lib/one_apm/inst/nosql/mongo_moped.rb +2 -2
  87. data/lib/one_apm/inst/nosql/redis.rb +3 -3
  88. data/lib/one_apm/inst/orm/active_record.rb +4 -4
  89. data/lib/one_apm/inst/orm/active_record_4.rb +2 -2
  90. data/lib/one_apm/inst/orm/sequel.rb +4 -4
  91. data/lib/one_apm/inst/rack.rb +3 -3
  92. data/lib/one_apm/inst/rack/rack_builder.rb +4 -4
  93. data/lib/one_apm/inst/rails/action_controller.rb +7 -7
  94. data/lib/one_apm/inst/rails/action_web_service.rb +1 -1
  95. data/lib/one_apm/inst/rails/errors.rb +1 -1
  96. data/lib/one_apm/inst/rails3/action_controller.rb +6 -6
  97. data/lib/one_apm/inst/rails3/errors.rb +1 -1
  98. data/lib/one_apm/inst/rails4/action_controller.rb +1 -1
  99. data/lib/one_apm/inst/rails4/action_controller_subscriber.rb +4 -4
  100. data/lib/one_apm/inst/rails4/action_view.rb +2 -2
  101. data/lib/one_apm/inst/rails4/action_view_subscriber.rb +4 -4
  102. data/lib/one_apm/inst/rails4/active_record_subscriber.rb +7 -7
  103. data/lib/one_apm/inst/rails4/errors.rb +1 -1
  104. data/lib/one_apm/inst/rails_middleware.rb +2 -2
  105. data/lib/one_apm/inst/support/evented_subscriber.rb +2 -2
  106. data/lib/one_apm/inst/support/queue_time.rb +1 -1
  107. data/lib/one_apm/inst/transaction_base.rb +6 -6
  108. data/lib/one_apm/logger/agent_logger.rb +8 -8
  109. data/lib/one_apm/logger/audit_logger.rb +8 -8
  110. data/lib/one_apm/logger/memory_logger.rb +1 -1
  111. data/lib/one_apm/logger/null_logger.rb +1 -3
  112. data/lib/one_apm/manager.rb +249 -0
  113. data/lib/one_apm/metrics/metric_spec.rb +1 -1
  114. data/lib/one_apm/metrics/stats.rb +1 -1
  115. data/lib/one_apm/probe.rb +1 -1
  116. data/lib/one_apm/probe/framework_loader.rb +2 -2
  117. data/lib/one_apm/probe/instance_methods.rb +19 -19
  118. data/lib/one_apm/probe/instrumentation.rb +5 -5
  119. data/lib/one_apm/rack/browser_monitoring.rb +6 -6
  120. data/lib/one_apm/rack/middleware_hooks.rb +1 -1
  121. data/lib/one_apm/rack/middleware_tracing.rb +2 -2
  122. data/lib/one_apm/support/chained_call.rb +1 -1
  123. data/lib/one_apm/support/coerce.rb +1 -1
  124. data/lib/one_apm/support/collection_helper.rb +1 -1
  125. data/lib/one_apm/support/encoders.rb +1 -1
  126. data/lib/one_apm/support/environment_report.rb +10 -10
  127. data/lib/one_apm/{agent → support}/event/event_listener.rb +3 -3
  128. data/lib/one_apm/{agent → support}/event/event_loop.rb +8 -8
  129. data/lib/one_apm/{agent → support}/event/timer.rb +1 -1
  130. data/lib/one_apm/{agent → support}/event/worker_loop.rb +5 -19
  131. data/lib/one_apm/{agent/pipe/pipe_channel_manager.rb → support/forked_process_channel.rb} +13 -51
  132. data/lib/one_apm/support/json_marshaller.rb +6 -6
  133. data/lib/one_apm/support/json_wrapper.rb +2 -2
  134. data/lib/one_apm/support/language_support.rb +1 -1
  135. data/lib/one_apm/support/library_detection.rb +5 -5
  136. data/lib/one_apm/support/marshaller.rb +1 -1
  137. data/lib/one_apm/support/method_tracer.rb +12 -12
  138. data/lib/one_apm/support/method_tracer/helpers.rb +6 -6
  139. data/lib/one_apm/support/system_info.rb +2 -2
  140. data/lib/one_apm/support/traced_method_stack.rb +4 -4
  141. data/lib/one_apm/support/vm/monotonic_gc_profiler.rb +1 -1
  142. data/lib/one_apm/support/vm/mri_vm.rb +1 -1
  143. data/lib/one_apm/transaction.rb +3 -3
  144. data/lib/one_apm/transaction/class_methods.rb +3 -3
  145. data/lib/one_apm/transaction/instance_helpers.rb +3 -3
  146. data/lib/one_apm/transaction/sample_buffer/synthetics_sample_buffer.rb +1 -1
  147. data/lib/one_apm/transaction/sample_buffer/xray_sample_buffer.rb +5 -5
  148. data/lib/one_apm/transaction/thread_local_access.rb +2 -2
  149. data/lib/one_apm/transaction/transaction_apdex.rb +2 -2
  150. data/lib/one_apm/transaction/transaction_finish_append.rb +1 -1
  151. data/lib/one_apm/transaction/transaction_jruby_functions.rb +2 -2
  152. data/lib/one_apm/transaction/transaction_name.rb +2 -2
  153. data/lib/one_apm/transaction/transaction_sample.rb +1 -1
  154. data/lib/one_apm/transaction/transaction_sample_builder.rb +7 -7
  155. data/lib/one_apm/transaction/transaction_state.rb +1 -1
  156. data/lib/one_apm/version.rb +1 -1
  157. data/lib/sequel/extensions/oneapm_instrumentation.rb +7 -7
  158. data/oneapm.yml +6 -7
  159. metadata +10 -9
  160. data/lib/one_apm/agent/agent.rb +0 -283
@@ -0,0 +1,249 @@
1
+ # encoding: utf-8
2
+
3
+ require 'one_apm/probe'
4
+
5
+ require 'one_apm/support/collection_helper'
6
+ require 'one_apm/support/timer_lib'
7
+ require 'one_apm/support/json_wrapper'
8
+ require 'one_apm/support/chained_call'
9
+ require 'one_apm/support/rules_engine'
10
+ require 'one_apm/support/http_clients/uri_util'
11
+ require 'one_apm/support/system_info'
12
+
13
+ require 'one_apm/metrics/metric_spec'
14
+ require 'one_apm/metrics/metric_data'
15
+ require 'one_apm/metrics/stats'
16
+
17
+ require 'one_apm/errors/noticed_error'
18
+ require 'one_apm/errors/agent_errors'
19
+
20
+ require 'one_apm/agent'
21
+ require 'one_apm/agent/cross_app/cross_app_monitor'
22
+ require 'one_apm/support/method_tracer'
23
+ require 'one_apm/support/event/worker_loop'
24
+ require 'one_apm/support/event/event_loop'
25
+ require 'one_apm/transaction/transaction_sample'
26
+
27
+ require 'one_apm/collector/containers/stats_engine'
28
+ require 'one_apm/collector/containers/transaction_sampler'
29
+ require 'one_apm/collector/containers/sql_sampler'
30
+ require 'one_apm/collector/containers/error_collector'
31
+
32
+ require 'one_apm/agent/busy_calculator'
33
+ require 'one_apm/agent/database'
34
+ require 'one_apm/support/forked_process_channel'
35
+
36
+ require 'one_apm/configuration'
37
+
38
+ require 'one_apm/agent/sampler'
39
+ require 'one_apm/agent/samplers/cpu_sampler'
40
+ require 'one_apm/agent/samplers/memory_sampler'
41
+ require 'one_apm/agent/samplers/object_sampler'
42
+ require 'one_apm/agent/samplers/delayed_job_sampler'
43
+ require 'one_apm/agent/samplers/vm_sampler'
44
+
45
+ module OneApm
46
+ module Manager
47
+ extend self
48
+
49
+ @agent = nil
50
+
51
+ def agent
52
+ return @agent if @agent
53
+ OneApm::Manager.logger.warn("Agent unavailable as it hasn't been started.")
54
+ OneApm::Manager.logger.warn(caller.join("\n"))
55
+ nil
56
+ end
57
+
58
+ def agent=(new_agent)
59
+ @agent = new_agent
60
+ end
61
+
62
+ def start(options = {})
63
+ raise "Options must be a hash" unless Hash === options
64
+ OneApm::Support::ForkedProcessChannel.listener.start if options[:start_channel_listener]
65
+ OneApm::Probe.init({:agent_enabled => true, :sync_startup => true}.merge(options))
66
+ end
67
+
68
+ alias_method :manual_start, :start
69
+
70
+ def shutdown(options={})
71
+ agent.shutdown(options) if agent
72
+ end
73
+
74
+ def restart
75
+ shutdown
76
+ agent.harvest_samplers.clear
77
+ agent.agent_variable_set(:@connect_state, :pending)
78
+ agent.agent_variable_set(:@worker_thread, nil)
79
+ agent.harvester.agent_variable_set(:@starting_pid, nil)
80
+ OneApm::Probe.init({:agent_enabled => true, :sync_startup => true})
81
+ end
82
+
83
+ def logger
84
+ @logger || OneApm::Logger::StartupLogger.instance
85
+ end
86
+
87
+ def logger=(log)
88
+ @logger = log
89
+ end
90
+
91
+ def config
92
+ @config ||= OneApm::Configuration::Manager.new
93
+ end
94
+
95
+ def reset_config
96
+ @config.reset_to_defaults
97
+ end
98
+
99
+ def revert_to_default_configuration
100
+ @config.remove_config_type(:manual)
101
+ @config.remove_config_type(:server)
102
+ end
103
+
104
+ def after_fork(options = {})
105
+ agent.after_fork(options)
106
+ end
107
+
108
+ def record_metric(metric_name, value)
109
+ value_to_store = value
110
+ value_to_store = OneApm::Metrics::Stats.create_from_hash(value) if value.is_a?(Hash)
111
+ agent.stats_engine.tl_record_unscoped_metrics(metric_name, value_to_store)
112
+ end
113
+
114
+ def increment_metric(metric_name, amount = 1)
115
+ agent.stats_engine.tl_record_unscoped_metrics(metric_name) do |stats|
116
+ stats.increment_count(amount)
117
+ end
118
+ end
119
+
120
+ def drop_buffered_data
121
+ agent.drop_buffered_data
122
+ end
123
+
124
+ def add_instrumentation(file_pattern)
125
+ OneApm::Probe.instance.add_instrumentation file_pattern
126
+ end
127
+
128
+ def set_sql_obfuscator(type = :replace, &block)
129
+ OneApm::Agent::Database.set_sql_obfuscator(type, &block)
130
+ end
131
+
132
+ def disable_sql_recording
133
+ state = agent.set_record_sql(false)
134
+ begin
135
+ yield
136
+ ensure
137
+ agent.set_record_sql(state)
138
+ end
139
+ end
140
+
141
+ def disable_transaction_tracing
142
+ state = agent.set_record_tt(false)
143
+ begin
144
+ yield
145
+ ensure
146
+ agent.set_record_tt(state)
147
+ end
148
+ end
149
+
150
+ def ignore_transaction
151
+ txn = OneApm::Transaction.tl_current
152
+ txn.ignore! if txn
153
+ end
154
+
155
+ def ignore_apdex
156
+ txn = OneApm::Transaction.tl_current
157
+ txn.ignore_apdex! if txn
158
+ end
159
+
160
+ def ignore_enduser
161
+ txn = OneApm::Transaction.tl_current
162
+ txn.ignore_enduser! if txn
163
+ end
164
+
165
+ def disable_all_tracing
166
+ agent.push_trace_execution_flag(false)
167
+ yield
168
+ ensure
169
+ agent.pop_trace_execution_flag
170
+ end
171
+
172
+ def record_custom_event(event_type, event_attrs)
173
+ if agent && OneApm::Manager.config[:'custom_insights_events.enabled']
174
+ agent.custom_event_aggregator.record(event_type, event_attrs)
175
+ end
176
+ nil
177
+ end
178
+
179
+ def tl_is_execution_traced?
180
+ OneApm::TransactionState.tl_get.is_execution_traced?
181
+ end
182
+
183
+ def tl_is_transaction_traced?
184
+ OneApm::TransactionState.tl_get.is_transaction_traced?
185
+ end
186
+
187
+ def tl_is_sql_recorded?
188
+ OneApm::TransactionState.tl_get.is_sql_recorded?
189
+ end
190
+
191
+ def ignore_error_filter(&block)
192
+ if block
193
+ OneApm::Collector::ErrorCollector.ignore_error_filter = block
194
+ else
195
+ OneApm::Collector::ErrorCollector.ignore_error_filter
196
+ end
197
+ end
198
+
199
+ def notice_error(exception, options = {})
200
+ Transaction.notice_error(exception, options)
201
+ nil
202
+ end
203
+
204
+ def notice_sql(sql, metric, config, elapsed_time, state, &explainer)
205
+ agent.transaction_sampler.notice_sql(sql, config, elapsed_time, state, &explainer)
206
+ agent.sql_sampler.notice_sql(sql, metric, config, elapsed_time, state, &explainer)
207
+ end
208
+
209
+ def add_custom_parameters(params)
210
+ if params.is_a? Hash
211
+ txn = Transaction.tl_current
212
+ txn.add_custom_parameters(params) if txn
213
+ else
214
+ ::OneApm::Manager.logger.warn("Bad argument passed to #add_custom_parameters. Expected Hash but got #{params.class}")
215
+ end
216
+ end
217
+
218
+ def set_transaction_name(name, options={})
219
+ Transaction.set_overriding_transaction_name(name, options[:category])
220
+ end
221
+
222
+ def get_transaction_name
223
+ txn = Transaction.tl_current
224
+ if txn
225
+ txn.best_name.sub(Regexp.new("\\A#{Regexp.escape(OneApm::TransactionNamer.prefix_for_category(txn))}"), '')
226
+ end
227
+ end
228
+
229
+ def subscribe(event_type, &handler)
230
+ agent.events.subscribe( event_type, &handler )
231
+ end
232
+
233
+ def notify(event_type, *args)
234
+ agent.events.notify( event_type, *args )
235
+ rescue
236
+ OneApm::Manager.logger.debug "Ignoring exception during %p event notification" % [event_type]
237
+ end
238
+
239
+ def browser_timing_header
240
+ agent.javascript_instrumentor.browser_timing_header
241
+ end
242
+
243
+ def require_test_helper
244
+ path = File.join(__FILE__, '..', '..', '..', 'test', 'agent_helper')
245
+ require File.expand_path(path)
246
+ end
247
+
248
+ end
249
+ end
@@ -45,7 +45,7 @@ module OneApm
45
45
  # return a new metric spec if the given regex
46
46
  # matches the name or scope.
47
47
  def sub(pattern, replacement, apply_to_scope = true)
48
- ::OneApm::Agent.logger.warn("The sub method on metric specs is deprecated") rescue nil
48
+ OneApm::Manager.logger.warn("The sub method on metric specs is deprecated") rescue nil
49
49
  return nil if name !~ pattern &&
50
50
  (!apply_to_scope || scope.nil? || scope !~ pattern)
51
51
  new_name = name.sub(pattern, replacement)[LENGTH_RANGE]
@@ -145,7 +145,7 @@ module OneApm
145
145
  @min_call_time = apdex_t
146
146
  @max_call_time = apdex_t
147
147
  else
148
- ::OneApm::Agent.logger.warn("Attempted to set apdex_t to #{apdex_t.inspect}, backtrace = #{caller.join("\n")}")
148
+ OneApm::Manager.logger.warn("Attempted to set apdex_t to #{apdex_t.inspect}, backtrace = #{caller.join("\n")}")
149
149
  end
150
150
  end
151
151
 
data/lib/one_apm/probe.rb CHANGED
@@ -9,7 +9,7 @@ require 'one_apm/probe/framework_loader'
9
9
  require 'one_apm/probe/instrumentation'
10
10
  require 'one_apm/probe/instance_methods'
11
11
 
12
- require 'one_apm/agent'
12
+ require 'one_apm/manager'
13
13
 
14
14
  module OneApm
15
15
  class Probe; end
@@ -13,10 +13,10 @@ module OneApm
13
13
  end
14
14
 
15
15
  def new_instance
16
- if Agent.config[:framework] == :test
16
+ if OneApm::Manager.config[:framework] == :test
17
17
  load_test_framework
18
18
  else
19
- load_framework_class(Agent.config[:framework]).new(local_env)
19
+ load_framework_class(Manager.config[:framework]).new(local_env)
20
20
  end
21
21
  end
22
22
 
@@ -14,19 +14,19 @@ module OneApm
14
14
  def init_plugin(options = {})
15
15
  env = options[:env] || self.env
16
16
 
17
- Agent.logger.info("Starting the OneApm agent in #{env.inspect} environment.")
17
+ OneApm::Manager.logger.info("Starting the OneAPM Agent (#{OneApm::VERSION::STRING}) in #{env.inspect} environment.")
18
18
 
19
19
  configure_agent(env, options)
20
20
 
21
21
  # Be sure to only create once! RUBY-1020
22
- if ::OneApm::Agent.logger.is_startup_logger?
23
- ::OneApm::Agent.logger = OneApm::Agent::AgentLogger.new(root, options.delete(:log))
22
+ if OneApm::Manager.logger.is_startup_logger?
23
+ OneApm::Manager.logger = OneApm::Logger::AgentLogger.new(root, options.delete(:log))
24
24
  end
25
25
 
26
26
  # Merge the stringified options into the config as overrides:
27
27
  environment_name = options.delete(:env) and self.env = environment_name
28
28
 
29
- OneApm::Agent::PipeChannelManager.listener.start if options.delete(:start_channel_listener)
29
+ OneApm::Support::ForkedProcessChannel.listener.start if options.delete(:start_channel_listener)
30
30
 
31
31
  # An artifact of earlier implementation, we put both #add_method_tracer and #trace_execution
32
32
  # methods in the module methods.
@@ -36,13 +36,13 @@ module OneApm
36
36
  init_config(options)
37
37
 
38
38
  # initialize agent
39
- OneApm::Agent.instance = OneApm::Agent::Agent.instance
40
- OneApm::Agent.instance.start_service_if_needed
39
+ OneApm::Manager.agent = OneApm::Agent::Agent.instance
40
+ OneApm::Manager.agent.start_service
41
41
 
42
- if Agent.config[:agent_enabled] && !OneApm::Agent.instance.started?
42
+ if OneApm::Manager.config[:agent_enabled] && !OneApm::Manager.agent.started?
43
43
  start_agent
44
44
  install_instrumentation
45
- elsif !Agent.config[:agent_enabled]
45
+ elsif !Manager.config[:agent_enabled]
46
46
  install_shim
47
47
  else
48
48
  detect_dependencies
@@ -51,36 +51,36 @@ module OneApm
51
51
 
52
52
  def configure_agent(env, options)
53
53
  manual = OneApm::Configuration::ManualSource.new(options)
54
- Agent.config.replace_or_add_config(manual)
54
+ OneApm::Manager.config.replace_or_add_config(manual)
55
55
 
56
- config_file_path = @config_file_override || Agent.config[:config_path]
57
- Agent.config.replace_or_add_config(OneApm::Configuration::YamlSource.new(config_file_path, env))
56
+ config_file_path = @config_file_override || OneApm::Manager.config[:config_path]
57
+ OneApm::Manager.config.replace_or_add_config(OneApm::Configuration::YamlSource.new(config_file_path, env))
58
58
 
59
- if Agent.config[:high_security]
60
- Agent.logger.info("Installing high security configuration based on local configuration")
61
- Agent.config.replace_or_add_config(OneApm::Configuration::HighSecuritySource.new(Agent.config))
59
+ if OneApm::Manager.config[:high_security]
60
+ OneApm::Manager.logger.info("Installing high security configuration based on local configuration")
61
+ OneApm::Manager.config.replace_or_add_config(OneApm::Configuration::HighSecuritySource.new(Manager.config))
62
62
  end
63
63
  end
64
64
 
65
65
  # Install the real agent into the Agent module, and issue the start command.
66
66
  def start_agent
67
- OneApm::Agent.instance.start
67
+ OneApm::Manager.agent.start
68
68
  end
69
69
 
70
70
  def app
71
- Agent.config[:framework]
71
+ OneApm::Manager.config[:framework]
72
72
  end
73
73
 
74
74
  def framework
75
- Agent.config[:framework]
75
+ OneApm::Manager.config[:framework]
76
76
  end
77
77
 
78
78
  def settings
79
- OneApm::Agent.config.to_collector_hash
79
+ OneApm::Manager.config.to_collector_hash
80
80
  end
81
81
 
82
82
  def dispatcher
83
- OneApm::Agent.config[:dispatcher]
83
+ OneApm::Manager.config[:dispatcher]
84
84
  end
85
85
 
86
86
  def oneapm_root
@@ -19,7 +19,7 @@ module OneApm
19
19
  load_instrumentation_files inst_file
20
20
  end
21
21
  detect_dependencies
22
- OneApm::Agent.logger.info "Finished instrumentation"
22
+ OneApm::Manager.logger.info "Finished instrumentation"
23
23
  end
24
24
 
25
25
  def load_instrumentation_files pattern
@@ -34,16 +34,16 @@ module OneApm
34
34
  def require_instrumentation file
35
35
  require file
36
36
  rescue => e
37
- ::OneApm::Agent.logger.warn "Error loading instrumentation file '#{file}':", e
37
+ OneApm::Manager.logger.warn "Error loading instrumentation file '#{file}':", e
38
38
  end
39
39
 
40
40
  def install_shim
41
41
  # Once we install instrumentation, you can't undo that by installing the shim.
42
42
  if @instrumented
43
- OneApm::Agent.logger.error "Cannot install the Agent shim after instrumentation has already been installed!"
44
- OneApm::Agent.logger.error caller.join("\n")
43
+ OneApm::Manager.logger.error "Cannot install the Agent shim after instrumentation has already been installed!"
44
+ OneApm::Manager.logger.error caller.join("\n")
45
45
  else
46
- OneApm::Agent.instance = OneApm::Agent::ShimAgent.instance
46
+ OneApm::Manager.agent = OneApm::Agent::ShimAgent.instance
47
47
  end
48
48
  end
49
49
 
@@ -16,7 +16,7 @@ module OneApm::Rack
16
16
  def traced_call(env)
17
17
  result = @app.call(env) # [status, headers, response]
18
18
 
19
- js_to_inject = OneApm::Agent.browser_timing_header
19
+ js_to_inject = OneApm::Manager.browser_timing_header
20
20
  if (js_to_inject != "") && should_instrument?(env, result[0], result[1])
21
21
  response_string = autoinstrument_source(result[2], result[1], js_to_inject)
22
22
 
@@ -33,7 +33,7 @@ module OneApm::Rack
33
33
  end
34
34
 
35
35
  def should_instrument?(env, status, headers)
36
- OneApm::Agent.config[:'browser_monitoring.auto_instrument'] &&
36
+ OneApm::Manager.config[:'browser_monitoring.auto_instrument'] &&
37
37
  status == 200 &&
38
38
  !env[ALREADY_INSTRUMENTED_KEY] &&
39
39
  is_html?(headers) &&
@@ -80,12 +80,12 @@ module OneApm::Rack
80
80
  js_to_inject <<
81
81
  source[insertion_index..-1]
82
82
  else
83
- OneApm::Agent.logger.debug "Skipping RUM instrumentation. Could not properly determine location to inject script."
83
+ OneApm::Manager.logger.debug "Skipping RUM instrumentation. Could not properly determine location to inject script."
84
84
  end
85
85
  else
86
86
  msg = "Skipping RUM instrumentation. Unable to find <body> tag in first #{SCAN_LIMIT} bytes of document."
87
- OneApm::Agent.logger.log_once(:warn, :rum_insertion_failure, msg)
88
- OneApm::Agent.logger.debug(msg)
87
+ OneApm::Manager.logger.log_once(:warn, :rum_insertion_failure, msg)
88
+ OneApm::Manager.logger.debug(msg)
89
89
  end
90
90
 
91
91
  if headers['Content-Length']
@@ -94,7 +94,7 @@ module OneApm::Rack
94
94
 
95
95
  source
96
96
  rescue => e
97
- OneApm::Agent.logger.debug "Skipping RUM instrumentation on exception.", e
97
+ OneApm::Manager.logger.debug "Skipping RUM instrumentation on exception.", e
98
98
  nil
99
99
  end
100
100