oneapm_rpm 1.1.3 → 1.2.0

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/lib/one_apm/agent.rb +4 -4
  3. data/lib/one_apm/agent/agent/connect.rb +3 -49
  4. data/lib/one_apm/agent/agent/container_data_manager.rb +2 -10
  5. data/lib/one_apm/agent/agent/forkable_dispatcher_functions.rb +4 -2
  6. data/lib/one_apm/agent/agent/helpers.rb +2 -0
  7. data/lib/one_apm/agent/agent/start.rb +3 -3
  8. data/lib/one_apm/agent/agent/start_worker_thread.rb +2 -0
  9. data/lib/one_apm/agent/database/active_record_helper.rb +1 -0
  10. data/lib/one_apm/agent/{datastores.rb → datastore.rb} +2 -2
  11. data/lib/one_apm/agent/{datastores → datastore}/metric_helper.rb +1 -1
  12. data/lib/one_apm/agent/{datastores → datastore}/mongo.rb +1 -1
  13. data/lib/one_apm/agent/{datastores → datastore}/mongo/metric_translator.rb +4 -4
  14. data/lib/one_apm/agent/{datastores → datastore}/mongo/obfuscator.rb +1 -1
  15. data/lib/one_apm/agent/{datastores → datastore}/mongo/statement_formatter.rb +2 -2
  16. data/lib/one_apm/agent/threading/agent_thread.rb +50 -50
  17. data/lib/one_apm/agent/threading/thread_profile.rb +1 -4
  18. data/lib/one_apm/collector/commands/thread_profiler_session.rb +1 -1
  19. data/lib/one_apm/collector/containers/agent_command_router.rb +1 -1
  20. data/lib/one_apm/collector/containers/transaction_sampler.rb +7 -1
  21. data/lib/one_apm/collector/containers/utilization_data.rb +3 -4
  22. data/lib/one_apm/{agent → collector}/sampler.rb +1 -1
  23. data/lib/one_apm/{agent → collector}/samplers/cpu_sampler.rb +4 -4
  24. data/lib/one_apm/{agent → collector}/samplers/delayed_job_sampler.rb +3 -14
  25. data/lib/one_apm/{agent → collector}/samplers/memory_sampler.rb +13 -15
  26. data/lib/one_apm/{agent → collector}/samplers/object_sampler.rb +3 -3
  27. data/lib/one_apm/{agent → collector}/samplers/vm_sampler.rb +2 -2
  28. data/lib/one_apm/collector/{forked_process_service.rb → support/forked_process_service.rb} +1 -1
  29. data/lib/one_apm/{agent → collector/support}/sampler_collection.rb +2 -2
  30. data/lib/one_apm/configuration/default_source.rb +7 -2
  31. data/lib/one_apm/frameworks/rails.rb +18 -0
  32. data/lib/one_apm/inst/nosql/memcache.rb +2 -2
  33. data/lib/one_apm/inst/nosql/mongo.rb +6 -6
  34. data/lib/one_apm/inst/nosql/mongo_moped.rb +3 -3
  35. data/lib/one_apm/inst/nosql/redis.rb +4 -4
  36. data/lib/one_apm/manager.rb +38 -6
  37. data/lib/one_apm/metrics/metric_spec.rb +1 -4
  38. data/lib/one_apm/probe/instrumentation.rb +2 -5
  39. data/lib/one_apm/rack/developer_mode.rb +221 -0
  40. data/lib/one_apm/rack/developer_mode/helper.rb +299 -0
  41. data/lib/one_apm/rack/developer_mode/views/oneapm/_explain_plans.html.erb +25 -0
  42. data/lib/one_apm/rack/developer_mode/views/oneapm/_home_right.html.erb +18 -0
  43. data/lib/one_apm/rack/developer_mode/views/oneapm/_sample.html.erb +20 -0
  44. data/lib/one_apm/rack/developer_mode/views/oneapm/_segment.html.erb +24 -0
  45. data/lib/one_apm/rack/developer_mode/views/oneapm/_segment_limit_message.html.erb +1 -0
  46. data/lib/one_apm/rack/developer_mode/views/oneapm/_segment_row.html.erb +11 -0
  47. data/lib/one_apm/rack/developer_mode/views/oneapm/_show_sample_detail.html.erb +30 -0
  48. data/lib/one_apm/rack/developer_mode/views/oneapm/_show_sample_sql.html.erb +19 -0
  49. data/lib/one_apm/rack/developer_mode/views/oneapm/_show_sample_summary.html.erb +25 -0
  50. data/lib/one_apm/rack/developer_mode/views/oneapm/_sql_row.html.erb +15 -0
  51. data/lib/one_apm/rack/developer_mode/views/oneapm/_stack_trace.html.erb +14 -0
  52. data/lib/one_apm/rack/developer_mode/views/oneapm/_summary_table.html.erb +12 -0
  53. data/lib/one_apm/rack/developer_mode/views/oneapm/assets/images/arrow-close.png +0 -0
  54. data/lib/one_apm/rack/developer_mode/views/oneapm/assets/images/arrow-open.png +0 -0
  55. data/lib/one_apm/rack/developer_mode/views/oneapm/assets/images/oneapm_logo.png +0 -0
  56. data/lib/one_apm/rack/developer_mode/views/oneapm/assets/javascript/c3.min.js +5 -0
  57. data/lib/one_apm/rack/developer_mode/views/oneapm/assets/javascript/d3.min.js +5 -0
  58. data/lib/one_apm/rack/developer_mode/views/oneapm/assets/javascript/jquery.min.js +4 -0
  59. data/lib/one_apm/rack/developer_mode/views/oneapm/assets/javascript/transaction_sample.js +120 -0
  60. data/lib/one_apm/rack/developer_mode/views/oneapm/assets/stylesheets/bootstrap.min.css +5 -0
  61. data/lib/one_apm/rack/developer_mode/views/oneapm/assets/stylesheets/c3.css +158 -0
  62. data/lib/one_apm/rack/developer_mode/views/oneapm/assets/stylesheets/style.css +149 -0
  63. data/lib/one_apm/rack/developer_mode/views/oneapm/explain_sql.html.erb +53 -0
  64. data/lib/one_apm/rack/developer_mode/views/oneapm/index.html.erb +33 -0
  65. data/lib/one_apm/rack/developer_mode/views/oneapm/layout.html.erb +46 -0
  66. data/lib/one_apm/rack/developer_mode/views/oneapm/sample_not_found.html.erb +2 -0
  67. data/lib/one_apm/rack/developer_mode/views/oneapm/show_sample.html.erb +61 -0
  68. data/lib/one_apm/rack/developer_mode/views/oneapm/threads.html.erb +53 -0
  69. data/lib/one_apm/{agent/threading → support/backtrace}/backtrace_node.rb +0 -0
  70. data/lib/one_apm/{agent/threading → support/backtrace}/backtrace_service.rb +0 -0
  71. data/lib/one_apm/support/environment_report.rb +6 -38
  72. data/lib/one_apm/support/system_info.rb +1 -6
  73. data/lib/one_apm/transaction/composite_segment.rb +30 -0
  74. data/lib/one_apm/transaction/sample_buffer/developer_mode_sample_buffer.rb +58 -0
  75. data/lib/one_apm/transaction/segment_summary.rb +0 -5
  76. data/lib/one_apm/transaction/summary_segment.rb +24 -0
  77. data/lib/one_apm/transaction/transaction_sample.rb +2 -0
  78. data/lib/one_apm/version.rb +2 -2
  79. metadata +51 -19
  80. data/lib/one_apm/configuration/autostart.rb +0 -41
