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
@@ -26,7 +26,7 @@ module OneApm
|
|
26
26
|
name = "#{verb} #{name}" unless verb.nil?
|
27
27
|
name
|
28
28
|
rescue => e
|
29
|
-
|
29
|
+
OneApm::Manager.logger.debug("#{e.class} : #{e.message} - Error encountered trying to identify Sinatra transaction name")
|
30
30
|
OneApm::Transaction::UNKNOWN_METRIC
|
31
31
|
end
|
32
32
|
|
@@ -11,7 +11,7 @@ LibraryDetection.defer do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
executes do
|
14
|
-
|
14
|
+
OneApm::Manager.logger.info 'Installing Curb instrumentation'
|
15
15
|
require 'one_apm/agent/cross_app/cross_app_tracing'
|
16
16
|
require 'one_apm/support/http_clients/curb_wrappers'
|
17
17
|
end
|
@@ -90,9 +90,9 @@ LibraryDetection.defer do
|
|
90
90
|
include OneApm::Support::MethodTracer
|
91
91
|
|
92
92
|
# Add CAT with callbacks if the request is serial
|
93
|
-
def add_with_oneapm(curl)
|
93
|
+
def add_with_oneapm(curl)
|
94
94
|
if curl.respond_to?(:_oa_serial) && curl._oa_serial
|
95
|
-
hook_pending_request(curl) if OneApm::
|
95
|
+
hook_pending_request(curl) if OneApm::Manager.tl_is_execution_traced?
|
96
96
|
end
|
97
97
|
|
98
98
|
return add_without_oneapm( curl )
|
@@ -120,7 +120,7 @@ LibraryDetection.defer do
|
|
120
120
|
|
121
121
|
# Instrument the specified +request+ (a Curl::Easy object) and set up cross-application
|
122
122
|
# tracing if it's enabled.
|
123
|
-
def hook_pending_request(request)
|
123
|
+
def hook_pending_request(request)
|
124
124
|
wrapped_request, wrapped_response = wrap_request(request)
|
125
125
|
state = OneApm::TransactionState.tl_get
|
126
126
|
t0 = Time.now
|
@@ -132,7 +132,7 @@ LibraryDetection.defer do
|
|
132
132
|
request._oa_instrumented = true
|
133
133
|
end
|
134
134
|
rescue => err
|
135
|
-
OneApm::
|
135
|
+
OneApm::Manager.logger.error("Untrapped exception", err)
|
136
136
|
end
|
137
137
|
|
138
138
|
|
@@ -161,7 +161,7 @@ LibraryDetection.defer do
|
|
161
161
|
end
|
162
162
|
|
163
163
|
# Install a callback that will finish the trace.
|
164
|
-
def install_completion_callback(request, t0, segment, wrapped_request, wrapped_response)
|
164
|
+
def install_completion_callback(request, t0, segment, wrapped_request, wrapped_response)
|
165
165
|
original_callback = request.on_complete
|
166
166
|
request._oa_original_on_complete = original_callback
|
167
167
|
request.on_complete do |finished_request|
|
@@ -35,7 +35,7 @@ LibraryDetection.defer do
|
|
35
35
|
if excon_version >= EXCON_MINIMUM_VERSION
|
36
36
|
install_excon_instrumentation(excon_version)
|
37
37
|
else
|
38
|
-
|
38
|
+
OneApm::Manager.logger.warn("Excon instrumentation requires at least version #{EXCON_MINIMUM_VERSION}")
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
@@ -51,19 +51,19 @@ LibraryDetection.defer do
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def install_middleware_excon_instrumentation
|
54
|
-
|
54
|
+
OneApm::Manager.logger.info 'Installing middleware-based Excon instrumentation'
|
55
55
|
require 'one_apm/inst/http_clients/excon/middleware'
|
56
56
|
defaults = Excon.defaults
|
57
57
|
|
58
58
|
if defaults[:middlewares]
|
59
59
|
defaults[:middlewares] << ::Excon::Middleware::OneApmCrossAppTracing
|
60
60
|
else
|
61
|
-
|
61
|
+
OneApm::Manager.logger.warn("Did not find :middlewares key in Excon.defaults, skipping Excon instrumentation")
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
65
|
def install_legacy_excon_instrumentation
|
66
|
-
|
66
|
+
OneApm::Manager.logger.info 'Installing legacy Excon instrumentation'
|
67
67
|
require 'one_apm/inst/http_clients/excon/connection'
|
68
68
|
::Excon::Connection.install_oneapm_instrumentation
|
69
69
|
end
|
@@ -9,7 +9,7 @@ module ::Excon
|
|
9
9
|
@stack = stack
|
10
10
|
end
|
11
11
|
|
12
|
-
def request_call(datum)
|
12
|
+
def request_call(datum)
|
13
13
|
begin
|
14
14
|
# Only instrument this request if we haven't already done so, because
|
15
15
|
# we can get request_call multiple times for requests marked as
|
@@ -23,7 +23,7 @@ module ::Excon
|
|
23
23
|
datum[:connection].instance_variable_set(TRACE_DATA_IVAR, [t0, segment, wrapped_request])
|
24
24
|
end
|
25
25
|
rescue => e
|
26
|
-
OneApm::
|
26
|
+
OneApm::Manager.logger.debug(e)
|
27
27
|
end
|
28
28
|
@stack.request_call(datum)
|
29
29
|
end
|
@@ -38,7 +38,7 @@ module ::Excon
|
|
38
38
|
@stack.error_call(datum)
|
39
39
|
end
|
40
40
|
|
41
|
-
def finish_trace(datum)
|
41
|
+
def finish_trace(datum)
|
42
42
|
trace_data = datum[:connection] && datum[:connection].instance_variable_get(TRACE_DATA_IVAR)
|
43
43
|
if trace_data
|
44
44
|
datum[:connection].instance_variable_set(TRACE_DATA_IVAR, nil)
|
@@ -17,7 +17,7 @@ LibraryDetection.defer do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
executes do
|
20
|
-
|
20
|
+
OneApm::Manager.logger.info 'Installing HTTPClient instrumentation'
|
21
21
|
require 'one_apm/agent/cross_app/cross_app_tracing'
|
22
22
|
require 'one_apm/support/http_clients/httpclient_wrappers'
|
23
23
|
end
|
@@ -8,7 +8,7 @@ LibraryDetection.defer do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
executes do
|
11
|
-
|
11
|
+
OneApm::Manager.logger.info 'Installing Net instrumentation'
|
12
12
|
require 'one_apm/agent/cross_app/cross_app_tracing'
|
13
13
|
require 'one_apm/support/http_clients/net_http_wrappers'
|
14
14
|
end
|
@@ -21,7 +21,7 @@ LibraryDetection.defer do
|
|
21
21
|
OneApm::Agent::CrossAppTracing.tl_trace_http_request( wrapped_request ) do
|
22
22
|
# RUBY-1244 Disable further tracing in request to avoid double
|
23
23
|
# counting if connection wasn't started (which calls request again).
|
24
|
-
OneApm::
|
24
|
+
OneApm::Manager.disable_all_tracing do
|
25
25
|
request_without_oneapm_trace( request, *args, &block )
|
26
26
|
end
|
27
27
|
end
|
@@ -12,7 +12,7 @@ LibraryDetection.defer do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
executes do
|
15
|
-
|
15
|
+
OneApm::Manager.logger.info 'Installing Typhoeus instrumentation'
|
16
16
|
require 'one_apm/agent/cross_app/cross_app_tracing'
|
17
17
|
require 'one_apm/support/http_clients/typhoeus_wrappers'
|
18
18
|
end
|
@@ -71,6 +71,6 @@ module OneApm::Agent::Instrumentation::TyphoeusTracing
|
|
71
71
|
request.on_complete.unshift(callback)
|
72
72
|
end
|
73
73
|
rescue => e
|
74
|
-
OneApm::
|
74
|
+
OneApm::Manager.logger.error("Exception during trace setup for Typhoeus request", e)
|
75
75
|
end
|
76
76
|
end
|
@@ -9,7 +9,7 @@ module OneApm
|
|
9
9
|
module_function
|
10
10
|
|
11
11
|
def enabled?
|
12
|
-
|
12
|
+
!OneApm::Manager.config[:disable_memcache]
|
13
13
|
end
|
14
14
|
|
15
15
|
METHODS = [:get, :get_multi, :set, :add, :incr, :decr, :delete, :replace, :append,
|
@@ -38,8 +38,8 @@ module OneApm
|
|
38
38
|
begin
|
39
39
|
send method_name_without, *args, &block
|
40
40
|
ensure
|
41
|
-
if OneApm::
|
42
|
-
OneApm::
|
41
|
+
if OneApm::Manager.config[:capture_memcache_keys]
|
42
|
+
OneApm::Manager.agent.transaction_sampler.notice_nosql(args.first.inspect, (Time.now - t0).to_f) rescue nil
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
@@ -68,7 +68,7 @@ LibraryDetection.defer do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
executes do
|
71
|
-
|
71
|
+
OneApm::Manager.logger.info 'Installing Memcached instrumentation for memcache-client gem'
|
72
72
|
OneApm::Agent::Instrumentation::Memcache.instrument_methods(::MemCache)
|
73
73
|
end
|
74
74
|
end
|
@@ -85,7 +85,7 @@ LibraryDetection.defer do
|
|
85
85
|
end
|
86
86
|
|
87
87
|
executes do
|
88
|
-
|
88
|
+
OneApm::Manager.logger.info 'Installing Memcached instrumentation for memcached gem'
|
89
89
|
::OneApm::Agent::Instrumentation::Memcache.instrument_methods(::Memcached)
|
90
90
|
end
|
91
91
|
end
|
@@ -102,7 +102,7 @@ LibraryDetection.defer do
|
|
102
102
|
end
|
103
103
|
|
104
104
|
executes do
|
105
|
-
|
105
|
+
OneApm::Manager.logger.info 'Installing Memcache instrumentation for dalli gem'
|
106
106
|
::OneApm::Agent::Instrumentation::Memcache.instrument_methods(::Dalli::Client)
|
107
107
|
end
|
108
108
|
end
|
@@ -127,7 +127,7 @@ LibraryDetection.defer do
|
|
127
127
|
:delete_cas]
|
128
128
|
|
129
129
|
executes do
|
130
|
-
|
130
|
+
OneApm::Manager.logger.info 'Installing Dalli CAS Client Memcache instrumentation'
|
131
131
|
::OneApm::Agent::Instrumentation::Memcache.instrument_methods(::Dalli::Client,
|
132
132
|
CAS_CLIENT_METHODS)
|
133
133
|
end
|
@@ -13,7 +13,7 @@ LibraryDetection.defer do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
executes do
|
16
|
-
OneApm::
|
16
|
+
OneApm::Manager.logger.info 'Installing Mongo instrumentation'
|
17
17
|
install_mongo_instrumentation
|
18
18
|
end
|
19
19
|
|
@@ -42,10 +42,10 @@ LibraryDetection.defer do
|
|
42
42
|
def one_apm_notice_statement(t0, payload, name)
|
43
43
|
statement = OneApm::Agent::Datastores::Mongo::StatementFormatter.format(payload, name)
|
44
44
|
if statement
|
45
|
-
OneApm::
|
45
|
+
OneApm::Manager.agent.transaction_sampler.notice_nosql_statement(statement, (Time.now - t0).to_f)
|
46
46
|
end
|
47
47
|
rescue => e
|
48
|
-
OneApm::
|
48
|
+
OneApm::Manager.logger.debug("Exception during Mongo statement gathering", e)
|
49
49
|
end
|
50
50
|
|
51
51
|
def one_apm_generate_metrics(operation, payload = nil)
|
@@ -59,7 +59,7 @@ LibraryDetection.defer do
|
|
59
59
|
trace_execution_scoped(metrics) do
|
60
60
|
t0 = Time.now
|
61
61
|
|
62
|
-
result = OneApm::
|
62
|
+
result = OneApm::Manager.disable_all_tracing do
|
63
63
|
instrument_without_one_apm_trace(name, payload, &block)
|
64
64
|
end
|
65
65
|
|
@@ -80,7 +80,7 @@ LibraryDetection.defer do
|
|
80
80
|
trace_execution_scoped(metrics) do
|
81
81
|
t0 = Time.now
|
82
82
|
|
83
|
-
result = OneApm::
|
83
|
+
result = OneApm::Manager.disable_all_tracing do
|
84
84
|
save_without_one_apm_trace(doc, opts, &block)
|
85
85
|
end
|
86
86
|
|
@@ -101,7 +101,7 @@ LibraryDetection.defer do
|
|
101
101
|
trace_execution_scoped(metrics) do
|
102
102
|
t0 = Time.now
|
103
103
|
|
104
|
-
result = OneApm::
|
104
|
+
result = OneApm::Manager.disable_all_tracing do
|
105
105
|
ensure_index_without_one_apm_trace(spec, opts, &block)
|
106
106
|
end
|
107
107
|
|
@@ -7,11 +7,11 @@ LibraryDetection.defer do
|
|
7
7
|
@name = :mongo_moped
|
8
8
|
|
9
9
|
depends_on do
|
10
|
-
defined?(::Moped) && !OneApm::
|
10
|
+
defined?(::Moped) && !OneApm::Manager.config[:disable_mongo_moped]
|
11
11
|
end
|
12
12
|
|
13
13
|
executes do
|
14
|
-
OneApm::
|
14
|
+
OneApm::Manager.logger.info 'Installing Mongo Moped instrumentation'
|
15
15
|
end
|
16
16
|
|
17
17
|
executes do
|
@@ -6,11 +6,11 @@ LibraryDetection.defer do
|
|
6
6
|
@name = :redis
|
7
7
|
|
8
8
|
depends_on do
|
9
|
-
defined?(::Redis) && !OneApm::
|
9
|
+
defined?(::Redis) && !OneApm::Manager.config[:disable_redis]
|
10
10
|
end
|
11
11
|
|
12
12
|
executes do
|
13
|
-
OneApm::
|
13
|
+
OneApm::Manager.logger.info 'Installing Redis Instrumentation'
|
14
14
|
end
|
15
15
|
|
16
16
|
executes do
|
@@ -67,7 +67,7 @@ LibraryDetection.defer do
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def _send_to_one_apm(args, elapsed)
|
70
|
-
if OneApm::
|
70
|
+
if OneApm::Manager.config[:"transaction_tracer.record_sql"] == "obfuscated"
|
71
71
|
args.map! do |arg|
|
72
72
|
if arg.empty?
|
73
73
|
arg
|
@@ -32,7 +32,7 @@ module OneApm
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
def log_with_oneapm_instrumentation(*args, &block)
|
35
|
+
def log_with_oneapm_instrumentation(*args, &block)
|
36
36
|
state = OneApm::TransactionState.tl_get
|
37
37
|
|
38
38
|
if !state.is_execution_traced?
|
@@ -54,7 +54,7 @@ module OneApm
|
|
54
54
|
log_without_oneapm_instrumentation(*args, &block)
|
55
55
|
ensure
|
56
56
|
elapsed_time = (Time.now - t0).to_f
|
57
|
-
OneApm::
|
57
|
+
OneApm::Manager.notice_sql(sql, metric, @config, elapsed_time, state, &EXPLAINER)
|
58
58
|
end
|
59
59
|
end
|
60
60
|
end
|
@@ -80,11 +80,11 @@ LibraryDetection.defer do
|
|
80
80
|
end
|
81
81
|
|
82
82
|
depends_on do
|
83
|
-
!OneApm::
|
83
|
+
!OneApm::Manager.config[:disable_activerecord]
|
84
84
|
end
|
85
85
|
|
86
86
|
executes do
|
87
|
-
|
87
|
+
OneApm::Manager.logger.info 'Installing ActiveRecord instrumentation'
|
88
88
|
end
|
89
89
|
|
90
90
|
executes do
|
@@ -13,12 +13,12 @@ LibraryDetection.defer do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
depends_on do
|
16
|
-
!OneApm::
|
16
|
+
!OneApm::Manager.config[:disable_activerecord] &&
|
17
17
|
!OneApm::Agent::Instrumentation::ActiveRecordSubscriber.subscribed?
|
18
18
|
end
|
19
19
|
|
20
20
|
executes do
|
21
|
-
|
21
|
+
OneApm::Manager.logger.info 'Installing ActiveRecord 4 instrumentation'
|
22
22
|
end
|
23
23
|
|
24
24
|
executes do
|
@@ -8,7 +8,7 @@ LibraryDetection.defer do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
depends_on do
|
11
|
-
!OneApm::
|
11
|
+
!OneApm::Manager.config[:disable_sequel_instrumentation]
|
12
12
|
end
|
13
13
|
|
14
14
|
def supported_sequel_version?
|
@@ -20,12 +20,12 @@ LibraryDetection.defer do
|
|
20
20
|
executes do
|
21
21
|
if supported_sequel_version?
|
22
22
|
|
23
|
-
|
23
|
+
OneApm::Manager.logger.info 'Installing Sequel instrumentation'
|
24
24
|
|
25
25
|
if Sequel::Database.respond_to?(:extension)
|
26
26
|
Sequel::Database.extension :oneapm_instrumentation
|
27
27
|
else
|
28
|
-
OneApm::
|
28
|
+
OneApm::Manager.logger.warn("Detected Sequel version #{Sequel::VERSION}.")
|
29
29
|
end
|
30
30
|
|
31
31
|
Sequel.synchronize{Sequel::DATABASES.dup}.each do |db|
|
@@ -36,7 +36,7 @@ LibraryDetection.defer do
|
|
36
36
|
|
37
37
|
else
|
38
38
|
|
39
|
-
OneApm::
|
39
|
+
OneApm::Manager.logger.info "Sequel instrumentation requires at least version 3.37.0."
|
40
40
|
|
41
41
|
end
|
42
42
|
|
data/lib/one_apm/inst/rack.rb
CHANGED
@@ -12,7 +12,7 @@ LibraryDetection.defer do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
executes do
|
15
|
-
|
15
|
+
OneApm::Manager.logger.info 'Installing deferred Rack instrumentation'
|
16
16
|
|
17
17
|
class ::Rack::Builder
|
18
18
|
class << self
|
@@ -25,8 +25,8 @@ LibraryDetection.defer do
|
|
25
25
|
alias_method :to_app_without_oneapm, :to_app
|
26
26
|
alias_method :to_app, :to_app_with_oneapm_deferred_library_detection
|
27
27
|
|
28
|
-
unless OneApm::
|
29
|
-
|
28
|
+
unless OneApm::Manager.config[:disable_rack_middleware]
|
29
|
+
OneApm::Manager.logger.info 'Installing Rack::Builder middleware instrumentation'
|
30
30
|
alias_method :run_without_oneapm, :run
|
31
31
|
alias_method :run, :run_with_oneapm
|
32
32
|
|
@@ -4,7 +4,7 @@ module OneApm
|
|
4
4
|
module RackBuilder
|
5
5
|
|
6
6
|
def run_with_oneapm(app, *args)
|
7
|
-
unless OneApm::
|
7
|
+
unless OneApm::Manager.config[:disable_rack_middleware]
|
8
8
|
wrapped_app = ::OneApm::Rack::MiddlewareWrapper.wrap(app, true)
|
9
9
|
run_without_oneapm(wrapped_app, *args)
|
10
10
|
else
|
@@ -13,7 +13,7 @@ module OneApm
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def use_with_oneapm(middleware_class, *args, &blk)
|
16
|
-
unless OneApm::
|
16
|
+
unless OneApm::Manager.config[:disable_rack_middleware]
|
17
17
|
wrapped_middleware_class = ::OneApm::Rack::MiddlewareWrapper.wrap_class(middleware_class)
|
18
18
|
use_without_oneapm(wrapped_middleware_class, *args, &blk)
|
19
19
|
else
|
@@ -24,7 +24,7 @@ module OneApm
|
|
24
24
|
# defered detection to avoid something later required
|
25
25
|
def to_app_with_oneapm_deferred_library_detection
|
26
26
|
unless ::Rack::Builder._oa_deferred_detection_ran
|
27
|
-
OneApm::
|
27
|
+
OneApm::Manager.logger.info "Doing deferred library-detection before Rack startup"
|
28
28
|
LibraryDetection.detect!
|
29
29
|
::Rack::Builder._oa_deferred_detection_ran = true
|
30
30
|
end
|
@@ -38,7 +38,7 @@ module OneApm
|
|
38
38
|
def _check_for_late_instrumentation(app)
|
39
39
|
return if @checked_for_late_instrumentation
|
40
40
|
@checked_for_late_instrumentation = true
|
41
|
-
unless
|
41
|
+
unless OneApm::Manager.config[:disable_rack_middleware]
|
42
42
|
if ::OneApm::Rack::MiddlewareWrapper.needs_wrapping?(app)
|
43
43
|
# TODO Fix it in the future
|
44
44
|
end
|
@@ -4,13 +4,13 @@ LibraryDetection.defer do
|
|
4
4
|
@name = :rails21_view
|
5
5
|
|
6
6
|
depends_on do
|
7
|
-
!OneApm::
|
7
|
+
!OneApm::Manager.config[:disable_view_instrumentation] &&
|
8
8
|
defined?(ActionController) && defined?(ActionController::Base) && defined?(ActionView::PartialTemplate) && defined?(ActionView::Template) &&
|
9
9
|
defined?(Rails::VERSION::STRING) && Rails::VERSION::STRING =~ /^2\.1\./ # Rails 2.1 &&
|
10
10
|
end
|
11
11
|
|
12
12
|
executes do
|
13
|
-
|
13
|
+
OneApm::Manager.logger.info 'Installing Rails 2.1 View instrumentation'
|
14
14
|
end
|
15
15
|
|
16
16
|
executes do
|
@@ -31,13 +31,13 @@ LibraryDetection.defer do
|
|
31
31
|
@name = :old_rails_view
|
32
32
|
|
33
33
|
depends_on do
|
34
|
-
!OneApm::
|
34
|
+
!OneApm::Manager.config[:disable_view_instrumentation] &&
|
35
35
|
defined?(ActionController) && defined?(ActionController::Base) &&
|
36
36
|
defined?(Rails::VERSION::STRING) && Rails::VERSION::STRING =~ /^(1\.|2\.0)/ # Rails 1.* - 2.0
|
37
37
|
end
|
38
38
|
|
39
39
|
executes do
|
40
|
-
|
40
|
+
OneApm::Manager.logger.info 'Installing Rails 1.* - 2.0 View instrumentation'
|
41
41
|
end
|
42
42
|
|
43
43
|
executes do
|
@@ -52,13 +52,13 @@ LibraryDetection.defer do
|
|
52
52
|
@name = :rails23_view
|
53
53
|
|
54
54
|
depends_on do
|
55
|
-
!OneApm::
|
55
|
+
!OneApm::Manager.config[:disable_view_instrumentation] &&
|
56
56
|
defined?(ActionView) && defined?(ActionView::Template) && defined?(ActionView::RenderablePartial) &&
|
57
57
|
defined?(Rails::VERSION::STRING) && Rails::VERSION::STRING =~ /^2\.[23]/
|
58
58
|
end
|
59
59
|
|
60
60
|
executes do
|
61
|
-
|
61
|
+
OneApm::Manager.logger.info 'Installing Rails 2.2 - 2.3 View instrumentation'
|
62
62
|
end
|
63
63
|
|
64
64
|
executes do
|
@@ -86,7 +86,7 @@ LibraryDetection.defer do
|
|
86
86
|
end
|
87
87
|
|
88
88
|
executes do
|
89
|
-
|
89
|
+
OneApm::Manager.logger.info 'Installing Rails 2 Controller instrumentation'
|
90
90
|
end
|
91
91
|
|
92
92
|
executes do
|