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
@@ -71,7 +71,7 @@ module OneApm
71
71
 
72
72
  # Allow Transaction#with_database_metric_name to override our
73
73
  # collection and operation
74
- def self.overridden_operation_and_collection #THREAD_LOCAL_ACCESS
74
+ def self.overridden_operation_and_collection
75
75
  state = OneApm::TransactionState.tl_get
76
76
  txn = state.current_transaction
77
77
  txn ? txn.instrumentation_state[:datastore_override] : nil
@@ -51,7 +51,7 @@ module OneApm
51
51
 
52
52
  build_metrics(name, collection)
53
53
  rescue => e
54
- OneApm::Agent.logger.debug("Failure during Mongo metric generation", e)
54
+ OneApm::Manager.logger.debug("Failure during Mongo metric generation", e)
55
55
  []
56
56
  end
57
57
 
@@ -97,7 +97,7 @@ module OneApm
97
97
  if command_key
98
98
  command_key.to_sym
99
99
  else
100
- OneApm::Agent.increment_metric("Supportability/Mongo/UnknownCollection")
100
+ OneApm::Manager.increment_metric("Supportability/Mongo/UnknownCollection")
101
101
  payload[:selector].first.first unless command_key
102
102
  end
103
103
  end
@@ -108,7 +108,7 @@ module OneApm
108
108
  if command_key
109
109
  payload[:selector][command_key]
110
110
  else
111
- OneApm::Agent.increment_metric("Supportability/Mongo/UnknownCollection")
111
+ OneApm::Manager.increment_metric("Supportability/Mongo/UnknownCollection")
112
112
  CMD_COLLECTION
113
113
  end
114
114
  end
@@ -23,7 +23,7 @@ module OneApm
23
23
  ]
24
24
 
25
25
  def self.format(statement, operation)
26
- return nil unless OneApm::Agent.config[:'mongo.capture_queries']
26
+ return nil unless OneApm::Manager.config[:'mongo.capture_queries']
27
27
 
28
28
  result = { :operation => operation }
29
29
 
@@ -41,7 +41,7 @@ module OneApm
41
41
  end
42
42
 
43
43
  def self.obfuscate(statement)
44
- statement = Obfuscator.obfuscate_statement(statement) if OneApm::Agent.config[:'mongo.obfuscate_queries']
44
+ statement = Obfuscator.obfuscate_statement(statement) if OneApm::Manager.config[:'mongo.obfuscate_queries']
45
45
  statement
46
46
  end
47
47
  end
@@ -6,10 +6,7 @@ module OneApm
6
6
 
7
7
  attr_accessor :starting_pid
8
8
 
9
- # Inject target for after_fork call to avoid spawning thread in tests
10
- def initialize(events, after_forker = OneApm::Agent)
11
- # We intentionally don't set our pid as started at this point.
12
- # Startup routines must call mark_started when they consider us set!
9
+ def initialize(events, after_forker = OneApm::Manager)
13
10
  @starting_pid = nil
14
11
  @after_forker = after_forker
15
12
 
@@ -33,11 +30,11 @@ module OneApm
33
30
  end
34
31
 
35
32
  def restart_in_children_enabled?
36
- OneApm::Agent.config[:restart_thread_in_children]
33
+ OneApm::Manager.config[:restart_thread_in_children]
37
34
  end
38
35
 
39
36
  def harvest_thread_enabled?
40
- !OneApm::Agent.config[:disable_harvest_thread]
37
+ !OneApm::Manager.config[:disable_harvest_thread]
41
38
  end
42
39
 
43
40
  def restart_harvest_thread
@@ -14,14 +14,14 @@ module OneApm
14
14
  end
15
15
 
16
16
  def setup_obfuscator
17
- @obfuscator = OneApm::Agent::Obfuscator.new(OneApm::Agent.config[:encoding_key])
17
+ @obfuscator = OneApm::Agent::Obfuscator.new(OneApm::Manager.config[:encoding_key])
18
18
  end
19
19
 
20
20
  def deserialize_header(encoded_header, key)