@@ -1,10 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'set'
4
- require 'one_apm/support/event/worker_loop'
5
- require 'one_apm/agent/threading/backtrace_node'
6
-
7
- # Data structure for representing a thread profile
4
+ require 'one_apm/support/backtrace/backtrace_node'
8
5
 
9
6
  module OneApm
10
7
  module Agent
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'one_apm/agent/threading/agent_thread'
4
- require 'one_apm/agent/threading/backtrace_service'
4
+ require 'one_apm/support/backtrace/backtrace_service'
5
5
  require 'one_apm/agent/threading/thread_profile'
6
6
 
7
7
  module OneApm
@@ -3,7 +3,7 @@
3
3
  require 'one_apm/collector/commands/agent_command'
4
4
  require 'one_apm/collector/commands/xray_session_collection'
5
5
  require 'one_apm/collector/commands/thread_profiler_session'
6
- require 'one_apm/agent/threading/backtrace_service'
6
+ require 'one_apm/support/backtrace/backtrace_service'
7
7
 
8
8
  module OneApm
9
9
  module Collector
@@ -5,6 +5,7 @@ require 'one_apm/transaction/sample_buffer/force_persist_sample_buffer'
5
5
  require 'one_apm/transaction/sample_buffer/slowest_sample_buffer'
6
6
  require 'one_apm/transaction/sample_buffer/synthetics_sample_buffer'
