oneapm_rpm 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -31,6 +31,7 @@ module OneApm
31
31
  include OneApm::Agent::Instrumentation::TransactionBase::Shim
32
32
  end
33
33
  end
34
+
34
35
  end
35
36
  end
36
37
  end
@@ -6,15 +6,11 @@ module OneApm
6
6
  class Probe
7
7
  module Frameworks
8
8
  class Rails4 < OneApm::Probe::Frameworks::Rails3
9
+
9
10
  def rails_gem_list
10
- Bundler.rubygems.all_specs.map do |gem|
11
- "#{gem.name} (#{gem.version})"
12
- end
11
+ Bundler.rubygems.all_specs.map {|gem| "#{gem.name} (#{gem.version})" }
13
12
  end
14
13
 
15
- def append_plugin_list
16
- # Rails 4 does not allow plugins
17
- end
18
14
  end
19
15
  end
20
16
  end
@@ -4,9 +4,13 @@ module OneApm
4
4
  class Probe
5
5
  module Frameworks
6
6
  class Ruby < OneApm::Probe
7
+
7
8
  def env
8
- @env ||= ENV['ONEAPM_ENV'] || ENV['RUBY_ENV'] ||
9
- ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development'
9
+ @env ||= ENV['ONEAPM_ENV'] ||
10
+ ENV['RUBY_ENV'] ||
11
+ ENV['RAILS_ENV'] ||
12
+ ENV['RACK_ENV'] ||
13
+ 'development'
10
14
  end
11
15
 
12
16
  def root
@@ -15,6 +19,7 @@ module OneApm
15
19
 
16
20
  def init_config(options={})
17
21
  end
22
+
18
23
  end
19
24
  end
20
25
  end
@@ -5,8 +5,7 @@ require 'one_apm/frameworks/ruby'
5
5
  module OneApm
6
6
  class Probe
7
7
  module Frameworks
8
- class Sinatra < OneApm::Probe::Frameworks::Ruby
9
- end
8
+ class Sinatra < OneApm::Probe::Frameworks::Ruby; end
10
9
  end
11
10
  end
12
11
  end
@@ -10,7 +10,7 @@ LibraryDetection.defer do
10
10
  end
11
11
 
12
12
  executes do
13
- ::OneApm::Agent.logger.info 'Installing ActiveMerchant instrumentation'
13
+ OneApm::Manager.logger.info 'Installing ActiveMerchant instrumentation'
14
14
  end
15
15
 
16
16
  executes do
@@ -10,7 +10,7 @@ module OneApm
10
10
  begin
11
11
  parse_query_without_oneapm(*args)
12
12
  ensure
13
- OneApm::Agent.instance.transaction_sampler.notice_nosql(args.first.inspect, (Time.now - t0).to_f) rescue nil
13
+ OneApm::Manager.agent.transaction_sampler.notice_nosql(args.first.inspect, (Time.now - t0).to_f) rescue nil
14
14
  end
15
15
  end
16
16
  end
@@ -39,7 +39,7 @@ LibraryDetection.defer do
39
39
  end
40
40
 
41
41
  executes do
42
- ::OneApm::Agent.logger.info 'Installing ActsAsSolr instrumentation'
42
+ OneApm::Manager.logger.info 'Installing ActsAsSolr instrumentation'
43
43
  end
44
44
 
45
45
  executes do
@@ -10,7 +10,7 @@ LibraryDetection.defer do
10
10
  end
11
11
 
12
12
  executes do
13
- ::OneApm::Agent.logger.info 'Installing Authlogic instrumentation'
13
+ OneApm::Manager.logger.info 'Installing Authlogic instrumentation'
14
14
  end
15
15
 
16
16
  executes do
@@ -8,7 +8,7 @@ LibraryDetection.defer do
8
8
  end
9
9
 
10
10
  executes do
11
- ::OneApm::Agent.logger.info 'Installing Rails Sunspot instrumentation'
11
+ OneApm::Manager.logger.info 'Installing Rails Sunspot instrumentation'
12
12
  end
13
13
 
14
14
  executes do
@@ -8,7 +8,7 @@ LibraryDetection.defer do
8
8
  end
9
9
 
10
10
  executes do
