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
@@ -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?