7
7
  require 'one_apm/transaction/sample_buffer/xray_sample_buffer'
8
+ require 'one_apm/transaction/sample_buffer/developer_mode_sample_buffer'
8
9
 
9
10
  module OneApm
10
11
  module Collector
@@ -27,13 +28,15 @@ module OneApm
27
28
  def on_finishing_transaction(*args); end
28
29
  end
29
30
 
30
- attr_reader :last_sample, :xray_sample_buffer
31
+ attr_reader :last_sample, :xray_sample_buffer, :dev_mode_sample_buffer
31
32
 
32
33
  def initialize
33
34
  @xray_sample_buffer = OneApm::Transaction::XraySampleBuffer.new
35
+ @dev_mode_sample_buffer = OneApm::Transaction::DeveloperModeSampleBuffer.new
34
36
 
35
37
  @sample_buffers = []
36
38
  @sample_buffers << @xray_sample_buffer
39
+ @sample_buffers << @dev_mode_sample_buffer
37
40
  @sample_buffers << OneApm::Transaction::SlowestSampleBuffer.new
38
41
  @sample_buffers << OneApm::Transaction::SyntheticsSampleBuffer.new
39
42
  @sample_buffers << OneApm::Transaction::ForcePersistSampleBuffer.new
@@ -81,6 +84,9 @@ module OneApm
81
84
  return unless builder
82
85
 
83
86
  segment = builder.trace_entry(time.to_f)
87
+ if @dev_mode_sample_buffer
88
+ @dev_mode_sample_buffer.visit_segment(segment)
89
+ end
84
90
  segment
85
91
  end
86
92
 
@@ -10,7 +10,6 @@ module OneApm
10
10
  [hostname, container_id, cpu_count, instance_type]
11
11
  end
12
12
 
13
- # No persistent data, so no need for merging or resetting
14
13
  def merge!(*_); end
15
14
  def reset!(*_); end
16
15
 
@@ -19,12 +18,12 @@ module OneApm
19
18
  end
20
19
 
21
20
  def container_id
22
- ::OneApm::Agent::SystemInfo.docker_container_id
21
+ ::OneApm::Support::SystemInfo.docker_container_id
23
22
  end
24
23
 
25
24
  def cpu_count
26
- ::OneApm::Agent::SystemInfo.clear_processor_info
27
- ::OneApm::Agent::SystemInfo.num_logical_processors
25
+ ::OneApm::Support::SystemInfo.clear_processor_info
26
+ ::OneApm::Support::SystemInfo.num_logical_processors
28
27
  end
29
28
 
30
29
  def instance_type
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module OneApm
4
- module Agent
4
+ module Collector
5
5
  class Sampler
6
6
 
7
7
  attr_reader :id
@@ -1,17 +1,17 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'one_apm/agent/sampler'
3
+ require 'one_apm/collector/sampler'
4
4
 
5
5
  module OneApm
6
- module Agent
6
+ module Collector
7
7
  module Samplers
8
- class CpuSampler < OneApm::Agent::Sampler
8
+ class CpuSampler < OneApm::Collector::Sampler
9
9
  attr_reader :last_time
10
10
 
11
11
  named :cpu
12
12
 
13
13
  def initialize
14
- @processor_count = OneApm::Agent::SystemInfo.num_logical_processors
14
+ @processor_count = OneApm::Support::SystemInfo.num_logical_processors
15
15
  poll
16
16
  end
17
17
 
@@ -1,23 +1,14 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'one_apm/agent/sampler'
3
+ require 'one_apm/collector/sampler'
4
4
  require 'one_apm/inst/background_job/delayed_job_injection'
5
5
 
6
6
  module OneApm
