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
@@ -25,8 +25,8 @@ module OneApm
|
|
25
25
|
@backend_name = :json
|
26
26
|
return true
|
27
27
|
rescue StandardError, ScriptError
|
28
|
-
OneApm::
|
29
|
-
defined?( OneApm::Agent ) && OneApm::
|
28
|
+
OneApm::Manager.logger.debug "%p while loading JSON library: %s" % [ err, err.message ] if
|
29
|
+
defined?( OneApm::Agent ) && OneApm::Manager.respond_to?( :logger )
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -71,7 +71,7 @@ module OneApm::LanguageSupport
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def gc_profiler_enabled?
|
74
|
-
if gc_profiler_usable? && ::GC::Profiler.enabled? &&
|
74
|
+
if gc_profiler_usable? && ::GC::Profiler.enabled? && !OneApm::Manager.config[:disable_gc_profiler]
|
75
75
|
true
|
76
76
|
else
|
77
77
|
false
|
@@ -13,7 +13,7 @@ module LibraryDetection
|
|
13
13
|
if item.name
|
14
14
|
seen_names = @items.map { |i| i.name }.compact
|
15
15
|
if seen_names.include?(item.name)
|
16
|
-
OneApm::
|
16
|
+
OneApm::Manager.logger.warn("Refusing to re-register LibraryDetection block with name '#{item.name}'")
|
17
17
|
return @items
|
18
18
|
end
|
19
19
|
end
|
@@ -70,7 +70,7 @@ module LibraryDetection
|
|
70
70
|
begin
|
71
71
|
x.call
|
72
72
|
rescue => err
|
73
|
-
OneApm::
|
73
|
+
OneApm::Manager.logger.error( "Error while installing #{self.name} instrumentation:", err )
|
74
74
|
break
|
75
75
|
end
|
76
76
|
end
|
@@ -85,7 +85,7 @@ module LibraryDetection
|
|
85
85
|
begin
|
86
86
|
dep.call
|
87
87
|
rescue => err
|
88
|
-
OneApm::
|
88
|
+
OneApm::Manager.logger.error( "Error while detecting #{self.name}:", err )
|
89
89
|
false
|
90
90
|
end
|
91
91
|
end
|
@@ -100,8 +100,8 @@ module LibraryDetection
|
|
100
100
|
return true if self.name.nil?
|
101
101
|
|
102
102
|
key = "disable_#{self.name}".to_sym
|
103
|
-
if (
|
104
|
-
|
103
|
+
if (OneApm::Manager.config[key] == true)
|
104
|
+
OneApm::Manager.logger.debug("Not installing #{self.name} instrumentation because of configuration #{key}")
|
105
105
|
false
|
106
106
|
else
|
107
107
|
true
|
@@ -61,7 +61,7 @@ module OneApm
|
|
61
61
|
#
|
62
62
|
# @api public
|
63
63
|
#
|
64
|
-
def trace_execution_scoped(metric_names, options={})
|
64
|
+
def trace_execution_scoped(metric_names, options={})
|
65
65
|
OneApm::Support::MethodTracer::Helpers.trace_execution_scoped(metric_names, options) do
|
66
66
|
# Using an implicit block avoids object allocation for a &block param
|
67
67
|
yield
|
@@ -76,14 +76,14 @@ module OneApm
|
|
76
76
|
#
|
77
77
|
# @api public
|
78
78
|
#
|
79
|
-
def trace_execution_unscoped(metric_names, options={})
|
80
|
-
return yield unless OneApm::
|
79
|
+
def trace_execution_unscoped(metric_names, options={})
|
80
|
+
return yield unless OneApm::Manager.tl_is_execution_traced?
|
81
81
|
t0 = Time.now
|
82
82
|
begin
|
83
83
|
yield
|
84
84
|
ensure
|
85
85
|
duration = (Time.now - t0).to_f # for some reason this is 3 usec faster than Time - Time
|
86
|
-
OneApm::
|
86
|
+
OneApm::Manager.agent.stats_engine.tl_record_unscoped_metrics(metric_names, duration)
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
@@ -110,7 +110,7 @@ module OneApm
|
|
110
110
|
end
|
111
111
|
|
112
112
|
if deprecated_keys.any?
|
113
|
-
OneApm::
|
113
|
+
OneApm::Manager.logger.warn("Deprecated options when adding method tracer to #{method_name}: "+
|
114
114
|
deprecated_keys.join(', '))
|
115
115
|
end
|
116
116
|
end
|
@@ -153,7 +153,7 @@ module OneApm
|
|
153
153
|
# anything if the method doesn't exist.
|
154
154
|
def oneapm_method_exists?(method_name)
|
155
155
|
exists = method_defined?(method_name) || private_method_defined?(method_name)
|
156
|
-
|
156
|
+
OneApm::Manager.logger.error("Did not trace #{self.name}##{method_name} because that method does not exist") unless exists
|
157
157
|
exists
|
158
158
|
end
|
159
159
|
|
@@ -163,7 +163,7 @@ module OneApm
|
|
163
163
|
# to help with debugging custom instrumentation.
|
164
164
|
def traced_method_exists?(method_name, metric_name_code)
|
165
165
|
exists = method_defined?(_traced_method_name(method_name, metric_name_code))
|
166
|
-
|
166
|
+
OneApm::Manager.logger.error("Attempt to trace a method twice with the same metric: Method = #{method_name}, Metric Name = #{metric_name_code}") if exists
|
167
167
|
exists
|
168
168
|
end
|
169
169
|
|
@@ -172,7 +172,7 @@ module OneApm
|
|
172
172
|
# instrumentation into effectively one method call overhead
|
173
173
|
# when the agent is disabled
|
174
174
|
def assemble_code_header(method_name, metric_name_code, options)
|
175
|
-
header = "return #{_untraced_method_name(method_name, metric_name_code)}(*args, &block) unless OneApm::
|
175
|
+
header = "return #{_untraced_method_name(method_name, metric_name_code)}(*args, &block) unless OneApm::Manager.tl_is_execution_traced?\n"
|
176
176
|
header += options[:code_header].to_s
|
177
177
|
header
|
178
178
|
end
|
@@ -188,7 +188,7 @@ module OneApm
|
|
188
188
|
#{_untraced_method_name(method_name, metric_name_code)}(*args, &block)\n
|
189
189
|
ensure
|
190
190
|
duration = (Time.now - t0).to_f
|
191
|
-
OneApm::
|
191
|
+
OneApm::Manager.record_metric(\"#{metric_name_code}\", duration)
|
192
192
|
#{options[:code_footer]}
|
193
193
|
end
|
194
194
|
end"
|
@@ -296,7 +296,7 @@ module OneApm
|
|
296
296
|
alias_method method_name, _traced_method_name(method_name, metric_name_code)
|
297
297
|
send visibility, method_name
|
298
298
|
send visibility, _traced_method_name(method_name, metric_name_code)
|
299
|
-
|
299
|
+
OneApm::Manager.logger.debug("Traced method: class = #{self.name},"+
|
300
300
|
"method = #{method_name}, "+
|
301
301
|
"metric = '#{metric_name_code}'")
|
302
302
|
end
|
@@ -305,11 +305,11 @@ module OneApm
|
|
305
305
|
# from when they were added, or else other tracers that were added to the same method
|
306
306
|
# may get removed as well.
|
307
307
|
def remove_method_tracer(method_name, metric_name_code) # :nodoc:
|
308
|
-
return unless
|
308
|
+
return unless OneApm::Manager.config[:agent_enabled]
|
309
309
|
if method_defined? "#{_traced_method_name(method_name, metric_name_code)}"
|
310
310
|
alias_method method_name, "#{_untraced_method_name(method_name, metric_name_code)}"
|
311
311
|
undef_method "#{_traced_method_name(method_name, metric_name_code)}"
|
312
|
-
|
312
|
+
OneApm::Manager.logger.debug("removed method tracer #{method_name} #{metric_name_code}\n")
|
313
313
|
else
|
314
314
|
raise "No tracer for '#{metric_name_code}' on method '#{method_name}'"
|
315
315
|
end
|
@@ -10,7 +10,7 @@ module OneApm
|
|
10
10
|
|
11
11
|
def record_metrics(state, first_name, other_names, duration, exclusive, options)
|
12
12
|
record_scoped_metric = options.has_key?(:scoped_metric) ? options[:scoped_metric] : true
|
13
|
-
stats_engine = OneApm::
|
13
|
+
stats_engine = OneApm::Manager.agent.stats_engine
|
14
14
|
if record_scoped_metric
|
15
15
|
stats_engine.record_scoped_and_unscoped_metrics(state, first_name, other_names, duration, exclusive)
|
16
16
|
else
|
@@ -22,7 +22,7 @@ module OneApm
|
|
22
22
|
def log_errors(code_area)
|
23
23
|
yield
|
24
24
|
rescue => e
|
25
|
-
|
25
|
+
OneApm::Manager.logger.error("Caught exception in #{code_area}.", e)
|
26
26
|
end
|
27
27
|
|
28
28
|
def trace_execution_scoped_header(state, t0)
|
@@ -45,18 +45,18 @@ module OneApm
|
|
45
45
|
exclusive = duration - frame.children_time
|
46
46
|
|
47
47
|
if duration >= MAX_ALLOWED_METRIC_DURATION
|
48
|
-
|
48
|
+
OneApm::Manager.logger.log_once(:warn, "too_huge_metric:#{first_name}",
|
49
49
|
"Ignoring metric #{first_name} with unacceptably large duration: #{duration} s")
|
50
50
|
return
|
51
51
|
end
|
52
52
|
|
53
53
|
if duration < 0
|
54
|
-
|
54
|
+
OneApm::Manager.logger.log_once(:warn, "metric_duration_negative:#{first_name}",
|
55
55
|
"Metric #{first_name} has negative duration: #{duration} s")
|
56
56
|
end
|
57
57
|
|
58
58
|
if exclusive < 0
|
59
|
-
|
59
|
+
OneApm::Manager.logger.log_once(:warn, "metric_exclusive_negative:#{first_name}",
|
60
60
|
"Metric #{first_name} has negative exclusive time: duration = #{duration} s, child_time = #{frame.children_time}")
|
61
61
|
end
|
62
62
|
|
@@ -64,7 +64,7 @@ module OneApm
|
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
|
-
def trace_execution_scoped(metric_names, options={})
|
67
|
+
def trace_execution_scoped(metric_names, options={})
|
68
68
|
state = OneApm::TransactionState.tl_get
|
69
69
|
return yield unless state.is_execution_traced?
|
70
70
|
|
@@ -125,7 +125,7 @@ module OneApm
|
|
125
125
|
processor_count = get_processor_info[:num_logical_processors]
|
126
126
|
|
127
127
|
if processor_count.nil?
|
128
|
-
OneApm::
|
128
|
+
OneApm::Manager.logger.warn("Failed to determine processor count, assuming 1")
|
129
129
|
processor_count = 1
|
130
130
|
end
|
131
131
|
|
@@ -164,7 +164,7 @@ module OneApm
|
|
164
164
|
when '/' then nil
|
165
165
|
# in a cgroup, but we don't recognize its format
|
166
166
|
else
|
167
|
-
|
167
|
+
OneApm::Manager.logger.debug("Ignoring unrecognized cgroup ID format: '#{cpu_cgroup}'")
|
168
168
|
nil
|
169
169
|
end
|
170
170
|
end
|
@@ -62,8 +62,8 @@ module OneApm
|
|
62
62
|
if frame == expected_frame
|
63
63
|
return frame
|
64
64
|
else
|
65
|
-
OneApm::
|
66
|
-
OneApm::
|
65
|
+
OneApm::Manager.logger.info("Unexpected frame in traced method stack: #{frame.inspect} expected to be #{expected_frame.inspect}")
|
66
|
+
OneApm::Manager.logger.debug do
|
67
67
|
["Backtrace for unexpected frame: ", caller.join("\n")]
|
68
68
|
end
|
69
69
|
end
|
@@ -83,11 +83,11 @@ module OneApm
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def sampler_enabled?
|
86
|
-
|
86
|
+
OneApm::Manager.config[:'transaction_tracer.enabled']
|
87
87
|
end
|
88
88
|
|
89
89
|
def transaction_sampler
|
90
|
-
|
90
|
+
OneApm::Manager.agent.transaction_sampler
|
91
91
|
end
|
92
92
|
|
93
93
|
def clear
|
data/lib/one_apm/transaction.rb
CHANGED
@@ -202,7 +202,7 @@ module OneApm
|
|
202
202
|
if value < OneApm::Support::MethodTracer::Helpers::MAX_ALLOWED_METRIC_DURATION
|
203
203
|
@metrics.record_unscoped(QUEUE_TIME_METRIC, value)
|
204
204
|
else
|
205
|
-
|
205
|
+
OneApm::Manager.logger.log_once(:warn, :too_high_queue_time, "Not recording unreasonably large queue time of #{value} s")
|
206
206
|
end
|
207
207
|
end
|
208
208
|
end
|
@@ -240,7 +240,7 @@ module OneApm
|
|
240
240
|
|
241
241
|
def user_defined_rules_ignore?
|
242
242
|
return unless uri
|
243
|
-
return if (rules = OneApm::
|
243
|
+
return if (rules = OneApm::Manager.config[:"rules.ignore_url_regexes"]).empty?
|
244
244
|
|
245
245
|
parsed = OneApm::Support::HTTPClients::URIUtil.parse_url(uri)
|
246
246
|
filtered_uri = OneApm::Support::HTTPClients::URIUtil.filter_uri(parsed)
|
@@ -249,7 +249,7 @@ module OneApm
|
|
249
249
|
filtered_uri.match(rule)
|
250
250
|
end
|
251
251
|
rescue URI::InvalidURIError => e
|
252
|
-
OneApm::
|
252
|
+
OneApm::Manager.logger.debug("Error parsing URI: #{uri}", e)
|
253
253
|
false
|
254
254
|
end
|
255
255
|
|
@@ -24,7 +24,7 @@ module OneApm
|
|
24
24
|
|
25
25
|
txn
|
26
26
|
rescue => e
|
27
|
-
OneApm::
|
27
|
+
OneApm::Manager.logger.error("Exception during Transaction.start", e)
|
28
28
|
nil
|
29
29
|
end
|
30
30
|
|
@@ -32,7 +32,7 @@ module OneApm
|
|
32
32
|
txn = state.current_transaction
|
33
33
|
|
34
34
|
if txn.nil?
|
35
|
-
OneApm::
|
35
|
+
OneApm::Manager.logger.error(Transaction::FAILED_TO_STOP_MESSAGE)
|
36
36
|
return
|
37
37
|
end
|
38
38
|
|
@@ -63,7 +63,7 @@ module OneApm
|
|
63
63
|
:transaction_stopped
|
64
64
|
rescue => e
|
65
65
|
state.reset
|
66
|
-
OneApm::
|
66
|
+
OneApm::Manager.logger.error("Exception during Transaction.stop", e)
|
67
67
|
nil
|
68
68
|
end
|
69
69
|
|
@@ -5,7 +5,7 @@ module OneApm
|
|
5
5
|
module InstanceHelpers
|
6
6
|
|
7
7
|
def agent
|
8
|
-
OneApm::
|
8
|
+
OneApm::Manager.agent
|
9
9
|
end
|
10
10
|
|
11
11
|
def transaction_sampler
|
@@ -43,8 +43,8 @@ module OneApm
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def add_custom_parameters(p)
|
46
|
-
if OneApm::
|
47
|
-
OneApm::
|
46
|
+
if OneApm::Manager.config[:high_security]
|
47
|
+
OneApm::Manager.logger.debug("Unable to add custom attributes #{p.keys.inspect} while in high security mode.")
|
48
48
|
return
|
49
49
|
end
|
50
50
|
|
@@ -12,19 +12,19 @@ module OneApm
|
|
12
12
|
super
|
13
13
|
|
14
14
|
# Memoize the config setting since this happens per request
|
15
|
-
@enabled = OneApm::
|
16
|
-
OneApm::
|
15
|
+
@enabled = OneApm::Manager.config[:'xray_session.allow_traces']
|
16
|
+
OneApm::Manager.config.register_callback(:'xray_session.allow_traces') do |new_value|
|
17
17
|
@enabled = new_value
|
18
18
|
end
|
19
19
|
|
20
|
-
@capacity = OneApm::
|
21
|
-
OneApm::
|
20
|
+
@capacity = OneApm::Manager.config[:'xray_session.max_samples']
|
21
|
+
OneApm::Manager.config.register_callback(:'xray_session.max_samples') do |new_value|
|
22
22
|
@capacity = new_value
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
def xray_session_collection
|
27
|
-
@xray_session_collection ||= OneApm::
|
27
|
+
@xray_session_collection ||= OneApm::Manager.agent.agent_command_router.xray_session_collection
|
28
28
|
end
|
29
29
|
|
30
30
|
def capacity
|
@@ -27,7 +27,7 @@ module OneApm
|
|
27
27
|
|
28
28
|
# Indicate that you don't want to keep the currently saved transaction
|
29
29
|
# information
|
30
|
-
def abort_transaction!
|
30
|
+
def abort_transaction!
|
31
31
|
state = OneApm::TransactionState.tl_get
|
32
32
|
txn = state.current_transaction
|
33
33
|
txn.abort_transaction!(state) if txn
|
@@ -50,7 +50,7 @@ module OneApm
|
|
50
50
|
if txn
|
51
51
|
txn.notice_error(e, options)
|
52
52
|
else
|
53
|
-
OneApm::
|
53
|
+
OneApm::Manager.agent.error_collector.notice_error(e, options)
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
@@ -8,12 +8,12 @@ module OneApm
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def apdex_t
|
11
|
-
transaction_specific_apdex_t ||
|
11
|
+
transaction_specific_apdex_t || OneApm::Manager.config[:apdex_t]
|
12
12
|
end
|
13
13
|
|
14
14
|
def transaction_specific_apdex_t
|
15
15
|
key = :web_transactions_apdex
|
16
|
-
|
16
|
+
OneApm::Manager.config[key] && OneApm::Manager.config[key][best_name]
|
17
17
|
end
|
18
18
|
|
19
19
|
end
|
@@ -40,7 +40,7 @@ module OneApm
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def append_referring_transaction_guid_to(state, payload)
|
43
|
-
referring_guid = OneApm::
|
43
|
+
referring_guid = OneApm::Manager.agent.cross_app_monitor.client_referring_transaction_guid(state)
|
44
44
|
if referring_guid
|
45
45
|
payload[:referring_transaction_guid] = referring_guid
|
46
46
|
end
|
@@ -26,8 +26,8 @@ module OneApm
|
|
26
26
|
|
27
27
|
-1 == java_utime ? 0.0 : java_utime/1e9
|
28
28
|
rescue => e
|
29
|
-
|
30
|
-
|
29
|
+
OneApm::Manager.logger.log_once(:warn, :jruby_cpu_time, JRUBY_CPU_TIME_ERROR, e)
|
30
|
+
OneApm::Manager.logger.debug(JRUBY_CPU_TIME_ERROR, e)
|
31
31
|
nil
|
32
32
|
end
|
33
33
|
|
@@ -37,7 +37,7 @@ module OneApm
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def log_frozen_name(name)
|
40
|
-
OneApm::
|
40
|
+
OneApm::Manager.logger.warn("Attempted to rename transaction to '#{name}' after transaction name was already frozen as '#{@frozen_name}'.")
|
41
41
|
nil
|
42
42
|
end
|
43
43
|
|
@@ -65,7 +65,7 @@ module OneApm
|
|
65
65
|
def freeze_name_and_execute_if_not_ignored
|
66
66
|
if !name_frozen?
|
67
67
|
name = promoted_transaction_name(best_name)
|
68
|
-
name = OneApm::
|
68
|
+
name = OneApm::Manager.agent.transaction_rules.rename(name)
|
69
69
|
@name_frozen = true
|
70
70
|
|
71
71
|
if name.nil?
|