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
@@ -6,17 +6,17 @@ module OneApm
6
6
  class AgentThread
7
7
 
8
8
  def self.create(label, &blk)
9
- ::OneApm::Agent.logger.debug("Creating OneApm thread: #{label}")
9
+ OneApm::Manager.logger.debug("Creating OneApm thread: #{label}")
10
10
  wrapped_blk = Proc.new do
11
11
  begin
12
12
  blk.call
13
13
  rescue => e
14
- ::OneApm::Agent.logger.error("Thread #{label} exited with error", e)
14
+ OneApm::Manager.logger.error("Thread #{label} exited with error", e)
15
15
  rescue Exception => e
16
- ::OneApm::Agent.logger.error("Thread #{label} exited with exception. Re-raising in case of interupt.", e)
16
+ OneApm::Manager.logger.error("Thread #{label} exited with exception. Re-raising in case of interupt.", e)
17
17
  raise
18
18
  ensure
19
- ::OneApm::Agent.logger.debug("Exiting OneApm thread: #{label}")
19
+ OneApm::Manager.logger.debug("Exiting OneApm thread: #{label}")
20
20
  end
21
21
  end
22
22
 
@@ -31,7 +31,7 @@ module OneApm
31
31
  backing_thread_class.list
32
32
  end
33
33
 
34
- def self.bucket_thread(thread, profile_agent_code) #THREAD_LOCAL_ACCESS
34
+ def self.bucket_thread(thread, profile_agent_code)
35
35
  if thread.key?(:oneapm_label)
36
36
  profile_agent_code ? :agent : :ignore
37
37
  else
@@ -50,7 +50,7 @@ module OneApm
50
50
  begin
51
51
  bt = thread.backtrace
52
52
  rescue Exception => e
53
- ::OneApm::Agent.logger.debug("Failed to backtrace #{thread.inspect}: #{e.class.name}: #{e.to_s}")
53
+ OneApm::Manager.logger.debug("Failed to backtrace #{thread.inspect}: #{e.class.name}: #{e.to_s}")
54
54
  end
55
55
  return nil unless bt
56
56
  bt.reject! { |t| t.include?('one_apm') } unless profile_agent_code
@@ -24,11 +24,11 @@ module OneApm
24
24
 
25
25
  @running = false
26
26
  @profile_agent_code = false
27
- @worker_loop = OneApm::Agent::WorkerLoop.new
27
+ @worker_loop = OneApm::Support::WorkerLoop.new
28
28
 
29
29
  # Memoize overhead % to avoid getting stale OR looked up every poll
30
- @overhead_percent_threshold = OneApm::Agent.config[:'xray_session.max_profile_overhead']
31
- OneApm::Agent.config.register_callback(:'xray_session.max_profile_overhead') do |new_value|
30
+ @overhead_percent_threshold = OneApm::Manager.config[:'xray_session.max_profile_overhead']
31
+ OneApm::Manager.config.register_callback(:'xray_session.max_profile_overhead') do |new_value|
32
32
  @overhead_percent_threshold = new_value
33
33
  end
34
34
 
@@ -45,11 +45,11 @@ module OneApm
45
45
 
46
46
  def subscribe(transaction_name, command_arguments={})
47
47
  if !self.class.is_supported?
48
- OneApm::Agent.logger.debug("Backtracing not supported, so not subscribing transaction '#{transaction_name}'")
48
+ OneApm::Manager.logger.debug("Backtracing not supported, so not subscribing transaction '#{transaction_name}'")
49
49
  return
50
50
  end
51
51
 
52
- OneApm::Agent.logger.debug("Backtrace Service subscribing transaction '#{transaction_name}'")
52
+ OneApm::Manager.logger.debug("Backtrace Service subscribing transaction '#{transaction_name}'")
53
53
 
54
54
  profile = ThreadProfile.new(command_arguments)
55
55
 
@@ -65,7 +65,7 @@ module OneApm
65
65
  def unsubscribe(transaction_name)
