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.
- checksums.yaml +4 -4
- data/lib/one_apm/agent.rb +185 -192
- data/lib/one_apm/agent/agent/connect.rb +17 -17
- data/lib/one_apm/agent/agent/container_data_manager.rb +14 -14
- data/lib/one_apm/agent/agent/forkable_dispatcher_functions.rb +6 -35
- data/lib/one_apm/agent/agent/helpers.rb +6 -17
- data/lib/one_apm/agent/agent/start.rb +27 -27
- data/lib/one_apm/agent/agent/start_worker_thread.rb +19 -51
- data/lib/one_apm/agent/busy_calculator.rb +8 -34
- data/lib/one_apm/agent/cross_app/cross_app_monitor.rb +10 -10
- data/lib/one_apm/agent/cross_app/cross_app_tracing.rb +14 -14
- data/lib/one_apm/agent/database.rb +8 -35
- data/lib/one_apm/agent/database/active_record_helper.rb +1 -1
- data/lib/one_apm/agent/datastores.rb +2 -109
- data/lib/one_apm/agent/datastores/metric_helper.rb +1 -1
- data/lib/one_apm/agent/datastores/mongo/metric_translator.rb +3 -3
- data/lib/one_apm/agent/datastores/mongo/statement_formatter.rb +2 -2
- data/lib/one_apm/agent/harvester.rb +3 -6
- data/lib/one_apm/agent/inbound_request_monitor.rb +2 -2
- data/lib/one_apm/agent/javascript_instrumentor.rb +28 -28
- data/lib/one_apm/agent/sampler.rb +1 -1
- data/lib/one_apm/agent/sampler_collection.rb +6 -9
- data/lib/one_apm/agent/samplers/cpu_sampler.rb +4 -4
- data/lib/one_apm/agent/samplers/delayed_job_sampler.rb +5 -5
- data/lib/one_apm/agent/samplers/memory_sampler.rb +5 -5
- data/lib/one_apm/agent/samplers/object_sampler.rb +1 -1
- data/lib/one_apm/agent/samplers/vm_sampler.rb +6 -6
- data/lib/one_apm/agent/synthetics_monitor.rb +2 -2
- data/lib/one_apm/agent/threading/agent_thread.rb +6 -6
- data/lib/one_apm/agent/threading/backtrace_service.rb +9 -9
- data/lib/one_apm/agent/threading/thread_profile.rb +3 -3
- data/lib/one_apm/collector/collector/helper.rb +10 -10
- data/lib/one_apm/collector/collector/http_connection.rb +14 -14
- data/lib/one_apm/collector/collector/server_methods.rb +12 -12
- data/lib/one_apm/collector/collector_service.rb +8 -8
- data/lib/one_apm/collector/commands/thread_profiler_session.rb +4 -4
- data/lib/one_apm/collector/commands/xray_session.rb +1 -1
- data/lib/one_apm/collector/commands/xray_session_collection.rb +10 -10
- data/lib/one_apm/collector/containers/agent_command_router.rb +7 -7
- data/lib/one_apm/collector/containers/custom_event_aggregator.rb +6 -6
- data/lib/one_apm/collector/containers/error_collector.rb +16 -16
- data/lib/one_apm/collector/containers/sql_sampler.rb +8 -11
- data/lib/one_apm/collector/containers/transaction_event_aggregator.rb +15 -15
- data/lib/one_apm/collector/containers/transaction_sampler.rb +14 -16
- data/lib/one_apm/{agent/pipe/pipe_service.rb → collector/forked_process_service.rb} +3 -3
- data/lib/one_apm/collector/stats_engine/gc_profiler.rb +3 -3
- data/lib/one_apm/collector/stats_engine/metric_stats.rb +4 -4
- data/lib/one_apm/collector/stats_engine/stats_hash.rb +2 -2
- data/lib/one_apm/configuration.rb +16 -16
- data/lib/one_apm/configuration/autostart.rb +4 -4
- data/lib/one_apm/configuration/default_source.rb +9 -9
- data/lib/one_apm/configuration/environment_source.rb +1 -1
- data/lib/one_apm/configuration/high_security_source.rb +1 -1
- data/lib/one_apm/configuration/yaml_source.rb +7 -7
- data/lib/one_apm/errors/noticed_error.rb +2 -2
- data/lib/one_apm/frameworks/external.rb +2 -0
- data/lib/one_apm/frameworks/rails.rb +8 -18
- data/lib/one_apm/frameworks/rails3.rb +1 -0
- data/lib/one_apm/frameworks/rails4.rb +2 -6
- data/lib/one_apm/frameworks/ruby.rb +7 -2
- data/lib/one_apm/frameworks/sinatra.rb +1 -2
- data/lib/one_apm/inst/3rd/active_merchant.rb +1 -1
- data/lib/one_apm/inst/3rd/acts_as_solr.rb +2 -2
- data/lib/one_apm/inst/3rd/authlogic.rb +1 -1
- data/lib/one_apm/inst/3rd/sunspot.rb +1 -1
- data/lib/one_apm/inst/background_job/active_job.rb +1 -1
- data/lib/one_apm/inst/background_job/delayed_job.rb +4 -4
- data/lib/one_apm/inst/background_job/event_machine_standalone.rb +2 -2
- data/lib/one_apm/inst/background_job/resque.rb +11 -11
- data/lib/one_apm/inst/background_job/sidekiq.rb +5 -5
- data/lib/one_apm/inst/dispatcher/passenger.rb +4 -4
- data/lib/one_apm/inst/dispatcher/puma.rb +23 -0
- data/lib/one_apm/inst/dispatcher/rainbows.rb +2 -2
- data/lib/one_apm/inst/framework/grape.rb +4 -4
- data/lib/one_apm/inst/framework/padrino.rb +2 -2
- data/lib/one_apm/inst/framework/sinatra.rb +9 -9
- data/lib/one_apm/inst/framework/sinatra/transaction_namer.rb +1 -1
- data/lib/one_apm/inst/http_clients/curb.rb +6 -6
- data/lib/one_apm/inst/http_clients/excon.rb +4 -4
- data/lib/one_apm/inst/http_clients/excon/middleware.rb +3 -3
- data/lib/one_apm/inst/http_clients/httpclient.rb +1 -1
- data/lib/one_apm/inst/http_clients/net.rb +2 -2
- data/lib/one_apm/inst/http_clients/typhoeus.rb +2 -2
- data/lib/one_apm/inst/nosql/memcache.rb +7 -7
- data/lib/one_apm/inst/nosql/mongo.rb +6 -6
- data/lib/one_apm/inst/nosql/mongo_moped.rb +2 -2
- data/lib/one_apm/inst/nosql/redis.rb +3 -3
- data/lib/one_apm/inst/orm/active_record.rb +4 -4
- data/lib/one_apm/inst/orm/active_record_4.rb +2 -2
- data/lib/one_apm/inst/orm/sequel.rb +4 -4
- data/lib/one_apm/inst/rack.rb +3 -3
- data/lib/one_apm/inst/rack/rack_builder.rb +4 -4
- data/lib/one_apm/inst/rails/action_controller.rb +7 -7
- data/lib/one_apm/inst/rails/action_web_service.rb +1 -1
- data/lib/one_apm/inst/rails/errors.rb +1 -1
- data/lib/one_apm/inst/rails3/action_controller.rb +6 -6
- data/lib/one_apm/inst/rails3/errors.rb +1 -1
- data/lib/one_apm/inst/rails4/action_controller.rb +1 -1
- data/lib/one_apm/inst/rails4/action_controller_subscriber.rb +4 -4
- data/lib/one_apm/inst/rails4/action_view.rb +2 -2
- data/lib/one_apm/inst/rails4/action_view_subscriber.rb +4 -4
- data/lib/one_apm/inst/rails4/active_record_subscriber.rb +7 -7
- data/lib/one_apm/inst/rails4/errors.rb +1 -1
- data/lib/one_apm/inst/rails_middleware.rb +2 -2
- data/lib/one_apm/inst/support/evented_subscriber.rb +2 -2
- data/lib/one_apm/inst/support/queue_time.rb +1 -1
- data/lib/one_apm/inst/transaction_base.rb +6 -6
- data/lib/one_apm/logger/agent_logger.rb +8 -8
- data/lib/one_apm/logger/audit_logger.rb +8 -8
- data/lib/one_apm/logger/memory_logger.rb +1 -1
- data/lib/one_apm/logger/null_logger.rb +1 -3
- data/lib/one_apm/manager.rb +249 -0
- data/lib/one_apm/metrics/metric_spec.rb +1 -1
- data/lib/one_apm/metrics/stats.rb +1 -1
- data/lib/one_apm/probe.rb +1 -1
- data/lib/one_apm/probe/framework_loader.rb +2 -2
- data/lib/one_apm/probe/instance_methods.rb +19 -19
- data/lib/one_apm/probe/instrumentation.rb +5 -5
- data/lib/one_apm/rack/browser_monitoring.rb +6 -6
- data/lib/one_apm/rack/middleware_hooks.rb +1 -1
- data/lib/one_apm/rack/middleware_tracing.rb +2 -2
- data/lib/one_apm/support/chained_call.rb +1 -1
- data/lib/one_apm/support/coerce.rb +1 -1
- data/lib/one_apm/support/collection_helper.rb +1 -1
- data/lib/one_apm/support/encoders.rb +1 -1
- data/lib/one_apm/support/environment_report.rb +10 -10
- data/lib/one_apm/{agent → support}/event/event_listener.rb +3 -3
- data/lib/one_apm/{agent → support}/event/event_loop.rb +8 -8
- data/lib/one_apm/{agent → support}/event/timer.rb +1 -1
- data/lib/one_apm/{agent → support}/event/worker_loop.rb +5 -19
- data/lib/one_apm/{agent/pipe/pipe_channel_manager.rb → support/forked_process_channel.rb} +13 -51
- data/lib/one_apm/support/json_marshaller.rb +6 -6
- data/lib/one_apm/support/json_wrapper.rb +2 -2
- data/lib/one_apm/support/language_support.rb +1 -1
- data/lib/one_apm/support/library_detection.rb +5 -5
- data/lib/one_apm/support/marshaller.rb +1 -1
- data/lib/one_apm/support/method_tracer.rb +12 -12
- data/lib/one_apm/support/method_tracer/helpers.rb +6 -6
- data/lib/one_apm/support/system_info.rb +2 -2
- data/lib/one_apm/support/traced_method_stack.rb +4 -4
- data/lib/one_apm/support/vm/monotonic_gc_profiler.rb +1 -1
- data/lib/one_apm/support/vm/mri_vm.rb +1 -1
- data/lib/one_apm/transaction.rb +3 -3
- data/lib/one_apm/transaction/class_methods.rb +3 -3
- data/lib/one_apm/transaction/instance_helpers.rb +3 -3
- data/lib/one_apm/transaction/sample_buffer/synthetics_sample_buffer.rb +1 -1
- data/lib/one_apm/transaction/sample_buffer/xray_sample_buffer.rb +5 -5
- data/lib/one_apm/transaction/thread_local_access.rb +2 -2
- data/lib/one_apm/transaction/transaction_apdex.rb +2 -2
- data/lib/one_apm/transaction/transaction_finish_append.rb +1 -1
- data/lib/one_apm/transaction/transaction_jruby_functions.rb +2 -2
- data/lib/one_apm/transaction/transaction_name.rb +2 -2
- data/lib/one_apm/transaction/transaction_sample.rb +1 -1
- data/lib/one_apm/transaction/transaction_sample_builder.rb +7 -7
- data/lib/one_apm/transaction/transaction_state.rb +1 -1
- data/lib/one_apm/version.rb +1 -1
- data/lib/sequel/extensions/oneapm_instrumentation.rb +7 -7
- data/oneapm.yml +6 -7
- metadata +10 -9
- data/lib/one_apm/agent/agent.rb +0 -283
@@ -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
|
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'] ||
|
9
|
-
ENV['
|
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
|
@@ -10,7 +10,7 @@ module OneApm
|
|
10
10
|
begin
|
11
11
|
parse_query_without_oneapm(*args)
|
12
12
|
ensure
|
13
|
-
OneApm::
|
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
|
-
|
42
|
+
OneApm::Manager.logger.info 'Installing ActsAsSolr instrumentation'
|
43
43
|
end
|
44
44
|
|
45
45
|
executes do
|
@@ -8,7 +8,7 @@ LibraryDetection.defer do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
executes do
|
11
|
-
|
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::
|
7
|
+
!OneApm::Manager.config[:disable_dj]
|
8
8
|
end
|
9
9
|
|
10
10
|
depends_on do
|
11
|
-
defined?(::Delayed) && defined?(::Delayed::Worker) && !OneApm::
|
11
|
+
defined?(::Delayed) && defined?(::Delayed::Worker) && !OneApm::Manager.config[:disable_dj]
|
12
12
|
end
|
13
13
|
|
14
14
|
executes do
|
15
|
-
|
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::
|
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::
|
7
|
+
OneApm::Manager.config[:event_machine_standalone] && defined?(::EventMachine)
|
8
8
|
end
|
9
9
|
|
10
10
|
executes do
|
11
|
-
OneApm::
|
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::
|
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
|
-
|
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::
|
29
|
-
OneApm::
|
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::
|
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::
|
68
|
-
|
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::
|
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::
|
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::
|
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::
|
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::
|
7
|
+
defined?(::Sidekiq) && !OneApm::Manager.config[:disable_sidekiq]
|
8
8
|
end
|
9
9
|
|
10
10
|
executes do
|
11
|
-
|
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::
|
29
|
-
OneApm::
|
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::
|
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
|
-
|
11
|
+
OneApm::Manager.logger.debug "Installing Passenger event hooks."
|
12
12
|
|
13
13
|
::PhusionPassenger.on_event(:stopping_worker_process) do
|
14
|
-
|
15
|
-
OneApm::
|
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::
|
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::
|
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::
|
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
|
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
|
-
|
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::
|
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
|
-
|
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::
|
9
|
+
!OneApm::Manager.config[:disable_sinatra] &&
|
10
10
|
defined?(::Padrino) && defined?(::Padrino::Routing::InstanceMethods)
|
11
11
|
end
|
12
12
|
|
13
13
|
executes do
|
14
|
-
|
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::
|
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
|
-
|
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
|
-
|
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::
|
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
|
-
|
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
|
-
|
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
|
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::
|
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
|
-
|
165
|
+
OneApm::Manager.notice_error(env['sinatra.error']) if had_error
|
166
166
|
end
|
167
167
|
|
168
168
|
def do_not_trace?
|