11
- ::OneApm::Agent.logger.info 'Installing ActiveJob instrumentation'
11
+ OneApm::Manager.logger.info 'Installing ActiveJob instrumentation'
12
12
 
13
13
  ::ActiveJob::Base.around_enqueue do |job, block|
14
14
  ::OneApm::Agent::Instrumentation::ActiveJobHelper.enqueue(job, block)
@@ -4,15 +4,15 @@ LibraryDetection.defer do
4
4
  @name = :delayed_job
5
5
 
6
6
  depends_on do
7
- !OneApm::Agent.config[:disable_dj]
7
+ !OneApm::Manager.config[:disable_dj]
8
8
  end
9
9
 
10
10
  depends_on do
11
- defined?(::Delayed) && defined?(::Delayed::Worker) && !OneApm::Agent.config[:disable_dj]
11
+ defined?(::Delayed) && defined?(::Delayed::Worker) && !OneApm::Manager.config[:disable_dj]
12
12
  end
13
13
 
14
14
  executes do
15
- ::OneApm::Agent.logger.info 'Installing DelayedJob instrumentation'
15
+ OneApm::Manager.logger.info 'Installing DelayedJob instrumentation'
16
16
  end
17
17
 
18
18
  executes do
@@ -29,7 +29,7 @@ LibraryDetection.defer do
29
29
  install_oneapm_job_tracer
30
30
  OneApm::Probe.instance.init_plugin :dispatcher => :delayed_job
31
31
  else
32
- OneApm::Agent.logger.warn("Did not find a Delayed::Job class responding to invoke_job, aborting DJ instrumentation")
32
+ OneApm::Manager.logger.warn("Did not find a Delayed::Job class responding to invoke_job, aborting DJ instrumentation")
33
33
  end
34
34
  end
35
35
 
@@ -4,11 +4,11 @@ LibraryDetection.defer do
4
4
  named :event_machine_standalone
5
5
 
6
6
  depends_on do
7
- OneApm::Agent.config[:event_machine_standalone] && defined?(::EventMachine)
7
+ OneApm::Manager.config[:event_machine_standalone] && defined?(::EventMachine)
8
8
  end
9
9
 
10
10
  executes do
11
- OneApm::Agent.logger.info 'Installing EventMachine Standalone Mode instrumentation'
11
+ OneApm::Manager.logger.info 'Installing EventMachine Standalone Mode instrumentation'
12
12
 
13
13
  module EventMachine
14
14
 
@@ -4,12 +4,12 @@ LibraryDetection.defer do
4
4
  @name = :resque
5
5
 
6
6
  depends_on do
7
- defined?(::Resque::Job) && !OneApm::Agent.config[:disable_resque] &&
7
+ defined?(::Resque::Job) && !OneApm::Manager.config[:disable_resque] &&
8
8
  !OneApm::LanguageSupport.using_version?('1.9.1')
9
9
  end
10
10
 
11
11
  executes do
12
- ::OneApm::Agent.logger.info 'Installing Resque instrumentation'
12
+ OneApm::Manager.logger.info 'Installing Resque instrumentation'
13
13
  end
14
14
 
15
15
  executes do
@@ -25,14 +25,14 @@ LibraryDetection.defer do
25
25
  :class_name => self.name,
26
26
  :category => 'OtherTransaction/ResqueJob') do
27
27
 
28
- if OneApm::Agent.config[:'resque.capture_params']
29
- OneApm::Agent.add_custom_parameters(:job_arguments => args)
28
+ if OneApm::Manager.config[:'resque.capture_params']
29
+ OneApm::Manager.add_custom_parameters(:job_arguments => args)
30
30
  end
31
31
 
32
32
  yield(*args)
33
33
  end
34
34
  ensure
35
- OneApm::Agent.instance.flush_pipe_data
35
+ OneApm::Manager.agent.flush_pipe_data
36
36
  end
37
37
  end
38
38
  end
@@ -64,10 +64,10 @@ LibraryDetection.defer do
64
64
  # Resque::Worker#fork isn't around in Resque 2.x
65
65
  if OneApm::VersionNumber.new(::Resque::VERSION) < OneApm::VersionNumber.new("2.0.0")
66
66
  ::Resque::Worker.class_eval do