66
66
  return unless self.class.is_supported?
67
67
 
68
- OneApm::Agent.logger.debug("Backtrace Service unsubscribing transaction '#{transaction_name}'")
68
+ OneApm::Manager.logger.debug("Backtrace Service unsubscribing transaction '#{transaction_name}'")
69
69
  @lock.synchronize do
70
70
  @profiles.delete(transaction_name)
71
71
  if @profiles.empty?
@@ -188,7 +188,7 @@ module OneApm
188
188
  if @buffer[thread].length < MAX_BUFFER_LENGTH
189
189
  @buffer[thread] << [timestamp, backtrace]
190
190
  else
191
- OneApm::Agent.increment_metric('Supportability/XraySessions/DroppedBacktraces')
191
+ OneApm::Manager.increment_metric('Supportability/XraySessions/DroppedBacktraces')
192
192
  end
193
193
  end
194
194
  end
@@ -242,13 +242,13 @@ module OneApm
242
242
  end
243
243
 
244
244
  def record_polling_time(now, poll_start)
245
- OneApm::Agent.record_metric('Supportability/ThreadProfiler/PollingTime', now - poll_start)
245
+ OneApm::Manager.record_metric('Supportability/ThreadProfiler/PollingTime', now - poll_start)
246
246
  end
247
247
 
248
248
  def record_skew(poll_start)
249
249
  if @last_poll
250
250
  skew = poll_start - @last_poll - worker_loop.period
251
- OneApm::Agent.record_metric('Supportability/ThreadProfiler/Skew', skew)
251
+ OneApm::Manager.record_metric('Supportability/ThreadProfiler/Skew', skew)
252
252
  end
253
253
  @last_poll = poll_start
254
254
  end
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'set'
4
- require 'one_apm/agent/event/worker_loop'
4
+ require 'one_apm/support/event/worker_loop'
5
5
  require 'one_apm/agent/threading/backtrace_node'
6
6
 
7
7
  # Data structure for representing a thread profile
@@ -84,10 +84,10 @@ module OneApm
84
84
  end
85
85
  end
86
86
 
87
- def convert_N_trace_nodes_to_arrays(count_to_keep) #THREAD_LOCAL_ACCESS
87
+ def convert_N_trace_nodes_to_arrays(count_to_keep)
88
88
  all_nodes = @traces.values.map { |n| n.flattened }.flatten
89
89
 
90
- OneApm::Agent.instance.stats_engine.
90
+ OneApm::Manager.agent.stats_engine.
91
91
  tl_record_supportability_metric_count("ThreadProfiler/NodeCount", all_nodes.size)
92
92
 
93
93
  all_nodes.sort! do |a, b|
@@ -4,8 +4,8 @@ module OneApm
4
4
  module Helper
5
5
 
6
6
  def handle_serialization_error(method, e)
7
- OneApm::Agent.increment_metric("Supportability/serialization_failure")
8
- OneApm::Agent.increment_metric("Supportability/serialization_failure/#{method}")
7
+ OneApm::Manager.increment_metric("Supportability/serialization_failure")
8
+ OneApm::Manager.increment_metric("Supportability/serialization_failure/#{method}")
9
9
  msg = "Failed to serialize #{method} data using #{@marshaller.class.to_s}: #{e.inspect}"
10
10
  error = SerializationError.new(msg)
11
11
  error.set_backtrace(e.backtrace)
@@ -15,11 +15,11 @@ module OneApm
15
15
  def record_timing_supportability_metrics(method, start_ts, serialize_finish_ts)
16
16
  serialize_time = serialize_finish_ts && (serialize_finish_ts - start_ts)
17
17
  duration = (Time.now - start_ts).to_f
18
- OneApm::Agent.record_metric("Supportability/invoke_remote", duration)
19
- OneApm::Agent.record_metric("Supportability/invoke_remote/#{method.to_s}", duration)
18
+ OneApm::Manager.record_metric("Supportability/invoke_remote", duration)
19
+ OneApm::Manager.record_metric("Supportability/invoke_remote/#{method.to_s}", duration)
20
20
  if serialize_time