7
- module Agent
7
+ module Collector
8
8
  module Samplers
9
- # This sampler records the status of your delayed job table once a minute.
10
- # It assumes jobs are cleared after being run, and failed jobs are not (otherwise
11
- # the failed job metric is useless).
12
- #
13
- # In earlier versions it will break out the queue length by priority. In later
14
- # versions of DJ where distinct queues are supported, it breaks it out by queue name.
15
- #
16
- class DelayedJobSampler < OneApm::Agent::Sampler
9
+ class DelayedJobSampler < OneApm::Collector::Sampler
17
10
  named :delayed_job
18
11
 
19
- # DelayedJob supports multiple backends, only some of which we can
20
- # handle. Check whether we think we've got what we need here.
21
12
  def self.supported_backend?
22
13
  ::Delayed::Worker.backend.to_s == "Delayed::Backend::ActiveRecord::Job"
23
14
  end
@@ -91,8 +82,6 @@ module OneApm
91
82
 
92
83
  def queue_counts(column_name)
93
84
  now = ::Delayed::Job.db_time_now
94
- # There is not an ActiveRecord syntax for what we're trying to do
95
- # here that's valid on 2.x through 4.1, so split it up.
96
85
  result = if ::ActiveRecord::VERSION::MAJOR.to_i < 4
97
86
  ::Delayed::Job.count(:group => column_name,
98
87
  :conditions => [QUEUE_QUERY_CONDITION, now])
@@ -1,18 +1,17 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'one_apm/agent/sampler'
3
+ require 'one_apm/collector/sampler'
4
4
 
5
5
  module OneApm
6
- module Agent
6
+ module Collector
7
7
  module Samplers
8
8
 
9
- class MemorySampler < OneApm::Agent::Sampler
9
+ class MemorySampler < OneApm::Collector::Sampler
10
10
  named :memory
11
11
 
12
12
  attr_accessor :sampler
13
13
 
14
14
  def initialize
15
- # macos, linux, solaris
16
15
  if defined? JRuby
17
16
  @sampler = JavaHeapSampler.new
18
17
  elsif platform =~ /linux/
@@ -49,7 +48,7 @@ module OneApm
49
48
  end
50
49
  end
51
50
  def platform
52
- OneApm::Agent::Samplers::MemorySampler.platform
51
+ OneApm::Collector::Samplers::MemorySampler.platform
53
52
  end
54
53
 
55
54
  def poll
@@ -60,6 +59,7 @@ module OneApm
60
59
  end
61
60
 
62
61
  class Base
62
+
63
63
  def can_run?
64
64
  return false if @broken
65
65
  m = get_memory rescue nil
@@ -81,6 +81,7 @@ module OneApm
81
81
  return nil
82
82
  end
83
83
  end
84
+
84
85
  end
85
86
 
86
87
  class JavaHeapSampler < Base
@@ -89,39 +90,35 @@ module OneApm
89
90
  raise "Can't sample Java heap unless running in JRuby" unless defined? JRuby
90
91
  java.lang.Runtime.getRuntime.totalMemory / (1024 * 1024).to_f rescue nil
91
92
  end
93
+
92
94
  def to_s
93
95
  "JRuby Java heap sampler"
94
96
  end
97
+
95
98
  end
96
99
 
97
100
  class ShellPS < Base
101
+
98
102
  def initialize(command)
99
103
  super()
100
104
  @command = command
101
105
  end
102
- # Returns the amount of resident memory this process is using in MB
103
- #
106
+
104
107
  def get_memory
105
108
  process = $$
106
109
  memory = `#{@command} #{process}`.split("\n")[1].to_f / 1024.0 rescue nil
107
- # if for some reason the ps command doesn't work on the resident os,
108
- # then don't execute it any more.
109
110
  raise "Faulty command: `#{@command} #{process}`" if memory.nil? || memory <= 0
110
111
  memory
111
112
  end
113
+
112
114
  def to_s
113
115
  "shell command sampler: #{@command}"
114
116
  end
117
+
115
118
  end
116
119
 
117
- # ProcStatus
118
- #
119
- # A class that samples memory by reading the file /proc/$$/status, which is specific to linux
120
- #
121
120
  class ProcStatus < Base
122
121
 