67
- if OneApm::Agent.config[:'resque.use_harvest_lock']
68
- ::OneApm::Agent.logger.info 'Installing Resque harvest/fork synchronization'
67
+ if OneApm::Manager.config[:'resque.use_harvest_lock']
68
+ OneApm::Manager.logger.info 'Installing Resque harvest/fork synchronization'
69
69
  def fork_with_oneapm(*args, &block)
70
- OneApm::Agent.instance.synchronize_with_harvest do
70
+ OneApm::Manager.agent.synchronize_with_harvest do
71
71
  fork_without_oneapm(*args, &block)
72
72
 
73
73
  # Reached in parent, not expected in the child since Resque
@@ -82,21 +82,21 @@ LibraryDetection.defer do
82
82
  end
83
83
 
84
84
  ::Resque.before_first_fork do
85
- OneApm::Agent.start(:dispatcher => :resque,
85
+ OneApm::Manager.start(:dispatcher => :resque,
86
86
  :sync_startup => true,
87
87
  :start_channel_listener => true)
88
88
  end
89
89
 
90
90
  ::Resque.before_fork do |job|
91
91
  if ENV['FORK_PER_JOB'] != 'false'
92
- OneApm::Agent::PipeChannelManager.register_report_channel(job.object_id)
92
+ OneApm::Support::ForkedProcessChannel.register_report_channel(job.object_id)
93
93
  end
94
94
  end
95
95
 
96
96
  ::Resque.after_fork do |job|
97
97
  # Only suppress reporting Instance/Busy for forked children
98
98
  # Traced errors UI relies on having the parent process report that metric
99
- OneApm::Agent.instance.after_fork(:report_to_channel => job.object_id,
99
+ OneApm::Manager.agent.after_fork(:report_to_channel => job.object_id,
100
100
  :report_instance_busy => false)
101
101
  end
102
102
  end
@@ -4,11 +4,11 @@ LibraryDetection.defer do
4
4
  @name = :sidekiq
5
5
 
6
6
  depends_on do
7
- defined?(::Sidekiq) && !OneApm::Agent.config[:disable_sidekiq]
7
+ defined?(::Sidekiq) && !OneApm::Manager.config[:disable_sidekiq]
8
8
  end
9
9
 
10
10
  executes do
11
- ::OneApm::Agent.logger.info 'Installing Sidekiq instrumentation'
11
+ OneApm::Manager.logger.info 'Installing Sidekiq instrumentation'
12
12
  end
13
13
 
14
14
  executes do
@@ -25,8 +25,8 @@ LibraryDetection.defer do
25
25
  end
26
26
 
27
27
  perform_action_with_oneapm_trace(trace_args) do
28
- if OneApm::Agent.config[:'sidekiq.capture_params']
29
- OneApm::Agent.add_custom_parameters(:job_arguments => msg['args'])
28
+ if OneApm::Manager.config[:'sidekiq.capture_params']
29
+ OneApm::Manager.add_custom_parameters(:job_arguments => msg['args'])
30
30
  end
31
31
  yield
32
32
  end
@@ -50,7 +50,7 @@ LibraryDetection.defer do
50
50
  :category => 'OtherTransaction/SidekiqJob'
51
51
  }
52
52
  rescue => e
53
- OneApm::Agent.logger.error("Failure during deserializing YAML for Sidekiq::Extensions::DelayedClass", e)
53
+ OneApm::Manager.logger.error("Failure during deserializing YAML for Sidekiq::Extensions::DelayedClass", e)
54
54
  OneApm::SidekiqInstrumentation.default_trace_args(msg)
55
55
  end
56
56
  end
@@ -8,18 +8,18 @@ LibraryDetection.defer do
8
8
  end
9
9
 
10
10
  executes do
11
- ::OneApm::Agent.logger.debug "Installing Passenger event hooks."
11
+ OneApm::Manager.logger.debug "Installing Passenger event hooks."
12
12
 
13
13
  ::PhusionPassenger.on_event(:stopping_worker_process) do
14
- ::OneApm::Agent.logger.debug "Passenger stopping this process, shutdown the agent."
15
- OneApm::Agent.instance.shutdown
14
+ OneApm::Manager.logger.debug "Passenger stopping this process, shutdown the agent."
15
+ OneApm::Manager.agent.shutdown
16
16
  end
17
17
 
18
18
  ::PhusionPassenger.on_event(:starting_worker_process) do |forked|
19
19
  # We want to reset the stats from the stats engine in case any carried
20
20
  # over into the spawned process. Don't clear them in case any were
21
21
  # cached. We do this even in conservative spawning.
22
- OneApm::Agent.instance.after_fork(:force_reconnect => true)
22
+ OneApm::Manager.agent.after_fork(:force_reconnect => true)
23
23
  end
24
24
  end
25
25
  end
@@ -0,0 +1,23 @@
1
+ # encoding: utf-8
2
+
3
+ LibraryDetection.defer do
4
+ named :puma
5
+
6
+ depends_on do
7
+ defined?(::Puma) &&
8
+ defined?(::Puma::Const::VERSION) &&
9
+ ::Puma.respond_to?(:cli_config)
10
+ end
11
+
12
+ executes do
13
+ OneApm::Manager.logger.info 'Installing Puma support'
14
+ end
15
+
16
+ executes do
17
+ hooks = Puma.cli_config.options[:worker_boot] || Puma.cli_config.options[:before_worker_boot]
18
+
19
+ hooks << Proc.new do
20
+ OneApm::Manager.agent.after_fork(:force_reconnect => true)
21
+ end
22
+ end
23
+ end
@@ -8,14 +8,14 @@ LibraryDetection.defer do
8
8
  end
9
9
 
10
10
  executes do
11
- OneApm::Agent.logger.info 'Installing Rainbows instrumentation'
11
+ OneApm::Manager.logger.info 'Installing Rainbows instrumentation'
12
12
  end
13
13
 
14
14
  executes do
15
15
  Rainbows::HttpServer.class_eval do
16
16
  old_worker_loop = instance_method(:worker_loop)
17
17
  define_method(:worker_loop) do |worker|
18
- OneApm::Agent.instance.after_fork(:force_reconnect => true)
18
+ OneApm::Manager.agent.after_fork(:force_reconnect => true)
19
19
  old_worker_loop.bind(self).call(worker)
20
20
  end
21
21
  end
@@ -17,7 +17,7 @@ module OneApm
17
17
  def handle_transaction(endpoint, class_name)
18
18
  return unless endpoint && route = endpoint.route
19
19
  name_transaction(route, class_name)
20
- capture_params(endpoint) if Agent.config[:capture_params]
20
+ capture_params(endpoint) if OneApm::Manager.config[:capture_params]
21
21
  end
22
22
 
23
23
  def name_transaction(route, class_name)
@@ -56,7 +56,7 @@ LibraryDetection.defer do
56
56
  named :grape
57
57
 
58
58
  depends_on do
59
- ::OneApm::Agent.config[:disable_grape] == false
59
+ OneApm::Manager.config[:disable_grape] == false
60
60
  end
61
61
 
62
62
  depends_on do
@@ -65,7 +65,7 @@ LibraryDetection.defer do
65
65
  end
66
66
 
67
67
  executes do
68
- OneApm::Agent.logger.info 'Installing Grape instrumentation'
68
+ OneApm::Manager.logger.info 'Installing Grape instrumentation'
69
69
  instrument_call
70
70
  end
71
71
 
@@ -79,7 +79,7 @@ LibraryDetection.defer do
79
79
  endpoint = env[::OneApm::Agent::Instrumentation::Grape::API_ENDPOINT]
80
80
  ::OneApm::Agent::Instrumentation::Grape.handle_transaction(endpoint, self.class.name)
81
81
  rescue => e
82
- ::OneApm::Agent.logger.warn("Error in Grape instrumentation", e)
82
+ OneApm::Manager.logger.warn("Error in Grape instrumentation", e)
83
83
  end
84
84
  end
85
85
 
@@ -6,12 +6,12 @@ LibraryDetection.defer do
6
6
  @name = :padrino
7
7
 
8
8
  depends_on do
9
- !OneApm::Agent.config[:disable_sinatra] &&
9
+ !OneApm::Manager.config[:disable_sinatra] &&
10
10
  defined?(::Padrino) && defined?(::Padrino::Routing::InstanceMethods)
11
11
  end
12
12
 
13
13
  executes do
14
- ::OneApm::Agent.logger.info 'Installing Padrino instrumentation'
14
+ OneApm::Manager.logger.info 'Installing Padrino instrumentation'
15
15
 
16
16
  # Our Padrino instrumentation relies heavily on the fact that Padrino is
17
17
  # built on Sinatra. Although it wires up a lot of its own routing logic,
@@ -8,7 +8,7 @@ LibraryDetection.defer do
8
8
  @name = :sinatra
9
9
 
10
10
  depends_on do
11
- !OneApm::Agent.config[:disable_sinatra] &&
11
+ !OneApm::Manager.config[:disable_sinatra] &&
12
12
  defined?(::Sinatra) && defined?(::Sinatra::Base) &&
13
13
  Sinatra::Base.private_method_defined?(:dispatch!) &&
14
14
  Sinatra::Base.private_method_defined?(:process_route) &&
@@ -16,7 +16,7 @@ LibraryDetection.defer do
16
16
  end
17
17
 
18
18
  executes do
19
- ::OneApm::Agent.logger.info 'Installing Sinatra instrumentation'
19
+ OneApm::Manager.logger.info 'Installing Sinatra instrumentation'
20
20
  end
21
21
 
22
22
  executes do
@@ -54,7 +54,7 @@ LibraryDetection.defer do
54
54
  end
55
55
  end
56
56
  else
57
- ::OneApm::Agent.logger.info("Skipping auto-injection of middleware for Sinatra - requires Sinatra 1.2.1+")
57
+ OneApm::Manager.logger.info("Skipping auto-injection of middleware for Sinatra - requires Sinatra 1.2.1+")
58
58
  end
59
59
  end
60
60
  end
@@ -90,7 +90,7 @@ module OneApm
90
90
  end
91
91
 
92
92
  def build_with_oneapm(*args, &block)
93
- unless OneApm::Agent.config[:disable_sinatra_auto_middleware]
93
+ unless OneApm::Manager.config[:disable_sinatra_auto_middleware]
94
94
  oneapm_middlewares.each do |middleware_class|
95
95
  try_to_use(self, middleware_class)
96
96
  end
@@ -109,7 +109,7 @@ module OneApm
109
109
  begin
110
110
  env["oneapm.last_route"] = args[0]
111
111
  rescue => e
112
- ::OneApm::Agent.logger.debug("Failed determining last route in Sinatra", e)
112
+ OneApm::Manager.logger.debug("Failed determining last route in Sinatra", e)
113
113
  end
114
114
 
115
115
  process_route_without_oneapm(*args, &block)
@@ -129,13 +129,13 @@ module OneApm
129
129
  "#{self.class.name}/#{txn_name}", :sinatra)