21
- OneApm::Agent.record_metric("Supportability/invoke_remote_serialize", serialize_time)
22
- OneApm::Agent.record_metric("Supportability/invoke_remote_serialize/#{method.to_s}", serialize_time)
21
+ OneApm::Manager.record_metric("Supportability/invoke_remote_serialize", serialize_time)
22
+ OneApm::Manager.record_metric("Supportability/invoke_remote_serialize/#{method.to_s}", serialize_time)
23
23
  end
24
24
  end
25
25
 
@@ -38,11 +38,11 @@ module OneApm
38
38
  ]
39
39
  # we may not have an item count, in which case, just record 0 for the exclusive time
40
40
  item_count ||= 0
41
- OneApm::Agent.instance.stats_engine.tl_record_unscoped_metrics(metrics, size_bytes, item_count)
41
+ OneApm::Manager.agent.stats_engine.tl_record_unscoped_metrics(metrics, size_bytes, item_count)
42
42
  end
43
43
 
44
44
  def log_and_return_response(response)
45
- ::OneApm::Agent.logger.debug "Received response, status: #{response.code}, encoding: '#{response['content-encoding']}'"
45
+ OneApm::Manager.logger.debug "Received response, status: #{response.code}, encoding: '#{response['content-encoding']}'"
46
46
 
47
47
  case response
48
48
  when Net::HTTPSuccess
@@ -82,7 +82,7 @@ module OneApm
82
82
  # If we've gotten this far, we don't want this error to propagate and
83
83
  # make this post appear to have been non-successful, which would trigger
84
84
  # re-aggregation of the same metric data into the next post, so just log
85
- OneApm::Agent.logger.error("Failed to fill metric ID cache from response, error details follow ", e)
85
+ OneApm::Manager.logger.error("Failed to fill metric ID cache from response, error details follow ", e)
86
86
  end
87
87
 
88
88
  # The collector wants to recieve metric data in a format that's different
@@ -109,7 +109,7 @@ module OneApm
109
109
  @marshaller.dump(data)
110
110
  true
111
111
  rescue StandardError, SystemStackError => e
112
- OneApm::Agent.logger.warn("Unable to marshal environment report on connect.", e)
112
+ OneApm::Manager.logger.warn("Unable to marshal environment report on connect.", e)
113
113
  false
114
114
  end
115
115
 
@@ -74,14 +74,14 @@ module OneApm
74
74
  begin
75
75
  attempts += 1
76
76
  conn = http_connection
77
- ::OneApm::Agent.logger.debug "Sending request to #{opts[:collector]}#{opts[:uri]}"
77
+ OneApm::Manager.logger.debug "Sending request to #{opts[:collector]}#{opts[:uri]}"
78
78
  OneApm::TimerLib.timeout(@request_timeout) do
79
79
  response = conn.request(request)
80
80
  end
81
81
  rescue *CONNECTION_ERRORS => e
82
82
  close_shared_connection
83
83
  if attempts < max_attempts
84
- ::OneApm::Agent.logger.debug("Retrying request to #{opts[:collector]}#{opts[:uri]} after #{e}")
84
+ OneApm::Manager.logger.debug("Retrying request to #{opts[:collector]}#{opts[:uri]} after #{e}")
85
85
  retry
86
86
  else
87
87
  raise ServerConnectionException, "Recoverable error talking to #{@collector} after #{attempts} attempts: #{e}"
@@ -97,7 +97,7 @@ module OneApm
97
97
  begin
98
98
  t0 = Time.now
99
99
  @in_session = true
100
- if OneApm::Agent.config[:aggressive_keepalive]
100
+ if OneApm::Manager.config[:aggressive_keepalive]
101
101
  session_with_keepalive(&block)
102
102
  else
