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