123
- # Returns the amount of resident memory this process is using in MB
124
- #
125
122
  def get_memory
126
123
  proc_status = File.open(proc_status_file, "r") {|f| f.read_nonblock(4096).strip }
127
124
  if proc_status =~ /RSS:\s*(\d+) kB/i
@@ -137,6 +134,7 @@ module OneApm
137
134
  def to_s
138
135
  "proc status file sampler: #{proc_status_file}"
139
136
  end
137
+
140
138
  end
141
139
  end
142
140
  end
@@ -1,11 +1,11 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'one_apm/agent/sampler'
3
+ require 'one_apm/collector/sampler'
4
4
 
5
5
  module OneApm
6
- module Agent
6
+ module Collector
7
7
  module Samplers
8
- class ObjectSampler < OneApm::Agent::Sampler
8
+ class ObjectSampler < OneApm::Collector::Sampler
9
9
  named :object
10
10
 
11
11
  def self.supported_on_this_platform?
@@ -1,10 +1,10 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'one_apm/agent/sampler'
3
+ require 'one_apm/collector/sampler'
4
4
  require 'one_apm/support/vm'
5
5
 
6
6
  module OneApm
7
- module Agent
7
+ module Collector
8
8
  module Samplers
9
9
  class VMSampler < Sampler
10
10
  GC_RUNS_METRIC = 'RubyVM/GC/runs'.freeze
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module OneApm
4
- module Agent
4
+ module Collector
5
5
  class ForkedProcessService
6
6
  attr_reader :channel_id, :buffer, :pipe
7
7
  attr_accessor :request_timeout, :agent_id, :collector
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module OneApm
4
- module Agent
4
+ module Collector
5
5
  class SamplerCollection
6
6
  include Enumerable
7
7
 
@@ -52,7 +52,7 @@ module OneApm
52
52
  else
53
53
  OneApm::Manager.logger.debug("#{sampler_class.name} not supported on this platform.")
54
54
  end
55
- rescue OneApm::Agent::Sampler::Unsupported => e
55
+ rescue OneApm::Collector::Sampler::Unsupported => e
56
56
  OneApm::Manager.logger.info("#{sampler_class.name} not available: #{e}")
57
57
  rescue => e
58
58
  OneApm::Manager.logger.error("Error registering sampler:", e)
@@ -3,7 +3,6 @@
3
3
  module OneApm
4
4
  module Configuration
5
5
 
6
- # Helper since default Procs are evaluated in the context of this module
7
6
  def self.value_of(key)
8
7
  Proc.new do
9
8
  OneApm::Manager.config[key]
@@ -84,7 +83,7 @@ module OneApm
84
83
  Proc.new {
85
84
  OneApm::Manager.config[:enabled] &&
86
85
  OneApm::Manager.config[:monitor_mode] &&
87
- OneApm::Configuration::Autostart.agent_should_start?
86
+ OneApm::Manager.agent_should_start?
88
87
  }
89
88
  end
90
89
 
@@ -401,6 +400,12 @@ module OneApm
401
400
  :type => Boolean,
402
401
  :description => 'Enable or disable transmission of application environment information to the OneApm data collection service.'
403
402
  },