103
103
  session_without_keepalive(&block)
@@ -141,7 +141,7 @@ module OneApm
141
141
 
142
142
  def close_shared_connection
143
143
  if @shared_tcp_connection
144
- ::OneApm::Agent.logger.debug("Closing shared TCP connection to #{@shared_tcp_connection.address}:#{@shared_tcp_connection.port}")
144
+ OneApm::Manager.logger.debug("Closing shared TCP connection to #{@shared_tcp_connection.address}:#{@shared_tcp_connection.port}")
145
145
  @shared_tcp_connection.finish if @shared_tcp_connection.started?
146
146
  @shared_tcp_connection = nil
147
147
  end
@@ -151,8 +151,8 @@ module OneApm
151
151
  # We use Timeout explicitly instead of this
152
152
  conn.read_timeout = nil
153
153
 
154
- if conn.respond_to?(:keep_alive_timeout) && OneApm::Agent.config[:aggressive_keepalive]
155
- conn.keep_alive_timeout = OneApm::Agent.config[:keep_alive_timeout]
154
+ if conn.respond_to?(:keep_alive_timeout) && OneApm::Manager.config[:aggressive_keepalive]
155
+ conn.keep_alive_timeout = OneApm::Manager.config[:keep_alive_timeout]
156
156
  end
157
157
  end
158
158
 
@@ -163,7 +163,7 @@ module OneApm
163
163
  end
164
164
 
165
165
  def start_connection(conn)
166
- OneApm::Agent.logger.debug("Opening TCP connection to #{conn.address}:#{conn.port}")
166
+ OneApm::Manager.logger.debug("Opening TCP connection to #{conn.address}:#{conn.port}")
167
167
  OneApm::TimerLib.timeout(@request_timeout) { conn.start }
168
168
  conn
169
169
  end
@@ -175,10 +175,10 @@ module OneApm
175
175
  proxy_server.user, proxy_server.password)
176
176
 
177
177
  conn = http_class.new((@collector.ip || @collector.name), @collector.port)
178
- setup_connection_for_ssl(conn) if Agent.config[:ssl]
178
+ setup_connection_for_ssl(conn) if OneApm::Manager.config[:ssl]
179
179
  setup_connection_timeouts(conn)
180
180
 
181
- ::OneApm::Agent.logger.debug("Created net/http handle to #{conn.address}:#{conn.port}")
181
+ OneApm::Manager.logger.debug("Created net/http handle to #{conn.address}:#{conn.port}")
182
182
  conn
183
183
  end
184
184
 
@@ -198,7 +198,7 @@ module OneApm
198
198
  def ssl_cert_store
199
199
  path = cert_file_path
200
200
  if !@ssl_cert_store || path != @cached_cert_store_path
201
- ::OneApm::Agent.logger.debug("Creating SSL certificate store from file at #{path}")
201
+ OneApm::Manager.logger.debug("Creating SSL certificate store from file at #{path}")
202
202
  @ssl_cert_store = OpenSSL::X509::Store.new
203
203
  @ssl_cert_store.add_file(path)
204
204
  @cached_cert_store_path = path
@@ -209,8 +209,8 @@ module OneApm
209
209
  # The path to the certificate file used to verify the SSL
210
210
  # connection if verify_peer is enabled
211
211
  def cert_file_path
212
- if path_override = OneApm::Agent.config[:ca_bundle_path]
213
- OneApm::Agent.logger.warn("Couldn't find CA bundle from configured ca_bundle_path: #{path_override}") unless File.exists? path_override
212
+ if path_override = OneApm::Manager.config[:ca_bundle_path]
213
+ OneApm::Manager.logger.warn("Couldn't find CA bundle from configured ca_bundle_path: #{path_override}") unless File.exists? path_override
214
214
  path_override
215
215
  else
216
216
  File.expand_path(File.join(probe.oneapm_root, 'config', 'cert', 'cacert.pem'))