21
21
  decoded_header = obfuscator.deobfuscate(encoded_header)
22
22
  OneApm::JSONWrapper.load(decoded_header)
23
23
  rescue => err
24
- OneApm::Agent.logger.debug("Failure deserializing encoded header '#{key}' in #{self.class}, #{err.class}, #{err.message}")
24
+ OneApm::Manager.logger.debug("Failure deserializing encoded header '#{key}' in #{self.class}, #{err.class}, #{err.message}")
25
25
  nil
26
26
  end
27
27
 
@@ -16,75 +16,75 @@ module OneApm
16
16
  end
17
17
 
18
18
  def log_configuration
19
- OneApm::Agent.logger.debug("JS agent loader requested: #{OneApm::Agent.config[:'browser_monitoring.loader']}",
20
- "JS agent loader debug: #{OneApm::Agent.config[:'browser_monitoring.debug']}",
21
- "JS agent loader version: #{OneApm::Agent.config[:'browser_monitoring.loader_version']}")
19
+ OneApm::Manager.logger.debug("JS agent loader requested: #{OneApm::Manager.config[:'browser_monitoring.loader']}",
20
+ "JS agent loader debug: #{OneApm::Manager.config[:'browser_monitoring.debug']}",
21
+ "JS agent loader version: #{OneApm::Manager.config[:'browser_monitoring.loader_version']}")
22
22
 
23
- if !OneApm::Agent.config[:'rum.enabled']
24
- OneApm::Agent.logger.debug("Real User Monitoring is disabled for this agent. Edit your configuration to change this.")
23
+ if !OneApm::Manager.config[:'rum.enabled']
24
+ OneApm::Manager.logger.debug("Real User Monitoring is disabled for this agent. Edit your configuration to change this.")
25
25
  end
26
26
  end
27
27
 
28
28
  def enabled?
29
- Agent.config[:'rum.enabled'] && !!Agent.config[:beacon]
29
+ OneApm::Manager.config[:'rum.enabled'] && !!Manager.config[:beacon]
30
30
  end
31
31
 
32
32
  def obfuscator
33
- @obfuscator ||= OneApm::Agent::Obfuscator.new(OneApm::Agent.config[:license_key], RUM_KEY_LENGTH)
33
+ @obfuscator ||= OneApm::Agent::Obfuscator.new(OneApm::Manager.config[:license_key], RUM_KEY_LENGTH)
34
34
  end
35
35
 
36
36
  def js_enabled_and_ready?
37
37
  if !enabled?