403
+ :developer_mode => {
404
+ :default => false,
405
+ :public => true,
406
+ :type => Boolean,
407
+ :description => "developer mode for profiling in development, should be disable in production"
408
+ },
404
409
  :'resque.use_harvest_lock' => {
405
410
  :default => false,
406
411
  :public => true,
@@ -44,6 +44,7 @@ module OneApm
44
44
  if !Manager.config[:agent_enabled]
45
45
  OneApm::Manager.logger.info("OneApm Agent not running.")
46
46
  else
47
+ install_developer_mode(rails_config) if Manager.config[:developer_mode]
47
48
  install_browser_monitoring(rails_config)
48
49
  install_agent_hooks(rails_config)
49
50
  end
@@ -76,6 +77,23 @@ module OneApm
76
77
  end
77
78
  end
78
79
 
80
+ def install_developer_mode(rails_config)
81
+ return if env != "development"
82
+ return if @installed
83
+ @installed = true
84
+ if rails_config && rails_config.respond_to?(:middleware)
85
+ begin
86
+ require 'one_apm/rack/developer_mode'
87
+ rails_config.middleware.use OneApm::Rack::DeveloperMode
88
+ OneApm::Manager.logger.info("Developer Mode enabled.")
89
+ rescue => e
90
+ ::OneApm::Manager.logger.warn("Error installing OneAPM Developer Mode", e)
91
+ end
92
+ elsif rails_config
93
+ ::OneApm::Manager.logger.warn("Developer mode not available for Rails versions prior to 2.2")
94
+ end
95
+ end
96
+
79
97
  protected
80
98
 
81
99
  def install_shim
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'one_apm/agent/datastores/metric_helper'
3
+ require 'one_apm/agent/datastore/metric_helper'
4
4
 
5
5
  module OneApm
6
6
  module Agent
@@ -31,7 +31,7 @@ module OneApm
31
31
  alias_method method_name_without, method_name
32
32
 
33
33
  define_method method_name do |*args, &block|
34
- metrics = Datastores::MetricHelper.metrics_for("Memcached", method_name)
34
+ metrics = Datastore::MetricHelper.metrics_for("Memcached", method_name)
35
35
 
36
36
  OneApm::Support::MethodTracer.trace_execution_scoped(metrics) do
37
37
  t0 = Time.now
@@ -8,8 +8,8 @@ LibraryDetection.defer do
8
8
  end
9
9
 
10
10
  depends_on do
11
- require 'one_apm/agent/datastores/mongo'
12
- OneApm::Agent::Datastores::Mongo.is_supported_version?
11
+ require 'one_apm/agent/datastore/mongo'
12
+ OneApm::Agent::Datastore::Mongo.is_supported_version?
13
13
  end
14
14
 
15
15
  executes do
@@ -18,8 +18,8 @@ LibraryDetection.defer do
18
18
  end
19
19
 
20
20
  def install_mongo_instrumentation
21
- require 'one_apm/agent/datastores/mongo/metric_translator'
22
- require 'one_apm/agent/datastores/mongo/statement_formatter'
21
+ require 'one_apm/agent/datastore/mongo/metric_translator'
22
+ require 'one_apm/agent/datastore/mongo/statement_formatter'
23
23
 
24
24
  hook_instrument_methods
25
25
  instrument_save
@@ -40,7 +40,7 @@ LibraryDetection.defer do
40
40
  # It's key that this method eats all exceptions, as it rests between the
41
41
  # Mongo operation the user called and us returning them the data. Be safe!
42
42
  def one_apm_notice_statement(t0, payload, name)
43
- statement = OneApm::Agent::Datastores::Mongo::StatementFormatter.format(payload, name)
43
+ statement = OneApm::Agent::Datastore::Mongo::StatementFormatter.format(payload, name)
44
44
  if statement
45
45
  OneApm::Manager.agent.transaction_sampler.notice_nosql_statement(statement, (Time.now - t0).to_f)
46
46
  end
@@ -50,7 +50,7 @@ LibraryDetection.defer do
50
50
 
51
51
  def one_apm_generate_metrics(operation, payload = nil)
52
52
  payload ||= { :collection => self.name, :database => self.db.name }
53
- OneApm::Agent::Datastores::Mongo::MetricTranslator.metrics_for(operation, payload)
53
+ OneApm::Agent::Datastore::Mongo::MetricTranslator.metrics_for(operation, payload)
54
54
  end
55
55
 
56
56
  def instrument_with_one_apm_trace(name, payload = {}, &block)
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'one_apm/support/method_tracer'
4
- require 'one_apm/agent/datastores'
4
+ require 'one_apm/agent/datastore'
5
5
 
6
6
  LibraryDetection.defer do
7
7
  @name = :mongo_moped
@@ -44,10 +44,10 @@ module OneApm
44
44
 
45
45
  if operation
46
46
  callback = Proc.new do |result, metric, elapsed|
47
- OneApm::Agent::Datastores.notice_statement(log_statement, elapsed)
47
+ OneApm::Agent::Datastore.notice_statement(log_statement, elapsed)
48
48
  end
49
49
 
50
- OneApm::Agent::Datastores.wrap('MongoDB', operation, collection, callback) do
50
+ OneApm::Agent::Datastore.wrap('MongoDB', operation, collection, callback) do
51
51
  res = command.call
52
52
  end
53
53
  else