@@ -243,8 +243,8 @@ module OneApm
243
243
  # Raises an UnrecoverableServerException if the post_string is longer
244
244
  # than the limit configured in the probe object
245
245
  def check_post_size(post_string)
246
- return if post_string.size < Agent.config[:post_size_limit]
247
- ::OneApm::Agent.logger.debug "Tried to send too much data: #{post_string.size} bytes"
246
+ return if post_string.size < OneApm::Manager.config[:post_size_limit]
247
+ OneApm::Manager.logger.debug "Tried to send too much data: #{post_string.size} bytes"
248
248
  raise UnrecoverableServerException.new('413 Request Entity Too Large')
249
249
  end
250
250
 
@@ -16,19 +16,19 @@ module OneApm
16
16
  # there is no proxy, otherwise it has proxy configuration
17
17
  # information pulled from the config file
18
18
  def proxy_server
19
- @proxy_server ||= OneApm::Support::ProxyServer.new(Agent.config[:proxy_host],
20
- Agent.config[:proxy_port],
21
- Agent.config[:proxy_user],
22
- Agent.config[:proxy_pass])
19
+ @proxy_server ||= OneApm::Support::ProxyServer.new(Manager.config[:proxy_host],
20
+ OneApm::Manager.config[:proxy_port],
21
+ OneApm::Manager.config[:proxy_user],
22
+ OneApm::Manager.config[:proxy_pass])
23
23
  end
24
24
 
25
25
  # turns a hostname into an ip address and returns a
26
26
  # OneApm::Support::Server that contains the configuration info
27
27
  def server_from_host(hostname=nil)
28
- host = hostname || Agent.config[:host]
28
+ host = hostname || OneApm::Manager.config[:host]
29
29
 
30
30
  # if the host is not an IP address, turn it into one
31
- OneApm::Support::Server.new(host, Agent.config[:port], convert_to_ip_address(host))
31
+ OneApm::Support::Server.new(host, OneApm::Manager.config[:port], convert_to_ip_address(host))
32
32
  end
33
33
 
34
34
  # Check to see if we need to look up the IP address
@@ -38,13 +38,13 @@ module OneApm
38
38
  def convert_to_ip_address(host)
39
39
  # here we leave it as a host name since the cert verification
40
40
  # needs it in host form
41
- return host if Agent.config[:ssl]
41
+ return host if OneApm::Manager.config[:ssl]
42
42
  # We won't talk directly to the host, so no need to resolve if proxy configured
43
- return host if Agent.config[:proxy_host]
43
+ return host if OneApm::Manager.config[:proxy_host]
44
44
  return nil if host.nil? || host.downcase == "localhost"
45
45
  ip = resolve_ip_address(host)
46
46
 
47
- OneApm::Agent.logger.debug "Resolved #{host} to #{ip}"
47
+ OneApm::Manager.logger.debug "Resolved #{host} to #{ip}"
48
48
  ip
49
49
  end
50
50
 
@@ -55,12 +55,12 @@ module OneApm
55
55
  def resolve_ip_address(host)
56
56
  Resolv.getaddress(host)
57
57
  rescue => e
58
- OneApm::Agent.logger.warn("DNS Error caching IP address:", e)
58
+ OneApm::Manager.logger.warn("DNS Error caching IP address:", e)
59
59
  begin
60
- OneApm::Agent.logger.debug("Trying native DNS lookup since Resolv failed")
60
+ OneApm::Manager.logger.debug("Trying native DNS lookup since Resolv failed")
61
61
  IPSocket.getaddress(host)
62
62
  rescue => e
63
- OneApm::Agent.logger.error("Could not look up server address: #{e}")
63
+ OneApm::Manager.logger.error("Could not look up server address: #{e}")
64
64
  nil
65
65
  end
66
66
  end
@@ -22,25 +22,25 @@ module OneApm
22
22
  attr_reader :collector,:marshaller, :metric_id_cache
23
23
 
24
24
  def initialize(license_key = nil, collector = nil)