38
- ::OneApm::Agent.logger.log_once(:debug, :js_agent_disabled,
38
+ OneApm::Manager.logger.log_once(:debug, :js_agent_disabled,
39
39
  "JS agent instrumentation is disabled.")
40
40
  false
41
41
  elsif missing_config?(:js_agent_loader)
42
- ::OneApm::Agent.logger.log_once(:debug, :missing_js_agent_loader,
42
+ OneApm::Manager.logger.log_once(:debug, :missing_js_agent_loader,
43
43
  "Missing :js_agent_loader. Skipping browser instrumentation.")
44
44
  false
45
45
  elsif missing_config?(:beacon)
46
- ::OneApm::Agent.logger.log_once(:debug, :missing_beacon,
46
+ OneApm::Manager.logger.log_once(:debug, :missing_beacon,
47
47
  "Beacon configuration not received (yet?). Skipping browser instrumentation.")
48
48
  false
49
49
  elsif missing_config?(:browser_key)
50
- ::OneApm::Agent.logger.log_once(:debug, :missing_browser_key,
50
+ OneApm::Manager.logger.log_once(:debug, :missing_browser_key,
51
51
  "Browser key is not set. Skipping browser instrumentation.")
52
52
  false
53
53
  else
54
54
  true
55
55
  end
56
56
  rescue => e
57
- ::OneApm::Agent.logger.debug "Failure during 'js_enabled_and_ready?'", e
57
+ OneApm::Manager.logger.debug "Failure during 'js_enabled_and_ready?'", e
58
58
  false
59
59
  end
60
60
 
61
61
  def insert_js?(state)
62
62
  if !state.current_transaction
63
- ::OneApm::Agent.logger.debug "Not in transaction. Skipping browser instrumentation."
63
+ OneApm::Manager.logger.debug "Not in transaction. Skipping browser instrumentation."
64
64
  false
65
65
  elsif !state.is_transaction_traced?
66
- ::OneApm::Agent.logger.debug "Transaction is not traced. Skipping browser instrumentation."
66
+ OneApm::Manager.logger.debug "Transaction is not traced. Skipping browser instrumentation."
67
67
  false
68
68
  elsif !state.is_execution_traced?
69
- ::OneApm::Agent.logger.debug "Execution is not traced. Skipping browser instrumentation."
69
+ OneApm::Manager.logger.debug "Execution is not traced. Skipping browser instrumentation."
70
70
  false
71
71
  elsif state.current_transaction.ignore_enduser?
72
- ::OneApm::Agent.logger.debug "Ignore end user for this transaction is set. Skipping browser instrumentation."
72
+ OneApm::Manager.logger.debug "Ignore end user for this transaction is set. Skipping browser instrumentation."
73
73
  false
74
74
  else
75
75
  true
76
76
  end
77
77
  rescue => e
78
- ::OneApm::Agent.logger.debug "Failure during insert_js", e
78
+ OneApm::Manager.logger.debug "Failure during insert_js", e
79
79
  false
80
80
  end
81
81
 
82
82
  def missing_config?(key)
83
- value = OneApm::Agent.config[key]
83
+ value = OneApm::Manager.config[key]
84
84
  value.nil? || value.empty?
85
85
  end
86
86
 
87
- def browser_timing_header #THREAD_LOCAL_ACCESS
87
+ def browser_timing_header
88
88
  return '' unless js_enabled_and_ready? # fast exit
89
89
 
90
90
  state = OneApm::TransactionState.tl_get
@@ -96,12 +96,12 @@ module OneApm
96
96
 
97
97
  bt_config + browser_timing_loader
98
98
  rescue => e
99
- ::OneApm::Agent.logger.debug "Failure during RUM browser_timing_header construction", e
99
+ OneApm::Manager.logger.debug "Failure during RUM browser_timing_header construction", e
100
100
  ''
101
101
  end
102
102
 
103
103
  def browser_timing_loader
104
- html_safe_if_needed("\n<script type=\"text/javascript\" src=\"#{Agent.config[:js_agent_loader]}\"></script>")
104
+ html_safe_if_needed("\n<script type=\"text/javascript\" src=\"#{Manager.config[:js_agent_loader]}\"></script>")
105
105
  end
106
106
 
107
107
  def browser_timing_config(state)
@@ -133,14 +133,14 @@ module OneApm
133
133
  timings = state.timings
134
134
 
135
135
  data = {
136
- BEACON_KEY => OneApm::Agent.config[:beacon],
137
- ERROR_BEACON_KEY => OneApm::Agent.config[:error_beacon],
138
- LICENSE_KEY_KEY => OneApm::Agent.config[:browser_key],
139
- APPLICATIONID_KEY => OneApm::Agent.config[:application_id],
136
+ BEACON_KEY => OneApm::Manager.config[:beacon],
137
+ ERROR_BEACON_KEY => OneApm::Manager.config[:error_beacon],
138
+ LICENSE_KEY_KEY => OneApm::Manager.config[:browser_key],
139
+ APPLICATIONID_KEY => OneApm::Manager.config[:application_id],
140
140
  TRANSACTION_NAME_KEY => obfuscator.obfuscate(timings.transaction_name_or_unknown),
141
141
  QUEUE_TIME_KEY => timings.queue_time_in_millis,
142
142
  APPLICATION_TIME_KEY => timings.app_time_in_millis,
143
- AGENT_KEY => OneApm::Agent.config[:js_agent_file]
143
+ AGENT_KEY => OneApm::Manager.config[:js_agent_file]
144
144
  }
145
145
 
146
146
  add_ssl_for_http(data)
@@ -150,7 +150,7 @@ module OneApm
150
150
  end
151
151
 
152
152
  def add_ssl_for_http(data)
153
- ssl_for_http = OneApm::Agent.config[:'browser_monitoring.ssl_for_http']
153
+ ssl_for_http = OneApm::Manager.config[:'browser_monitoring.ssl_for_http']
154
154
  unless ssl_for_http.nil?
155
155
  data[SSL_FOR_HTTP_KEY] = ssl_for_http
156
156
  end
@@ -165,7 +165,7 @@ module OneApm
165
165
  end
166
166
 
167
167
  def include_custom_parameters?(txn)
168
- has_custom_parameters?(txn) && OneApm::Agent.config[:'browser_monitoring.capture_attributes']
168
+ has_custom_parameters?(txn) && OneApm::Manager.config[:'browser_monitoring.capture_attributes']
169
169
  end
170
170
 
171
171
  def has_custom_parameters?(txn)
@@ -29,7 +29,7 @@ module OneApm
29
29
  def enabled?
30
30
  if @name
31
31
  config_key = "disable_#{@name}_sampler"
32
- !(Agent.config[config_key])
32
+ !(Manager.config[config_key])
33
33
  else
34
34
  true
35
35
  end
@@ -23,9 +23,6 @@ module OneApm
23
23
  self.any? { |s| s.class == sampler_class }
24
24
  end
25
25
 
26
- # adds samplers to the sampler collection so that they run every
27
- # minute. This is dynamically recognized by any class that
28
- # subclasses OneApm::Agent::Sampler
29
26
  def load_samplers
30
27
  Sampler.sampler_classes.each do |subclass|
31
28
  add_sampler(subclass)
@@ -38,8 +35,8 @@ module OneApm
38
35
  sampler.poll
39
36
  false
40
37
  rescue => e
41
- ::OneApm::Agent.logger.warn("Removing #{sampler} from list", e)
42
- true # remove the bad sampler
38
+ OneApm::Manager.logger.warn("Removing #{sampler} from list", e)
39
+ true
43
40
  end
44
41
  end
45
42
  end
@@ -51,14 +48,14 @@ module OneApm
51
48
  sampler = sampler_class.new
52
49
  sampler.setup_events(@event_listener) if sampler.respond_to?(:setup_events)
53
50
  @samplers << sampler
54
- ::OneApm::Agent.logger.debug("Registered #{sampler_class.name} for harvest time sampling.")
51
+ OneApm::Manager.logger.debug("Registered #{sampler_class.name} for harvest time sampling.")
55
52
  else
56
- ::OneApm::Agent.logger.debug("#{sampler_class.name} not supported on this platform.")
53
+ OneApm::Manager.logger.debug("#{sampler_class.name} not supported on this platform.")
57
54
  end
58
55
  rescue OneApm::Agent::Sampler::Unsupported => e
59
- ::OneApm::Agent.logger.info("#{sampler_class.name} not available: #{e}")
56
+ OneApm::Manager.logger.info("#{sampler_class.name} not available: #{e}")
60
57
  rescue => e
61
- ::OneApm::Agent.logger.error("Error registering sampler:", e)
58
+ OneApm::Manager.logger.error("Error registering sampler:", e)
62
59
  end
63
60
  end
64
61
  end
@@ -31,12 +31,12 @@ module OneApm
31
31
  systemtime = t.stime - @last_stime
32
32
 
33
33
  if systemtime >= 0
34
- OneApm::Agent.record_metric("CPU/System Time", systemtime)
35
- OneApm::Agent.record_metric("CPU/System/Utilization", systemtime / (elapsed * @processor_count))
34
+ OneApm::Manager.record_metric("CPU/System Time", systemtime)
35
+ OneApm::Manager.record_metric("CPU/System/Utilization", systemtime / (elapsed * @processor_count))
36
36
  end
37
37
  if usertime >= 0
38
- OneApm::Agent.record_metric("CPU/User Time", usertime)
39
- OneApm::Agent.record_metric("CPU/User/Utilization", usertime / (elapsed * @processor_count))
38
+ OneApm::Manager.record_metric("CPU/User Time", usertime)
39
+ OneApm::Manager.record_metric("CPU/User/Utilization", usertime / (elapsed * @processor_count))
40
40
  end
41
41
  end
42
42
  @last_utime = t.utime
@@ -23,17 +23,17 @@ module OneApm
23
23
  end
24
24
 
25
25
  def initialize
26
- raise Unsupported, "DJ queue sampler disabled" if Agent.config[:disable_dj]
26
+ raise Unsupported, "DJ queue sampler disabled" if OneApm::Manager.config[:disable_dj]
27
27
  raise Unsupported, "DJ queue sampling unsupported with backend '#{::Delayed::Worker.backend}'" unless self.class.supported_backend?
28
28
  raise Unsupported, "No DJ worker present. Skipping DJ queue sampler" unless OneApm::DelayedJobInjection.worker_name
29
29
  end
30
30
 
31
31
  def record_failed_jobs(value)
32
- OneApm::Agent.record_metric("Workers/DelayedJob/failed_jobs", value)
32
+ OneApm::Manager.record_metric("Workers/DelayedJob/failed_jobs", value)
33
33
  end
34
34
 
35
35
  def record_locked_jobs(value)
36
- OneApm::Agent.record_metric("Workers/DelayedJob/locked_jobs", value)
36
+ OneApm::Manager.record_metric("Workers/DelayedJob/locked_jobs", value)
37
37
  end
38
38
 
39
39
  FAILED_QUERY = 'failed_at is not NULL'.freeze
@@ -73,7 +73,7 @@ module OneApm
73
73
  counts << record_counts_by("priority")
74
74
 
75
75
  all_metric = "Workers/DelayedJob/queue_length/all"
76
- OneApm::Agent.record_metric(all_metric, counts.max)
76
+ OneApm::Manager.record_metric(all_metric, counts.max)
77
77
  end
78
78
 
79
79
  QUEUE_QUERY_CONDITION = 'run_at <= ? and failed_at is NULL'.freeze
@@ -84,7 +84,7 @@ module OneApm
84
84
  all_count += count
85
85
  column_val = "default" if column_val.nil? || column_val == ""
86
86
  metric = "Workers/DelayedJob/queue_length/#{metric_segment}/#{column_val}"
87
- OneApm::Agent.record_metric(metric, count)
87
+ OneApm::Manager.record_metric(metric, count)
88
88
  end
89
89
  all_count
90
90
  end
@@ -18,10 +18,10 @@ module OneApm
18
18
  elsif platform =~ /linux/
19
19
  @sampler = ProcStatus.new
20
20
  if !@sampler.can_run?
21
- ::OneApm::Agent.logger.debug "Error attempting to use /proc/#{$$}/status file for reading memory. Using ps command instead."
21
+ OneApm::Manager.logger.debug "Error attempting to use /proc/#{$$}/status file for reading memory. Using ps command instead."
22
22
  @sampler = ShellPS.new("ps -o rsz")
23
23
  else
24
- ::OneApm::Agent.logger.debug "Using /proc/#{$$}/status for reading process memory."
24
+ OneApm::Manager.logger.debug "Using /proc/#{$$}/status for reading process memory."
25
25
  end
26
26
  elsif platform =~ /darwin9/ # 10.5
27
27
  @sampler = ShellPS.new("ps -o rsz")
@@ -55,7 +55,7 @@ module OneApm
55
55
  def poll
56
56
  sample = @sampler.get_sample
57
57
  if sample
58
- OneApm::Agent.record_metric("Memory/Used", sample)
58
+ OneApm::Manager.record_metric("Memory/Used", sample)
59
59
  end
60
60
  end
61
61
 
@@ -71,12 +71,12 @@ module OneApm
71
71
  begin
72
72
  m = get_memory
73
73
  if m.nil?
74
- ::OneApm::Agent.logger.warn "Unable to get the resident memory for process #{$$}. Disabling memory sampler."
74
+ OneApm::Manager.logger.warn "Unable to get the resident memory for process #{$$}. Disabling memory sampler."
75
75
  @broken = true
76
76
  end
77
77
  return m
78
78
  rescue => e
79
- ::OneApm::Agent.logger.warn "Unable to get the resident memory for process #{$$}. Disabling memory sampler.", e
79
+ OneApm::Manager.logger.warn "Unable to get the resident memory for process #{$$}. Disabling memory sampler.", e
80
80
  @broken = true
81
81
  return nil
82
82
  end
@@ -14,7 +14,7 @@ module OneApm
14
14
 
15
15
  def poll
16
16
  live_objects = ObjectSpace.live_objects
17
- OneApm::Agent.record_metric("GC/objects", live_objects)
17
+ OneApm::Manager.record_metric("GC/objects", live_objects)
18
18
  end
19
19
  end
20
20
  end
@@ -47,7 +47,7 @@ module OneApm
47
47
  end
48
48
  end
49
49
 
50
- def record_gc_runs_metric(snapshot, txn_count) #THREAD_LOCAL_ACCESS
50
+ def record_gc_runs_metric(snapshot, txn_count)
51
51
  if snapshot.gc_total_time || snapshot.gc_runs
52
52
  if snapshot.gc_total_time
53
53
  gc_time = snapshot.gc_total_time - @last_snapshot.gc_total_time.to_f
@@ -56,7 +56,7 @@ module OneApm
56
56
  gc_runs = snapshot.gc_runs - @last_snapshot.gc_runs
57
57
  end
58
58
  wall_clock_time = snapshot.taken_at - @last_snapshot.taken_at
59
- OneApm::Agent.instance.stats_engine.tl_record_unscoped_metrics(GC_RUNS_METRIC) do |stats|
59
+ OneApm::Manager.agent.stats_engine.tl_record_unscoped_metrics(GC_RUNS_METRIC) do |stats|
60
60
  stats.call_count += txn_count
61
61
  stats.total_call_time += gc_runs if gc_runs
62
62
  stats.total_exclusive_time += gc_time if gc_time
@@ -66,19 +66,19 @@ module OneApm
66
66
  end
67
67
  end
68
68
 
69
- def record_delta(snapshot, key, metric, txn_count) #THREAD_LOCAL_ACCESS
69
+ def record_delta(snapshot, key, metric, txn_count)
70
70
  value = snapshot.send(key)
71
71
  if value
72
72
  delta = value - @last_snapshot.send(key)
73
- OneApm::Agent.instance.stats_engine.tl_record_unscoped_metrics(metric) do |stats|
73
+ OneApm::Manager.agent.stats_engine.tl_record_unscoped_metrics(metric) do |stats|
74
74
  stats.call_count += txn_count
75
75
  stats.total_call_time += delta
76
76
  end
77
77
  end
78
78
  end
79
79
 
80
- def record_gauge_metric(metric_name, value) #THREAD_LOCAL_ACCESS
81
- OneApm::Agent.instance.stats_engine.tl_record_unscoped_metrics(metric_name) do |stats|
80
+ def record_gauge_metric(metric_name, value)
81
+ OneApm::Manager.agent.stats_engine.tl_record_unscoped_metrics(metric_name) do |stats|
82
82
  stats.call_count = value
83
83
  stats.sum_of_squares = 1
84
84
  end
@@ -14,7 +14,7 @@ module OneApm
14
14
  events.subscribe(:before_call, &method(:on_before_call))
15
15
  end
16
16
 
17
- def on_before_call(request) #THREAD_LOCAL_ACCESS
17
+ def on_before_call(request)
18
18
  encoded_header = request[SYNTHETICS_HEADER_KEY]
19
19
  return unless encoded_header
20
20
 
@@ -37,7 +37,7 @@ module OneApm
37
37
 
38
38
  def is_trusted?(incoming_payload)
39
39
  account_id = incoming_payload[1]
40
- OneApm::Agent.config[:trusted_account_ids].include?(account_id)
40
+ OneApm::Manager.config[:trusted_account_ids].include?(account_id)
41
41
  end
42
42
 
43
43
  def is_valid_payload?(incoming_payload)