130
130
  end
131
131
  rescue => e
132
- ::OneApm::Agent.logger.debug("Failed during route_eval to set transaction name", e)
132
+ OneApm::Manager.logger.debug("Failed during route_eval to set transaction name", e)
133
133
  end
134
134
 
135
135
  route_eval_without_oneapm(*args, &block)
136
136
  end
137
137
 
138
- def dispatch_with_oneapm #THREAD_LOCAL_ACCESS
138
+ def dispatch_with_oneapm
139
139
  request_params = get_request_params
140
140
  filtered_params = OneApm::Support::ParameterFiltering::apply_filters(request.env, request_params || {})
141
141
 
@@ -151,7 +151,7 @@ module OneApm
151
151
  begin
152
152
  @request.params
153
153
  rescue => e
154
- OneApm::Agent.logger.debug("Failed to get params from Rack request.", e)
154
+ OneApm::Manager.logger.debug("Failed to get params from Rack request.", e)
155
155
  nil
156
156
  end
157
157
  end
@@ -162,7 +162,7 @@ module OneApm
162
162
  # Will only see an error raised if :show_exceptions is true, but
163
163
  # will always see them in the env hash if they occur
164
164
  had_error = env.has_key?('sinatra.error')
165
- ::OneApm::Agent.notice_error(env['sinatra.error']) if had_error
165
+ OneApm::Manager.notice_error(env['sinatra.error']) if had_error
166
166
  end
167
167
 
168
168
  def do_not_trace?