25
- @license_key = license_key || Agent.config[:license_key]
25
+ @license_key = license_key || OneApm::Manager.config[:license_key]
26
26
  @collector = collector || server
27
- @request_timeout = Agent.config[:timeout]
27
+ @request_timeout = OneApm::Manager.config[:timeout]
28
28
  @metric_id_cache = {}
29
- @audit_logger = ::OneApm::Agent::AuditLogger.new
29
+ @audit_logger = ::OneApm::Logger::AuditLogger.new
30
30
 
31
- Agent.config.register_callback(:'audit_log.enabled') do |enabled|
31
+ OneApm::Manager.config.register_callback(:'audit_log.enabled') do |enabled|
32
32
  @audit_logger.enabled = enabled
33
33
  end
34
34
 
35
- Agent.config.register_callback(:ssl) do |ssl|
35
+ OneApm::Manager.config.register_callback(:ssl) do |ssl|
36
36
  if !ssl
37
- OneApm::Agent.logger.warn("Agent is configured not to use SSL when communicating with OneApm's servers")
37
+ OneApm::Manager.logger.warn("Agent is configured not to use SSL when communicating with OneApm's servers")
38
38
  else
39
- OneApm::Agent.logger.debug("Agent is configured to use SSL")
39
+ OneApm::Manager.logger.debug("Agent is configured to use SSL")
40
40
  end
41
41
  end
42
42
 
43
- Agent.config.register_callback(:marshaller) do |marshaller|
43
+ OneApm::Manager.config.register_callback(:marshaller) do |marshaller|
44
44
  @marshaller = OneApm::Support::JsonMarshaller.new
45
45
  end
46
46
  end
@@ -27,7 +27,7 @@ module OneApm
27
27
  end
28
28
 
29
29
  def start(agent_command)
