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
@@ -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
|