30
- OneApm::Agent.logger.debug("Starting Thread Profiler.")
30
+ OneApm::Manager.logger.debug("Starting Thread Profiler.")
31
31
  profile = @backtrace_service.subscribe(
32
32
  OneApm::Agent::Threading::BacktraceService::ALL_TRANSACTIONS,
33
33
  agent_command.arguments
@@ -39,14 +39,14 @@ module OneApm
39
39
 
40
40
  def stop(report_data)
41
41
  return unless running?
42
- OneApm::Agent.logger.debug("Stopping Thread Profiler.")
42
+ OneApm::Manager.logger.debug("Stopping Thread Profiler.")
43
43
  @finished_profile = @backtrace_service.harvest(OneApm::Agent::Threading::BacktraceService::ALL_TRANSACTIONS)
44
44
  @backtrace_service.unsubscribe(OneApm::Agent::Threading::BacktraceService::ALL_TRANSACTIONS)
45
45
  @finished_profile = nil if !report_data
46
46
  end
47
47
 
48
48
  def harvest
49
- OneApm::Agent.logger.debug("Harvesting from Thread Profiler #{@finished_profile.to_log_description unless @finished_profile.nil?}")
49
+ OneApm::Manager.logger.debug("Harvesting from Thread Profiler #{@finished_profile.to_log_description unless @finished_profile.nil?}")
50
50
  profile = @finished_profile
51
51
  @backtrace_service.profile_agent_code = false
52
52
  @finished_profile = nil
@@ -55,7 +55,7 @@ module OneApm
55
55
  end
56
56
 
57
57
  def enabled?
58
- OneApm::Agent.config[:'thread_profiler.enabled']
58
+ OneApm::Manager.config[:'thread_profiler.enabled']
59
59
  end
60
60
 
61
61
  def running?
@@ -28,7 +28,7 @@ module OneApm
28
28
  end
29
29
 
30
30
  def run_profiler?
31
- @run_profiler && OneApm::Agent.config[:'xray_session.allow_profiles']
31
+ @run_profiler && OneApm::Manager.config[:'xray_session.allow_profiles']
32
32
  end
33
33
 
34
34
  def activate
@@ -29,8 +29,8 @@ module OneApm
29
29
  # If X-Rays are disabled, just be quiet about it and don't start the
30
30
  # command. Other hosts might be running the X-Ray, so we don't need
31
31
  # to bark on every get_agent_commands.
32
- if !OneApm::Agent.config[:'xray_session.enabled']
33
- OneApm::Agent.logger.debug("Not responding to X-Ray command because of config 'xray_session.enabled' = #{OneApm::Agent.config[:'xray_session.enabled']}")
32
+ if !OneApm::Manager.config[:'xray_session.enabled']
33
+ OneApm::Manager.logger.debug("Not responding to X-Ray command because of config 'xray_session.enabled' = #{OneApm::Manager.config[:'xray_session.enabled']}")
34
34
  return
35
35
  end
36
36
 
@@ -51,7 +51,7 @@ module OneApm
51
51
  return NO_PROFILES unless OneApm::Agent::Threading::BacktraceService.is_supported?
52
52
 
53
53
  profiles = active_thread_profiling_sessions.map do |session|
54
- OneApm::Agent.logger.debug("Harvesting profile for X-Ray session #{session.inspect}")
54
+ OneApm::Manager.logger.debug("Harvesting profile for X-Ray session #{session.inspect}")
55
55
  @backtrace_service.harvest(session.key_transaction_name)
56
56
  end
57
57
  profiles.reject! {|p| p.empty?}
@@ -64,7 +64,7 @@ module OneApm
64
64
 
65
65
  def cleanup_finished_sessions
66
66
  finished_session_ids.each do |id|
67
- OneApm::Agent.logger.debug("Finished X-Ray session #{id} by duration. Removing it from active sessions.")
67
+ OneApm::Manager.logger.debug("Finished X-Ray session #{id} by duration. Removing it from active sessions.")
68
68
  remove_session_by_id(id)
69
69
  end
70
70
  end
@@ -73,7 +73,7 @@ module OneApm
73
73
  ### Internals
74
74
 
75
75
  def one_apm_service
76
- OneApm::Agent.instance.service
76
+ OneApm::Manager.agent.service
77
77
  end
78
78
 
79
79
  # These are unsynchonized and should only be used for testing
@@ -102,13 +102,13 @@ module OneApm
102
102
  def lookup_metadata_for(ids_to_activate)
103
103
  return [] if ids_to_activate.empty?
104
104
 
105
- OneApm::Agent.logger.debug("Retrieving metadata for X-Ray sessions #{ids_to_activate.inspect}")
105
+ OneApm::Manager.logger.debug("Retrieving metadata for X-Ray sessions #{ids_to_activate.inspect}")
106
106
  one_apm_service.get_xray_metadata(ids_to_activate)
107
107
  end
108
108
 
109
109
  def add_session(session)
110
- OneApm::Agent.logger.debug("Adding X-Ray session #{session.inspect}")
111
- OneApm::Agent.increment_metric("Supportability/XraySessions/Starts")
110
+ OneApm::Manager.logger.debug("Adding X-Ray session #{session.inspect}")
111
+ OneApm::Manager.increment_metric("Supportability/XraySessions/Starts")
112
112
 
113
113
  @sessions_lock.synchronize { @sessions[session.id] = session }
114
114
 
@@ -134,8 +134,8 @@ module OneApm
134
134
  session = @sessions_lock.synchronize { @sessions.delete(id) }
135
135
 
136
136
  if session
137
- OneApm::Agent.logger.debug("Removing X-Ray session #{session.inspect}")
138
- OneApm::Agent.increment_metric("Supportability/XraySessions/Stops")
137
+ OneApm::Manager.logger.debug("Removing X-Ray session #{session.inspect}")
138
+ OneApm::Manager.increment_metric("Supportability/XraySessions/Stops")
139
139
 
140
140
  if session.run_profiler?
141
141
  @backtrace_service.unsubscribe(session.key_transaction_name)